ba2hann commited on
Commit
46459b5
·
verified ·
1 Parent(s): f0cb873

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +51 -39
README.md CHANGED
@@ -31,37 +31,51 @@ model-index:
31
  value: 0.927
32
  ---
33
 
34
- Türkçe Duygu Analizi Modeli (ba2hann/bert-base-turkish-sentiment-analize)
 
35
  Bu model, Türkçe metinler için duygu analizi yapmayı amaçlamaktadır. Model, dört farklı duygu kategorisini sınıflandırmak üzere eğitilmiştir:
36
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
37
 
38
- Irkçılık
39
- Kızdırma
40
- Nötr
41
- Cinsiyetçilik
42
- Performans Metrikleri
43
- Model, aşağıdaki doğruluk değerlerine sahiptir:
44
 
45
- Kullanım Örneği
46
- Aşağıdaki Python kodu, bu modeli kullanarak bir metin analizinin nasıl yapılacağını göstermektedir:
 
 
 
 
47
 
48
- python
49
- Copy code
 
 
 
50
  import torch
51
  from transformers import pipeline
52
 
53
- # Model adı
54
  model_name = "ba2hann/bert-base-turkish-sentiment-analize"
55
 
56
- # Duygu analizi için pipeline oluşturma
57
  sentiment_pipeline = pipeline(
58
  task="text-classification",
59
  model=model_name,
60
  tokenizer=model_name,
61
- device=0 if torch.cuda.is_available() else -1 # GPU kullanılabilirliği kontrolü
62
  )
63
 
64
- # Kategori haritası
65
  category_map = {
66
  0: "Irkçılık",
67
  1: "Kızdırma",
@@ -69,29 +83,27 @@ category_map = {
69
  3: "Cinsiyetçilik"
70
  }
71
 
72
- Performans Metrikleri
73
- Model, aşağıdaki doğruluk değerlerine sahiptir:
74
-
75
- Kategori Precision Recall F1 Score
76
- Irkçılık 0.881 0.919 0.899
77
- Kızdırma 0.944 0.912 0.927
78
- Nötr 0.960 0.965 0.963
79
- Cinsiyetçilik 0.857 0.904 0.880
80
- Genel Doğruluk (Accuracy): %93.7
81
-
82
- if __name__ == "__main__":
83
- # Analiz edilecek örnek cümle
84
- ornek_cumle = "örnek cümle"
85
-
86
- # Pipeline ile analiz
87
- sonuc = sentiment_pipeline(ornek_cumle)[0]
88
-
89
- # Tahmini kategoriye dönüştürme
90
- label_index = int(sonuc['label'].split('_')[-1]) # 'LABEL_0' -> 0
91
  kategori = category_map.get(label_index, "Bilinmeyen")
 
 
 
 
 
92
 
93
- # Sonuçları yazdırma
94
- print("\nAnaliz Sonuçları:")
95
- print(f"Analiz Edilen Cümle: {ornek_cumle}")
96
- print(f"Tahmin: {kategori}")
97
- print(f"Tahmin Güveni: {sonuc['score']:.2%}")
 
 
 
 
 
 
 
 
 
 
31
  value: 0.927
32
  ---
33
 
34
+ # Türkçe Duygu Analizi Modeli (ba2hann/bert-base-turkish-sentiment-analize)
35
+
36
  Bu model, Türkçe metinler için duygu analizi yapmayı amaçlamaktadır. Model, dört farklı duygu kategorisini sınıflandırmak üzere eğitilmiştir:
37
 
38
+ * Irkçılık
39
+ * Kızdırma (Hakaret/Küfür)
40
+ * Nötr
41
+ * Cinsiyetçilik
42
+
43
+ ## Model Detayları
44
+
45
+ Bu model, `bert-base-turkish-cased` modeli temel alınarak özel bir veri seti üzerinde eğitilmiştir. Hedef, sosyal medyada ve diğer metin tabanlı platformlarda sıklıkla karşılaşılan olumsuz ve ayrımcı söylemleri tespit etmektir.
46
+
47
+ ## Performans Metrikleri
48
+
49
+ Modelin genel performansı aşağıdaki gibidir:
50
+
51
+ * **Doğruluk (Accuracy):** %93.7
52
 
53
+ Kategori bazlı performans metrikleri ise şöyledir:
 
 
 
 
 
54
 
55
+ | Kategori | Precision | Recall | F1 Score |
56
+ |--------------|-----------|--------|----------|
57
+ | Irkçılık | 0.881 | 0.919 | 0.899 |
58
+ | Kızdırma | 0.944 | 0.912 | 0.927 |
59
+ | Nötr | 0.960 | 0.965 | 0.963 |
60
+ | Cinsiyetçilik | 0.857 | 0.904 | 0.880 |
61
 
62
+ ## Nasıl Kullanılır?
63
+
64
+ Aşağıdaki Python kodu, `transformers` kütüphanesi ile bu modelin nasıl kullanılacağını göstermektedir:
65
+
66
+ ```python
67
  import torch
68
  from transformers import pipeline
69
 
 
70
  model_name = "ba2hann/bert-base-turkish-sentiment-analize"
71
 
 
72
  sentiment_pipeline = pipeline(
73
  task="text-classification",
74
  model=model_name,
75
  tokenizer=model_name,
76
+ device=0 if torch.cuda.is_available() else -1 # GPU varsa kullan, yoksa CPU
77
  )
78
 
 
79
  category_map = {
80
  0: "Irkçılık",
81
  1: "Kızdırma",
 
83
  3: "Cinsiyetçilik"
84
  }
85
 
86
+ def analyze_sentiment(text):
87
+ sonuc = sentiment_pipeline(text)[0]
88
+ label_index = int(sonuc['label'].split('_')[-1])
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
89
  kategori = category_map.get(label_index, "Bilinmeyen")
90
+ return {
91
+ "text": text,
92
+ "category": kategori,
93
+ "score": sonuc['score']
94
+ }
95
 
96
+ if __name__ == "__main__":
97
+ ornek_cumleler = [
98
+ "Bu çok güzel bir gün.", #Nötr
99
+ "Sen ne kadar aptalsın!", #Kızdırma
100
+ "Bu ırkçı bir söylem.", #Irkçılık
101
+ "Kadınlar araba kullanamaz.", #Cinsiyetçilik
102
+ "Bu konu hakkında hiçbir fikrim yok." #Nötr
103
+ ]
104
+ for ornek_cumle in ornek_cumleler:
105
+ sonuc = analyze_sentiment(ornek_cumle)
106
+ print("\nAnaliz Sonuçları:")
107
+ print(f"Analiz Edilen Cümle: {sonuc['text']}")
108
+ print(f"Tahmin: {sonuc['category']}")
109
+ print(f"Tahmin Güveni: {sonuc['score']:.2%}")