有谁知道计算两个单词之间"语义距离"的好方法?
我们立刻想到了一个计算词库中单词之间步数的算法.
好的,看起来像一个类似的问题已经得到了答案:是否有一种算法可以告诉两个短语的语义相似性.
在文本挖掘中有一条重要的格言:“你应该通过它所保持的公司来了解一个单词”。这意味着可以根据经常出现的接近单词的术语来学习该单词的含义。
在不详细介绍的情况下,让我给出两个简单的选项来估计术语之间的语义距离:
使用类似于WordNet(大型英语词汇数据库)的资源。WordNet 表面上类似于同义词库,因为它根据单词的含义将单词分组在一起。单词之间的语义距离可以估计为连接两个单词的顶点数量。
使用大型语料库(例如维基百科),计算与您正在分析的单词接近的术语。创建两个向量并计算距离(例如余弦)。
您可以查看此材料以获取有关该主题的图片:
http://www.saifmohammad.com/WebDocs/Mohammad_Saif_Thesis-slides.pdf
http://www.umiacs.umd.edu/~saif/WebDocs/distributionalmeasures.pdf
http://www.umiacs.umd.edu/~saif/WebDocs/Measuring-Semantic-Distance.pdf
同义词库的想法有一定的优点。一种想法是基于同义词库创建一个图,其中节点是单词,边表示它们在同义词库中被列为同义词。然后,您可以使用最短路径算法来给出节点之间的距离,作为其相似性的度量。
这里的一个困难是有些词在不同的上下文中有不同的含义。您的算法可能需要考虑到这一点,并使用定向链接,其传出链接的权重取决于所遵循的传入链接(或根据传入链接忽略某些传出链接)。