我试图根据它的接近程度给出一个随机生成的单词得分" myname" (我只用三个字母生成一个单词以确保它首先起作用)。因为我只生成带有三个字母的单词,如果随机单词是" myn"那么得分是3 ..如果随机词是" mym"得分为2,如果随机词为" mim"得分是一等..等等基本上是"亲近"随机字的基于生成的随机字是否在" myname"的前三个字母中。这是我到目前为止的代码。
def generate(x):
word = "myname"
alpha_1 = alpha[random.randint(0,21)]
vowel_1 = vowels[random.randint(0,4)]
alpha_2 = alpha[random.randint(0,21)]
two = {}
for x in range(1,7315):
two.update({alpha_1 + vowel_1 + alpha_2:0})
return two
generate(x)
答案 0 :(得分:0)
您正在寻找fuzzy matching。尝试使用fuzzywuzzy(pip install fuzzywuzzy
)。您可以使用文档here来了解它的工作原理,但基本上是:
from fuzzywuzzy import fuzz, process
fuzz.ratio(myname, "The name to compare with")
您还可以使用部分比率查看字符串中是否包含名称:
由于bcd位于 bcd ef中,fuzz.partial_ratio("abcdef", "bcd")
将返回100(%)
fuzz.partial_ratio("aaaa", "abcd")
将返回25(%),因为字符串实际上不包含在另一个中:只有一个字母是常见的。