CoolFace
Modelpublic

RafatMohammed/arabic-sentiment-marbertv2

sourceHugging Facemitupdated 9mo agoView on Hugging Face
1likes19downloads
Model Card

MARBERTv2 Arabic Sentiment Analysis

هذا النموذج مخصص لتصنيف المشاعر في النصوص العربية إلى ثلاث فئات: إيجابي (Positive)، محايد (Neutral)، وسلبي (Negative). تم بناء النموذج باستخدام بنية MARBERTv2 وتدريبه على مجموعة بيانات عربية ضخمة ومصنفة.

This model is designed for Arabic Sentiment Analysis, classifying text into three categories: Positive, Neutral, and Negative. It is based on the MARBERTv2 architecture and was fine-tuned on a custom Arabic dataset.

Model Details | تفاصيل النموذج

  • Developed by: Eng.Rafat Mohammed
  • Model type: BERT-based Sequence Classification
  • Language(s): Arabic (ar)
  • License: MIT
  • Finetuned from model: UBC-NLP/MARBERTv2

Intended Uses & Limitations | الاستخدامات والقيود

Intended Use

  • تحليل آراء العملاء في منصات التواصل الاجتماعي.
  • تصنيف التعليقات والتقييمات للمنتجات والخدمات العربية.
  • دراسات تحليل المشاعر العامة للنصوص العربية.

Limitations

  • قد يواجه النموذج صعوبة في فهم بعض اللهجات العربية المحلية شديدة الخصوصية.
  • الأداء الأفضل يكون مع النصوص التي تم تنظيفها من الرموز التعبيرية المبالغ فيها والروابط.

Training Procedure | طريقة التدريب

Training Hyperparameters

  • Epochs: 3
  • Learning Rate: 2e-5
  • Batch Size: 8
  • Weight Decay: 0.01
  • Warmup steps: 300
  • Max Sequence Length: 256

Dataset Split

تم تقسيم البيانات بنسبة 80/20:

  • Training set: 40,000 samples
  • Evaluation set: 10,000 samples

Evaluation Results | نتائج التقييم

MetricValue
Accuracy80.93%
F1 Score80.69%
Eval Loss0.7561

Usage Example | مثال على الاستخدام

python
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch

# تحميل النموذج والتوكنايزر
model_name = "RafatMohammed/MARBERTv2-sentiment-final"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(model_name)

# دالة التوقع
def predict_sentiment(text):
    inputs = tokenizer(text, return_tensors="pt", truncation=True, padding=True, max_length=128)
    with torch.no_grad():
        outputs = model(**inputs)
        pred_id = outputs.logits.argmax(dim=-1).item()
    
    id2label = {0: "negative", 1: "neutral", 2: "positive"}
    return id2label[pred_id]

# تجربة
print(predict_sentiment("الخدمة ممتازة وسريعة جداً")) # Output: positive
print(predict_sentiment("تأخر الطلب كثيراً ولم يعجبني الطعام")) # Output: negative

Citation | الاقتباس

إذا وجدت هذا النموذج مفيداً في بحثك، يرجى الإشارة إليه.

bibtex
@misc{marbertv2-arabic-sentiment,
  author = {Rafat Mohammed},
  title = {MARBERTv2 Arabic Sentiment Analysis Model},
  year = {2026},
  publisher = {Hugging Face},
  journal = {Hugging Face Model Hub}
}