【论文阅读】Neural Pinyin-to-Chinese Character Converter

 
 
使用seq2seq的方式,将拼音序列转换为汉字序列,模型结构:
 
1.准备训练数据
    • zho_news_2007-2009_1M-sentences.txt,100w,分词,实际上没有使用分词信息
    • 1       博客园
2.构建Pinyin-Chinese平行语料,zh.tsv,p  [char] + ["_"] * (len(p) - 1)
    • 1       bokeyuan    博_客_园___
3.生成词典,保存为pkl文件
    • pnyn2idx, idx2pnyn, hanzi2idx, idx2hanzi
4.训练模型
    • 读取词典、训练集(x=[pinyin ids], y=[hanzi ids])
    • x->model->与y计算交叉熵loss
5.预测
    • 整体看预测结果还是比较靠谱的,部分字,会预测同音错误的字,训练语料中 武 比 吴多,武警也比较多,无法解释 xinjiangwujing 新疆吴警 预测错误的原因
    • 一些拼音错误的case,如果原拼音不存在,会生成一个比较相似拼音的候选wuo->duo,正确的拼音也可能生成相似候选jiao->tiao
    • 专有名词或成语等效果不是很好

 

优点:end2end模型结构,不需要各种词表、人工特征等,只要有中文语料就可以得到平行语料,缺点:深度学习模型的不可解释性,有些没有很好的学习到上下文。

思考:如果扩充、调整训练语料,不知是否得到一个可以工业化应用的模型效果。

 

posted @ 2020-03-24 16:47  AliceYing  阅读(340)  评论(0)    收藏  举报