0

有一列不同长度的字符串(例如 "Apple" 、 "Pear" 、 "cucumber" 、 "watermelon" ),总共有 27 个字母。目的是随机选择这 27 个字母中的 10%、20%、.....、100%,并考虑到单词的长度,用一些随机的 Ascii 字母替换它们。在某种程度上,我们从像“西瓜”这样的长词(10 个字母)中选择更多的字母,从像“梨”这样的短词(4 个字母)中选择更少的字母。

Ps:我的目标是模拟单词列表中的拼写错误,然后应用 Levenshtein Distance 来找到最佳匹配,将单词与拼写错误和正确的单词形式进行比较。(例如将“Apple”转换为“apfle”,然后使用 LD将其更正为“Apple”)

4

1 回答 1

0

我不确定我是否理解正确,但如果我理解了,也许你可以尝试这样的事情:

import random
import string

letters = string.ascii_lowercase
output = []

for element in list_of_words:
    element = list(element)
    for n in range(len(element)):
        if random.randint(0,9)==9:
            element[n] = random.choice(letters)
    output.append(str(element))
print (output)

这将遍历列表中每个单词的每个字母,并以 10% 的概率将其替换为随机小写字母。然后它将生成的单词保存到第二个单词列表中。

于 2017-06-14T09:54:22.530 回答