import gradio as gr from transformers import pipeline print("Model yükleniyor: winvoker/bert-base-turkish-sentiment-analysis") # Daha dengeli sonuçlar verdiği ve nötr kategorisini daha iyi tespit ettiği bilinen bir model kullanıyoruz. sentiment_pipeline = pipeline( "sentiment-analysis", model="winvoker/bert-base-turkish-sentiment-analysis" ) print("Model başarıyla yüklendi.") def analyze_sentiment(text): """ Verilen metnin duygu analizini yapar ve sonucu basit bir formatta döndürür. """ if not text or not isinstance(text, str) or len(text.strip()) == 0: return {"label": "GEÇERSİZ GİRİŞ", "score": 0.0} try: result = sentiment_pipeline(text)[0] # Bu modelin etiketleri: 'positive', 'negative', 'neutral' # Kodun bu kısmı zaten bu etiketlerle uyumlu olduğu için değiştirmeye gerek yok. label = result['label'] if label.lower() == 'positive': simple_label = 'POZİTİF' elif label.lower() == 'negative': simple_label = 'NEGATİF' else: simple_label = 'NÖTR' return {"label": simple_label, "score": round(result['score'], 4)} except Exception as e: print(f"Analiz sırasında hata: {e}") return {"label": "ANALİZ HATASI", "score": 0.0} # Gradio arayüzünü oluşturup API olarak sunuyoruz. iface = gr.Interface( fn=analyze_sentiment, inputs=gr.Textbox(lines=3, placeholder="Analiz edilecek metni buraya yazın..."), outputs="json", title="Türkçe Duygu Analizi API", description="Girilen metnin duygu skorunu (Pozitif, Negatif, Nötr) döndürür." ) # Arayüzü ve API'yi başlatıyoruz. iface.launch()