Archives/NLP & ML,DL etc.

NER 개론과 NER 데이터셋 모음 (한국어 개체명인식 포함)

다각 2020. 10. 26. 18:12

**아래 글은 A Survey on Deep Learning for Named Entity Recognition 논문을 읽고 작성한 글입니다.**

 

목차

  1. NER이란?
  2. NE의 태깅 시스템
  3. NE의 카테고리와 대표적인 데이터셋
  4. NER에 대한 전통적인 접근법
  5. 딥러닝으로 NER해야 할 3가지 이유
  6. NER의 단계
  7. 각 모델 간의 성능 비교

1. NER이란?

NER이란 NE를 인식(Recognition)하는 작업을 말한다. 그렇다면 NE란 무엇일까?
NE는 Named Entity의 약자인데, NE가 포함하는 범위는 매우 폭넓은 범위부터 조금은 좁은 범위까지 있다.
처음에 NE는 문자열 내에서의 기관명, 인물, 장소뿐만 아니라 화폐, 시간, 퍼센티지 표현까지 포괄하는 의미로 등장했다. [1]
또한 어떤 학자는 무언가, 혹은 누군가의 명칭을 이르는 명사라고 정의하기도 했다. [2]

 

논문 A Survey on Deep Learning for Named Entity Recognition[8]에서는 NER을 다음과 같이 정의한다.

문자열 안에서 NE의 위치를 알아내고, 사전(事前)정의한 카테고리에 따라 알맞게 분류하는 작업

"NER is the process of locating and classifying named entities in text into predefined entity categories."

즉, 문자열을 입력으로 받아 단어별로 해당되는 태그를 내뱉게 하는 multi-class 분류 작업으로 성격을 정의할 수 있다.

 

이렇게 정의된 NE에는 두가지의 유형이 있다.
첫번째 유형은 generic NEs이다. 인물이나 장소의 명칭이 이에 해당한다.
두번째 유형은 domain-specific NEs이다. 단백질, 효소, 유전자 등, 전문 분야의 용어가 이에 해당한다.
이번 글에서는 generic NE에 대해서만 다룬다. (대부분의 NER task에서 'NE'는 generic NE로 진행된다.)

 

2. NE의 태깅 시스템

데이터셋마다 적용하는 테깅 시스템이 각각 다르지만, 보편적으로 알아두면 좋을 태깅 시스템을 소개하고자 한다.

예를 들어, 다음과 같은 문장이 있다고 하자.

여기서 우리는 NE를 세가지 찾아낼 수 있다. 사람 이름인 Michael Jeffrey Jordan과 장소 이름인 Brooklyn, New York이다.

하지만 분석을 위해 토큰화할 때는 'Michael'과 'Jeffery', 'Jordan'은 각각 다른 토큰으로 컴퓨터에 인식된다.

이렇게 분리된 토큰을 하나의 개체명으로 묶어 주는 태깅 시스템이 바로 BIO, 또는 BIESO이다.
여러 개의 토큰으로 이루어진 개체명의 경우, 개체명이 시작할 때 'B-(begin)'을, 토큰이 개체명 중간에 있을 때는 'I-(inside)'를, 개체명의 마지막에 위치할 때는 'E-(end)'를 붙여준다. 하나의 토큰이 곧 하나의 개체명일 때는 'S-(singleton)'을 붙여준다. 토큰이 개체명이 아닐 경우에는 'O-(outside)'를 붙여준다.


BIESO 시스템을 위의 예시에 적용해보면 다음과 같다.

BIO 시스템은 위와 매우 흡사하다. E는 I로 통합되고 S는 B로 통합된다.
이해를 돕기 위해 BIESO 시스템을 먼저 설명했지만, 실제로는 BIO 시스템이 훨씬 더 자주 쓰인다.

 

3. NE의 카테고리와 대표적인 데이터셋

NE의 카테고리는 각 데이터셋과 모델에 따라 상이하다.

한국의 경우는 한국정보기술협회(TTA)에서 내놓은 카테고리 체계가 있지만,

실무에서는 이것을 응용하여 각 실정에 맞게 조금씩 변형해서 사용한다.
이번 항목에서는 많은 기훈련 모델들이 채택한 데이터셋과 그 카테고리를 소개하고자 한다.

 

영어로는 다음과 같은 데이터셋이 있다.

  1. CoNLL-2003[3] (3개)
    : 인물(PER), 기관 및 단체(ORG), 장소 및 위치(LOC)
  2. OntoNotes5[4] (18개)
    : 인물(PERSON), 단체(NORP), 건축물(FACILITY), 기관(ORGANIZATION), 나라 및 도시(GPE), 위치(LOCATION), 제품(PRODUCT), 사건(EVENT), 창작물(WORK OF ART), 법률(LAW), 언어(LANGUAGE), 날짜(DATE), 시간(TIME), 퍼센트(PERCENT), 통화(MONEY), 수량 표현(QUANTITY), 서수 표현(ORDINAL), 그 외 수 표현(CARDINAL)

 

한국어로는 다음과 같은 데이터셋이 있다.

(한국어 데이터셋은 모두 공개되어 있으나 상업적 이용은 허락하지 않고 있으니 주의해서 사용해야 한다.)

  1. 국립국어원[5] (5개)
    : 장소(LC), 날짜(DT), 기관(OG), 시간(TI), 인물(PS)
  2. 부산해양대학교 자연어처리 연구소[6] (10개)
    : 인물(PER), 기관(ORG), 지명(LOC), 기타(POH), 날짜(DAT), 시간(TIM), 기간(DUR), 통화(MNY), 비율(PNT), 기타 수량표현(NOH)
  3. Naver NER Challenge[7](dataset) (14개)
    : 인물(PER), 학문분야(FLD), 인공물(AFW), 기관 및 단체(ORG), 지역명(LOC), 문명 및 문화(CVL), 날짜(DAT), 시간(TIM), 숫자(NUM), 사건 사고 및 행사(EVT), 동물(ANM), 식물(PLT), 금속/암석/화학물질(MAT), 의학용어/IT관련 용어(TRM)

한편, 한국정보기술협회(이하 TTA)에서는 다음과 같은 15개의 카테고리를 한국어 NER 카테고리의 표준으로 제시한다.
: 인물(PS), 학문분야(FD), 이론(TR), 인공물(AF), 기관(OG), 지역(LC), 문명(CV), 날짜(DT), 시간(TI), 수량(QT), 이벤트(EV), 동물(AM), 식물(PT), 물질(MT), 용어(TM)


여기서 주목할 점은, TTA에서는 generic NE뿐만 아니라 domain-specific NE도 다루고 있다는 점이다.
인물, 인공물, 기관, 지역, 문명, 날짜, 시간, 수량, 이벤트가 generic NE에 해당하며,
학문 분야, 이론, 동물, 식물, 물질, 용어가 domain-specific NE의 범주에 들어갈 수 있다.

 

기 공개된 한국어 데이터셋을 분석해보면 Naver NER 데이터셋은 TTA에서 제시한 15개의 카테고리를 살짝 변형한 것으로 보이며,
부산해양대학교 자연어처리 연구소의 데이터셋은 OntoNotes 5.0의 카테고리를 변형한 것으로 보인다.
또한 국립국어원의 카테고리는 CoNLL-03 데이터셋에서 날짜와 시간 카테고리를 추가한 모양새다.

 

4. NER에 대한 전통적인 접근법

딥러닝이 도입되기 전에 NER을 위한 다양한 시도들이 있어왔다.
비록 지금은 딥러닝 모델을 주로 사용하고 있지만,

과거의 전통적인 접근법을 결합한 모델도 많이 있으니 과거의 방식들을 알아둬야 할 필요가 있다.


딥러닝이 도입되기 전의 NER에 대한 접근법은 다음과 같이 3가지로 나타낼 수 있다.

  1. 규칙 기반 접근 (Rule-based Approches)
    : domain-specific한 사전(gazetteer)을 적용하거나 패턴을 적용해서 접근
    : 높은 정학도이지만 낮은 재현율을 보인다. 특히 다른 도메인으로 가면 형편 없어진다.
  2. 비지도 학습 접근 (Unsupervised Learning Approches)
    : 문맥적 유사도에 기반해 clustering 하는 식으로 학습
    : 사전(gazetteer)을 만드는 데에 unsupervised system을 제안하기도 했다. 이는 지도학습과 비교해, 용어집이나 코퍼스의 통계적 정보(idf나 context vector), 혹은 얕은 수준의 통사적(syntactic) 지식에 의존한다.
  3. 변수 기반 지도 학습 접근 (Feature-based Supervised Learning Approches)
    : 지도학습으로 넘어가면 NER은 multi-class classification이나 sequence labeling task 영억으로 넘어간다.
    : 'feature-based'이기 때문에, 'feature'가 무엇이 될 것이냐는 아주 중요한 문제가 된다.
    : Hidden Markov Models(HMM), Decision Trees, Maximum Entropy Models, Support Vector Machines(SVM), Conditional Random Fields(CRF)
    : SVM 모델은 entity label을 예측할 때 이웃 단어는 고려하지 않는 반면, CRF는 고려한다.

 

5. 딥러닝으로 NER해야 할 3가지 이유

  1. 따로 feature을 설정할 필요 없이 알아서 hidden으로 발견해준다.
  2. 비선형 transformation으로 mapping 해준다.
    : 선형 모델(HMM, CRF)과 비교해서 딥러닝 기반은 더 복잡하고 정교한 특성을 학습 가능함.
  3. 딥러닝 모델의 NER을 end-to-end 학습이 가능
    : 일련의 스텝을 거치지 않고 신경망에 맡길 수 있다. 데이터를 넣어서 바로 결과를 얻을 수 있다.

 

6. NER의 모델 구조

논문[8]에서 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로 작업이 이루어지기 때문에 단계가 명확히 나뉘지 않는 경우가 있다. 하지만 전통적인 접근법을 포함한다면 대체적으로 아래와 같이 세단계로 나누어 생각할 수 있다.

7. 각 모델 간의 성능 비교

정말 정말 감사하게도, 2020년 3월 이전까지의 NER 모델을 수합해서 정리해둔 분이 계신다.[8]
그에 관련된 표를 제시하며 이번 글을 마무리할까 싶다.
표에 제시된 모델들의 자세한 사항이 궁금하시다면 여기 12페이지로.
그럼, good luck!

 


 

Reference

 

[1] Message understanding conference-6: A brief history, R. Grishman and B. Sundheim, 1996
[2] Automatic adaptation of proper noundictionaries through cooperation of machine learning and probabilistic methods, G. Petasis et al., 2000
[3] Introduction to the CoNLL-2003 Shared Task: Language-Independent Named Entity Recognition, Erik F. Tjong Kim Sang and Fien De Meulder, 2003
[4] OntoNotes Release 5.0 with OntoNotes DB Tool v0.999 beta
[5] 개체명 인식용 말뭉치, 국립국어원 언어정보나눔터, 2017-01-04
[6] 한국어 개체명 정의(Definition of Korean Named-Entity Task), 한국해양대학교 자연언어처리연구실, 2018년 10월.
[7] 개체명인식 with Naver, Naver, 2018.
[8] A Survey on Deep Learning for Named Entity Recognition, Jing Li, Aixin Sun, Jianglei Han, Chenliang Li, Mar. 18. 2020.