2012-08-29 34 views
4

我試圖在窗口上使用giza ++(使用Cygwin編譯器)。 我用這個代碼:不好的結果和評價從吉薩++

//假設源語言是法語和目標語言是英語

plain2snt.out FrenchCorpus.f EnglishCorpus.e 

mkcls -c30 -n20 -pFrenchCorpus.f -VFrenchCorpus.f.vcb.classes opt 
mkcls -c30 -n20 -pEnglishCorpus.e -VEnglishCorpus.e.vcb.classes opt 
snt2cooc.out FrenchCorpus.f.vcb EnglishCorpus.e.vcb FrenchCorpus.f_EnglishCorpus.e.snt >courpuscooc.cooc 

GIZA++ -S FrenchCorpus.f.vcb -T EnglishCorpus.e.vcb -C FrenchCorpus.f_EnglishCorpus.e.snt -m1 100 -m2 30 -mh 30 -m3 30 -m4 30 -m5 30 -p1 o.95 -CoocurrenceFile courpuscooc.cooc -o  dictionary 

但是從吉薩++獲取輸出文件和評估輸出後,我觀察到的結果太糟糕了。

我的評價結果​​爲:

RECALL = 0.0889

PRECISION = 0.0990

F_MEASURE = 0.0937

AER = 0.9035

劑量任何身體知道原因嗎?原因可能是我忘記了一些參數,或者我應該改變其中的一些參數?

首先我想火車吉薩++通過大量的數據,然後通過小語料測試,並通過所需的對齊方式(金標準)的結果進行比較,但我沒有找到任何文件或:

換句話說

網頁中有用的頁面。

你能介紹一下有用的文檔嗎?

因此,我運行它的小courpus(447句),並比較結果的理想alignment.do你認爲這是正確的方式?

此外,我改變了我的代碼如下,並獲得更好的結果,但它仍然不是很好:

GIZA ++ -S testlowsf.f.vcb -T testlowde.e.vcb -C testlowsf.f_testlowde.e.snt - M1 5 -m2 0 -mh 5 -m3 5 -m4 0 -CoocurrenceFile inputcooc.cooc -o字典-model1dumpfrequency 1個-model4smoothfactor 0.4 -nodumps 0 -nsmooth 4 -onlyaldumps 1 -p0 0.999 -diagonal是-Final是

評估結果:

//假設A是GIZA ++的結果,G是黃金標準。 As和Gs是A和G文件中的S鏈接。 Ap和Gp是A和G文件中的p鏈接。

RECALL =作爲相交GS/GS = 0.6295

PRECISION =鴨相交GP/A = 0.1090

FMEASURE =(2 * PRECISION * RECALL)/(RECALL + PRECISION)= 0.1859

AER = 1 - ((相交Gs + Ap相交Gp)/(A + S))= 0.7425

你知道原因嗎?

回答

1

你從哪裏得到這些參數? model1的100次迭代?那麼,如果你真的設法運行這個,我強烈懷疑你有一個小平行語料庫。如果是這樣,你應該考慮在訓練中添加更多的並行數據。你究竟如何計算召回率和精確度?

編輯:

少於500句你不可能得到任何合理的性能。通常的做法是找不到較大的(未對齊)平行語料庫,在兩者上一起運行GIZA ++,然後評估您手動對齊的小部分。檢查EuroparlMultiUN,這些是免費可用的語料庫,都包含大量的英法並行數據。有關準備數據的說明可以在網站上找到。

+0

請閱讀我的回答(評論)關於「不良結果和評價從吉薩++」 –