ba2hann's picture
Update README.md
46459b5 verified
metadata
language: tr
tags:
  - text-classification
  - sentiment-analysis
license: mit
datasets:
  - custom-dataset
metrics:
  - accuracy
  - precision
  - recall
  - f1
model-index:
  - name: ba2hann/bert-base-turkish-sentiment-analize
    results:
      - task:
          type: text-classification
          name: Sentiment Analysis
        dataset:
          name: Custom Dataset
          type: custom
        metrics:
          - type: accuracy
            value: 0.937
          - type: precision
            value: 0.944
          - type: recall
            value: 0.919
          - type: f1
            value: 0.927

Türkçe Duygu Analizi Modeli (ba2hann/bert-base-turkish-sentiment-analize)

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:

  • Irkçılık
  • Kızdırma (Hakaret/Küfür)
  • Nötr
  • Cinsiyetçilik

Model Detayları

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.

Performans Metrikleri

Modelin genel performansı aşağıdaki gibidir:

  • Doğruluk (Accuracy): %93.7

Kategori bazlı performans metrikleri ise şöyledir:

Kategori Precision Recall F1 Score
Irkçılık 0.881 0.919 0.899
Kızdırma 0.944 0.912 0.927
Nötr 0.960 0.965 0.963
Cinsiyetçilik 0.857 0.904 0.880

Nasıl Kullanılır?

Aşağıdaki Python kodu, transformers kütüphanesi ile bu modelin nasıl kullanılacağını göstermektedir:

import torch
from transformers import pipeline

model_name = "ba2hann/bert-base-turkish-sentiment-analize"

sentiment_pipeline = pipeline(
    task="text-classification",
    model=model_name,
    tokenizer=model_name,
    device=0 if torch.cuda.is_available() else -1  # GPU varsa kullan, yoksa CPU
)

category_map = {
    0: "Irkçılık",
    1: "Kızdırma",
    2: "Nötr",
    3: "Cinsiyetçilik"
}

def analyze_sentiment(text):
    sonuc = sentiment_pipeline(text)[0]
    label_index = int(sonuc['label'].split('_')[-1])
    kategori = category_map.get(label_index, "Bilinmeyen")
    return {
        "text": text,
        "category": kategori,
        "score": sonuc['score']
    }

if __name__ == "__main__":
    ornek_cumleler = [
        "Bu çok güzel bir gün.", #Nötr
        "Sen ne kadar aptalsın!", #Kızdırma
        "Bu ırkçı bir söylem.", #Irkçılık
        "Kadınlar araba kullanamaz.", #Cinsiyetçilik
        "Bu konu hakkında hiçbir fikrim yok." #Nötr
    ]
    for ornek_cumle in ornek_cumleler:
      sonuc = analyze_sentiment(ornek_cumle)
      print("\nAnaliz Sonuçları:")
      print(f"Analiz Edilen Cümle: {sonuc['text']}")
      print(f"Tahmin: {sonuc['category']}")
      print(f"Tahmin Güveni: {sonuc['score']:.2%}")