一. 处理原始语料,我用的语料是http://mitel.ict.ac.cn/mteval/data/train.xml.gz中的30万句对
1. 用python里面的ElementTree 将XML文件解析出来并分成ch和en两个文件(注意,该语料本身是有问题的,有些标记没有匹配,需要先用正则进行修改。另外,需要先用notepad 将语料转换成utf-8,并在XML文件的第一行写上<?xml version="1.0" encoding="utf-8"?>,再在python脚本的第一行写上 #encoding=utf-8)
另注:如果在linux下遇到乱码问题,则要修改linux系统的编码和文本本身的编码对应(在notepad下可以修改文本本身编码);如果在securecrt下遇到乱码问题,则要修改回话设置中的编码和文本本身的编码对应;如果在运行程序之后遇到乱码问题,则要检测那个程序运行要求的字符编码格式,然后先将文本转换成对应的格式再运行程序。
2.生成的两个文件ch和en
对于ch文件:进行dos2unix转换,进行a2b转换,用ICTCLAS进行切分(注意这过程的编码问题)
对于en文件:用tokenizer进行切分,用lowercase工具进行小写化(这一步要在clean-n之后)
对于两个文件:用clean-n工具去掉过长的句子
3.语言模型的训练
easy, pass
4.train-model
运行train-model.perl,注意其中的rootdir和corpus选项的路径要用绝对路径,否则可能有错
(此过程本人经历坎坷,先在曙光机上跑,可是用了一下装的不完整的moses,结果导致错误,一直纠结,于是到160机上跑才一次成功,在此处记录下160机上完整moses的路径,以待后用:/bwdata160/ljz/moses/moses )
5. 处理dev语料,同样切分,大小写转换
6. tuning