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

10:00 am

-

July 23, 2021

NER이란?

NER(Named Entity Recognition)은 말 그대로 Named Entity(이름을 가진 개체)Recognition(인식)하는 것을 의미하며, 개체명 인식이라고 합니다.

NER의 정의한국정보통신기술협회가 제공하는 정보통신용어사전에 따르면 다음과 같습니다.

미리 정의해 둔 사람, 회사, 장소, 시간, 단위 등에 해당하는 단어(개체명)를 문서에서 인식하여 추출 분류하는 기법. 추출된 개체명은 인명(person), 지명(location), 기관명(organization), 시간(time) 등으로 분류된다. 개체명 인식(NER)은 정보 추출을 목적으로 시작되어 자연어 처리, 정보 검색 등에 사용된다. 

※ 예:철수[인명]는 서울역[지명]에서 영희[인명]와 10시[시간]에 만나기로 약속하였다.

한편 논문 ‘A Survey on DeepLearning for Named Entity Recognition’[1]에서는 다음과 같이 설명합니다.

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

즉 실무적으로 표현하자면 '문자열을 입력으로 받아 단어 별로 해당되는 태그를 내뱉게 하는 multi-class 분류 작업'이라 말할 수 있습니다.

 

그럼 NE(Named Entity, 이하 NE)는 무엇일까요?

NE는 문자열 내에서의 기관명, 인물, 장소 뿐만 아니라 화폐, 시간, 퍼센티지 표현까지 포괄하는 의미로 등장했습니다. 이후 연구자에 따라 조금씩 달라지기도 했으나, 대체로 사람 이름이나 지명 등, 고유명사가 이에 해당한다고 인식되어 왔습니다.

또한 위와 같이 정의된 NE에는 두 가지 유형이 있습니다.

첫번째, 일반적인 개체명(generic NEs)으로 인물이나 장소 등의 명칭이 이에 해당합니다.

두번째, 특정 분야 개체명(domain-specific NEs)으로 전문 분야의 용어가 이에 해당합니다.

실례로 트위그팜에서는 첫 번째 유형은 학습된 NER 알고리즘을 통해, 두 번째 유형은 미리 정의해 놓은 용어집(번역 메모리, Translation Memory*)을 통해 처리하여 번역 품질을 높이고 있습니다.

* 번역 메모리(translation memory, TM), https://ko.wikipedia.org/wiki/번역_메모리

NER이 필요한 이유

NER은 자연어 처리(Natural Language Processing, 이하 NLP) 전반에 걸쳐 중요한 역할을 합니다. 자연어 처리를 이용한 정보 검색과 요약, 질문 답변, 지식 베이스 구축 등 다방면에 사용되고 있습니다.[2] 특히 기계 번역(Machine Translation, 이하 MT)의 품질을 높이며, 사용자에게 맞춤형 번역을 제공할 수 있도록 도와주는 역할을 합니다.

 

예를 들어, 'TWIGFARM'을 글자 그대로 해석하면 ‘트위그팜’이 아닌 ‘나뭇가지 농장’이라고 해석됩니다. 그런데 이러면 번역 오류가 일어날 뿐만 아니라 사용자에게도 불편한 경험을 안겨줄 수 있습니다. 반면 TWIGFARM을 회사명으로 제대로 인식할 수 있다면, 번역 품질 뿐만 아니라 사용자 경험까지도 함께 향상될 수 있습니다.

 

NER 과정을 통해 MT 품질을 높일 수 있다는 것은 MT의 도입 초기부터 익히 알려져왔습니다. Babych와 Hartley에 따르면 “개체명이 일반적인 명사로 잘못 해석되면 문장의 이해 자체가 어려워지고, 이를 수정하기 위해 많은 비용이 소요된다.”고 합니다.[3] 또한 Ugawa 등은 신경망 기반 기계 번역( Neural Machine Translation, 이하 NMT)에서 NER 사용 시 결과물의 번역 품질이 향상됨을 가시적으로 증명한 바 있습니다.[4]

NER 성능평가 지표

NER은  정밀도(precision), 재현율(recall)*, F1-score*를 이용해 성능을 평가하며 문장 단위가 아닌 토큰(token)* 단위로 평가를 진행하게 됩니다.

예를 들어 ‘I work at TWIGFARM.’이라는 문장이 있을 때, ‘TWIGFARM’이라는 특정 단어만 개체명임을 나타내기 위해 먼저 문장을 토큰화(tokenization)*합니다.(토큰화에는 여러가지 방식이 있으며 사용하는 툴에 따라 결과가 다르게 나타날 수 있습니다.)

예시 문장은 ‘I’, ‘work’, ‘at’, ‘TWIGFARM’, ‘.’와 같이 5개의 요소로 나눠지는데, 이 5개 하나하나에 대해 평가를 진행하게 됩니다.

* Precision and recall, https://en.wikipedia.org/wiki/Precision_and_recall
* F1-score, https://en.wikipedia.org/wiki/F-score
* 토큰(Token), https://terms.naver.com/entry.naver?docId=857716&cid=42346&categoryId=42346
* Tokenization, https://en.wikipedia.org/wiki/Lexical_analysis#Tokenization

NER 태깅 시스템과 라벨

NER은 문장을 토큰 단위로 나누고, 이 토큰들을 각각 태깅(tagging)*해서 개체명인지 아닌지를 분간하게 됩니다. 한편 단일 토큰이 아닌 여러 개의 토큰의 결합으로 하나의 개체명이 완성되는 경우도 있는데, 대표적으로 영어 문화권에서의 성명 표기가 그렇습니다. 예를 들어 ‘마이클 조던’은 두 개의 개체명이 아닌 하나의 개체명입니다.

 

그리고 이렇게 여러 개의 토큰을 하나의 개체명으로 묶기 위해 도입된 것이 바로 태깅 시스템입니다. 태깅 시스템에는 BIO 시스템과 BIESO 시스템의 두 종류가 있는데, 실무에서는 주로 BIO시스템이 사용되고 있습니다.

우선 BIO 시스템은 개체명이 시작할 때'B-(begin)'를, 토큰이 개체명 중간에 있을 때는'I-(inside)'를, 토큰이 개체명이 아닐 경우에는 'O(outside)'를 붙여주게 됩니다.

한편 BIESO 시스템은 개체명이 시작할 때'B-(begin)'를, 토큰이 개체명 중간에 있을 때는'I-(inside)'를, 개체명의 마지막에 위치할 때는 'E-(end)'를 붙여줍니다. 또한 하나의 토큰이 곧 하나의 개체명일 때는'S-(singleton)'를, 토큰이 개체명이 아닐 경우에는 'O(outside)'를 붙여주게 됩니다.

BIO 시스템에 따라 태깅이 된 문장의 예시

BIESO시스템에 따라 태깅이 된 문장의 예시

위와 같이 'O'를 제외한 태그들, 즉 ‘B-‘, ‘I-‘, ‘E-‘, ‘S-‘ 뒤에는 각 토큰이 어떠한 종류의 개체명인지를 인지할 수 있는 라벨을 붙입니다. 예를 들어 사람일 경우에는 ‘PER’, 기관인 경우에는 ‘ORG’ 등이 붙습니다. 다만 라벨의 종류와 이름은 정해진 표준이 없으며, 과제의 성격에 따라 연구자들이 임의로 선정하고 있습니다.

*태깅(tagging), https://terms.naver.com/entry.naver?docId=865370&cid=42346&categoryId=42346

NER에 대한 다양한 접근과 딥러닝의 도입

딥러닝(Deep Learning)*이 도입되기 이전에도 NER 과제를 해결하기 위한 다양한 시도들이 있어 왔습니다. 지금은 딥러닝 모델을 주로 사용하고 있기는 하지만, 전통적인 접근법을 결합한 모델들 또한 많이 있었습니다. 딥러닝 이전의 접근법에는 대표적으로 아래 세 가지 유형이 있었습니다.

(1) 규칙 기반 접근(Rule-based Approaches)

: 도메인 특화(domain-specific)한 사전(gazetteer*)을 적용하거나 패턴을 적용해서 접근한다.
: 높은 정확도에 비해 낮은 재현율을 보인다. 특히 다른 도메인으로 가면 형편 없어진다.

(2) 비지도 학습* 접근(Unsupervised Learning Approaches)

: 문맥적 유사도에 기반해 클러스터링(clustering)*하는 식으로 학습한다.

: 사전(gazetteer)을 만드는 데에 비지도형 시스템(unsupervised system)을 제안하기도 했다. 이는 지도 학습*과 비교해, 용어집이나 코퍼스(Corpus)*의 통계적 정보(idf나 contextvector), 혹은 얕은 수준의 통사적(syntactic)* 지식에 의존한다.

(3) 변수 기반 지도 학습 접근(Feature-based Supervised Learning Approaches)

: 지도 학습으로 넘어가면 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는 고려한다.

하지만 요즘은 대부분 보다 장점이 많은 딥러닝을 이용해 NER을 해결합니다. 따로 변수 가공(Feature-engineering*)이 필요 없고, 선형 모델과 비교해 더 복잡하고 정교한 특성을 학습할 수도 있습니다. 특히 딥러닝을 이용하면 일련의 과정을 거치지 않고도 데이터를 넣어 바로 결과를 얻을 수 있는 엔드 투 엔드(end-to-end) 모델을 구현할 수 있다는 장점이 있습니다.

* 딥러닝(Deep Learning), https://ko.wikipedia.org/wiki/딥_러닝
gazetteer, https://en.dict.naver.com/#/entry/enko/dd365c3160f64057bd0a10475bb2ea43
* 비지도 학습, https://ko.wikipedia.org/wiki/비지도_학습
* 클러스터링(Clustering), https://terms.naver.com/entry.naver?docId=817915&cid=50376&categoryId=50376
* 지도 학습(Supervised Learning), https://ko.wikipedia.org/wiki/지도_학습
* 말뭉치(Corpus), https://terms.naver.com/entry.naver?docId=2070828&cid=50376&categoryId=50376
* 통사적(統辭的), https://ko.dict.naver.com/#/entry/koko/92d960065ec64bb6aeb267b08683b058
* 다중 클래스 분류(multi-classclassification), https://en.wikipedia.org/wiki/Multiclass_classification
* 시퀀스 레이블링 작업(sequence labeling task), https://en.wikipedia.org/wiki/Sequence_labeling
* Hidden Markov Models(HMM), https://ko.wikipedia.org/wiki/은닉_마르코프_모형
* Decision Trees, https://ko.wikipedia.org/wiki/결정_트리
* Maximum Entropy Models, https://ko.wikipedia.org/wiki/최대_엔트로피_마르코프_모형
* Support Vector Machines(SVM), https://ko.wikipedia.org/wiki/서포트_벡터_머신
* Conditional Random Fields(CRF), https://ko.wikipedia.org/wiki/조건부_무작위장
* 변수 가공(Feature-engineering), https://en.wikipedia.org/wiki/Feature_engineering

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

References

[1] A Survey on Deep Learning for Named Entity Recognition, Jing Li, AixinSun, Jianglei Han, Chenliang Li, Mar. 18. 2020.
[2] https://arxiv.org/pdf/1812.09449.pdf (Jing Li et al. 2020, 1)
[3] https://www.aclweb.org/anthology/W03-2201/ (Babych & Hartley, 2003, 1)
[4] https://www.aclweb.org/anthology/C18-1274/ (Ugawa et al. 2018, 3248)

NER의 현재와 미래

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

  • 인공지능 번역기 학습시키기: 01. 말뭉치, 왜 필요한가?
  • 언어처리 엔진 LETR는 왜 텍스트 언어에 집중할까?