samet214 commited on
Commit
1f0fd6c
·
verified ·
1 Parent(s): b7de5fe

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +20 -24
app.py CHANGED
@@ -1,53 +1,49 @@
1
  import gradio as gr
2
  from transformers import pipeline
3
 
4
- # Duygu analizi modelini yükle
5
- # Bu model normalde sadece pozitif (LABEL_1) ve negatif (LABEL_0) döndürür.
6
- model_name = "savasy/bert-base-turkish-sentiment-cased"
7
  sentiment_pipeline = pipeline("sentiment-analysis", model=model_name)
8
 
9
  def analyze_sentiment(text):
10
  """
11
  Verilen metnin duygu analizini yapar.
12
- Modelin çıktısını işleyerek pozitif, negatif veya nötr olarak sınıflandırır.
13
  """
14
  # Pipeline'ı çalıştırarak sonucu al
15
  result = sentiment_pipeline(text)[0]
16
  label = result['label']
17
  score = result['score']
18
 
19
- # Nötr durumu için bir eşik değeri (threshold) belirliyoruz.
20
- # Modelin tahmin skoru bu eşik değerinin altındaysa,
21
- # cümlenin ne tam pozitif ne de tam negatif olduğuna karar verip "nötr" olarak etiketliyoruz.
22
- # Bu değeri ihtiyacınıza göre ayarlayabilirsiniz. Örneğin 0.90 gibi daha yüksek bir değer,
23
- # sadece modelin çok emin olduğu durumları pozitif/negatif olarak etiketler.
24
- threshold = 0.85
 
 
25
 
26
- if label == "LABEL_1" and score > threshold:
27
- # Eğer etiket pozitifse ve skor eşik değerinden yüksekse "pozitif" döndür.
28
- return "Pozitif"
29
- elif label == "LABEL_0" and score > threshold:
30
- # Eğer etiket negatifse ve skor eşik değerinden yüksekse "negatif" döndür.
31
- return "Negatif"
32
- else:
33
- # Yukarıdaki koşullar sağlanmıyorsa (yani skor eşik değerinden düşükse),
34
- # modelin kararsız olduğunu varsayarak "nötr" döndür.
35
- return "Nötr"
36
 
37
  # Gradio arayüzünü ve API'yi oluştur
38
  iface = gr.Interface(
39
  fn=analyze_sentiment,
40
  inputs=gr.Textbox(lines=3, placeholder="Analiz edilecek metni buraya girin..."),
41
- outputs=gr.Textbox(label="Sonuç"),
42
- title="Türkçe Duygu Analizi (3 Durumlu)",
43
- description="Girilen cümlenin duygu durumunu (Pozitif, Nötr, Negatif) analiz eder. Modelin güven skoru belirli bir eşiğin altındaysa 'Nötr' olarak kabul edilir.",
44
  examples=[
45
  ["Bu filmi çok beğendim, harikaydı!"],
46
  ["Yemekler fena değildi ama servis yavaştı."],
47
- ["Bugün hava ne sıcak ne de soğuk."],
48
  ["Ürünün kalitesinden hiç memnun kalmadım."],
 
49
  ]
50
  )
51
 
52
  # Arayüzü başlat
53
  iface.launch()
 
 
1
  import gradio as gr
2
  from transformers import pipeline
3
 
4
+ # Duygu analizi için 3 sınıflı (pozitif, negatif, nötr) bir model yükle
5
+ # Bu model, Türkçe dahil birçok dilde çalışır ve doğrudan 3 etiket döndürür.
6
+ model_name = "lxyuan/distilbert-base-multilingual-cased-sentiments-student"
7
  sentiment_pipeline = pipeline("sentiment-analysis", model=model_name)
8
 
9
  def analyze_sentiment(text):
10
  """
11
  Verilen metnin duygu analizini yapar.
12
+ Modelin çıktısını doğrudan kullanarak pozitif, negatif veya nötr olarak sınıflandırır.
13
  """
14
  # Pipeline'ı çalıştırarak sonucu al
15
  result = sentiment_pipeline(text)[0]
16
  label = result['label']
17
  score = result['score']
18
 
19
+ # Modelin İngilizce etiketlerini Türkçe'ye çevirelim
20
+ turkish_label = "Bilinmiyor"
21
+ if label == 'positive':
22
+ turkish_label = 'Pozitif'
23
+ elif label == 'negative':
24
+ turkish_label = 'Negatif'
25
+ elif label == 'neutral':
26
+ turkish_label = 'Nötr'
27
 
28
+ # Sonucu etiket ve güven skoruyla birlikte daha anlaşılır bir formatta döndür
29
+ return f"Sonuç: {turkish_label} (Güven Skoru: {score:.2f})"
 
 
 
 
 
 
 
 
30
 
31
  # Gradio arayüzünü ve API'yi oluştur
32
  iface = gr.Interface(
33
  fn=analyze_sentiment,
34
  inputs=gr.Textbox(lines=3, placeholder="Analiz edilecek metni buraya girin..."),
35
+ outputs=gr.Textbox(label="Analiz Sonucu"),
36
+ title="Türkçe Duygu Analizi (3 Sınıflı Model)",
37
+ description="Girilen cümlenin duygu durumunu (Pozitif, Nötr, Negatif) analiz eder. Bu versiyon, doğrudan 3 sınıf tahmini yapabilen farklı bir model kullanır.",
38
  examples=[
39
  ["Bu filmi çok beğendim, harikaydı!"],
40
  ["Yemekler fena değildi ama servis yavaştı."],
41
+ ["Bugün uçağım rötar yaptı."],
42
  ["Ürünün kalitesinden hiç memnun kalmadım."],
43
+ ["Konu hakkında bir fikrim yok."]
44
  ]
45
  )
46
 
47
  # Arayüzü başlat
48
  iface.launch()
49
+