fast align工具包的使用

2021-09-08 05:41:32 字數 2464 閱讀 3835

fast_align是乙個優秀的快速詞對齊工具包,在github上有詳細的介紹

注意:使用前必須先進行分詞,特別是漢語語料。否則沒有實際意義

需要注意的是,這裡對檔案的格式有一定要求,每行是源語言句子及其目標語言翻譯,由帶有前導和尾隨空格(|||)的三重管道符號分隔。例如3句德語 - 英語平行語料庫是:

doch jetzt ist der held gefallen . ||| but now the hero has fallen .

neue modelle werden erprobt . ||| new models are being tested .

doch fehlen uns neue ressourcen . ||| but we lack new resources .

可以用paste命令來完成

paste -d '|||' file1 file2
如test1.txt為:

test2.txt為:

發現乙個致命的問題:vi results.txt

只加了乙個豎槓,經過測試,只識別-d後引號內第乙個字元

在fast_align上進行了測試,只有乙個豎槓做分隔符是無法被fast_align識別的,沒有更好的方法就只能寫python了

也可以先用特殊符號(語料中沒有出現的符號)進行分割,然後把該符號用『 ||| 』進行替換

paste  -d'|' test1.txt test2.txt > results.txt

vi results.txt

:%s/|/ ||| /g

事實證明對於較大的語料不如用python,比較快而且不輕易出bug

#encoding=utf-8

import codecs

from tqdm import tqdm

rootpath = ''

topath = ''

with codecs.open(rootpath,'r') as f1, codecs.open(topath,'w') as f2:

for line in tqdm(f1):

f1_lines = line.strip().replace('\t',' ||| ')

f2.write(f1_lines + '\n' )

要特別注意的是,|||前後都有乙個空格,否則無法識別

./fast_align -i text.fr-en -d -o -v > forward.align
./fast_align -i text.fr-en -d -o -v -r > reverse.align
最後可以把兩部分進行合併,得到乙個綜合考慮兩個方向的對齊

./atools -i forward.align -j reverse.align -c grow-diag-final-and > final.align
補充乙個,和paste對應,將乙個檔案按列切分可以使用cut

例:[root@localhost test]# cut student.data 

no      name    mark

1       lufubo  98

2       cbiao   88

[root@localhost test]# cut -f2,3 student.data 

name    mark

lufubo  98

cbiao   88

[root@localhost test]# cut -f2,3 --complement student.data no1

2如若要指定欄位的定界符,使用-d選項:

[root@localhost test]# cat student.data 

no;     name;   mark

1;      lufubo; 98

2;      cbiao;  88

[root@localhost test]# cut -f2 -d ";" student.data 

name

lufubo

cbiao

將檔案排序後去重:

sort -u monoling.pre -o monoling.sort

fast align工具包使用踩坑記錄

乙個小小的任務用了兩天時間,踩了無數坑,記錄下來以作警示 構建雙語詞典,用於對新語料的質量進行評分 由已有的質量較高的語料構建雙語詞典,在新的語料上計算每句翻譯對應成功的概率,有乙個閾值,得分較低的語料認為質量差 對已有的較高質量語料進行預處理 雙語語料進行合併 利用fast align工具進行對齊...

DBMS REPAIR 工具包的使用

dbms repair 工具包的使用 雖然dbms repair 是乙個程式包,它也是dba的乙個工具.通過執行dbms repair 包,oracle 給出關於損壞塊的詳細資訊,並告訴使用者如何修復他們 dbms repair 包記錄了關於損壞塊的全部詳細資訊,並在乙個稱為repair key的特...

拷貝工具包

常用工具包封裝.懶得引各種雜七八的包,輕量級包.cglib還是需要的 scope provided 1.0.0 copyutils beancopier封裝.提供簡單的單一複製與list複製.不支援自定義建構函式的類的複製.abc abc copyutil copysigle abc class o...