Coder Social home page Coder Social logo

onehitwonderss / turkce-hakaret-soylemi-tespiti Goto Github PK

View Code? Open in Web Editor NEW
0.0 0.0 0.0 868 KB

Teknofest 2023 Doğal Dil İşleme Yarışması

License: Apache License 2.0

Python 100.00%
acikhack2023 text-classification transformer bert deberta-v3 xlm-roberta

turkce-hakaret-soylemi-tespiti's Introduction

Teknofest 2023 Türkçe Hakaret Söylemi Tespiti

Bu uygulamada türkçe metinlerde geçen hakaret içerikleri 5 farklı etiket değerinde sınıflandırılmıştır. Sınıflandırma yapılırken xlm-roberta-base ve mdeberta-v3 modelleri kullanılmıştır. Sonuç olarak ~%94 F1 skoru ile 'INSULT', 'SEXIST', 'PROFANITY', 'RACIST' ve 'OTHER' sınıfları sınıflandırılmıştır.

Ön Gereksinimler

Çalışma ortamının hazırlanması için miniconda ile sanal Python 3.8 ortamı oluşturulmasını ve CUDA driverlerının yüklü olmasını öneriyoruz.

conda create -n env_name python==3.8

Kurulum 🎯

Ön gereksinimler sağlandıktan sonra aşağıdaki komut ile kurulumu gerçekleştirebilirsiniz.

Gerekli Kütüphane Version
torch 2.0.0
torchvision 0.15.1
transformers 4.18.0
numpy <1.24.0
sentencepiece 0.1.96
nltk
pandas
scikit-learn
pip install -r requirements.txt

Veri Kümesi

Çalışma kapsamında etiketlemiş olduğumuz 1000 adet etiketli veriyi google drive linkinden indirebilirsiniz.

Eğitim 🚀

Model eğitmek için veri setinin path değerini options.py'da göstermeniz geremektedir. Ardından options.py dosyasında hyperparametreleri düzenleyerek eğitim denemesi yapabilirsiniz.

class Options:
	model_name = "mdeberta-v3-base" # or xlm-roberta-base
	max_seq_len = 128
	learning_rate = 2e-5
	epochs = 1
	batch_size = 4
	data_source = "dataset.csv"
	data_source_2 = None
	model_save_path = "./models/" + model_name + "/model/"
	tokenizer_save_path = "./models/" + model_name + "/model/"

Model seçmek için options.py dosyasıdan model_name değişkenini "mdeberta-v3-base" ya da "xlm-roberta-base" olarak belirtmeniz yeterlidir. Eğitime başlamadan önce train.py dosyasının bulunduğu dizinde models/model_name//model/ klasörlerini oluşturmanız gerekmektedir. Eğitim sonucu kat sayılar bu klasöre kayıt edilecektir. Options parametlerini ayarladıktan sonra ve dataset pathini doğru girdiğinizden emin olduktan sonra aşağıdaki script ile eğitimi başlatabilirsiniz.

python train.py

Eğitim T4 GPU'da ortalama 30 dakika sürmektedir.

Pre-trained Modeller

Önceden eğitilmiş modelleri kullanmak için mdeberta-v3 ve xlm-roberta-base linklerini kullanabilirsiniz. Modeller kullanmak için zip dosyalarını ./models/model_name (mdeberta-v3 ya da xlm-roberta-base)/model/ altına açmanız gerekmektedir.

Nasıl Kullanılır?

Eğitilmiş modeli predict_one_text.py scriptindeki örnek ile kullanabilirsiniz.

if options.model_name == "mdeberta-v3-base":
	model = AutoModelForSequenceClassification.from_pretrained(options.model_save_path)
elif options.model_name == "xlm-roberta-base":
	model = XLMRobertaForSequenceClassification.from_pretrained(options.model_save_path)
else:
	print('Geçersiz Model İsmi')


id2label = {0:'INSULT', 1:'OTHER', 2:'PROFANITY', 3:'RACIST', 4:'SEXIST'}
tokenizer = AutoTokenizer.from_pretrained(options.tokenizer_save_path)
classifier = pipeline("text-classification", model=model, tokenizer=tokenizer)

def predict(text):
	result = id2label[int(classifier(text)[0]['label'].split('_')[-1])]
	return result

DEMO!

Önceten eğitmiş olduğumuz modelleri aşağıdaki linklerden deneyin.

mdeberta-v3 xlm-roberta-base

Ekip Üyeleri

Can Korkut Zeynep Çay

turkce-hakaret-soylemi-tespiti's People

Contributors

cankorkut avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.