V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
faywong8888
V2EX  ›  输入法

如何实现一个拼音拼写纠错算法?

  •  1
     
  •   faywong8888 · 7 天前 · 1078 次点击

    要求

    如常见智能拼音输入法,用户输入的拼写有简拼( zfb 、wx )、局部简拼( zhongguor )、全拼( nihao ),其中会有各种拼写错误(微位替换,w->a/s/d/e/q ,少字符,多字符,临近字符对调,整体转置 wang -> angw 等),请问要开发一个纠错算法把错误拼写纠回正确拼写,应该如何去设计,需要使用哪些数据结构/算法?

    背景

    自己是 Rime 重度用户,想为 Rime 输入法增加纠错模块。同时也想开一贴和众多 v 友研究下这个细分的领域技术。集思广益,启发彼此。开源输入法基本上纠错这块都做得不好。

    9 条回复    2025-03-16 01:31:19 +08:00
    faywong8888
        1
    faywong8888  
    OP
       7 天前
    微位替换 ->键位替换
    yyf1234
        2
    yyf1234  
       7 天前 via iPhone
    算法叫 编辑距离
    katwalk
        3
    katwalk  
       7 天前
    对对对,经常输错相邻的拼音,期待楼主能找到解决的办法 🤗
    hhhhhh123
        4
    hhhhhh123  
       7 天前
    @katwalk #3 现在的输入都有纠错功能。
    xzpjerry731
        5
    xzpjerry731  
       7 天前 via iPhone
    补全还是纠错?
    lesterchen
        6
    lesterchen  
       7 天前
    我现在用键盘打字最常见的错误情况是.拼音的字母顺序错了~
    jarry777
        7
    jarry777  
       7 天前 via iPhone
    迫切需要双拼纠错。
    目前在用 gboard ,符号显示不全的 bug 得两年了吧都没人修
    hwdq0012
        8
    hwdq0012  
       7 天前
    vim spell 不知道怎么弄的,想想,好像是你自己维护一个字典,然后拼写的在字典里很像但不是的,就会有提示,按快捷键类似代码那样补全,就纠正了

    ]s 跳到下一个拼写问题的位置
    [s 跳到上一个拼写问题的位置
    z=选择正确拼写
    zg 添加用户拼写
    zw 删除用户拼写
    :set spell 启用拼写
    :set nospell

    自己做的话我会用 myers 算法(git diff 算法好像也是这样),可以对比字典里的词语和正文的词语相似度
    不过好像正文还需要分词一下,应该也有什么现成的中文分词工具吧
    katwalk
        9
    katwalk  
       7 天前
    @hhhhhh123 #4 太弱了,我用的搜狗。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2111 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 00:46 · PVG 08:46 · LAX 17:46 · JFK 20:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.