NER(Named Entity Recognition)

|

1. Dev summary

Project Summary of the projectRelated 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 수량
    범용 NERdata labeling 업체 수집 데이터json525,659문장
    bio NERNCBIjson30,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_sizemax_lenlearning_rateoptimizer
    1281283e-5Adam

    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

    • 데이터 라벨 불균형
      • 적은 라벨 데이터 제외