Python:字符串的语义相似度得分

use*_*472 42 python similarity wordnet semantics

是否有任何库用于计算一对句子的语义相似度分数?

我知道WordNet的语义数据库,以及我如何生成2个单词的分数,但我正在寻找能够完成所有预处理任务的库,如整个句子和输出中的端口阻塞,停止单词删除等这两个句子的相关程度得分.

我找到了一个正在使用.NET框架编写的工作,该框架使用一系列预处理步骤来计算得分.是否有任何项目在python中执行此操作?

我不是在寻找可以帮助我找到分数的操作顺序(正如 我在这里要求的那样)
我喜欢自己实现每个阶段,或者从不同的库中粘合函数以便它适用于句子对,但我需要这个作为测试数据推断的工具.


编辑:我正在考虑使用NLTK并计算在两个句子上迭代的每对单词的分数,然后从结果的标准偏差中得出推论,但我不知道这是否是相似性的合理估计.另外,对于长琴弦来说,这需要很多时间.
同样,我正在寻找已经智能地实现这一点的项目/库.让我这样做的东西:

import amazing_semsim_package
str1='Birthday party ruined as cake explodes'
str2='Grandma mistakenly bakes cake using gunpowder'

>>similarity(str1,str2)
>>0.889
Run Code Online (Sandbox Code Playgroud)

小智 47

我见过的最好的包是Gensim,在Gensim主页上找到.我已经多次使用它,并且总体上非常满意它的易用性; 它是用Python编写的,有一个易于学习的教程,可以帮助您入门,比较9个字符串.它可以通过pip安装,所以你希望安装它不会有太多麻烦.

您使用哪种评分算法在很大程度上取决于您的问题的背景,但如果您想要一些基本的东西,我建议您开始使用LSI功能.(这就是教程引导您完成的.)

如果您浏览gensim教程,它将引导您使用相似度函数比较两个字符串.这将允许您根据它们包含的文本来查看您的叮咬如何相互比较,或与其他一些刺痛相比较.

如果您对它的工作原理感兴趣,请查看本文.


Dam*_*jar 5

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