给随机生成的单词分数

时间:2016-04-05 14:17:13

标签: python

我试图根据它的接近程度给出一个随机生成的单词得分" 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)

1 个答案:

答案 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(%),因为字符串实际上不包含在另一个中:只有一个字母是常见的。