--- 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()