我正在使用mosesserver 0.91,一切正常,但现在有版本1.0,没有什么和以前一样。
以下是我的情况:
我希望从阿拉伯语到英语,从英语到阿拉伯语进行多语言翻译。 所有数据和配置文件我都使用0.91版本的mosesserver。这是我的配置文件:
-------------------------------------------------
#########################
### MOSES CONFIG FILE ###
#########################
# D - decoding path, R - reordering model, L - language model
[translation-systems]
ar-en D 0 R 0 L 0
en-ar D 1 R 1 L 1
# input factors
[input-factors]
0
# mapping steps
[mapping]
0 T 0
1 T 1
# translation tables: table type (hierarchical(0), textual (0), binary (1)), source-factors, target-factors, number of scores, file
# OLD FORMAT is still handled for back-compatibility
# OLD FORMAT translation tables: source-factors, target-factors, number of scores, file
# OLD FORMAT a binary table type (1) is assumed
[ttable-file]
1 0 0 5 /mnt/models/ar-en/phrase-table/phrase-table
1 0 0 5 /mnt/models/en-ar/phrase-table/phrase-table
# no generation models, no generation-file section
# language models: type(srilm/irstlm), factors, order, file
[lmodel-file]
1 0 5 /mnt/models/ar-en/language-model/en.qblm.mm
1 0 5 /mnt/models/en-ar/language-model/ar.lm.d1.blm.mm
# limit on how many phrase translations e for each phrase f are loaded
# 0 = all elements loaded
[ttable-limit]
20
# distortion (reordering) files
[distortion-file]
0-0 wbe-msd-bidirectional-fe-allff 6 /mnt/models/ar-en/reordering-table/reordering-table.wbe-msd-bidirectional-fe.gz
0-0 wbe-msd-bidirectional-fe-allff 6 /mnt/models/en-ar/reordering-model/reordering-table.wbe-msd-bidirectional-fe.gz
# distortion (reordering) weight
[weight-d]
0.3
0.3
# lexicalised distortion weights
[weight-lr]
0.3
0.3
0.3
0.3
0.3
0.3
0.3
0.3
0.3
0.3
0.3
0.3
# language model weights
[weight-l]
0.5000
0.5000
# translation model weights
[weight-t]
0.2
0.2
0.2
0.2
0.2
0.2
0.2
0.2
0.2
0.2
# no generation models, no weight-generation section
# word penalty
[weight-w]
-1
-1
[distortion-limit]
12
---------------------------------------------------------
所以请有人帮助我并重写此配置文件,以便它可以在1.0版中运行。我需要一些python示例代码的翻译。我在python和earler中使用xmlrpc我发送了http请求:
import xmlrpclib
client = xmlrpclib.ServerProxy('http://localhost:8080')
client.translate({'text': 'some text', 'system': 'en-ar'})
但现在似乎没有'system'参数,而且moses总是使用默认设置。
答案 0 :(得分:2)
我解决了。这是新的ini文件:
[input-factors]
0
# mapping steps
[mapping]
0 T 0
1 T 1
[distortion-limit]
12
# feature functions
[feature]
Distortion
UnknownWordPenalty
WordPenalty
PhraseDictionaryBinary name=TranslationModel0 num-features=5 path=/mnt/models/ar-en/phrase-table/phrase-table input-factor=0 output-factor=0 table-limit=20
LexicalReordering num-features=6 name=LexicalReordering0 type=wbe-msd-bidirectional-fe-allff input-factor=0 output-factor=0 path=/mnt/models/ar-en/reordering-table/reordering-table.wbe-msd-bidirectional-fe.gz
IRSTLM name=LM0 order=5 factor=0 path=/mnt/models/ar-en/language-model/en.qblm.mm
PhraseDictionaryBinary name=TranslationModel1 num-features=5 path=/mnt/models/en-ar/phrase-table/phrase-table input-factor=0 output-factor=0 table-limit=20
LexicalReordering num-features=6 name=LexicalReordering1 type=wbe-msd-bidirectional-fe-allff input-factor=0 output-factor=0 path=/mnt/models/en-ar/reordering-model/reordering-table.wbe-msd-bidirectional-fe.gz
IRSTLM name=LM1 order=5 factor=0 path=/mnt/models/en-ar/language-model/ar.lm.d1.blm.mm
# core weights - not used
[weight]
Distortion0= 0
WordPenalty0= 0
TranslationModel0= 0 0 0 0 0
LexicalReordering0= 0 0 0 0 0 0
LM0= 0
TranslationModel1= 0 0 0 0 0
LexicalReordering1= 0 0 0 0 0 0
LM1= 0
[alternate-weight-setting]
id=ar-en ignore-ff=LM1,LexicalReordering1 ignore-decoding-path=1
Distortion0= 0.3
WordPenalty0= -1
TranslationModel0= 0.2 0.2 0.2 0.2 0.2
LexicalReordering0= 0.3 0.3 0.3 0.3 0.3 0.3
LM0= 0.5
id=en-ar ignore-ff=LM0,LexicalReordering0 ignore-decoding-path=0
Distortion0= 0.3
WordPenalty0= -1
TranslationModel1= 0.2 0.2 0.2 0.2 0.2
LexicalReordering1= 0.3 0.3 0.3 0.3 0.3 0.3
LM1= 0.5
客户的示例代码是:
import xmlrpclib
client = xmlrpclib.ServerProxy('http://localhost:8080')
client.translate({'text': '<seg weight-setting="%s">%s</seg>' % ('en-ar', some_text)})
其中“en-ar”是翻译系统,在我的情况下,从英语翻译成阿拉伯语(我也有其他翻译系统“ar-en”(从阿拉伯语到英语),你可以从ini文件中看到)。