You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改随机拼写错误生成代码,实现单词增删随机字母?

实现支持替换、添加、删除随机字母的拼写错误生成代码

原代码仅支持替换单词中的随机字符,我们可以扩展为替换、插入、删除三种随机操作,给每种操作分配概率,对符合修改条件的单词随机执行其中一种操作,同时避免修改单词末尾的标点符号(比如逗号、句号)。

修改后的代码如下:

import string
import random

phrase = "Lorem ipsum dolor sit amet, lorem ipsum."
# 单词被修改的总概率
p_modify = 0.8
# 三种操作的概率分配(总和需为1)
op_probs = {
    'replace': 0.4,
    'insert': 0.3,
    'delete': 0.3
}

def process_word(word):
    # 分离单词主体和末尾的标点(如逗号、句号)
    word_body = word
    punctuation = ''
    if len(word) > 0 and not word[-1].isalpha():
        punctuation = word[-1]
        word_body = word[:-1]
    
    # 如果单词主体长度小于2,不执行删除操作(避免变成空字符串)
    if len(word_body) < 2:
        return word
    
    # 随机选择操作类型
    op_choice = random.choices(
        list(op_probs.keys()),
        weights=list(op_probs.values()),
        k=1
    )[0]
    
    new_body = word_body
    if op_choice == 'replace':
        # 替换随机位置的字符
        ix = random.randint(0, len(new_body)-1)
        new_body = new_body[:ix] + random.choice(string.ascii_letters) + new_body[ix+1:]
    elif op_choice == 'insert':
        # 随机位置插入随机字符
        ix = random.randint(0, len(new_body))
        new_body = new_body[:ix] + random.choice(string.ascii_letters) + new_body[ix:]
    elif op_choice == 'delete':
        # 删除随机位置的字符
        ix = random.randint(0, len(new_body)-1)
        new_body = new_body[:ix] + new_body[ix+1:]
    
    # 拼接回标点
    return new_body + punctuation

new_phrase = []
words = phrase.split(' ')
for word in words:
    if random.random() <= p_modify:
        new_word = process_word(word)
        new_phrase.append(new_word)
    else:
        new_phrase.append(word)

new_phrase = ' '.join(new_phrase)
print(new_phrase)

关键说明

  • 标点处理:单独分离单词末尾的标点,确保修改操作只作用于字母部分,避免破坏标点符号。
  • 操作概率:通过op_probs字典可灵活调整三种操作的出现频率,总和需保持为1。
  • 边界处理:当单词主体长度小于2时,跳过删除操作,避免生成空字符串。
  • 操作逻辑:
    • 替换:随机选择一个字母位置,替换为随机大小写字母
    • 插入:随机选择一个位置(包括开头和结尾),插入随机大小写字母
    • 删除:随机选择一个字母位置,删除该字符

内容的提问来源于stack exchange,提问作者user21007683

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 17:10:39