명시 의미 분석

자연언어 처리 및 정보검색에서 명시 의미 분석 (Explicit Semantic Analysis, ESA)는 문서 코퍼스를 지식 베이스로 사용하여 개별 단어 혹은 전체 문서 텍스트를 벡터 형태로 표현하는 것을 가리킨다. 특히 ESA에서는 단어는 해당 텍스트 코퍼스의 tf–idf 행렬의 열벡터로 표현되고, 단어의 나열인 문서는 해당 벡터들의 중심값으로 표현된다.

명시 의미 분석은 Evgeniy Gabrilovich와 Shaul Markovitch에 의해 텍스트 분류를 개선하는 수단으로 고안되었고 두 연구자에 의해 "의미적 관계도"라고 불리는 것을 계산하기 위해 이용되었다. 이 의미적 관계도는 상기 벡터들의 코사인 유사성을 통해 얻어지는데, 이는 "인간이 명시적으로 정의하고 설명하는 개념"의 공간으로 집합적으로 해석된다. "명시 의미 분석"이라는 이름은 잠재 의미 분석(Latent Semantic Analysis)과 대조되는데, 지식 베이스를 사용하기 때문에 벡터 공간으로 만들어지는 개념에 사람이 이해할 수 있는 라벨을 붙일 수가 있기 때문에 이런 이름이 붙었다.

모델 
명시 의미 분석을 수행은 먼저 텍스트의 모음에서부터 시작한다. 예를 들어 모든 위키백과 문서가 있다고 하면, 모든 문서의 개수를 N이라고 할 수 있다. 이들은 모두"단어들의 가방"(용어 빈도 히스토그램)으로 변환되어, 역색인에 저장된다. 역색인을 사용하여 위키백과 문서에서 특정 단어를 포함하는 찾을 수 있다. Egozi,Markovitch 및 Gabrilovitch의 표현을 따르자면, "위키백과에서 나타나는 각각의 단어는 그것이 역색인에서 가리키는 각각의 개념을 트리거하는 것으로 볼 수 있다."

하나의 단어 질의에 대한 역색인의 출력은 색인된 문서의 목록이 되는데(위의 예시에서는 위키백과 문서의 목록), 질의의 단어가 각 문서에 등장하는 빈도를 바탕으로 점수를 매길 수 있다 (그 문서의 전체 단어 개수를 가지고 가중치를 부여할 수도 있음). 수학적으로이 목록은 N-차원의 단어-문서 간 점수들의 벡터가 될 것이고, 질의어를 포함하지 않은 문서의 점수는 0으로 처리할 수 있다. 이렇게 얻은 벡터를 가지고 (두 벡터가 u 와 v라 하면) 두 단어 간의 관계성을 구하기 위해서 다음과 같이 코사인 유사도를 계산해볼 수 있다.
 
이 수치는 두 의미의 관계성을 추정하는데 쓰일 수 있다. 이 방법은 텍스트 내의 모든 단어들 각각의 벡터를 모두 합함으로써 여러 단어에 대해서도 사용이 가능하게 확장할 수 있다.

분석 
원래 Gabrilovich 와 Markovitch에 의해 제기된 명시 의미 분석은 지식 베이스의 개념들이 서로 직교하는 경우에서만 잘 작동한다. 그러나 후에 Anderka와 Stein은 명시 의미 분석이 직교성을 가지지 않은 로이터의 기사 코퍼스에 대해서도 정보검색 시스템의 성능을 향상시킬 수 있다는 것을 보였다. 그들은 이 관찰을 설명하기 위해 명시 의미 분석과 일반화 벡터 공간 모델에 대한 관계를 보여주었다.
Gabrilovich 및 Markovitch는 Anderka 및 Stein의 연구 결과를 "단 하나의 작고 동질적인 50개의 뉴스 문서 모음"과 "명시 의미 분석의 한 응용"을 가지고 얻은 성과라고 지적했다.

확장 
교차 언어 명시 의미 분석(CL-ESA)은 명시 의미 분석의 다국어 일반화 버전이다. 이는 다국어 참조로 이루어진 문서 모음(예: 위키백과)에 맞춰진 문서를 이용해 언어로부터 독립적인 개념 벡터를 표현해낸다. 서로 다른 언어의 문서 간의 관계성은 대응하는 각각의 벡터 표현의 코사인 유사도로 정의된다.

더 보기 
 주제 모델

각주 

자연어 처리
벡터 공간 모델