{{위키데이터 속성 추적}}
[[자연 언어 처리|자연언어 처리]] 및 [[정보 검색|정보검색]]에서&nbsp;'''명시 의미 분석''' ('''Explicit Semantic Analysis, ESA''')는 문서 코퍼스를 [[지식 베이스]]로 사용하여 개별 단어 혹은 전체 문서&nbsp;텍스트를&nbsp;[[벡터 공간 모델|벡터]]&nbsp;형태로&nbsp;표현하는 것을 가리킨다.&nbsp;특히 ESA에서는 단어는 해당 텍스트 코퍼스의&nbsp;[[TF-IDF|tf–idf]] 행렬의 열벡터로 표현되고, 단어의 나열인 문서는 해당 벡터들의 중심값으로 표현된다.

명시 의미 분석은&nbsp;Evgeniy Gabrilovich와&nbsp;Shaul Markovitch에 의해&nbsp;텍스트 분류<ref>{{콘퍼런스 인용|first1=Evgeniy |last1=Gabrilovich |first2=Shaul |last2=Markovitch |title=Overcoming the brittleness bottleneck using Wikipedia: enhancing text categorization with encyclopedic knowledge |conference=Proc. 21st National Conference on Artificial Intelligence (AAAI) |pages=1301–1306 |year=2006 |url=http://www.aaai.org/Papers/AAAI/2006/AAAI06-204.pdf}}</ref>를 개선하는 수단으로 고안되었고 두 연구자에 의해 "[[의미론|의미적]]&nbsp;관계도"라고 불리는 것을 계산하기 위해 이용되었다. 이 의미적 관계도는 상기 벡터들의&nbsp;[[코사인 유사도|코사인 유사성]]을 통해 얻어지는데, 이는&nbsp;"인간이 명시적으로 정의하고 설명하는 개념"의 공간으로 집합적으로 해석된다.&nbsp;"명시 의미 분석"이라는 이름은 잠재 의미 분석(Latent Semantic Analysis)과 대조되는데, 지식 베이스를 사용하기 때문에 벡터 공간으로 만들어지는 개념에 사람이 이해할 수 있는 라벨을 붙일 수가 있기 때문에 이런 이름이 붙었다.<ref name="tois">{{저널 인용 |first1=Ofer |last1=Egozi |first2=Shaul |last2=Markovitch |first3=Evgeniy |last3=Gabrilovich |year=2011 |title=Concept-Based Information Retrieval using Explicit Semantic Analysis |url=http://www.cs.technion.ac.il/~gabr/publications/papers/Egozi2011CBI.pdf |format=pdf |accessdate=January 3, 2015 |journal=ACM Transactions on Information Systems |volume=29 |issue=2 |보존url=https://web.archive.org/web/20170329071455/http://www.cs.technion.ac.il/~gabr/publications/papers/Egozi2011CBI.pdf |보존날짜=2017-03-29 |url-status=dead }}</ref><ref name="ijcai">{{콘퍼런스 인용 |first1=Evgeniy |last1=Gabrilovich |first2=Shaul |last2=Markovitch |title=Computing semantic relatedness using Wikipedia-based Explicit Semantic Analysis |conference=Proc. 20th Int'l Joint Conf. on Artificial Intelligence (IJCAI) |pages=1606–1611 |year=2007 |url=http://www.cs.technion.ac.il/~gabr/papers/ijcai-2007-sim.pdf |access-date=2017-01-03 |archive-date=2017-07-05 |archive-url=https://web.archive.org/web/20170705095212/http://www.cs.technion.ac.il/%7Egabr/papers/ijcai-2007-sim.pdf }}</ref>

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

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

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

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

== 같이 보기 ==
* [[주제 모델]]

== 각주 ==
{{각주|30em}}

[[분류:자연어 처리]]
[[분류:벡터 공간 모델]]