과제 설명 및 목표 - TUNiB 공식 Repo
클래스 | Class No. | # Training | # Test |
---|---|---|---|
협박 | 00 | 896 | 100 |
갈취 | 01 | 981 | 100 |
직장 내 괴롭힘 | 02 | 979 | 100 |
기타 괴롭힘 | 03 | 1,094 | 100 |
일반 | 04 | - | 100 |
AIFFEL 3차 해커톤 TUNiB 기업과제 데이터셋 DKTC으로 DKTC(Dataset of Korean Threatening Converstations)
훈련 데이터의 클래스는 '협박', '갈취', '직장 내 괴롭힘', '기타 괴롭힘' 4가지 클래스로 이루어져 있고 테스트 데이터의 클래스는 '일반' 클래스가 추가된 5가지 클래스입니다.
해당 5종류의 클래스를 문장을 입력으로 넣어서 분류하는 텍스트 다중 분류 모델을 만들어서 F1-score의 점수를 높이는 것이 과제의 목표입니다.
일반 대화 클래스의 경우 AI hub 데이터를 활용해야 하며 사용되기 좋다고 생각되는 데이터셋은 다음과 같습니다.
- 프로그래밍 언어 : 파이썬 3.x
- 프로젝트 작업환경 : GCP, Google Colab(TPU)
- 프로젝트 회의록, 참고사이트 아카이브 : Notion, Github
- 활용된 패키지 : Tensorflow 2.x, Huggingface, transformer-interpreter
- 데이터의 구조는 3가지 columns으로 이루어져 있으며 독립변수는 conversation, 종속변수는 class로 사용합니다.
- conversation은 \n를 기준으로 대화를 주고 받으며 평균적으로 5~15번 정도 대화를 주고 받습니다.
일반대화 조합 | 모델 | epochs | 기타 추가 기법 | F1-score |
---|---|---|---|---|
한국어 대화 데이터 4000개 | Soft voting 앙상블 (klue/bert-base, skt/kogpt2, LSTM) |
1 | - | 0.673 |
한국어 SNS 데이터 4000개 한국어 대화 데이터 4000개 |
klue/bert-base (단일 모델) |
1 | - | 0.821 |
한국어 SNS 데이터 4000개 한국어 대화 데이터 4000개 |
klue/bert-base (단일 모델) |
3 | 1. 학습률 스케쥴러 : 0.5 | 0.829 |
한국어 SNS 5000개 한국어 대화 5000개 감성 말뭉치 5000개 오분류 SNS데이터 350개 |
klue/bert-base (단일 모델) |
5 | 1. 학습률 스케쥴러 : 0.2 | 0.865 |
한국어 SNS 5000개 한국어 대화 5000개 감성 말뭉치 5000개 오분류 SNS데이터 350개 역번역 데이터 |
일반대화 데이터로 사전학습시킨 klue/bert-base (TAPT 적용) |
4 | 1. 학습률 스케쥴러 : 0.2 2. 추가적 사전학습 TAPT 적용 |
0.875 |
한국어 SNS 5000개 한국어 대화 5000개 감성 말뭉치 5000개 오분류 SNS데이터 350개 |
일반대화 데이터로 사전학습시킨 klue/bert-base (TAPT 적용) |
2 | 1. 학습률 스케쥴러 : 0.2 2. 추가적 사전학습 TAPT 적용 3. XAI insight |
0.882 |
불균형 데이터
다중 분류 모델
설명 가능한 AI
- Explainable AI demo 사이트
- EXplainable AI LRP 설명 동영상
- XAI NLP 강의
- Explaining Recurrent Neural Network Predictions in Sentiment Analysis
기존의 혐오표현과 욕설을 잡아내는 연구들
Github
기타 참고 사이트
GAN을 NLP에 적용 (seqGAN)
- 작사가 인공지능 노드 참고
- seqGAN