根据它们的含义来比较句子

Python提供了NLTK库,这是一个庞大的文本和语料库资源,以及大量的文本挖掘和处理方法。 有什么方法可以根据它们为可能的匹配传达的含义来比较句子吗? 那就是智能句子匹配器?

例如,一个像giggling at bad jokes这样的句子, I like to laugh myself silly at poor jokes 。 两者都表达了相同的含义,但句子不具有远程匹配性(词语不同, Levenstein Distance将会失败!)。

现在想象我们有一个暴露功能的API,例如这里找到的。 因此,基于这一点,我们有机制发现, gigglelaugh这两个词在它们所表达的意义上确实匹配。 Bad不匹配poor ,所以我们可能需要添加更多的图层(像他们匹配在像joke这样的词语中,因为bad joke通常与poor joke ,尽管bad personpoor person不一样!) 。

一个主要的挑战是放弃那些不会改变句子含义的东西。 所以,算法应该返回第一句和这句话之间相同程度的匹配度: I like to laugh myself silly at poor jokes, even though they are completely senseless, full of crap and serious chances of heart-attack!

因此,有了这样的算法,是否有这样的算法呢? 或者我必须发明轮子?


你将需要一个更高级的话题建模算法,当然还有一些语料库可以训练你的模型,这样你就可以轻松处理像傻笑和笑声的同义词!

在Python中,你可以试试这个包:http://radimrehurek.com/gensim/我从来没有使用它,但它包括经典的语义向量空间方法,如lsa / lsi,随机投影甚至lda。

我个人最喜欢的是随机投影,因为它速度更快,而且效率非常高(我正在用另一个库在java中进行)。

链接地址: http://www.djcxy.com/p/69319.html

上一篇: Comparing sentences according to their meaning

下一篇: Get string length in pixels using JavaScript