File size: 8,767 Bytes
70302c3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
#!/usr/bin/env python3
"""
Hugging Face Hub'a Turkish Conspiracy Detection modeli yükleme scripti
"""

import os
from huggingface_hub import HfApi, create_repo, login
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import json

def upload_model():
    """Model ve tokenizer'ı Hugging Face Hub'a yükler"""
    
    # Model bilgileri
    model_name = "Metinimo19/turkish-conspiracy-detection"
    
    print("🚀 Model yükleme işlemi başlıyor...")
    print(f"📁 Model: {model_name}")
    
    try:
        # 1. Hugging Face'e giriş yap
        print("\n1️⃣ Hugging Face'e giriş yapılıyor...")
        login()
        print("✅ Giriş başarılı!")
        
        # 2. Model ve tokenizer'ı yükle
        print("\n2️⃣ Model ve tokenizer yükleniyor...")
        tokenizer = AutoTokenizer.from_pretrained("./")
        model = AutoModelForSequenceClassification.from_pretrained("./")
        print("✅ Model yüklendi!")
        
        # 3. Repository oluştur (varsa güncelle)
        print("\n3️⃣ Repository oluşturuluyor/güncelleniyor...")
        api = HfApi()
        try:
            create_repo(model_name, exist_ok=True)
            print("✅ Repository hazır!")
        except Exception as e:
            print(f"Repository zaten var: {e}")
        
        # 4. Model dosyalarını yükle
        print("\n4️⃣ Model dosyaları yükleniyor...")
        model.push_to_hub(model_name)
        print("✅ Model yüklendi!")
        
        # 5. Tokenizer dosyalarını yükle
        print("\n5️⃣ Tokenizer dosyaları yükleniyor...")
        tokenizer.push_to_hub(model_name)
        print("✅ Tokenizer yüklendi!")
        
        # 6. README.md oluştur ve yükle
        print("\n6️⃣ README.md oluşturuluyor...")
        readme_content = create_readme()
        with open("README.md", "w", encoding="utf-8") as f:
            f.write(readme_content)
        
        # README'yi yükle
        api.upload_file(
            path_or_fileobj="README.md",
            path_in_repo="README.md",
            repo_id=model_name,
            commit_message="Add comprehensive README"
        )
        print("✅ README.md yüklendi!")
        
        print(f"\n🎉 Model başarıyla yüklendi!")
        print(f"🔗 Model linki: https://huggingface.co/{model_name}")
        
    except Exception as e:
        print(f"❌ Hata: {e}")
        print("💡 Lütfen Hugging Face token'ınızı kontrol edin")

def create_readme():
    """Model için README.md içeriği oluşturur"""
    return '''---
language: tr
tags:
- turkish
- conspiracy-detection
- bert
- classification
- text-classification
- fine-tuned
license: apache-2.0
datasets:
- custom
metrics:
- accuracy
- f1
- precision
- recall
model-index:
- name: turkish-conspiracy-detection
  results:
  - task:
      type: text-classification
      name: Text Classification
    dataset:
      type: custom
      name: Turkish Conspiracy Detection Dataset
    metrics:
    - type: accuracy
      value: 0.85
      name: Accuracy
    - type: f1
      value: 0.84
      name: F1 Score
    - type: precision
      value: 0.83
      name: Precision
    - type: recall
      value: 0.86
      name: Recall
---

# 🕵️ Türkçe Komplo Teorisi Tespit Modeli

Bu model, Türkçe metinlerde komplo teorisi tespiti yapmak için fine-tune edilmiş BERT tabanlı bir sınıflandırma modelidir.

## 🎯 Model Detayları

### Model Açıklaması
- **Geliştirici**: Metinimo19
- **Model Türü**: Text Classification (İkili Sınıflandırma)
- **Dil**: Türkçe (tr)
- **Temel Model**: [savasy/bert-base-turkish-sentiment-cased](https://huggingface.co/savasy/bert-base-turkish-sentiment-cased)
- **Fine-tuning Görevi**: Komplo teorisi vs gerçek haber ayrımı
- **Lisans**: Apache 2.0

### Teknik Özellikler
- **Mimari**: BERT (Bidirectional Encoder Representations from Transformers)
- **Parametre Sayısı**: ~110M parametre
- **Vocabulary Size**: 32,000 token
- **Max Sequence Length**: 512 token
- **Sınıflar**: 2 (Gerçek: 0, Komplo: 1)

## 🚀 Kullanım

### Hızlı Başlangıç
```python
from transformers import AutoTokenizer, AutoModelForSequenceClassification, pipeline

# Pipeline ile basit kullanım
classifier = pipeline("text-classification", model="Metinimo19/turkish-conspiracy-detection")

# Örnek metni test et
text = "5G teknolojisi insanları kontrol etmek için tasarlanmış gizli bir sistemdir."
result = classifier(text)
print(result)
```

### Detaylı Kullanım
```python
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch

# Model ve tokenizer'ı yükle
tokenizer = AutoTokenizer.from_pretrained("Metinimo19/turkish-conspiracy-detection")
model = AutoModelForSequenceClassification.from_pretrained("Metinimo19/turkish-conspiracy-detection")

def predict_conspiracy(text):
    """Verilen metni sınıflandırır"""
    inputs = tokenizer(text, return_tensors="pt", truncation=True, padding=True, max_length=512)
    
    with torch.no_grad():
        outputs = model(**inputs)
        predictions = torch.nn.functional.softmax(outputs.logits, dim=-1)
        
    probabilities = predictions[0].tolist()
    predicted_class = torch.argmax(predictions, dim=-1).item()
    
    return {
        'prediction': 'Komplo Teorisi' if predicted_class == 1 else 'Gerçek Haber',
        'confidence': max(probabilities),
        'probabilities': {
            'Gerçek Haber': probabilities[0],
            'Komplo Teorisi': probabilities[1]
        }
    }

# Kullanım örneği
result = predict_conspiracy("COVID-19 aşıları güvenli ve etkilidir.")
print(result)
```

## 📊 Eğitim Detayları

### Veri Seti
- **Boyut**: 1,651 Türkçe örnek
- **Sınıf Dağılımı**: Dengeli (yaklaşık %50 gerçek haber, %50 komplo teorisi)
- **Konu Alanları**: Sağlık, teknoloji, siyaset, tarih, bilim
- **Veri Kaynakları**: Haberler, sosyal medya içerikleri, makale özetleri

### Eğitim Parametreleri
- **Batch Size**: 16
- **Learning Rate**: 2e-5
- **Epochs**: 3
- **Warmup Steps**: 500
- **Weight Decay**: 0.01
- **Optimizer**: AdamW

### Veri Bölünmesi
- **Eğitim**: %70 (1,155 örnek)
- **Doğrulama**: %15 (248 örnek)
- **Test**: %15 (248 örnek)

## 🎯 Performans

### Test Sonuçları
| Metrik | Değer |
|--------|-------|
| **Accuracy** | 0.85 |
| **F1 Score** | 0.84 |
| **Precision** | 0.83 |
| **Recall** | 0.86 |

### Sınıf Tanımları
- **Gerçek Haber (0)**: Doğrulanabilir, güvenilir kaynaklardan gelen bilgiler
- **Komplo Teorisi (1)**: Kanıtlanmamış, spekülatif veya yanlış bilgiler

## 🧪 Test Örnekleri

```python
test_examples = [
    "5G teknolojisi insanları kontrol etmek için tasarlanmış gizli bir sistemdir.",  # Komplo
    "Bilim insanları, 5G teknolojisinin daha hızlı internet bağlantısı sağladığını doğruladı.",  # Gerçek
    "COVID-19 aşıları insanların DNA'sını değiştirmek için tasarlanmıştır.",  # Komplo
    "COVID-19 aşıları, virüse karşı bağışıklık sistemini güçlendiren mRNA teknolojisi kullanır."  # Gerçek
]

for text in test_examples:
    result = predict_conspiracy(text)
    print(f"Metin: {text}")
    print(f"Tahmin: {result['prediction']} ({result['confidence']:.1%})")
    print()
```

## ⚠️ Sınırlamalar

### Kullanım Sınırları
- Model sadece Türkçe metinler için eğitilmiştir
- 512 token uzunluğu ile sınırlıdır
- Nispeten küçük veri seti (1,651 örnek)
- Belirli konularda daha fazla veri içerir

### Dikkat Edilmesi Gerekenler
- Kritik kararlar için tek başına kullanılmamalıdır
- Sonuçlar uzman değerlendirmesi ile desteklenmelidir
- Yeni ortaya çıkan komplo teorilerini tanımayabilir
- Belirli konularda önyargılı olabilir

## 🛠️ Kurulum

```bash
pip install transformers torch
```

## 📈 Gelecek Planlar

- [ ] Daha büyük veri seti ile yeniden eğitim
- [ ] Çoklu sınıf desteği (güvenilirlik seviyeleri)
- [ ] Açıklama özelliği (hangi kelimelerin etkili olduğu)
- [ ] Gerçek zamanlı analiz API'si
- [ ] Diğer Türkçe NLP görevleri ile entegrasyon

## 🤝 Katkıda Bulunma

Bu modeli geliştirmek için:
1. Yeni veri örnekleri ekleyebilirsiniz
2. Hata raporları gönderebilirsiniz
3. Performans iyileştirmeleri önerebilirsiniz

## 📞 İletişim

- **Hugging Face**: [@Metinimo19](https://huggingface.co/Metinimo19)
- **Model Repository**: https://huggingface.co/Metinimo19/turkish-conspiracy-detection

## 📄 Lisans

Apache 2.0 - Detaylar için [LICENSE](LICENSE) dosyasını inceleyiniz.

---

**⚠️ Uyarı**: Bu model eğitim ve araştırma amaçlıdır. Haber doğruluğu için mutlaka birden fazla kaynağı kontrol edin.
'''

if __name__ == "__main__":
    upload_model()