이 포스팅은 2023년 현재 최신 동향에 맞게 업데이트되었으니 아래 글을 참고해주시기 바랍니다.
NER의 현재와 미래 Ver.2: 한국어 NER 데이터 셋 총정리
<NER의 현재와 미래> 시리즈의 두 번째 주제인 이번 콘텐츠는 ‘NER의 모델 구조와 데이터 셋’에 대한 내용을 준비했습니다. 첫 번째 주제 ‘개념부터 다양한 접근법까지’에서 이어지는 내용이니 아직 확인하지 못한 분은 먼저 읽어보실 것을 추천드립니다.
논문 ‘A Survey on Deep Learning for Named EntityRecognition’에 따르면, NER 모델의 구조는 아래 그림과 같이 세 단계의 프로세스로 나눌 수 있습니다.
(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로 작업이 이루어지기 때문에 단계가 명확히 나뉘지 않는 경우도 있습니다. 하지만 전통적인 접근법을 포함한다면 대체로 위와 같이 세 단계로 나누어 생각할 수 있습니다.
현재 한국어에만 특화된 공식적인 NER 라이브러리는 찾기 어려우며, 대부분 다국어로 학습된 모델에서 한국어를 찾을 수 있습니다. 각 라이브러리의 특성은 다음과 같습니다.
이어서 Kaggle*에서 배포된 데이터 셋*으로도 평가를 진행해봤습니다. 데이터 셋의 클래스 개수와 라이브러리의 클래스 개수가 모두 다르기 때문에 각 클래스를 데이터 셋의 클래스와 매칭시켜 주는 작업이 수반되었고, 이 과정에서 기준 데이터 셋보다 많은 클래스를 분류해 낼 수 있는 라이브러리일수록 Precision이 떨어지는 현상이 발생함을 확인했습니다. 따라서 NER 성능의 판단 기준으로는 통상적으로 사용되는 Precision과 이를 이용한 F1-score는 제외하고, 재현율과 걸린 시간만으로 라이브러리의 성능을 판단하게 됐습니다. 그 결과는 다음과 같습니다.
(1,000개 문장 기준) 걸린 시간에서 Stanford NER Tagger가 현저하게 낮은 성능을 보이며, Recall 면에서는 flair와 polyglot이 현저하게 낮은 성능을 보임을 확인할 수 있습니다.
(1) CoNLL 2003 (Sang and Meulder,2003)*
: 저작권 정책 - DUA
: 1,393개의 영어뉴스 기사(스포츠 관련이 많음)
: 4종류의 Annotated* Entities – { LOC(location),ORG(organization), PER(person), MISC (miscellaneous) }
(2) OntoNotes 5.0 (Weischedel etal., 2013)*
: 저작권 – LDC
: 데이터의 종류및 개수는 아래와 같습니다.
: 18종류의 Annotated Entities
(3) MUC-6 (Grishman and Sundheim,1996)
: 저작권 정책 – LDC
: 월 스트리스 저널에서 추출한 뉴스기사
: 3 종류의 Annotated Entities – { PER, LOC, ORG }
(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 )
한국의 NER 데이터는 그 수가 매우 부족한 상황입니다. 현재 공개된 한국어 NER 데이터 셋은 총 세 가지이며, 모두 상업적 이용은 제한되어있습니다.
(1) 국립국어원 NER 데이터 셋
:총 3,555개 문장
:BIO 태깅 시스템 사용
:5종류의 Annotated Entities – { 장소(LC), 날짜(DT), 기관(OG), 시간(TI), 인물(PS) }
(2) 한국해양대학교 자연어처리 연구실 NER 데이터 셋
:총 23,964개 문장
:BIO 태깅 시스템 사용
:10 종류의 Annotated Entities – { 인물(PER), 기관(ORG), 지명(LOC), 기타(POH), 날짜(DAT), 시간(TIM), 기간(DUR), 통화(MNY), 비율(PNT), 기타 수량표현(NOH) }
(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) }
지금까지 'NER의 현재와 미래'에 대한 연재의 두 번째 주제인 "모델 구조와 데이터 셋 현황"이었습니다. 이 시리즈는 곧 세 번째 주제 '앞으로의 개발 방향과 목표'로 이어지게 됩니다.