Python:string的语义相似度得分

有没有用于计算一对句子的语义相似度分数的库?

我知道WordNet的语义数据库,以及如何为2个单词生成分数,但是我正在寻找能够在整个句子和输出中执行所有预处理任务(如端口词干,停用词删除等)的库两个句子如何相关的分数。

我发现了一个使用.NET框架编写的工作 ,它使用一系列预处理步骤来计算分数。 有没有任何项目,在Python中做到这一点?

我不是在寻找能够帮助我find分数的操作顺序(就像这里要求的那样)
我喜欢自己实现每个阶段,或者从不同的库中粘贴函数,以便它可以用于句对,但是我主要需要这个工具来testing数据的推论。


编辑:我正在考虑使用NLTK和计算每两个单词对这两个句子迭代的得分,然后从结果的标准偏差中得出推论,但我不知道这是否是一个合理的相似性估计。 另外,这将花费很长的时间。
再次,我正在寻找已经实现这个智能的项目/库。 东西,让我这样做:

import amazing_semsim_package str1='Birthday party ruined as cake explodes' str2='Grandma mistakenly bakes cake using gunpowder' >>similarity(str1,str2) >>0.889 

我见过的最好的包装是在Gensim主页find的Gensim 。 我已经使用过很多次了,总体而言非常满意,它的易用性, 它是用Python编写的,并且有一个简单的跟随教程来开始,它比较了9个string。 它可以通过点安装,所以你不会有很多麻烦得到它安装,我希望。

你使用哪种评分algorithm在很大程度上取决于你的问题的背景,但是如果你想要一些基本的东西的话,我build议开始使用LSI的function。 (这是教程引导你通过。)

如果您阅读gensim教程,它将引导您通过比较两个string,使用Similaritiesfunction。 这样可以让你看到你的叮咬是如何根据它们所包含的文字相互比较的,或者是一些其他的刺痛。

如果你对它背后的科学感兴趣,看看这篇论文。

不幸的是,我不能用PY来帮助你,但是你可以看看我的旧项目,它使用字典来完成句子之间的语义比较(稍后可以在PY中执行向量空间分析)。 从JAVA翻译成PY应该只需要几个小时的编码。 https://sourceforge.net/projects/semantics/

AFAIK Python最强大的NLP-Lib是http://nltk.org/