Python 提供了NLTK
包含大量文本和语料库的库,以及大量文本挖掘和处理方法。有什么方法可以根据句子传达的可能匹配的含义来比较句子?也就是智能句子匹配器?
例如,像giggling at bad jokes
and之类的句子I like to laugh myself silly at poor jokes
。两者都传达相同的含义,但句子不匹配(单词不同,Levenstein Distance
会严重失败!)。
现在想象一下,我们有一个 API 可以公开功能,例如在这里找到的。因此,基于此,我们有机制来找出单词giggle
并laugh
在它们传达的含义上匹配。Bad
不会匹配到poor
,因此我们可能需要添加更多层(就像它们在诸如 之类的词的上下文中匹配一样joke
,因为bad joke
通常与 相同poor joke
,尽管bad person
与poor 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!
那么有了这个可用的算法,有没有这样的算法已经被构思出来了?还是我必须发明轮子?