MTE313/SnappFood_dataset_advanced
Viewer • Updated • 2k • 122 • 2
How to use MTE313/NEXARA_Model with Transformers:
# Use a pipeline as a high-level helper
from transformers import pipeline
pipe = pipeline("text-classification", model="MTE313/NEXARA_Model") # Load model directly
from transformers import AutoTokenizer, AutoModelForSequenceClassification
tokenizer = AutoTokenizer.from_pretrained("MTE313/NEXARA_Model")
model = AutoModelForSequenceClassification.from_pretrained("MTE313/NEXARA_Model")مدل NEXARA یک مدل مبتنی بر ترنسفورمرها برای تحلیل احساسات پنج کلاسه زبان فارسی است. این مدل با استفاده از معماری ParsBERT (نسخه Base) بر روی دیتاستهای تلفیقی رسمی و عامیانه فارسی Fine-Tune شده است.
خروجی مدل شامل ۵ کلاس عددی (بین ۰ تا ۴) است که با احساسات زیر متناظر هستند:
| برچسب عددی | امتیاز (Score) | احساس متناظر | توضیحات |
|---|---|---|---|
| 0 | -2 | 😡 بسیار منفی | نارضایتی شدید، انتقاد تند، تجربه خرید یا خدمات بسیار بد |
| 1 | -1 | 😞 منفی | نارضایتی، تجربه منفی، بیان مشکلات معمولی |
| 2 | 0 | 😐 خنثی | بدون احساس خاص، بیان اطلاعات یا واقعیتهای بدون جهتگیری |
| 3 | +1 | 😊 مثبت | رضایت نسبی، تجربه خوب، تعریف معمولی |
| 4 | +2 | 🤩 بسیار مثبت | رضایت شدید، تحسین زیاد، ابراز وفاداری به خدمات/محصول |
این مدل بر روی یک دیتاست ترکیبی بهینه با حجم ۱۸,۵۰۰ جمله آموزش دیده است:
برای استفاده از این مدل در پایتون با کتابخانه transformers میتوانید از کد زیر استفاده کنید:
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
# مسیر بارگذاری مدل از هاب hugging face
MODEL_NAME = "MTE313/NEXARA_model"
# بارگذاری توکنایزر و مدل
tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME)
model = AutoModelForSequenceClassification.from_pretrained(MODEL_NAME)
# تنظیم مدل در حالت ارزیابی
model.eval()
def predict_sentiment(text):
# پیشپردازش و توکنایزر
inputs = tokenizer(
text,
return_tensors="pt",
truncation=True,
padding=True,
max_length=512
)
# استنتاج
with torch.no_grad():
outputs = model(**inputs)
predictions = torch.nn.functional.softmax(outputs.logits, dim=-1)
predicted_class = torch.argmax(predictions, dim=-1).item()
confidence = predictions[0][predicted_class].item()
# نگاشت برچسبها
labels = {
0: "😡 بسیار منفی (Very Negative)",
1: "😞 منفی (Negative)",
2: "😐 خنثی (Neutral)",
3: "😊 مثبت (Positive)",
4: "🤩 بسیار مثبت (Very Positive)"
}
return {
"text": text,
"label": labels[predicted_class],
"score": predicted_class - 2, # تبدیل به مقیاس -2 تا +2
"confidence": f"{confidence:.2%}"
}
# تست نمونهها
test_sentences = [
"واقعا از خریدم راضی هستم، هم قیمت مناسب بود هم کیفیت عالی.",
"غذا اصلا خوب نبود، کاملا سرد رسیده بود و طعم بدی داشت.",
"یک کالا معمولی بود، ویژگی خاصی نداشت ولی کار راه اندازه."
]
for sentence in test_sentences:
result = predict_sentiment(sentence)
print(f"متن: {result['text']}")
print(f"احساس: {result['label']} | امتیاز: {result['score']} | اطمینان: {result['confidence']}")
print("-" * 50)
مدل با پارامترهای زیر بر روی دیتاست آموزشی Fine-Tune شده است:
استفاده از این مدل برای مقاصد آموزشی، پژوهشی و کارهای غیرتجاری با ذکر منبع آزاد است. برای استفاده تجاری، لطفاً فایل مجوز مربوطه را مطالعه نمایید.