当前位置:   article > 正文

自然语言处理-错字识别(基于Python)kenlm、pycorrector_python错别字检测

python错别字检测

转载请注明出处:https://blog.csdn.net/HHTNAN
n元分词法参见:https://blog.csdn.net/HHTNAN/article/details/62046652
关于kenlm统计语言模型:https://blog.csdn.net/HHTNAN/article/details/84231733

中文文本纠错划分

中文文本纠错任务,常见错误类型包括:

  • 谐音字词,如 配副眼睛-配副眼镜
  • 混淆音字词,如 流浪织女-牛郎织女
  • 字词顺序颠倒,如 伍迪艾伦-艾伦伍迪
  • 字词补全,如爱有天意-假如爱有天意
  • 形似字错误,如 高梁-高粱
  • 中文拼音全拼,如 xingfu-幸福
  • 中文拼音缩写,如 sz-深圳
  • 语法错误,如想象难以-难以想象

当然,针对不同业务场景,这些问题并不一定全部存在,比如输入法中需要处理前四种,搜索引擎需要处理所有类型,语音识别后文本纠错只需要处理前两种, 其中’形似字错误’主要针对五笔或者笔画手写输入等。

简单总结了一下中文别字错误类型:

  1. 别字: 感帽,随然,传然,呕土

  2. 人名,地名错误:哈蜜(正:哈密)

  3. 拼音错误:咳数(ke shu)—> ke sou,

  4. 知识性错误:广州黄浦(埔)

  5. 用户发音、方言纠错:我系东北滴黑社会,俚蛾几现在在我手上。(我是东北的黑社会,你儿子现在在我手上。)

  6. 重复性错误:在 上 上面 上面 那 什么 啊

  7. 口语化问题:呃 。 呃 ,啊,那用户名称是叫什么呢?(正:那用户名称是叫什么呢?)

解决方案

规则的解决思路

  • 中文纠错分为两步走,第一步是错误检测,第二步是错误纠正;
  • 错误检测部分先通过结巴中文分词器切词,由于句子中含有错别字,所以切词结果往往会有切分错误的情况,这样从字粒度和词粒度两方面检测错误,
    整合这两种粒度的疑似错误结果,形成疑似错误位置候选集;
  • 错误纠正部分,是遍历所有的疑似错误位置,并使用音似、形似词典替换错误位置的词,然后通过语言模型计算句子困惑度,对所有候选集结果比较并排序,得到最优纠正词。

深度模型的解决思路

  • 端到端的深度模型可以避免人工提取特征,减少人工工作量,RNN序列模型对文本任务拟合能力强,rnn_attention在英文文本纠错比赛中取得第一名成绩,证明应用效果不错;
  • CRF会计算全局最优输出节点的条件概率,对句子中特定错误类型的检测,会根据整句话判定该错误,阿里参赛2016中文语法纠错任务并取得第一名,证明应用效果不错
  • seq2seq模型是使用encoder-decoder结构解决序列转换问题,目前在序列转换任务中(如机器翻译、对话生成、文本摘要、图像描述)使用最广泛、效果最好的模型之一。

特征

  • kenlm: kenlm统计语言模型工具
  • rnn_lm: T
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/357120
推荐阅读
相关标签
  

闽ICP备14008679号