(很久没在csdn写文章了,一直在知乎,现在慢慢搬过来,原创在https://blog.csdn.net/weixin_38100489哈)
看了https://zhuanlan.zhihu.com/p/142168215有一点思考。
之前做对话系统时,看实际的对话记录,发现口语文本有如下特点:
一是大量的口语词汇;二是打错字;三是语序错乱。
1、处理错字
很自然有两种思路:一是把错字纠正;二是就把训练集也刻意弄出错字。
1.1、错字纠正
1.1.1、针对应用场景和实际历史记录,做常见错字的规则。(实际上没有想象的那么复杂。比例类似二八定律。)
1.1.2、把原文本和正确文本当做seq2seq去做。(但是训练集从哪里来呢?标不如构造,构造方式见下面的1.2部分)
1.2、向训练集中加入错字
不妨先想想错字是怎么来的,然后再说怎么做。
1.2.1、如果是用本来就含有错字的真实数据做标注,且量足够大,那就不存在这个问题了。(但实际上,多大的量才算大呢?后面的方法还是能提升的)
1.2.2、(英文中的拼写错误对应中文)在按对按键后,在输入法中选择了错误的字词。
(比如,上面这句话,我最初就输入成了“在按对‘案件’后”,无语。。)
可以在训练样本中,分词后选一个词,出拼音,用拼音出候选词列表,选择除了真实词汇之外