- 1. Dev summary
- 2. Data Collection and Processing
- 3. Model
- 4. Train
- 5. Test result
- 6. Problems and Solutions
1. Dev summary
| Project | Summary of the project | Related Pages |
|---|---|---|
| Named Entity Recognition |
|
|
2. Data Collection and Processing
2.1 Dataset
| 모델 | 출처 | 포맷 | trainset 수량 |
|---|---|---|---|
| 범용 NER | data labeling 업체 수집 데이터 | json | 525,659문장 |
| bio NER | NCBI | json | 30,000문장 |
2.2 Data pre-processing
- 중복 문장 제거
- 중복 문장 추출 후 분리하여 저장 -> 모델 1차 학습 후 autolabeling을 통해 class tagging
- 데이터 라벨 불균형 완화를 위해 수량이 적은 라벨 데이터 제외(1500건 이하 데이터 제외)
- BIO-tagging
- NER 학습 시 필요한 BIO tag 부착.
BIO-tag: token classification task와 같이 다수의 token이 하나의 개체임을 표시하기 위해 일반적으로 사용되는 tag
B(begin tag): 개체의 시작과 개체명 정보를 포함
I(inside tag): 개체 시작 이후 끝까지 개체 내부를 표시
O(outside tag): 개체외부 표
- NER 학습 시 필요한 BIO tag 부착.
2.3 Data class
[사람, 수, 음식, 직업/직책, 제작물/작품, 조직/기관, 시설물/건물, 국가명, 행정구역, 학문/이론, IT 용어, 제품, 동물 신체, 날짜,
질병/증상/증세, 모양 및 형태 표현, 세포/조직/기관, 동물 종류, 음료, 교통수단, 기간, 패션의류/잡화, 자연, 천체명칭, 기후/날씨, 식물, 스포츠,
계절, 언어, 문화/문명, 사건, 화폐(통화), 약]
3. Model
3.1 Model Architecture
- BERT
- Electra
위 classification model의 활성화 함수 결과를 CRF layer에 입력하여 가장 높은 확률을 가진 개체 sequence를 반환한다.
CRF layer 추가: BERT 계열의 모델의 경우, sequence tag 추론 시 token간의 관계를 독립적으로 예측하는 경향이 있어 label간의 종속성을 명시적으로 모델링하기 위해 CRF layer 추가. 즉, label 간의 의존성을 고려한 결과를 반환 받기 위해 CRF layer를 추가.
BiLSTM layer 추가: BERT 계열의 모델이 문맥 파악에 강점을 가지고 있지만 BiLSTM layer를 추가함으로써 문장 길이가 길어지거나 문장 구조의 복잡도가 증가했을 때 문맥 정보 파악 능력을 강화할 수 있다.
3.2 Fine-tuning Hyperparameter
| batch_size | max_len | learning_rate | optimizer |
|---|---|---|---|
| 128 | 128 | 3e-5 | Adam |
4. Train
4.1 Training server environment
- Quadro RTX 8000 x3
- Ubuntu 20.04
5. Test result
| precision | recall | f1-score | support | |
|---|---|---|---|---|
| accuracy | 0.990485 | 0.990485 | 0.990485 | 0 |
| macro avg | 0.602809 | 0.604351 | 0.600704 | 434688 |
| weighted avg | 0.990405 | 0.990485 | 0.990415 | 434688 |
| [PAD] | 1 | 1 | 1 | 368711 |
| O | 0.968871 | 0.965086 | 0.966974 | 49149 |
| [CLS] | 1 | 1 | 1 | 3396 |
| [SEP] | 0.999706 | 1 | 0.999853 | 3396 |
| 국가명 | 0.804412 | 0.916786 | 0.854481 | 215 |
| 학문/이론 | 0.703287 | 0.782931 | 0.740854 | 304 |
| 수 | 0.784006 | 0.833969 | 0.808213 | 1180 |
| 사람 | 0.760027 | 0.776739 | 0.767727 | 2699 |
| 행정구역 | 0.740302 | 0.735174 | 0.737718 | 229 |
| IT 용어 | 0.687826 | 0.717803 | 0.702494 | 230 |
| 패션의류/잡화 | 0.616484 | 0.629004 | 0.618074 | 97 |
| 음식 | 0.804267 | 0.859006 | 0.830722 | 656 |
| 식물 | 0.688934 | 0.589286 | 0.634223 | 66 |
| 날짜 | 0.872748 | 0.877016 | 0.874115 | 395 |
| 교통수단 | 0.678835 | 0.636967 | 0.656226 | 80 |
| 시설물/건물 | 0.579067 | 0.596769 | 0.587768 | 341 |
| 세포/조직/기관 | 0.720468 | 0.755682 | 0.736507 | 163 |
| 약 | 0.541667 | 0.484848 | 0.504348 | 26 |
| 모양 및 형태 표현 | 0.631931 | 0.647917 | 0.639721 | 156 |
| 직업/직책 | 0.768607 | 0.797931 | 0.782829 | 541 |
| 동물 신체 | 0.618803 | 0.741463 | 0.673407 | 131 |
| 천체명칭 | 0.889266 | 0.851875 | 0.869792 | 82 |
| 질병/증상/증세 | 0.825712 | 0.746615 | 0.783278 | 204 |
| 화폐(통화) | 0.346154 | 0.25 | 0.290323 | 23 |
| 제품 | 0.591991 | 0.613933 | 0.602731 | 196 |
| 기간 | 0.769737 | 0.867371 | 0.815505 | 210 |
| 동물 종류 | 0.801515 | 0.743873 | 0.771213 | 164 |
| 계절 | 0.67 | 0.625 | 0.623188 | 25 |
| 자연 | 0.661321 | 0.599231 | 0.624736 | 76 |
| 스포츠 | 0.681624 | 0.597222 | 0.628788 | 62 |
| 음료 | 0.719608 | 0.783333 | 0.748832 | 117 |
| 기후/날씨 | 0.574797 | 0.59457 | 0.58127 | 125 |
| 사건 | 0.638889 | 0.632331 | 0.635325 | 54 |
| 제작물/작품 | 0.659329 | 0.673122 | 0.665963 | 518 |
| 언어 | 0.346154 | 0.428571 | 0.382979 | 24 |
| 조직/기관 | 0.667303 | 0.618192 | 0.641447 | 508 |
| 문화/문명 | 0.584399 | 0.48913 | 0.530319 | 47 |
6. Problems and Solutions
- 데이터 라벨 불균형
- 적은 라벨 데이터 제외