吉萨++的不良结果与评价

时间:2012-08-29 06:59:53

标签: machine-learning nlp moses giza++

我尝试在窗口上使用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

但是在从giza ++获取输出文件并评估输出后,我发现结果太糟糕了。

我的评估结果是:

RECALL = 0.0889

PRECISION = 0.0990

F_MEASURE = 0.0937

AER = 0.9035

任何身体都知道原因吗?原因可能是我忘记了一些参数,或者我应该更改其中一些参数?

换句话说:

首先,我希望通过大量数据训练吉萨++,然后通过小语料库对其进行测试并将其结果与所需的对齐方式(GOLD STANDARD)进行比较,但我在网络中找不到任何文档或有用的页面。

你能介绍一下有用的文件吗?

因此我用小courpus(447句)来运行它,并通过所需的对齐比较结果。你认为这是正确的方法吗?

此外,我更改了我的代码如下并得到了更好的结果,但它仍然不好:

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 dictionary -model1dumpfrequency 1 -model4smoothfactor 0.4 -nodumps 0 -nsmooth 4 -onlyaldumps 1 -p0 0.999 -diagonal yes -final yes

评估结果:

//假设A是GIZA ++的结果,G是Gold标准。 As和Gs是A和G文件中的S链接。 Ap和Gp是A和G文件中的p链接。

RECALL =相交Gs / Gs = 0.6295

PRECISION = Ap与Gp / A = 0.1090相交

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

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

你知道原因吗?

1 个答案:

答案 0 :(得分:1)

你从哪里获得这些参数?模型1的100次迭代?!好吧,如果你真的设法运行它,我强烈怀疑你有一个非常小的平行语料库。如果是这样,您应该考虑在培训中添加更多并行数据。你究竟如何计算召回率和精确度?

修改

如果不到500个句子,你就不可能获得任何合理的表现。通常的做法是找不到更大的(未对齐的)平行语料库,一起运行GIZA ++,然后评估你手动对齐的小部分。检查EuroparlMultiUN,这些是免费提供的语料库,两者都包含相对大量的英法并行数据。有关准备数据的说明,请访问网站。