简单的NLP:如何使用ngram进行单词相似性?

时间:2010-03-15 03:39:09

标签: artificial-intelligence machine-learning nlp

我听说谷歌使用高达7克的语义相似性比较。我有兴趣找到在上下文中相似的单词(即猫和狗),我想知道如何在n-gram模型上计算两个单词的相似性,因为n> 2。

所以基本上给出了一个文字,比如“你好,我的名字是等等。我喜欢猫”,我生成了3克以上的一套:

[('hello','my','name'),  ('我的名字是'),  ('名字','是','等等'),  ('是','等等','等等'),  ('等等','等等','我'),  ('bla','我','爱'),  ('我','爱','猫')]

如果您没有就如何处理此特定NGRAM问题提出建议,请不要回应

我可以用什么样的计算来找出'猫'和'名字'之间的相似性? (应该是0.5)我知道如何使用bigram,只需将freq(cats,name)/(freq(cats,)+ freq(name,))分开。但是对于n>呢? 2?

2 个答案:

答案 0 :(得分:1)

我用谷歌搜索“三卦之间的相似性”,并提出了this article,它将单词分成3个字母段。我知道这并不是你想要的,但也许这将有助于你前进。

本文还比较了基于3字母方法的2个单词。似乎需要在两个搜索术语之间进行比较,例如“你好我的名字是等等。我爱猫”和“我的名字是别的。我爱狗”。当然我对这个域名知之甚少,所以如果这不正确,我很抱歉,我只是希望能够为你的问题提出一些想法。

答案 1 :(得分:0)

我不知道google是如何工作的,但是一种已知的方法是计算给定单词的文档中的共现。考虑到谷歌有可能的所有文件,然后很容易计算出因素和单词(频率)的出现,然后你可以得到单词之间的债券因素。它不是衡量相似性的标准(如猫和狗),而是更多的搭配。

看看: http://en.wikipedia.org/wiki/Tf - IDF

另一种方法是删除互联网文档,只关注字典条目,有几次尝试解析这些条目构建“常识”系统。通过这种方式,您可以自动获得关系(WordNet和类似手工制作)。