gpt4 book ai didi

python - 编辑距 ionic 串

转载 作者:太空狗 更新时间:2023-10-30 02:26:35 29 4
gpt4 key购买 nike

是否有一种使用 levenstein 距离将一个特定字符串与第二个较长字符串中的任何区域进行匹配的好方法?

例子:

str1='aaaaa'
str2='bbbbbbaabaabbbb'

if str1 in str2 with a distance < 2:
return True

所以在上面的例子中,字符串 2 的一部分是 aabaadistance(str1,str2) < 2所以语句应该返回 True .

我能想到的唯一方法是一次从 str2 中取出 5 个字符,将其与 str1 进行比较,然后在 str2 中重复此操作。不幸的是,这似乎效率很低,我需要以这种方式处理大量数据。

最佳答案

你可以看看 regex module支持模糊匹配:

>>> import regex
>>> regex.search("(aaaaa){s<2}", 'bbbbbbaabaabbbb')
<regex.Match object; span=(6, 11), match='aabaa', fuzzy_counts=(1, 0, 0)>

因为你正在寻找的是等长的字符串,你也可以做一个 Hamming distance这可能比相同两个字符串上的 Levenstein 距离快得多:

str1='aaaaa'
str2='bbbbbbaabaabbbb'
for s in [str2[i:i+len(str1)] for i in range(0,len(str2)-len(str1)+1)]:
if sum(a!=b for a,b in zip(str1,s))<2:
print s # prints 'aabaa'

关于python - 编辑距 ionic 串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44398027/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com