当前位置: 首页 > 面试题库 >

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

张星洲
2023-03-14
问题内容

是否有用于计算一对句子的语义相似性评分的库?

我知道WordNet的语义数据库,以及如何生成2个单词的分数,但是我正在寻找可以对整个句子和输出执行所有预处理任务(例如端口阻止,停止单词删除等)的库两个句子之间的相关程度得分。

我发现使用.NET框架编写的工作正在进行中,该框架使用一系列预处理步骤来计算分数。有没有在python中执行此操作的项目?

我不是在寻找可以帮助我找到分数的操作序列,
我想自己实现每个阶段,也可以粘贴不同库中的函数以使其适用于句子对,但是我主要需要它作为html" target="_blank">测试数据推断的工具。

编辑:
我正在考虑使用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,可以在Gensim主页上找到。我已经使用过很多次了,总体上对它的易用性感到非常满意。它是用Python编写的,并且具有易于理解的入门指南,其中比较了9个字符串。它可以通过pip进行安装,所以希望您不会有太多麻烦来安装它。

您使用哪种评分算法在很大程度上取决于问题的背景,但是如果您需要基本的知识,建议从LSI功能入手。(这是本教程向您介绍的内容。)

如果您学习gensim教程,它将使用“相似性”功能引导您比较两个字符串。这将使您可以根据它们包含的文本来查看您的ing彼此之间或与其他some之间的比较。

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



 类似资料:
  • 我使用Levenshtein算法来查找两个字符串之间的相似性。这是我正在制作的程序的一个非常重要的部分,所以它需要有效。问题是算法没有发现以下示例相似: CONAIR AIRCON 编辑:我还研究了“Damerau-Levenshtein”算法,它增加了换位。问题是这种转换只针对相邻的字符(而不是多个字符)。

  • 本文向大家介绍C#计算2个字符串的相似度,包括了C#计算2个字符串的相似度的使用技巧和注意事项,需要的朋友参考一下 计算字符串相似度,直接来C#代码 返回结果就是相似度了,验证码识别上用的到 爱给模板网提供 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 问题内容: 如何获得字符串与Python中的另一个字符串相似的概率? 我想要一个像0.9(表示90%)之类的十进制值。最好使用标准Python和库。 例如 问题答案: 有一个内置的。 使用它:

  • 本文向大家介绍详解Python 字符串相似性的几种度量方法,包括了详解Python 字符串相似性的几种度量方法的使用技巧和注意事项,需要的朋友参考一下 字符串的相似性比较应用场合很多,像拼写纠错、文本去重、上下文相似性等。 评价字符串相似度最常见的办法就是:把一个字符串通过插入、删除或替换这样的编辑操作,变成另外一个字符串,所需要的最少编辑次数,这种就是编辑距离(edit distance)度量方

  • 问题内容: 在Python + Sqlite中是否有可用的字符串相似性度量,例如与模块有关? 用例示例: 此查询应匹配ID为1的行,但不匹配ID为2的行: 如何在Sqlite + Python中做到这一点? 关于我到目前为止发现的注释: 该Levenshtein距离,即单字符编辑(插入,删除或替换)的最小数量需要改变一个字到另一个,可能是有用的,但我不知道是否SQLite中存在的正式实施(我看到一

  • 本文向大家介绍C ++中的相似字符串组,包括了C ++中的相似字符串组的使用技巧和注意事项,需要的朋友参考一下 假设我们有两个字符串X和Y,如果可以交换X的两个字母,它们是相似的,因此等于Y。另外,如果两个字符串X和Y相等,则它们相似。例如,考虑两个字符串,例如“ tars”和“ rats”相似,如果我们交换t和r,则可以找到另一个,现在“ rats”和“ arts”相似,但是“ star”不同类