2013年3月29日星期五

取消cdec中phrase長度限制

cdec中有三個參數來表示phrase span的單詞最大個數.

1) 抽取規則時, phrase在training sentences中的最大長度. 該變量的定義在sa-extract/sa-compile.pl中, my $max_size = 15; 可以通過sa-extract/sa-compile.pl -p max-size=10來修改;

2) 還是抽取規則時, phrase在test sentences中的最大長度. 既對於test sentences中的某個phrase, 如果長度超過該值, 那麼不去從training sentences中找匹配規則. 該變量的值在sa-extract/extract.ini文件中設置 (作為rulefactory.HieroCachingRuleFactory()的一個參數):
max_initial_size=15,             # maximum span of a grammar rule in TEST DATA

可以修改為max_initial_size=max_size, 既1)提到的phrase在training sentences中的最大長度. 雖然在sa-extract/extract.ini中也設置了max_size的值, 但該值會被sa-extract/sa-compile.pl中的值覆蓋掉.

3) Decoding的時候, scfg的長度, 在配置文件cdec.ini中設置. 如scfg_max_span_limit=12

往cdec取消phrase span單詞數的限制, 那麼需要修改以上三個參數, 比如:

1) 調用sa-compile.pl時, 設置-p, sa-extract/sa-compile.pl -p max-size=100000
2) 修改sa-extract/extract.ini, 將max_initial_size=15改為max_initial_size=max_size
    或者
    在調用sa-compile.pl生成的extract.ini文件中, 將max_initial_size=15改為max_initial_size=max_size
    (注: sa-extract/extract.ini是一個extract.ini的模板文件, sa-compile.pl輸出的extract.ini文件是以該文件為模板)
3)修改cdec.ini文件, 將scfg_max_span_limit=12改為scfg_max_span_limit=100000

没有评论: