NER의 현재와 미래: 02. 모델 구조와 데이터 셋 현황

9:00 am

-

July 23, 2021

<NER의 현재와 미래> 시리즈의 두 번째 주제인 이번 콘텐츠는 ‘NER의 모델 구조와 데이터 셋’에 대한 내용을 준비했습니다. 첫 번째 주제 ‘개념부터 다양한 접근법까지’에서 이어지는 내용이니 아직 확인하지 못한 분은 먼저 읽어보실 것을 추천드립니다.

* NER의 현재와 미래: 01. 개념부터 다양한 접근법까지 보러가기

NER의 모델 구조

논문 ‘A Survey on Deep Learning for Named EntityRecognition’에 따르면, NER 모델의 구조는 아래 그림과 같이 세 단계의 프로세스로 나눌 수 있습니다.

* 표 출처: https://arxiv.org/pdf/1812.09449.pdf

(1)   Distributed Representations for Input*

인풋 데이터를 벡터 등으로 표현하는 층으로 Pre-trained word embedding, Character-level embedding, POS* tag,Gazetteer 등을 이용합니다.

(2)   Context Encoder

문맥 정보를 인코딩하는 층으로 CNN*, RNN*, Language model*, Transformer* 등의 모델을 이용합니다.

(3)   Tag Decoder

태그 정보를 디코딩하는 층으로 Softmax, CRF*, RNN, Point network 등의 모델을 이용합니다.

 

다만 모든 모델들이 위의 구조를 엄격히 따르는 것은 아닙니다. 특히 딥러닝 쪽 모델들은 End to end로 작업이 이루어지기 때문에 단계가 명확히 나뉘지 않는 경우도 있습니다. 하지만 전통적인 접근법을 포함한다면 대체로 위와 같이 세 단계로 나누어 생각할 수 있습니다.

* Distributed Representations forInput: 입력에 대한 분산 표현
* POS(part-of-speech, 품사), https://en.wikipedia.org/wiki/Part_of_speech
* CNN(Convolutional Neural Networks), https://en.wikipedia.org/wiki/Convolutional_neural_network
* RNN(Recurrent neural network), https://en.wikipedia.org/wiki/Recurrent_neural_network
* Language model, https://en.wikipedia.org/wiki/Language_model
* Transformer, https://en.wikipedia.org/wiki/Transformer_(machine_learning_model)
* CRF(Conditional random field), https://en.wikipedia.org/wiki/Conditional_random_field

NER 관련 라이브러리 현황 및 성능 평가

현재 한국어에만 특화된 공식적인 NER 라이브러리는 찾기 어려우며, 대부분 다국어로 학습된 모델에서 한국어를 찾을 수 있습니다. 각 라이브러리의 특성은 다음과 같습니다.

이어서 Kaggle*에서 배포된 데이터 셋*으로도 평가를 진행해봤습니다. 데이터 셋의 클래스 개수와 라이브러리의 클래스 개수가 모두 다르기 때문에 각 클래스를 데이터 셋의 클래스와 매칭시켜 주는 작업이 수반되었고, 이 과정에서 기준 데이터 셋보다 많은 클래스를 분류해 낼 수 있는 라이브러리일수록 Precision이 떨어지는 현상이 발생함을 확인했습니다. 따라서 NER 성능의 판단 기준으로는 통상적으로 사용되는 Precision과 이를 이용한 F1-score는 제외하고, 재현율과 걸린 시간만으로 라이브러리의 성능을 판단하게 됐습니다. 그 결과는 다음과 같습니다.

(1,000개 문장 기준) 걸린 시간에서 Stanford NER Tagger가 현저하게 낮은 성능을 보이며, Recall 면에서는 flair와 polyglot이 현저하게 낮은 성능을 보임을 확인할 수 있습니다.

* Kaggle, https://en.wikipedia.org/wiki/Kaggle
* https://www.kaggle.com/abhinavwalia95/entity-annotated-corpus
* NLTK(Natural Language Toolkit), https://en.wikipedia.org/wiki/Natural_Language_Toolkit
* Stanford, https://nlp.stanford.edu/software/CRF-NER.html#Models
* spaCy, https://en.wikipedia.org/wiki/SpaCy
* flair, https://github.com/flairNLP/flair
* Hugging Face, https://huggingface.co/datasets
* polyglot, https://polyglot.readthedocs.io/en/latest/#
* deppavlov, https://github.com/deepmipt/DeepPavlov

대표적인 영어 NER 데이터 셋

(1) CoNLL 2003 (Sang and Meulder,2003)*

: 저작권 정책 - DUA

: 1,393개의 영어뉴스 기사(스포츠 관련이 많음)

: 4종류의 Annotated* Entities – { LOC(location),ORG(organization), PER(person), MISC (miscellaneous) }

* CoNLL 2003, https://www.clips.uantwerpen.be/conll2003/ner/
* Annotated: <책 등이> 주석[주해]이 달린

(2) OntoNotes 5.0 (Weischedel etal., 2013)*

: 저작권 – LDC

: 데이터의 종류및 개수는 아래와 같습니다.

* OntoNotes 5.0, https://catalog.ldc.upenn.edu/LDC2013T19
* Pivot: Old Testament and New Testment text(구약성서 및 신약성서 텍스트)
* 표 출처: https://catalog.ldc.upenn.edu/LDC2013T19

: 18종류의 Annotated Entities

* 표 출처 : https://catalog.ldc.upenn.edu/docs/LDC2013T19/OntoNotes-Release-5.0.pdf

(3) MUC-6 (Grishman and Sundheim,1996)

: 저작권 정책 – LDC

: 월 스트리스 저널에서 추출한 뉴스기사

: 3 종류의 Annotated Entities – { PER, LOC, ORG }

* MUC-6, https://cs.nyu.edu/~grishman/muc6.html

 

(4) WNUT 17 : Emerging and Rareentity recognition (Derczynski et al., 2016)

: 저작권 정책 – CC-BY 4.0

: Social media ( YouTube comments,Stack Overflow responses Twitter text and Reddit comments )

: 6 종류의 Annotated Entities – ( Person,Location, Group, Creative word, Corporation, Product )

* WNUT 17, https://noisy-text.github.io/2017/emerging-rare-entities.html

대표적인 한국어 NER 데이터 셋

 

한국의 NER 데이터는 그 수가 매우 부족한 상황입니다. 현재 공개된 한국어 NER 데이터 셋은 총 세 가지이며, 모두 상업적 이용은 제한되어있습니다.

 

(1) 국립국어원 NER 데이터 셋

:총 3,555개 문장

:BIO 태깅 시스템 사용

:5종류의 Annotated Entities –  { 장소(LC), 날짜(DT), 기관(OG), 시간(TI), 인물(PS) }

 

* 국립국어원 모두의 말뭉치, https://corpus.korean.go.kr

 

(2) 한국해양대학교 자연어처리 연구실 NER 데이터 셋

:총 23,964개 문장

:BIO 태깅 시스템 사용

:10 종류의 Annotated Entities –  { 인물(PER), 기관(ORG), 지명(LOC), 기타(POH), 날짜(DAT), 시간(TIM), 기간(DUR), 통화(MNY), 비율(PNT), 기타 수량표현(NOH) }

 

* 한국해양대학교 자연언어처리 연구실 깃허브, https://github.com/kmounlp

 

(3) NAVER NLP Challenge 2018

:총 82, 393개문장

:BIO 태깅 시스템 사용

: 14 종류의 AnnotatedEntities – { 인물(PER), 학문분야(FLD), 인공물(AFW), 기관및 단체(ORG), 지역명(LOC), 문명 및문화(CVL), 날짜(DAT), 시간(TIM), 숫자(NUM), 사건사고 및 행사(EVT), 동물(ANM), 식물(PLT), 금속/암석/화학물질(MAT), 의학용어/IT관련 용어(TRM) }

 

* 네이버 NLP Challenge 깃허브, https://github.com/naver/nlp-challenge

지금까지 'NER의 현재와 미래'에 대한 연재의 두 번째 주제인 "모델 구조와 데이터 셋 현황"이었습니다. 이 시리즈는 곧 세 번째 주제 '앞으로의 개발 방향과 목표'로 이어지게 됩니다.

NER의 현재와 미래

  • NER의 현재와 미래: 01. 개념부터 다양한 접근법까지
  • NER의 현재와 미래: 02. 모델 구조와 데이터 셋 현황
  • NER의 현재와 미래: 03. 앞으로의 개발 방향과 목표