NER(Named Entity Recognition)
25 Sep 2022 | Development
    
  - 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 
         
           base model: 
             
               - BERT
- ELECTRA
 
           class num: 
             
               - 도메인별 데이터에 따라 상이
 
           applied domains:
             
               - General
- General Medical Domain
- Breast Cancer EMR(Electronic Medical Record)
- Colorectal Cancer EMR(Electronic Medical Record)
 
          
         
           Related Paper Review (BERT) 
           ELECTRA 
          
        
   
 
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): 개체외부 표
 
 
 
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
  - 데이터 라벨 불균형
    
      - 적은 라벨 데이터 제외
 
 
  
- 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
- 데이터 라벨 불균형
    - 적은 라벨 데이터 제외
 
 
             
             
 
            