본 과제는 정보통신기획평가원의 지원하에 수행되었으며 미디어 상에서 발생할 수 있는 다양한 한국어 폭력/비폭력 상황을 인지를 위해 공개된 한국어 기반 사전학습 언어 모델(KoELECTRA, KcELECTRA 등)을 활용할 수 있는 소스 코드 제공합니다.
Contact : wlsghks4043@kw.ac.kr, skgusrb12@kw.ac.kr
본 과제는 일상생활에서 발생하는 다양한 폭력 상황을 인지하기 위해 한국어 폭력 텍스트 데이터를 자체적으로 구축하고, 공개된 자연어 처리 기술을 활용할 수 있는 공개 SW 제공을 목표로 합니다. 과제 수행에서 정의한 4가지의 한국어 폭력 상황과 1가지의 한국어 비폭력 상황은 2021년 인공지능 그랜드 챌린지에서 정의한 폭력 상황 협박, 갈취 또는 공갈, 괴롭힘(직장 내 괴롭힘, 직장 외 괴롭힘)과 비폭력 상황을 기준으로 하였으며, 아래의 표에 자세히 설명되어 있습니다.
< 4가지의 한국어 폭력 상황 정의 >
< 구축된 한국어 폭력 발화 텍스트 예시 >
제공되는 공개 SW에서는 Huggingface에 공개된 4가지의 한국어 기반 사전 학습 언어 모델(KoELECTRA, KcELECTRA, tunib-ELECTRA, KLUE-RoBERTa)과 ETRI에서 공개된 KorBERT를 활용하여 훈련 및 테스트, 모델의 앙상블을 통한 테스트까지 활용할 수 있습니다. 해당 모델에 대한 자세한 내용은 하단의 Reference를 통해 확인할 수 있습니다.
pytorch ~= 1.8.0
transformers ~= 4.8.2
boto3
botocore
requests
sklearn
numpy
pandas
tqdm
# only training
python run_classifier.py --is_training True --is_test False --is_ensemble_test False
# only test using single model
python run_classifier.py --is_training False --is_test True --is_ensemble_test False
# ensemble test using multiple model
python run_classifier.py --is_training False --is_test True --is_ensemble_test True --ensemble_comb_n <ENSEMBLE_MODEL_NUMBER>
정의한 각각의 5가지의 한국어 폭력/비폭력 상황에 대해 자체적으로 구축한 100개의 Test 데이터에 대해 성능을 Accuracy 및 Macro-F1 score를 통해 평가하였습니다.
Accuracy |
Macro F1-score |
|
---|---|---|
KcELECTRA | 79.40 | 79.56 |
KoRBERT | 79.40 | 78.60 |
tunib-ELECTRA | 77.20 | 76.31 |
KoELECTRA-Base | 76.80 | 76.51 |
KoELECTRA-Base-v2 | 74.40 | 74.39 |
KoELECTRA-Base-v3 | 76.20 | 76.06 |
KrELECTRA-Base-mecab | 78.60 | 78.36 |
해당 코드를 연구용으로 활용한다면, 아래와 같이 인용을 해주세요.
@misc{Choi2021KoreanHateSpeechRecognition,
author = {Choi, Young-Seok and Kim, Jin-Hwan and Lee, Hyeon Kyu},
title = {KHSR, Korean Hate Speech Recognition in Social Media},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://github.com/NeuroAI-PI/AI-Grand-Challenge-2021}},
year = {2021}
}