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

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +21 -12
app.py CHANGED
@@ -9,37 +9,46 @@ sentiment_pipeline = pipeline("sentiment-analysis", model=model_name)
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
  )
 
9
  def analyze_sentiment(text):
10
  """
11
  Verilen metnin duygu analizini yapar.
12
+ Modelin çıktısını işleyerek ve bir güven eşiği 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
+ # Düşük güven skorlu pozitif/negatif tahminleri nötr olarak kabul etmek için bir eşik değeri.
20
+ # Model 'positive' veya 'negative' dediğinde skor bu değerin altındaysa, sonucu 'Nötr' yapacağız.
21
+ confidence_threshold = 0.75
22
+
23
  # Modelin İngilizce etiketlerini Türkçe'ye çevirelim
24
+ final_label = "Bilinmiyor"
25
+
26
+ if label == 'neutral':
27
+ # Model zaten Nötr dediyse, bunu kabul ediyoruz.
28
+ final_label = 'Nötr'
29
+ elif (label == 'positive' or label == 'negative') and score < confidence_threshold:
30
+ # Model pozitif veya negatif demiş ama skoru düşükse, bunu Nötr olarak kabul ediyoruz.
31
+ final_label = 'Nötr'
32
+ elif label == 'positive':
33
+ final_label = 'Pozitif'
34
  elif label == 'negative':
35
+ final_label = 'Negatif'
 
 
36
 
37
+ # Sonucu, nihai etiket ve modelin orijinal tahminiyle birlikte daha anlaşılır bir formatta döndür
38
+ return f"Sonuç: {final_label} (Modelin Ham Tahmini: {label.capitalize()}, Skor: {score:.2f})"
39
 
40
  # Gradio arayüzünü ve API'yi oluştur
41
  iface = gr.Interface(
42
  fn=analyze_sentiment,
43
  inputs=gr.Textbox(lines=3, placeholder="Analiz edilecek metni buraya girin..."),
44
  outputs=gr.Textbox(label="Analiz Sonucu"),
45
+ title="Türkçe Duygu Analizi (Güven Eşikli Model)",
46
+ description="Girilen cümlenin duygu durumunu analiz eder. Modelin pozitif/negatif tahminlerindeki güven skoru belirli bir eşiğin altındaysa, sonuç 'Nötr' olarak kabul edilir.",
47
  examples=[
48
  ["Bu filmi çok beğendim, harikaydı!"],
49
  ["Yemekler fena değildi ama servis yavaştı."],
50
  ["Bugün uçağım rötar yaptı."],
51
+ ["Arabanın rengi kırmızı."],
52
  ["Konu hakkında bir fikrim yok."]
53
  ]
54
  )