li-aolong.github.io icon indicating copy to clipboard operation
li-aolong.github.io copied to clipboard

7.25——中文文本纠错开源项目整理

Open li-aolong opened this issue 5 years ago • 2 comments

pycorrector

  • github地址:https://github.com/shibing624/pycorrector
  • 采用的方案
    1. 基于规则
      • 中文纠错分为两步走,第一步是错误检测,第二步是错误纠正;
      • 错误检测部分先通过结巴中文分词器切词,由于句子中含有错别字,所以切词结果往往会有切分错误的情况,这样从字粒度和词粒度两方面检测错误, 整合这两种粒度的疑似错误结果,形成疑似错误位置候选集;
      • 错误纠正部分,是遍历所有的疑似错误位置,并使用音似、形似词典替换错误位置的词,然后通过语言模型计算句子困惑度,对所有候选集结果比较并排序,得到最优纠正词
    2. 基于深度模型
      • 端到端的深度模型可以避免人工提取特征,减少人工工作量,RNN序列模型对文本任务拟合能力强,rnn_attention在英文文本纠错比赛中取得第一名成绩,证明应用效果不错;
      • CRF会计算全局最优输出节点的条件概率,对句子中特定错误类型的检测,会根据整句话判定该错误,阿里参赛2016中文语法纠错任务并取得第一名,证明应用效果不错;
      • seq2seq模型是使用encoder-decoder结构解决序列转换问题,目前在序列转换任务中(如机器翻译、对话生成、文本摘要、图像描述)使用最广泛、效果最好的模型之一。
      • 包括:kenlm,rnn_lm,rnn_attention,rnn_crf,seq2seq,seq2seq_attention,transformer,bert

correction

  • github地址:https://github.com/ccheng16/correction
  • 大致思路:
    • 使用语言模型计算句子或序列的合理性
    • bigram, trigram, 4-gram 结合,并对每个字的分数求平均以平滑每个字的得分
    • 根据Median Absolute Deviation算出outlier分数,并结合jieba分词结果确定需要修改的范围
    • 根据形近字、音近字构成的混淆集合列出候选字,并对需要修改的范围逐字改正
    • 句子中的错误会使分词结果更加细碎,结合替换字之后的分词结果确定需要改正的字
    • 探测句末语气词,如有错误直接改正

Cn_Speck_Checker

  • github地址:https://github.com/PengheLiu/Cn_Speck_Checker
  • 程序原理:
    • 使用了贝叶斯定理
    • 初始化所有潜在中文词的先验概率,将文本集(50篇医学文章)分词后,统计各个中文词的出现频率即为其先验概率
    • 当给定一待纠错单词时,需要找出可能的正确单词列表,这里根据字符距离来找出可能的正确单词列表
    • 对构造出来的单词做了一次验证后再将其加入候选集合中,即判断了下该词是否为有效单词,根据其是否在单词模型中

chinese_correct_wsd

Autochecker4Chinese

  • github地址:https://github.com/beyondacm/Autochecker4Chinese
  • 方法:
    • 构造一个词典来检测中文短语的拼写错误,key是中文短语,值是在语料库中的频率
    • 对于该字典中未出现的任何短语,检测器会将其检测为拼写错误的短语
    • 使用编辑距离为错误拼写的短语制作正确的候选列表
    • 对于给定的句子,使用jieba做分割
    • 在分段完成后获取分段列表,检查其中是否存在保留短语,如果不存在,那么它是拼写错误的短语

xmnlp

  • GitHub地址:https://github.com/SeanLee97/xmnlp
  • 功能概览:
    • 中文分词 & 词性标注
      • 支持繁體
      • 支持自定义词典
    • 中文拼写检查
    • 文本摘要 & 关键词提取
    • 情感分析
    • 文本转拼音
    • 获取汉字偏旁部首

li-aolong avatar Jul 25 '19 12:07 li-aolong

有无深度学习的模型相关的。。。。

aaa1999 avatar Apr 28 '21 04:04 aaa1999

有无深度学习的模型相关的。。。。

https://github.com/ACL2020SpellGCN/SpellGCN

wangwang110 avatar Dec 16 '21 09:12 wangwang110