考虑到单词的长度,将给定百分比的字母替换为随机的 ASCII 字母



有一列不同长度的字符串(例如"苹果","梨","黄瓜","西瓜"(,总共有27个字母。目的是随机选择这27个字母中的10%,20%,.....,100%,并考虑到单词的长度,用一些随机的ASCII字母替换它们。在某种程度上,我们从较长的单词(如"西瓜"(10 个字母(中选择更多的字母,从较短的单词(如"梨"(4 个字母(中选择更少的字母。

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

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

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% 的随机小写字母。然后它会将生成的单词保存到第二个单词列表中。

最新更新