Python 提供了NLTK包含大量文本和语料库的库,以及大量文本挖掘和处理方法。有什么方法可以根据句子传达的可能匹配的含义来比较句子?也就是智能句子匹配器?
例如,像giggling at bad jokesand之类的句子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!
那么有了这个可用的算法,有没有这样的算法已经被构思出来了?还是我必须发明轮子?