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、開源解決方案
https://github.com/barrust/pyspellchecker?github.com一種簡單的英文拼寫糾錯解決方案,基于編輯距離召回&&選取詞頻最高的詞語作為候選。
二、中文糾錯
工業界的糾錯系統,是一套特別復雜的解決方案,代碼開發量巨大。整體的糾正質量主要取決于:離線資源挖掘計算的混淆矩陣、詞頻信息、語言模型、PMI片段相關性等。
1、錯誤類型
? 諧音字詞,如 配副眼睛-配副眼鏡
? 混淆音字詞,如 流浪織女-牛郎織女
? 字詞順序顛倒,如 伍迪艾倫-艾倫伍迪
? 字詞補全,如 愛有天意-假如愛有天意
? 形似字錯誤,如 高梁-高粱
? 中文拼音全拼,如 xingfu-幸福
? 中文拼音縮寫,如 sz-深圳
? 語法錯誤,如 想象難以-難以想象
2、方法論
i)檢錯
有些解決方案,例如:百度的糾錯,會引入LSTM/Transformer+CRF的方案來檢錯;
ii)候選召回
離線挖掘:基于搜索日志,挖掘各種犯錯可能性,并計算對應的混淆矩陣; (混淆矩陣的離線資源挖掘,決定了基于規則糾錯系統的整體效果,正常query糾錯一般是基于query日志數據進行挖掘,具體細節感興趣的可以在評論區一起討論)
索引:基于拼音&&字形&&詞語&&片段索引進行召回;
iii)糾錯排序
粗排:融合語言模型打分、詞頻、PMI片段相關性打分等特征,進行解碼排序;
精排:使用wide&&deep模型,deep部分:當前錯誤點上下文表示,wide部分:基于形音、詞法、語義、用戶行為等特征學習原詞與候選詞的多維度距離表示;
3、開源解決方案
https://github.com/shibing624/pycorrector?github.com包含基于規則&&NN模型的解決思路;
這個開源解決方案,是目前看到功能比較齊全&&方案設計比較靠譜的。
三、基于NN的糾錯
構造糾錯的pair對,使用encoder&&decoder框架進行糾錯。總的來看,目前主要是基于transformer結構,并結合一些nmt的trick或者多目標來優化糾錯。具體工業界上線,尤其是在搜索的query糾錯場景,由于對時延的要求比較高(正常平均一個query的響應需要控制5ms附近),需要做蒸餾來推上線。
順帶提一下,基于ASR的糾錯,糾錯pair天然的可以引入nbest犯錯可能性,很容易使用這個方向的解決方案。
1、2014英文文本糾錯比賽第一名
Attention-based Encoder-Decoder Networks for Spelling and Grammatical Error Correction?arxiv.org2、有道團隊:2018年NLPCC中文糾錯第一名
A Neural Machine Translation Approach to Chinese Grammatical Error Correction?tcci.ccf.org.cn拼寫錯誤:使用 SIGHAN 2013 CSC Datasets中提供字音、字形相似表召回候選,基于5-gram模型糾錯;
語法糾錯:采用transformer的seq2seq框架,基于word&&char粒度分別建模;
模型組合:character nmt + character&&subword nmt + subword nmt + subword&&character nmt,四種模型分別得到最優的糾錯候選,最后靠5-gram評分得到ppl最低的句子作為糾錯結果。
3、阿里巴巴:2018年NLPCC中文糾錯第二名
Chinese Grammatical Error Correction Using Statistical and Neural Models?link.springer.comi)基于規則方法;
ii)基于統計方法:SMT(計算錯誤句子和正確句子的條件概率)+LM+噪聲信道模型,beam search得到最優候選作為糾錯結果;
iii)基于nmt方法:seq2seq(encoder和decoder各2層lstm);
iv)模型組合:對上面的幾路結果,引入5種沖突解決方案,選出最優的候選作為糾錯結果。
4、北京語言大學團隊:2018年NLPCC中文糾錯第三名
A Sequence to Sequence Learning for Chinese Grammatical Error Correction?link.springer.com采用Conv+MultiHopAttention+Seq2Seq模型進行糾錯,這套方案是基于fairseq框架,在17年初是NMT的benchmark方案。在比賽中,是唯一使用單模型的隊伍。
5、小米ASR糾錯
https://zhuanlan.zhihu.com/p/160837451?zhuanlan.zhihu.com自構造模糊音生成器進行候選召回,采用BERT進行糾錯。
缺陷:基于bert的糾錯只有一個encoder,只能進行序列對齊的糾錯。
四、工業界解決方案
i)解決方案匯總
百度糾錯解決方案
百度中文糾錯技術 | ruilog?www.ruilog.com騰訊糾錯解決方案
https://cloud.tencent.com/developer/article/1030059 ?cloud.tencent.com達觀糾錯解決方案
達觀數據搜索引擎的Query自動糾錯技術和架構 丨 達觀動態-達觀數據-企業大數據技術服務專家?www.datagrand.com一些開源的解決方案
https://zhuanlan.zhihu.com/p/40806718?zhuanlan.zhihu.comii)api調用
百度糾錯API
文本糾錯_文本糾錯算法_百度文本糾錯-百度AI開放平臺?ai.baidu.com騰訊糾錯API
糾錯API - 騰訊開放平臺?wiki.open.qq.com總結
以上是生活随笔為你收集整理的lstm 文本纠错_工业界纠错系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 适配器和绑定 没找到_亚马逊如何收款?附
- 下一篇: 大学生英语fif测试系统_英语听力解题技