一。工作目標
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行:
對齊機率
目標句子
源語言句子