当前位置: 首页 > 知识库问答 >
问题:

查找两个字符串之间的相似性度量

丁子石
2023-03-14

如何获得一个字符串与Python中的另一个字符串相似的概率?

我想得到一个十进制值,如0.9(意味着90%)等。最好使用标准Python和库。

e、 g。

similar("Apple","Appel") #would have a high prob.

similar("Apple","Mango") #would have a lower prob.

共有3个答案

石苏燕
2023-03-14

我想你可能在寻找一种描述字符串之间距离的算法。以下是一些您可以参考的内容:

  1. 汉明距离
  2. Levenshtein距离
  3. Damerau–Levenshtein距离
  4. Jaro–Winkler距离
谷梁子昂
2023-03-14

使用difflib中的SequenceMatcher

优点:本机python库,无需额外的软件包<缺点:太有限了,还有很多其他的字符串相似性好算法。

>>> from difflib import SequenceMatcher
>>> s = SequenceMatcher(None, "abcd", "bcde")
>>> s.ratio()
0.75

这是一个很好的图书馆,覆盖率很高,发行量很少。它支持:
-莱文施泰因距离
-达梅劳-莱文施泰因距离
-雅罗距离
-雅罗-温克勒距离
-匹配评级方法比较
-汉明距离

优点:易于使用,支持的算法种类繁多,经过测试<缺点:不是本机库。

示例:

>>> import jellyfish
>>> jellyfish.levenshtein_distance(u'jellyfish', u'smellyfish')
2
>>> jellyfish.jaro_distance(u'jellyfish', u'smellyfish')
0.89629629629629637
>>> jellyfish.damerau_levenshtein_distance(u'jellyfish', u'jellyfihs')
1
步浩壤
2023-03-14

有一个内置的。

from difflib import SequenceMatcher

def similar(a, b):
    return SequenceMatcher(None, a, b).ratio()

使用它:

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

  • 问题内容: 如何找到两个子字符串之间的字符串? 我当前的方法是这样的: 但是,这似乎效率很低而且不合Python。什么是做这样的更好的方法? 忘了提:该字符串可能无法启动,并最终和。他们之前和之后的字符可能更多。 问题答案:

  • 问题内容: 我正在尝试 使用循环从两个不同的用户输入中打印常用字母。(我需要使用for循环来完成它。)我遇到了两个问题:1.我的语句“ If char not in output …”没有提取唯一值。2.输出为我提供了单个字母列表,而不是单个字符串。我尝试分割输出,但是分割遇到类型错误。 问题答案: 您正在尝试执行“设置相交”。Python有 相同的方法。您可以将其用于您的用例,例如: 将返回字符

  • 我有一个这样的字符串: 我正在尝试获取任何显示为title(title=“anything here”)的内容。我已经尝试过了,但无法正常工作。

  • 问题内容: 如果我在mysql中有两个字符串: 有没有办法使用MYSQL获得这两个字符串之间的相似性百分比?例如,这里有3个单词是相似的,因此相似度应为: count(@a和@b之间的相似单词)/(count(@a)+ count(@b)-count(intersection)) 和结果是3 /(4 + 4-3)= 0.6 高度赞赏任何想法! 问题答案: 您可以使用此功能(从http://www.

  • 问题内容: 我必须比较两个时间-电压-电压波形。由于这些波形的源的特殊性,其中一个可以是另一个的时移形式。 我如何找到是否有时移?如果是的话,多少钱。 我正在Python中执行此操作,并希望使用numpy / scipy库。 问题答案: scipy提供了一个相关函数,该函数对于较小的输入以及如果您需要非圆形相关也意味着信号将不会回绕的情况也可以很好地工作。请注意,在中,signal.correla