# app.py from transformers import AutoTokenizer, AutoModelForSequenceClassification, pipeline import gradio as gr # تحميل الموديل الفارسي model_name = "HooshvareLab/bert-fa-base-uncased-sentiment-snappfood" tokenizer = AutoTokenizer.from_pretrained(model_name) model = AutoModelForSequenceClassification.from_pretrained(model_name) sentiment_analyzer = pipeline("sentiment-analysis", model=model, tokenizer=tokenizer) def analyze_sentiment(text): result = sentiment_analyzer(text)[0] label = result["label"] score = result["score"] # نحسب الاحتمالات بشكل يدوي لو الموديل فيه فئتين فقط if label.upper() == "HAPPY": positive = round(score, 3) negative = round(1 - score, 3) else: negative = round(score, 3) positive = round(1 - score, 3) neutral = round(1 - (positive + negative), 3) if neutral < 0: neutral = 0.0 # علشان ميطلعش سالب بالخطأ output = f"مثبت (إيجابي): {positive}\nمنفی (سلبي): {negative}\nخنثی (محايد): {neutral}" return output iface = gr.Interface( fn=analyze_sentiment, inputs=gr.Textbox(lines=2, placeholder="متن خود را وارد کنید..."), outputs="text", title="تحلیل احساسات فارسی", description="تحلیل متن به فارسی و نمایش احتمال مثبت، منفی و خنثی." ) iface.launch()