编写一个Python方法根据字符串生成错别字

3 投票
1 回答
2460 浏览
提问于 2025-04-17 02:20

我可以加一些东西,让它根据两个字之间的Levenshtein距离来制造错别字,或者像逆向工程诺维格的拼写检查文章那样做。

不过,常见的错别字是怎么产生的呢?

有没有人写过相关的方法?

1 个回答

2

其实没有一种通用的错别字生成算法,因为这种算法要根据目标语言和应用场景来定。比如说,如果你想生成垃圾域名,可以用以下几种方法(以meta.stackoverflow.com为例):

  1. 漏掉点:met*as*tackoverflow.com(这应该很简单;)
  2. 插入字符:meta.stackoverflo*ww*.com(就是在每个字符后面加一个重复的字符)
  3. 省略字符:meta.stackoverf*lw*.com(就是去掉一个字符)
  4. 字符排列:meta.stackove*fr*low.com(这里涉及到纯数学)
  5. 字符替换:meta.*d*tackoverflow.com(这里至少有两种策略,见下文)

在字符替换的情况下,我们可以有至少两种情况:

  1. 发音相似的字母(比如 c <-> k,z <-> ts,具体要看语言)
  2. 相邻字母的错别字(比如在qwerty键盘上,s <-> d,d <-> f)呃,我其实在这里也打错了,s <-> d的情况 :)

希望这些对你有帮助……

撰写回答