๐ฝ๏ธ Arabic Restaurant Review Sentiment Analysis ๐
๐ Overview
This fine-tuned AraBERT model classifies Arabic restaurant reviews as Positive or Negative.
It is based on aubmindlab/bert-base-arabertv2 and fine-tuned using Hugging Face Transformers.
๐ฅ Why This Model?
โ
Trained on Real Restaurant Reviews from the Hugging Face Dataset.
โ
Fine-tuned with Full Training (not LoRA or Adapters).
โ
Balanced Dataset (2418 Positive vs. 2418 Negative Reviews).
โ
High Accuracy & Performance for Sentiment Analysis in Arabic.
๐ Try the Model Now!
Run inference directly from the Hugging Face Space:
๐ฅ Dataset & Preprocessing
- Dataset Source:
hadyelsahar/ar_res_reviews
- Text Cleaning:
- Removed non-Arabic text, special characters, and extra spaces.
- Normalized Arabic characters (
ุฅ, ุฃ, ุข โ ุง
,ุฉ โ ู
). - Balanced Positive & Negative sentiment distribution.
- Tokenization:
- Used AraBERT tokenizer (
aubmindlab/bert-base-arabertv2
).
- Used AraBERT tokenizer (
- Train-Test Split:
- 80% Training | 20% Testing.
๐๏ธ Training & Performance
The model was fine-tuned using Hugging Face Transformers with the following hyperparameters:
๐ Final Model Results
Metric | Score |
---|---|
Eval Loss | 0.354245 |
Accuracy | 87.40% |
Precision | 85.28% |
Recall | 86.33% |
F1-score | 85.81% |
โ๏ธ Training Configuration
training_args = TrainingArguments(
output_dir="./results",
evaluation_strategy="epoch",
save_strategy="epoch",
per_device_train_batch_size=8,
per_device_eval_batch_size=8,
num_train_epochs=4,
weight_decay=1,
learning_rate=1e-5,
lr_scheduler_type="cosine",
warmup_ratio=0.1,
fp16=True,
save_total_limit=2,
gradient_accumulation_steps=2,
load_best_model_at_end=True,
max_grad_norm=1.0,
metric_for_best_model="eval_loss",
greater_is_better=False,
)
๐ก Usage
1๏ธโฃ Quick Inference using pipeline()
from transformers import pipeline
model_name = "Abduuu/ArabReview-Sentiment"
sentiment_pipeline = pipeline("text-classification", model=model_name)
review = "ุงูุทุนุงู
ูุงู ุฑุงุฆุนูุง ูุงูุฎุฏู
ุฉ ู
ู
ุชุงุฒุฉ!"
result = sentiment_pipeline(review)
print(result)
โ Example Output:
[{'label': 'Positive', 'score': 0.91551274061203}]
๐ Training & Validation Loss Curve
The model was trained for 4 epochs, and the best model was selected at Epoch 2 (lowest validation loss).
๐ Dataset Class Distribution
๐จโ๐ป Creators & Contributors
- Abdu - Lead Developer
- Lumbago - Developer
- Wrench - Developer
For questions or collaborations, feel free to reach out! ๐
- Downloads last month
- 76
Model tree for Abduuu/AraRest-Arabic-Restaurant-Reviews-Sentiment-Analysis
Base model
aubmindlab/bert-base-arabertv02