WhiteAngels's picture
Update README.md
9f750ab verified
---
license: mit
---
# BERT Türkçe Sınıflandırma Modeli
Bu proje, Türkçe dilindeki metinleri sınıflandırmak için fine-tune edilmiş bir BERT modelini kullanır. Model, metinleri aşağıdaki sınıflara ayırabilir:
- **Nötr**
- **Positive**
- **Negative**
## Kullanım
1. Gerekli paketleri yükleyin:
```bash
pip install transformers torch matplotlib
```
2. Model ve tokenizer'ı indirin:
```python
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
tokenizer = AutoTokenizer.from_pretrained("WhiteAngelss/bert-base-turkish-cased")
model = AutoModelForSequenceClassification.from_pretrained("WhiteAngelss/bert-base-turkish-cased")
```
3. Test cümleleri ile modeli test edin:
```python
sentences = [
"Sen gerçekten aptalsın ve her şeyin en kötüsünü hak ediyorsun.", # INSULT
"Bugün hava çok güzel.", # OTHER
"Bu dilimizdeki küfürlerden biri olabilir.", # PROFANITY
"Tüm kadınlar sadece mutfak işlerini yapar, bu doğaldır.", # SEXIST
"Siyahlar toplumda geri kalmış, bu kabul edilemez." # RACIST
]
inputs = tokenizer(sentences, return_tensors="pt", padding=True, truncation=True)
outputs = model(**inputs)
probs = torch.nn.functional.softmax(outputs.logits, dim=-1)
```
4. Sonuçları yazdırın ve görselleştirin:
```python
import matplotlib.pyplot as plt
user_probs_np = probs.detach().numpy()
fig, ax = plt.subplots()
bars = ax.bar(id2label.values(), user_probs_np[0], color='skyblue')
ax.set_xlabel('Sınıflar')
ax.set_ylabel('Olasılıklar')
ax.set_title('Tahmin Edilen Sınıfların Olasılıkları')
for bar in bars:
height = bar.get_height()
ax.text(bar.get_x() + bar.get_width() / 2, height, f'{height * 100:.2f}%', ha='center', va='bottom')
plt.xticks(rotation=45)
plt.show()
```
## Yazar
Bu projeyi WhiteAngels Team hazırlamıştır.
## ÖRNEK KULLANIM :
import matplotlib.pyplot as plt
import numpy as np
# Etiketlerin tanımlanması
id2label = {
"0": "Nötr",
"1": "Positive",
"2": "Negative"
}
# Test cümleleri
sentences = [
"Sen gerçekten aptalsın ve her şeyin en kötüsünü hak ediyorsun.",
"Bugün hava çok güzel.",
"Bu dilimizdeki küfürlerden biri olabilir.",
"Tüm kadınlar sadece mutfak işlerini yapar, bu doğaldır.",
"Siyahlar toplumda geri kalmış, bu kabul edilemez."
]
# Olasılıkları simüle edelim (örnek veri)
user_probs_np = np.array([0.65, 0.05, 0.15, 0.10, 0.05])
# Sonuçları çubuk grafik olarak görselleştirme
fig, ax = plt.subplots()
bars = ax.bar(id2label.values(), user_probs_np, color='skyblue')
ax.set_xlabel('Sınıflar')
ax.set_ylabel('Olasılıklar')
ax.set_title('Tahmin Edilen Sınıfların Olasılıkları')
# Her çubuğun üzerine olasılığı yazdırma
for bar in bars:
height = bar.get_height()
ax.text(bar.get_x() + bar.get_width() / 2, height, f'{height * 100:.2f}%', ha='center', va='bottom')
# Gösterme
plt.xticks(rotation=45)
plt.show()