python - 根据意思比较句子

标签 python data-mining nltk

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

例如,像这样的句子 giggling at bad jokesI like to laug myself silly at poor jokes。两者表达相同的意思,但句子并不完全匹配(单词不同,Levenstein Distance 会严重失败!)。

现在假设我们有一个 API,它公开了诸如 found here 之类的功能。 .因此,基于此,我们有机制可以发现单词 gigglelaugh 在含义上确实匹配他们传达。 Bad 不会匹配到 poor,所以我们可能需要添加更多层(比如它们在joke 等词的上下文,因为 bad joke 通常与 poor joke 相同,尽管 bad personpoor person 不同!)

一个主要的挑战是丢弃不会改变句子含义的内容。因此,该算法应该在第一句话和这句话之间返回相同程度的匹配:我喜欢在糟糕的笑话中笑自己傻,即使它们完全没有意义,充满废话和严重的心脏机会-攻击!

那么有了这个,有没有这样的算法已经被构想出来了?还是我必须发明轮子?

最佳答案

您将需要更高级的主题建模算法,当然还需要一些语料库来训练您的模型,以便您可以轻松处理咯咯笑和大笑等同义词!

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

我个人最喜欢的是随机投影,因为它速度更快而且仍然非常高效(不过我是用 java 和另一个库来做的)。

关于python - 根据意思比较句子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14852184/

相关文章:

Python 图像搜索包装器

python - 覆盖 nltk 中的函数 - ContextIndex 类中的错误

twitter - 关于情感分析的自然语言处理工具列表 - 您推荐哪一个

python - MySQL 驱动程序与 INFORMATION_SCHEMA 存在问题?

python - io 重定向的奇怪行为

Python:如何从给定的键中获取最近的键?

python - 字符串替换为多个项目

python-2.7 - 使用杰卡德相似度对分类数据进行聚类

python - Kmeans 不知道簇的数量?

python - 有哪些替代 WordNet 查找反义词的方法?