1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > lstm 文本纠错_工业界纠错系统

lstm 文本纠错_工业界纠错系统

时间:2023-10-09 03:04:34

相关推荐

lstm 文本纠错_工业界纠错系统

本篇文章,主要来唠嗑下工业界的纠错系统怎么设计?包括:基于规则的纠错系统(简单的英文纠错、复杂的中文纠错)、基于NN的纠错系统。当然,在成熟的工业界纠错系统中,最好是结合规则&&NN方法。

此外,罗列工业界的解决方案,包括百度&&腾讯等解决方案。

好了,开始上干货!!!

一、英文纠错

英文的纠错比较简单,其犯错的类型不多,因此解决方案相对简单,代码开发量不大。

1、错误类型

拼写错误:插入、删除、替换、调序;

2、方法论

O:输入的词语;I:和O编辑距离接近的词语,这边词语是可能的正确拼写词语;

P(I|O):对应“输入词语->候选词语”的概率;

P(O|I):对应“候选词语->输入词语”犯错的可能性,这边为常说的混淆矩阵;

P(I):对应语言模型概率;

i)召回:先找到和输入词语编辑距离接近的词语候选;

ii)离线挖掘:基于“语料/搜索日志等”,计算出P(O|I)对应的混淆矩阵;

iii)解码:在召回的解码图上,利用LM Score计算出最优的路径最为纠错结果;此外在解码图上可以引入其他的一些特征,例如:词频信息等;

3、开源解决方案

/barrust/pyspellchecker​

一种简单的英文拼写纠错解决方案,基于编辑距离召回&&选取词频最高的词语作为候选。

二、中文纠错

工业界的纠错系统,是一套特别复杂的解决方案,代码开发量巨大。整体的纠正质量主要取决于:离线资源挖掘计算的混淆矩阵、词频信息、语言模型、PMI片段相关性等。

1、错误类型

• 谐音字词,如 配副眼睛-配副眼镜

• 混淆音字词,如 流浪织女-牛郎织女

• 字词顺序颠倒,如 伍迪艾伦-艾伦伍迪

• 字词补全,如 爱有天意-假如爱有天意

• 形似字错误,如 高梁-高粱

• 中文拼音全拼,如 xingfu-幸福

• 中文拼音缩写,如 sz-深圳

• 语法错误,如 想象难以-难以想象

2、方法论

i)检错

有些解决方案,例如:百度的纠错,会引入LSTM/Transformer+CRF的方案来检错;

ii)候选召回

离线挖掘:基于搜索日志,挖掘各种犯错可能性,并计算对应的混淆矩阵; (混淆矩阵的离线资源挖掘,决定了基于规则纠错系统的整体效果,正常query纠错一般是基于query日志数据进行挖掘,具体细节感兴趣的可以在评论区一起讨论)

索引:基于拼音&&字形&&词语&&片段索引进行召回;

iii)纠错排序

粗排:融合语言模型打分、词频、PMI片段相关性打分等特征,进行解码排序;

精排:使用wide&&deep模型,deep部分:当前错误点上下文表示,wide部分:基于形音、词法、语义、用户行为等特征学习原词与候选词的多维度距离表示;

3、开源解决方案

/shibing624/pycorrector​

包含基于规则&&NN模型的解决思路;

这个开源解决方案,是目前看到功能比较齐全&&方案设计比较靠谱的。

三、基于NN的纠错

构造纠错的pair对,使用encoder&&decoder框架进行纠错。总的来看,目前主要是基于transformer结构,并结合一些nmt的trick或者多目标来优化纠错。具体工业界上线,尤其是在搜索的query纠错场景,由于对时延的要求比较高(正常平均一个query的响应需要控制5ms附近),需要做蒸馏来推上线。

顺带提一下,基于ASR的纠错,纠错pair天然的可以引入nbest犯错可能性,很容易使用这个方向的解决方案。

1、英文文本纠错比赛第一名

Attention-based Encoder-Decoder Networks for Spelling and Grammatical Error Correction​

2、有道团队:NLPCC中文纠错第一名

A Neural Machine Translation Approach to Chinese Grammatical Error Correction​.cn

拼写错误:使用SIGHAN CSC Datasets中提供字音、字形相似表召回候选,基于5-gram模型纠错;

语法纠错:采用transformer的seq2seq框架,基于word&&char粒度分别建模;

模型组合:character nmt + character&&subword nmt + subword nmt + subword&&character nmt,四种模型分别得到最优的纠错候选,最后靠5-gram评分得到ppl最低的句子作为纠错结果。

3、阿里巴巴:NLPCC中文纠错第二名

Chinese Grammatical Error Correction Using Statistical and Neural Models​

i)基于规则方法;

ii)基于统计方法:SMT(计算错误句子和正确句子的条件概率)+LM+噪声信道模型,beam search得到最优候选作为纠错结果;

iii)基于nmt方法:seq2seq(encoder和decoder各2层lstm);

iv)模型组合:对上面的几路结果,引入5种冲突解决方案,选出最优的候选作为纠错结果。

4、北京语言大学团队:NLPCC中文纠错第三名

A Sequence to Sequence Learning for Chinese Grammatical Error Correction​

采用Conv+MultiHopAttention+Seq2Seq模型进行纠错,这套方案是基于fairseq框架,在初是NMT的benchmark方案。在比赛中,是唯一使用单模型的队伍。

5、小米ASR纠错

/p/160837451​

自构造模糊音生成器进行候选召回,采用BERT进行纠错。

缺陷:基于bert的纠错只有一个encoder,只能进行序列对齐的纠错。

四、工业界解决方案

i)解决方案汇总

百度纠错解决方案

百度中文纠错技术 | ruilog​

腾讯纠错解决方案

/developer/article/1030059 ​

达观纠错解决方案

达观数据搜索引擎的Query自动纠错技术和架构 丨 达观动态-达观数据-企业大数据技术服务专家​

一些开源的解决方案

/p/40806718​

ii)api调用

百度纠错API

文本纠错_文本纠错算法_百度文本纠错-百度AI开放平台​

腾讯纠错API

纠错API - 腾讯开放平台​wiki.

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。