Türkçe metinlerdeki nefret söylemi ve saldırgan içeriği tespit etmek için geliştirilmiş hiyerarşik bir sınıflandırma modeli.
- Proje Hakkında
- Özellikler
- Kurulum
- Kullanım
- Model Mimarisi
- Veri Seti
- Performans
- Katkıda Bulunma
- Lisans
TemizDil Model, Türkçe metinlerdeki nefret söylemi ve saldırgan içeriği tespit etmek için geliştirilmiş hiyerarşik bir sınıflandırma modelidir. Model, metinleri çoklu seviyede analiz ederek farklı kategorilerde sınıflandırma yapmaktadır.
- Hiyerarşik sınıflandırma yaklaşımı
- Çoklu etiket sınıflandırması
- BERT tabanlı derin öğrenme modeli
- Zorluk seviyesi tahmini
- Türkçe metin analizi
- Detaylı içerik kategorizasyonu
- CUDA ve CPU desteği
- Projeyi klonlayın:
git clone https://github.com/kemalersin/temizdil-model.git
cd temizdil-model
- Gerekli paketleri yükleyin:
pip install -r requirements.txt
-
Eğitilmiş model dosyaları
offensive_model_hierarchical
dizininde bulunmaktadır. Modeli kullanmak için bu dizinin proje kök dizininde olduğundan emin olun. -
CUDA Desteği (Opsiyonel):
- Model, CUDA destekli GPU'lar ile çalışabilir
- CUDA kullanmak için PyTorch'un CUDA destekli sürümünü yüklemeniz gerekir
- CPU kullanımı için herhangi bir ek kurulum gerekmez
Modeli eğitmek için:
python train.py
Eğitilen model offensive_model_hierarchical
dizinine kaydedilecektir.
Tek bir metin analizi için:
python analyze.py --text "Analiz edilecek metin"
Dosyadan çoklu metin analizi için:
python analyze.py --file metinler.txt
Programı parametresiz çalıştırarak etkileşimli modda kullanabilirsiniz:
python analyze.py
Bu modda:
- Program sizden metin girmenizi bekleyecektir
- Her metin girişinden sonra analiz sonuçlarını gösterecektir
- Çıkmak için 'q' yazabilirsiniz
Model, sisteminizde CUDA destekli bir GPU varsa otomatik olarak GPU'yu kullanacaktır. GPU yoksa veya CUDA kurulu değilse CPU'da çalışacaktır. Model ağırlıkları otomatik olarak uygun cihaza taşınır.
--text
: Analiz edilecek metin (tek bir metin için)--file
: Analiz edilecek metinlerin bulunduğu dosya (her satır bir örnek)--model_path
: Eğitilmiş model klasörü (varsayılan: "./offensive_model_hierarchical")
Analiz sonuçları aşağıdaki bilgileri içerir:
-
Temel Bilgiler:
- Metnin saldırgan olup olmadığı
- Tahmin edilen etiketler
- Her etiket için olasılık değerleri
- Karar vermesi zor olup olmadığı
-
Saldırgan İçerik Detayları:
- Hedefli olup olmadığı
- Hedef türü (grup, birey, diğer, çoklu hedef)
==================================================
METİN: [analiz edilen metin]
==================================================
SALDIRGAN MI: Evet
ETİKETLER:
- prof
- grp
ETİKET OLASILIKLARI:
- non: 0.1234
- prof: 0.8765
- grp: 0.7654
- ind: 0.2345
- oth: 0.3456
HEDEFLİ Mİ: Evet
HEDEF TÜRÜ: grup
KARAR VERMESİ ZOR MU: Hayır
==================================================
Model, aşağıdaki hiyerarşik yapıyı kullanmaktadır:
- Seviye 1: Saldırgan içerik tespiti (offensive/non-offensive)
- Seviye 2: Hedefli/hedefsiz içerik tespiti
- Seviye 3: Hedef tipi sınıflandırması
- Grup hedefli (grp)
- Birey hedefli (ind)
- Diğer hedefli (oth)
- Çoklu hedefli
Model, Türkçe Saldırgan Dil Veri Seti kullanılarak eğitilmiştir. Bu veri seti, sosyal medyadan toplanan Türkçe tweet'lerden oluşmaktadır ve aşağıdaki etiketleri içermektedir:
non
: Saldırgan olmayan içerikprof
: Küfürlü içerikgrp
: Gruba yönelik saldırıind
: Bireye yönelik saldırıoth
: Diğer türde saldırıX
: Anlaşılamayan veya Türkçe olmayan içerik
Veri seti, Çağrı Çöltekin tarafından hazırlanmış ve Creative Commons Attribution License (CC-BY) altında dağıtılmaktadır. Veri setini kullanırken aşağıdaki makaleyi referans göstermeniz önerilir:
@inproceedings{coltekin2020lrec,
author = {\c{C}\"{o}ltekin, \c{C}a\u{g}r{\i}},
year = {2020},
title = {A Corpus of Turkish Offensive Language on Social Media},
booktitle = {Proceedings of The 12th Language Resources and Evaluation Conference},
pages = {6174--6184},
address = {Marseille, France},
url = {https://www.aclweb.org/anthology/2020.lrec-1.758},
}
Model performans metrikleri buraya eklenecek.
- Bu depoyu fork edin
- Yeni bir branch oluşturun (
git checkout -b feature/yeniOzellik
) - Değişikliklerinizi commit edin (
git commit -am 'Yeni özellik eklendi'
) - Branch'inizi push edin (
git push origin feature/yeniOzellik
) - Pull Request oluşturun
Bu proje MIT lisansı altında lisanslanmıştır. Daha fazla bilgi için LICENSE
dosyasına bakın.
Proje Sahibi - @kemalersin
Proje Linki: https://github.com/kemalersin/temizdil-model