一。工作目标
1.构建汉英对齐语料库。
2.下载并编译GIZA++,CMU-Cambridge Statistical Language Modeling toolkit,(以下简称CMU toolkit)获得实验所需的可执行文件。
3.利用目标1所构建的语料库,通过GIZA++进行IBM Model 1-5的训练。
4.利用目标1所构建的语料库,通过mkcls构建word classes。
5.利用目标1所构建的语料库的英文语料,通过CMU toolkit生成英语的语言模型。
二。实验环境
Ubuntu 8.04 LTS Server
gcc version 4.2.4
三。工作步骤
以下按工作目标分节。
3.1构建汉英对齐语料库
1.从以下链接下载双语句对齐语料库:
http://www.nlp.org.cn/docs/docredirect.php?doc_id=991。
该语料库共有1500个英汉对照句对,但某中文句占据了两行,导致整个文件共3001行。需将该中文句找出合并成一行。
2.分离出英文句和中文句,分别保存为english和chinese。
某些中文句中含有英文,某些英文句含有全角标点符号,在分离时需注意。使用如下命令找出所有的英文句,并保存到english:
grep '[aeiou]' 1500.txt > english
然后将english中含有英文的中文句手工删除。
使用如下命令找出所有的中文句,并保存到chinese:
grep -v '^[[:alnum:][:space:][:punct:]]*$' 1500.txt > chinese
然后将chinese中含有全角标点的英文句手工删除。完毕。
本节的输入输出文件可以从这里下载:3000行的1500.txt,english,chinese。
3.2下载并编译程序
3.2.1 GIZA++
1.从这里下载最新的GIZA++:
http://code.google.com/p/giza-pp/downloads/list
该版本在gcc version 3.4.6下无法通过编译。我使用的gcc是4.2.4版本的。注意,解压后修改giza-pp/GIZA++-v2/Makefile,找到-DBINARY_SEARCH_FOR_TTABLE选项,将其删除。原因请看这里。
2.在giza-pp下运行make。make正常结束后,在GIZA++-v2和mkcls-v2目录下各生成了一些可执行文件。完毕。
3.2.2 CMU toolkit
1.从这里下载最新的CMU toolkit:
http://svr-www.eng.cam.ac.uk/~prc14/toolkit.html
2.解压后make即可。完毕。
本节生成的全部可执行文件可以从这里下载:bin.tar.gz。注意,如果你的libc版本与我的不同,你可能无法运行它们。
/////////////////////////////////////
语料预处理
目的:将各种格式不同的生语料进行加工,形成格式统一的语料库,以便进行词语对齐
步骤:
汉语分词
• 工具:ICTCLAS
汉语全半角转换
• 功能: 将A3区的全角字符转换为半角字符
• 程序:A2B
• 命令行: A2B input output
英语分词
• 工具:Brill
英语首字母小写还原
• 功能:将英语语料库中的句首字母进行大小写转换。如果首单词在语料库中出现的次数小写多于大写,则将首字母变为小写。
• 程序:Truecase
• 命令行:Truecase input output
plain2snt:统计单词数,格式转换
命令行 ./plain2snt.out chinese english
/**/
2 上海 738
3 浦东 76
4 开发 389
5 与 3724
chinese.vcb
Format:
单词编号 单词 单词出现次数
/**/
1
2345678
s2 3 4 5 6 7 8 9 10 11 2 12 4 13 14 15
chinese_english.snt
Format: 每个句对占3行
句子出现次数
汉语句子
英语句子
mkcls:单词聚类
命令行 ./mkcls -n1 -pchinese -Vchinese.vcb.classes opt
-n:表示训练迭代的次数,一般迭代1次
-p:要聚类的文本,一行一句(已分词)
-V:输出信息
opt:优化运行
/**/
1925年 17
1925日 47
chinese.vcb.classes
Format:
单词 词类
/**/
2:1月份,83%,AmocoCadiz,_,iii,百分之三十九点四
3:+,TC,百二十万,百六十万,百五十万
chinese.vcb.classes.cats
Format:
词类:单词ss,单词
GIZA++:词语对齐
命令行 ./GIZA++ -S chinese.vcb -T english.vcb -C chinese_english.snt -O c2e
-S:源语言单词表
-T:目标语言单词表
-C:源语言—〉目标语言句子对
-O:输出文件夹
运行结束后,输出很多文件到c2e/文件夹中,主要是产生的对齐文件:
# Sentence pair (1) source length 7 target length 16 alignment score : 4.99368e-28
the development of Shanghai 's Pudong is in step with the establishment of its legal system
NULL ({ 1 3 8 11 13 }) 上海 ({ 4 }) 浦东 ({ 5 6 }) 开发 ({ 2 }) 与 ({ 10 }) 法制 ({ 15 16 }) 建设 ({ }) 同步 ({ 7 9 12 14 })
*.A3.final,每句对3行:
对齐概率
目标句子
源语言句子