Skip to content

ozgurdogan646/Acikhack2023_HermesAI_Teknofest

Repository files navigation

assets

Yarışma Bilgileri

Yarışma Konusu: Aşağılayıcı Söylemlerin Doğal Dil İşleme İle Tespiti

Yarışmanın Alt Başlıkları: Cinsiyetçi, ırkçı, küfür ve hakaret söylemleri gibi aşağılayıcı söylemler içeren cümlelerin doğal dil işleme yöntemleri ile tespit edilmesi ve ortaya çıkan teknik yetkinliğin sektörel kullanım alanları üzerine öneriler iletilmesi.

Yarışma Etiketleri: SEXIST, RACIST, PROFANITY, INSULT, OTHER

Dokümantasyon

İçerik

  • Yarışma Verisi
  • Keşifsel Veri Analizi (EDA)
    • Veri Seti İçerisindeki Sınıf Dağılımı
    • Temizlenmiş Verilerin Karakter, Kelime ve Token Uzunluğuna Göre İncelenmesi
    • Temizlenmiş Veri Üzerindeki Stop Word lerin Analizi
    • Veri Seti İçerisindeki En Çok Geçen Kelimelerin İncelenmesi
    • nGram Analizi (n=2)
  • Veri Ön İşleme Aşamları
  • Model Denemeleri
    • Binary Sınıflandırma Sonuçları
    • Multiclass Sınıflandırma Sonuçları
  • En Başarılı Modellerin Karmaşıklık Matrisi (Confusion Matrix)
  • Dış Veri İle Modelleme
  • Ensemble Model
  • Final
    • Referanslar
    • Bağımlılıklar (Dependencies)

Yarışma Verisi

Yarışma için paylaşılan veri seti içerisinde 12620 veri bulunmaktadır.

Veri seti içerisindeki sütunlar; id, text, is_offensive, target

id: Her bir verinin eşsiz kimliği
text: Sınıflandırılması gereken string türündeki veriler
is_offensive: Text içerisindeki string'lerin ofansiflik düzeyine göre etiketleri
target: Text içerisindeki string'lerin tür etiketleri

Keşifsel Veri Analizi (EDA)

Veri Seti İçerisindeki Sınıf Dağılımı


Veri seti içerisinde ofansif ve ofansif olmayan verilerin dağılımı arasında bir fark olduğu gözlemlendi.
Target etiketleri arasında inceleme yapıldığında ise dağılımın eşit olduğu gözlemlendi.

Temizlenmiş Verilerin Karakter, Kelime ve Token Uzunluğuna Göre İncelenmesi

Karakter Uzunlukları Grafiği

Veri seti içerisindeki ortalama metin uzunluğu 40.40. Minimum 5 karakter uzunluğunda veri bulunmaktadır.
Maksiumum 275 karakter uzunluğunda veri bulunmaktadır.

Kelime Uzunlukları Grafiği

Veriler içerisindeki ortalama kelime uzunlukları incelendi. Ofansif etiketlerine ve target etiketlerine göre gruplandırılarak analizler yapıldı. Ortalama kelime uzunluklarının 5 civarı olduğu gözlemlendi.

Token Uzunlukları Grafiği

Veri seti içerisinde 32 tokenden büyük çok az veri bulunmaktadır. 32 tokenden büyük olan verileri %95’i ‘OTHER’ sınıfına aittir. Bu nedenle tokenize etme işleminde parametre olarak maksimum token uzunluğu 32 kabul edilmiştir.

İşlenmemiş Veri Üzerindeki Stop Word lerin Analizi

Stop word ler model üzerinde etkisiz kelimelerdir. Farklı etiketler içerisinde çok fazla bulundukları için tahmin sonucunu etkilememektedir.

Stop word ler kullanılarak ve kullanmadan 2 farklı eğitim gerçekleştirildi. Eğitim sonuçları alt taraftaki görsel ile paylaşıldı. Sonuçlara ve incelemelerimize göre de tahmin üzerinde bir etkileri olmadıkları gözlemlendi.

Stop Word Histogram

Stop Word ün Başarı Metrikleri Üzerindeki Etkileri

Veri Seti İçerisindeki En Çok Geçen Kelimelerin İncelenmesi

Daha iyi bir model oluşturmak ve veri setini daha iyi anlayabilmek için en çok geçen kelimelerin olduğu grafik ve kelime bulutları(world cloud) oluşturuldu. Bazı etiketler için belirli kelime gruplarının belirleyici ve sıklık ile metinler içerisinde yer aldığı tespit edildi.

Veri Seti İçerisindeki Kelimelerin Histogramı

Target Etiketlerine Göre Kelime Bulutları

nGram Analizi (n=2)

Veri Ön İşleme Aşamları

  • Duplicate veriler tespit edildi ve çıkarıldı.
  • Karakterler küçük harfe dönüştürüldü.
  • Metinler içerisindeki stop word ler çıkarıldı. (nltk kütüphanesi içerisindeki türkçe stop word ler kullanıldı)
  • Bozuk veriler tespit edildi ve çıkarıldı (Örneğin sadece tek bir harften oluşan 133 adet veri tespit edildi).
  • Metinler noktalama işareti ve ifadelerden arındırıldı. (Noktalama işaretlerine ek olarak “<”, “>” gibi ifadeler tespit edildi ve çıkartıldı. Yapılan incelemeler ile çok fazla noktalama işaretinin bulunmadığı gözlemlendi).

Model Denemeleri

  • Eldeki veriler ile farklı pre-trained model denemeleri yapıldı.
  • Verideki yanlış etiketlemeler düzeltilip model denemesi yapıldı. 0.04’lük bir F1 skoru artılı gözlemlendi. (tablodaki son model)
  • Binary model denemesi yapıldı. Sonuçların multiclass a göre daha düşük skorlar verdiği gözlemlendi.
  • Dış veri kullanılarak model denemesi yapıldı.

Binary Model Sonuçları

Binary modelde ilk aşamada verinin ofansiflik düzeyi kontrol edildi. Multiclass mimariye göre daha başarısız sonuçlar elde edildi. Ofansiflik düzeyinden sonra target etiketlerinin tahmin edilmesiyle mevcut hatanın artırımsal bir şekilde artacağı düşünülerek binary sınıflandırma yapılmadı.

Multiclass Model Sonuçları

Etiketlenmiş veri ile BERT [1], Roberta [2], Electra [3] gibi pre-tranied modeller kullanılarak multiclass sınıflandırma yapıldı. En başarılı 3 modelin başarı skoru test verilerinde ortalama 0.93 olarak elde edildi. Binary sınıflandırmaya göre tek aşamada tahmin yapılması ve daha yüksek başarı elde edilmesi multiclass bir model tercih etmemize neden oldu.

En Başarılı Modellerin Karmaşıklık Matrisi (Confusion Matrix)

  Model İsmi Confusion Matrix
Model-1 [4] bert-base-turkish-cased-mean-nli-stsb-tr
Model-2 [5] electra-base-turkish-cased-discriminator
Model-3 [4] Bert-base-turkish-cased-mean-nli-stsb-tr-corrected-label

Dış Veri İle Modelleme

Yaptığımız araştırmalar sonucu 3 Haziran 2021 tarihinde Sheffield Üniversitesi, Alan Turing Enstitüsü ve Facebook AI ekibinin yaptığı [6] çalışma sonucunda ortaya çıkan, yaklaşık olarak 40 bin hakaret / nefret cümlesi içeren veri setini keşfettik. Yarışmamız target'ları ile tam olarak uyuşmayan bu veri setinde transformasyon işlemleri yaparak targetlerı RACIST, SEXIST, PROFANITY, INSULT, OTHER olacak şekilde güncelledik. İngilizce olan bu veri setini, pretrained bir model olan HelsinkiNLP'nin opus-mt'si ile Türkçe'ye çevirip model denemesi yaptık.

Beklenen Performans artışı görülmedi.
Bias riski olabilmesi ve test verisinden uzaklaşma ihtimalleri olduğu için final modelde kullanılmadı.

Ensemble Model

En başarılı 3 model birleştirilerek ensemble bir model oluşturuldu. Model gelen etiketlere göre bir oylama sistemi kullanılarak(voting) final tahmini yapılmaktadır. Yapılan test sonuçlarına göre diğer modellerde 0.9311 bandında olan F1 skoru ensemble model ile 0.9391’e yükselmektedir. Bu modelin final modeli olarak kullanılması kararlaştırılmıştır.

Oylama Sistemi (Voting System);
1-1-1 dağılımı olursa başarı skoru en yüksek olan alınır.
1-2 dağılımı olursa modu en yüksek olan alınır.
3 model de aynı etiketi verirse sonuç etiket olarak alınır.

Ensemble Model Diagram

Ensemble Model Başarı Metrikleri

Final

Referanslar

[1] Devlin, J., Chang, M. W., Lee, K., & Toutanova, K. (2018). Bert: Pre-training of deep bidirectional transformers for language understanding. arXiv preprint arXiv:1810.04805.
[2] Clark, K., Luong, M. T., Le, Q. V., & Manning, C. D. (2020). Electra: Pre-training text encoders as discriminators rather than generators. arXiv preprint arXiv:2003.10555.
[3] Liu, Y., Ott, M., Goyal, N., Du, J., Joshi, M., Chen, D., ... & Stoyanov, V. (2019). Roberta: A robustly optimized bert pretraining approach. arXiv preprint arXiv:1907.11692.
[4] https://huggingface.co/emrecan/bert-base-turkish-cased-mean-nli-stsb-tr
[5] https://huggingface.co/dbmdz/electra-base-turkish-cased-discriminator
[6] Vidgen, B., Thrush, T., Waseem, Z., & Kiela, D. (2020). Learning from the worst: Dynamically generated datasets to improve online hate detection. arXiv preprint arXiv:2012.15761.

Bağımlılıklar (Dependencies)

pandas
transformers
gradio
torch