七月NLP课程笔记(4)-基于统计的翻译
# 双语语料
需要使用平行语料进行训练,例如,逐行对应的中文和英文语句(字幕组中英字幕等)
# 预处理
ref: http://blog.csdn.net/han_xiaoyang/article/details/10273221
滤除某些内容 滤除数字、日期、时间、网址等没有什么翻译意义的内容,可通过正则表达式进行处理。 中文分词 中文需要进行分词,可以采用传统基于词典的正向最大匹配法,来进行中文分词。 英文分词 英文主要是将大写字母改为小写字母等标准化,将某些标点符号与单词之间用空格分开。
# 词对齐
ref: http://blog.csdn.net/han_xiaoyang/article/details/10283995
不同语言之间的句子结构和语序都是不一样的,例如 今天天气真好 The weather is good today,需要对每一句话进行处理,做一个词对齐的操作,即额外记录下两种语言中同一个词的位置对应关系。
词对齐可使用GIZA++工具(是自动的过程,主要思想是观察发现两个词经常一起出现,则认为他们可以对应,参照 http://blog.csdn.net/dark_scope/article/details/8774000 ),GIZA++生成的是两个单向的词对齐结果(例如,中to英,英to中),可通过自己的方法进行词对齐对称化,即将两个单向的结果合并成双向的。
# 短语抽取
ref: http://blog.csdn.net/han_xiaoyang/article/details/10298821 http://blog.csdn.net/han_xiaoyang/article/details/10299787
仅仅有词与词的对应是不够的,需要更进一步抽取短语之间的对应,然后构建短语转移的概率。 通过这一步,得到了某个短语有多大概率翻译成另外语言中的某个短语。
# 进行翻译
ref: http://www.doc88.com/p-6751596228169.html
进行翻译的目标是,根据各种词和短语的对应关系,找出一种出现的可能性最大的翻译方式。 其中,有三个组成部分:①翻译模型:即上面某个短语翻译成另外语言中的某个短语的概率,②调序模型:即需要适当调整翻译后的语序,③语言模型,即n元组,看看翻译后的语言是否是通顺自然的表达。
上面过程可以生成翻译模型和调序模型,语言模型可通过其他方式生成。
通过beam search的方式,简化穷举的个数,避免过大的计算。
# 效果评价
BLEU http://blog.csdn.net/qq_31584157/article/details/77709454
# 实际案例
东北大学 NiuTrans统计机器翻译系统 参照其各个步骤,可以了解一下如何制作一个基于统计的翻译系统。 http://nlplab.com/NiuPlan/NiuTrans.ch.html http://nlplab.com/NiuPlan/NiuTrans.Phrase.ch.html