본문 바로가기
Study/NLP

위키피디아 기반 개체명 사전 반자동 구축 방법[논문 리뷰]

by GodKim 2021. 1. 10.

이 글은 논문 [위키피디아 기반 개체명 사전 반자동 구축 방법]을 읽고 정리한 글이다.

송영길, 정석원, 김학수. (2015). 위키피디아 기반 개체명 사전 반자동 구축 방법. 정보과학회논문지, 42(11), 1397-1403.

www.dbpia.co.kr/journal/articleDetail?nodeId=NODE06546835


내가 멋대로 이해한 위 논문의 한 줄 요약!


 

 

 개체명 사전을 구축에 있어 인력적, 시간적 소모적인 부분을 완화하기 위해 위키피디아 분류정보를 기반으로 유사도를 이용해 개체명 사전을 반자동으로 구축한다!

 

 


1. 개체명 인식(Named Entity Recognition)이란?


 

 정보추출(Information Extraction)의 한 분류로, 텍스트로부터 개체명이 될 수 있는 단어 혹은 구(Multi Word Extraction, MWE)를 찾고, 그것을 특정 범주로 분류하는 것을 의미한다. 개체명 인식의 방법으로는 크게 두 가지로 분류되는데 그중 하나가 개체명이 나타나는 언어학적 규칙을 기반으로 정규표현식과 같은 패턴을 사용해 인식해 내는 규칙 기반 방법과 개체명이 태깅되어있는 대용량의 말뭉치(corpus)를 바탕으로 확률을 학습하고 이를 이용해 개체명을 분류해내는 확률 기반 방법이 존재한다. 

 

 여기서 지속적으로 등장하는 개체명 범주(Named Entity Category)는 현재 표준화가 되어있지 않고, 해당 인식기의 사용 목적에 따라 다양하게 나타나고 있다. 예컨대, 일반적으로 음식 이름인 "김밥", " 스파게티" 등은 엄밀히 말해 개체명이 될 수 없지만, 음식을 주문하는 챗봇에게 있어선 중요한 개체명 정보로서 요구되는 것이다. 이처럼 개체명 범주는 그 목적에 따라 다양하게 정의될 수 있기에 자신이 원하는 목적에 정확히 부합하는 개체명 사전을 찾기 힘든 것이다. 이렇게 되면 자연스레 자신의 목적에 맞게 개체명 사전을 구축해야 하는데, 이는 많은 시간과 인력을 소모하는 작업이기에 이를 줄이기 위한 방법을 해당 논문에서 제시하는 바이다.

 


2. 정보검색 기반 개체명 사전 구축


 

 

 위키피디아 페이지에 나타나는 분류정보는 해당 엔트리의 특성을 잘 설명하는 단어들로 구성되어있다. 요컨데, 검색한 단어에 대한 관련 단어들이 분류정보로서 나타나는 것이다. 해당 논문에서 사용된 예를 보면, "한국정보과학회"를 엔트리로써 보았을 때, 함께 나타나는 분류정보로 "컴퓨터 관련 단체, 사단법인 (미래창조과학부 소관), 1973년 설립"이라는 정보를 보여준다. 여기서 각 분류정보의 마지막 토큰이 개체명 범주를 분류하는 데 있어서 메인 정보를 담고 있다고 보고, 해당 정보를 추출하면 "단체, 사단법인, 설립"이 된다. 즉, 이 정보들이 미리 정의한 개체명 범주 중 '단체(Organization)'에 해당되는 분류정보로 보는 것이다. 

 

 위 분류정보들을 기반으로 개체명 사전을 반자동 구축하는 방법은 3가지 단계로 이루어진다. 첫 번째는 초기 가상문서 구축 단계이다. 해당 단계에서는 우선, 최소한의 엔트리를 가지는 개체명 사전을 수작업을 구축한다. 그 후 개체명 범주를 표현하는 가상문서를 구축하는 작업이다. 이전에 수작업으로 구축한 초기 개체명 사전을 기반으로 초기 가상문서를 구축한다. 해당 가상문서에는 각 개체명 범주들의 분류정보가 포함되어있는 형태로 구성되어있다. 예를 들어 위에서 예로 든 '단체' 범주에서는 가상문서 내용으로 분류정보에 존재했던 "단체, 사단법인, 설립" 등이 포함되어있는 것이다. 

 

 두 번째 단계는 가상문서의 확장 단계이다. 초기 가상문서는 최소한의 엔트리를 이용했기에 각 문서를 표현하는 분류정보가 적다. 따라서 능동 학습 방법을 통해 가상문서 확장을 진행한다. 기존 가상문서에 없는 핵심 분류정보가 많이 포함된 엔트리를 발견하면, 수작업으로 기존의 가상문서에 추가해 지속적인 업데이트를 진행해 확장해 나가는 것이다.

 

 그 후 마지막 단계인 개체명 사전 구축 단계이다. 이전 단께에서 확장된 가상문서를 이용해 개체명 사전을 구축해 나가는 것이다. 여기서 분류대상이 되는 엔트리의 분류정보를 질의로 하고 해당 질의와 가장 유사한 가상문서를 찾아 개체명을 분류하는 시퀀스로 사전을 반자동으로 구축해 나간다. 

 

 


3. 결과 및 나의 생각


 

 

 해당 시스템을 기반으로 개체명 분류를 실행한 결과 매크로 평균 F1-score가 90.28%, 마이크로 평균 F2-score가 95.54%로 높은 성능을 보였다. 해당 논문에서 평균 이하의 성능을 보인 범주들을 분석한 바로는, 전체 엔트리 자체가 적어 확률적으로 선택될 가능성 자체가 적은 오류와 개체명 범주간의 성격이 유사해서 잘못 태깅되는 오류였다.

 

 하지만 이 두 문제는 더 많은 데이터와 좀 더 상세한 범주의 정형화만 있으면 충분히 해결될 수 있는 문제로 나는 생각한다. 이 논문을 읽으면서 내가 들었던 궁금증은 겹치는 분류정보들에 대한 처리이다. 위에서 오류 분석에서 개체명 범주간 성격이 유사함에 따라 나타나는 오류의 예로 "Comapny"와 "Organization"을 들었다. 엄밀히 보면 "Comapny"는 "Organization"과 같은 층위에 있는 분류 정보로 보기보다는 "Organization"의 하위분류로 "Company"를 볼 수도 있기에 분류에 있어서 정확률이 떨어지는 것은 자연스러운 것이다. 반면에 같은 층위의 범주로 볼 수 있는 "Organization"과 "Location"의 범주가 겹치는 경우는 어떻게 처리를 할까? 예컨대, '한국외국어대학교'가 엔트리로 들어왔을 때 나타나는 분류정보로는 "서울특별시의 대학교, 서울 동대문구의 학교, 경기도의 대학교, 용인시의 학교, 한국외국어대학교, 국제경영대학발전협의회"가 나타난다. 위 논문에서 제안한 정형화 방법으로 마지막 어절만 사용하면 "학교, 대학교, 한국외국어대학교, 국제경영대학발전협의회"가 추출된다. 이를 기반으로 분류를 생각해보면 주로 "Organization"에 더 가깝게 태깅을 할 것이다. 하지만 정형화 전인 "서울특별시의 대학교, 서울 동대문구의 학교"등을 살펴보면 "Organization"인지 "Location"인지 헷갈릴 수도 있다. 위치정보가 모두 Head Noun인 대학교나 학교의 수식어이지만 의미적으로 본다면 무시할 수 없는 정보이기 때문이다. 

 

 따라서 이런 중복, 모호함의 문제를 좀더 자세히 살펴보고 정형화할 필요가 있다고 생각한다. 또한, 태깅에 있어서 이거 아님 저거, 저거 아님 이거 방식의 획일화된 분류보다는 태깅의 유사도에 따라서 일정 유사도 이상을 나타내면 우선순위에 따라 모두 태깅하는 방식도 고려해보면 어떨까 싶다. 

반응형

댓글