Innatural language processing andinformation retrieval,explicit semantic analysis (ESA) is avectoral representation of text (individual words or entire documents) that uses a document corpus as aknowledge base. Specifically, in ESA, a word is represented as a column vector in thetf–idf matrix of the text corpus and a document (string of words) is represented as thecentroid of the vectors representing its words. Typically, the text corpus isEnglish Wikipedia, though other corpora including theOpen Directory Project have been used.[1]
ESA was designed byEvgeniy Gabrilovich and Shaul Markovitch as a means of improvingtext categorization[2]and has been used by this pair of researchers to compute what they refer to as "semantic relatedness" by means ofcosine similarity between the aforementioned vectors, collectively interpreted as a space of "concepts explicitly defined and described by humans", where Wikipedia articles (or ODP entries, or otherwise titles of documents in the knowledge base corpus) are equated with concepts. The name "explicit semantic analysis" contrasts withlatent semantic analysis (LSA), because the use of a knowledge base makes it possible to assign human-readable labels to the concepts that make up the vector space.[1][3]
To perform the basic variant of ESA, one starts with a collection of texts, say, all Wikipedia articles; let the number of documents in the collection beN. These are all turned into "bags of words", i.e., term frequency histograms, stored in aninverted index. Using this inverted index, one can find for any word the set of Wikipedia articles containing this word; in the vocabulary of Egozi, Markovitch and Gabrilovitch, "each word appearing in the Wikipedia corpus can be seen as triggering each of the concepts it points to in the inverted index."[1]
The output of the inverted index for a single word query is a list of indexed documents (Wikipedia articles), each given a score depending on how often the word in question occurred in them (weighted by the total number of words in the document). Mathematically, this list is anN-dimensional vector of word-document scores, where a document not containing the query word has score zero. To compute the relatedness of two words, one compares the vectors (sayu andv) by computing the cosine similarity,
and this gives a numeric estimate of the semantic relatedness of the words. The scheme is extended from single words to multi-word texts by simply summing the vectors of all words in the text.[3]
ESA, as originally posited by Gabrilovich and Markovitch, operates under the assumption that the knowledge base contains topicallyorthogonal concepts. However, it was later shown by Anderka and Stein that ESA also improves the performance ofinformation retrieval systems when it is based not on Wikipedia, but on theReuters corpus of newswire articles, which does not satisfy the orthogonality property; in their experiments, Anderka and Stein used newswire stories as "concepts".[4] To explain this observation, links have been shown between ESA and thegeneralized vector space model.[5] Gabrilovich and Markovitch replied to Anderka and Stein by pointing out that their experimental result was achieved using "a single application of ESA (text similarity)" and "just a single, extremely small and homogenous test collection of 50 news documents".[1]
ESA is considered by its authors a measure of semantic relatedness (as opposed tosemantic similarity). On datasets used to benchmark relatedness of words, ESA outperforms other algorithms, includingWordNet semantic similarity measures and skip-gram Neural Network Language Model (Word2vec).[6]
ESA is used in commercial software packages for computing relatedness of documents.[7] Domain-specific restrictions on the ESA model are sometimes used to provide more robust document matching.[8]
Cross-language explicit semantic analysis (CL-ESA) is a multilingual generalization of ESA.[9] CL-ESA exploits a document-aligned multilingual reference collection (e.g., again, Wikipedia) to represent a document as a language-independent concept vector. The relatedness of two documents in different languages is assessed by the cosine similarity between the corresponding vector representations.