【发布时间】:2012-08-23 17:42:40
【问题描述】:
我尝试在窗口上使用 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++ 获取输出文件并评估输出后,我发现结果太糟糕了。
我的评价结果是:
召回 = 0.0889
精度 = 0.0990
F_MEASURE = 0.0937
AER = 0.9035
有人知道原因吗?可能是我忘记了一些参数还是应该更改其中的一些参数?
换句话说:
首先我想通过大量数据训练 giza++,然后通过小型语料库对其进行测试,并通过所需的对齐方式(GOLD STANDARD)比较其结果,但我在网络上找不到任何文档或有用的页面。
你能介绍一下有用的文件吗?
因此,我通过小型语料库(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 输入cooc.cooc -o 字典-model1dumpfrequency 1 -model4smoothfactor 0.4 -nodumps 0 -nsmooth 4 -onlyaldumps 1 -p0 0.999 -diagonal yes -final yes
评估结果:
// 假设 A 是 GIZA++ 的结果,G 是黄金标准。 As 和 Gs 是 A 和 G 文件中的 S 链接。 Ap 和 Gp 是 A 和 G 文件中的 p 链接。
RECALL = As 相交 Gs/Gs = 0.6295
精度 = Ap 与 Gp/A 相交 = 0.1090
FMEASURE = (2*PRECISION*RECALL)/(RECALL + PRECISION) = 0.1859
AER = 1 - ((As 相交 Gs + Ap 相交 Gp)/(A + S)) = 0.7425
你知道原因吗?
【问题讨论】:
标签: machine-learning nlp moses giza++