问题标签 [moses]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1259 浏览

nlp - 如何使用庞大的语言模型调整机器翻译模型?

Moses是一个建立机器翻译模型的软件。并且KenLM是 moses 使用的事实上的语言模型软件。

我有一个包含 16GB 文本的文本文件,我用它来构建这样的语言模型:

生成的文件 ( text.arpa) 为 38GB。然后我将语言模型二值化为:

二值化语言模型 ( text.binary) 增长到 71GB。

中,在训练翻译模型后,您应该使用算法moses调整模型的权重。MERT这可以通过https://github.com/moses-smt/mosesdecoder/blob/master/scripts/training/mert-moses.pl轻松完成。

MERT 适用于小语言模型,但对于大语言模型,需要相当长的时间才能完成。

我进行了谷歌搜索,发现了 KenLM 的过滤器,它承诺将语言模型过滤到更小的尺寸:https ://kheafield.com/code/kenlm/filter/

但我对如何使它工作一无所知。命令帮助给出:

但是当我尝试以下操作时,它会卡住并且什么也不做:

二值化后的语言模型应该怎么做?是否有任何其他步骤来操作大型语言模型以减少调整时的计算负载?

调整大型 LM 文件的常用方法是什么?

如何使用 KenLM 的过滤器?

(有关https://www.mail-archive.com/moses-support@mit.edu/msg12089.html的更多详细信息)

0 投票
1 回答
656 浏览

machine-learning - Moses 文档(统计机器翻译)mose.ini 文件格式?

是否有任何关于摩西的 moses.ini 格式的文档?在不带参数的命令行上运行 moses 会返回可用的功能名称,但不会返回它们的可用参数。此外,我可以看到的手册中没有指定 .ini 文件的结构。

0 投票
1 回答
580 浏览

corpus - 为什么摩西使用 Europarl 的表现如此糟糕?

我已经开始和摩西一起玩,并试图建立一个我认为是相当标准的基线系统。我基本上遵循了网站上描述的步骤,但news-commentary我没有使用Europarl v7 进行训练,使用 WMT 2006 开发集和原始 Europarl 通用测试。我的想法是做一些类似于Le Nagard & Koehn (2010) 的事情,他们在基线英语到法语系统中获得了 0.68 的 BLEU 分数。

总而言之,我的工作流程或多或少是这样的:

  1. tokenizer.perl在一切
  2. lowercase.perl(而不是truecase
  3. clean-corpus-n.perl
  4. 仅使用 Europarl v7 中的法语数据训练 IRSTLM 模型
  5. train-model.perl完全按照描述
  6. mert-moses.pl使用 WMT 2006 开发
  7. 如所述测试和测量性能

由此产生的 BLEU 分数是 0.26 ......这让我想到了两个问题:

  • 这是这种基线系统的典型 BLEU 分数吗?我意识到 Europarl 是一个非常小的语料库,可以用来训练单语语言模型,尽管这就是他们在 Moses 网站上做事的方式。
  • 对于刚从 SMT 和/或我可能陷入的摩西开始的人来说,是否有任何典型的陷阱?或者像 Le Nagard 和 Koehn 这样的研究人员是否以不同于 Moses 网站上描述的方式构建他们的基线系统,例如使用一些更大的、未公开的语料库来训练语言模型?
0 投票
0 回答
614 浏览

boost - 通过 cygwin 在 Windows 上的摩西 - 似乎没有安装 boost 或 g++ 被混淆了

我想用cygwin在Windows平台上使用机器翻译工具Moses。我从 Cygwin 安装了“boost”库(/cygwin64/lib/ 下的 libboost_XXX.dll.a)。

当我尝试编译 mosesdecoder 时(我已将其复制到 cygwin 文件夹下),但出现如下错误:“似乎未安装 boost 或 g++ 被混淆”

有谁知道问题可能是什么?

谢谢。

0 投票
3 回答
402 浏览

python - 解析 Moses 配置文件

给定来自Moses Machine Translation Toolkit的配置文件:

我需要从该[weights]部分读取参数:

我一直在这样做:

得到这个输出:

然后使用解析输出

要得到:

当前的解决方案涉及从配置文件中读取一些疯狂的反转行,然后读取非常复杂的正则表达式以获取参数。

是否有更简单或更简洁/冗长的方式来读取文件并实现所需的参数字典输出?

是否可以更改 configparser 以使其读取 moses 配置文件?这很困难,因为它有一些实际上是参数的错误部分,例如[distortion-limit],没有 key 到 value 6。在经过验证的 configparse-able 文件中,它应该是distortion-limit = 6.


注意:本机 pythonconfigparser无法处理moses.ini配置文件。如何使用 Python3 读写 INI 文件的答案?不管用。

0 投票
1 回答
154 浏览

moses - Moses 机器翻译 - 将 Moses 与 Anymalign 一起使用

有谁知道如何用从这里获得的 Anymalign 替换摩西中的 GIZA++

其实使用Moses有9个步骤,我想不通过第2步和第3步就开始第4步,但是不使用GIZA++似乎是不可能的。有人有线索吗?

0 投票
0 回答
535 浏览

nlp - moses train-model.perl 脚本错误,--lm factor:order:filename requied

当我运行时:

显示:

错误:使用 --lm factor:order:filename 在 /home/zhanwang/mosesdecoder/scripts/training/train-model.perl 第 597 行指定至少一种语言模型。

root@zhanwang-virtual-machine:/home/zhanwang/mosesmodel/corpus3# $MOSES/scripts/training/train-model.perl

但我不想使用因子模型。

也试试这个,给我看同样的东西。无论我尝试什么参数,它都会要求我使用 -- lm factor:order:filename

对于标准短语模型,您通常会按如下方式运行训练脚本。

我想建立基于语法的翻译模型,我该怎么办?

这是我的语料库:

我想提取 ghkm 规则并建立一个可以翻译“给我弗吉尼亚州的城市”的模型。“回答城市 loc_2 stateid 'virginia'”

0 投票
0 回答
652 浏览

xml - WMT'15 新闻测试数据集:.sgm 格式

使用哪些脚本(以及如何使用?)将新闻测试数据集从 wmt.sgm 格式转换为未格式化的格式(如 europarl 数据集)?

例如,newstest 数据集下载于: http: //www.statmt.org/wmt15/test.tgz

包含(提取时)文件,例如 newstest2015-ende-ref.de.sgm

我如何使它类似于 europarl 数据集,其中每行代表一个没有格式的句子?

笔记:

我在 moses 目录(从 wmt 站点链接)中找到了一个名为wrap-xml.perl 的脚本。它在测试部分提到它用于转到 .sgm 格式,但脚本本身不包含任何文档(我在 perl 中一无所知)

0 投票
1 回答
278 浏览

shell - 如何为 moses 指定自定义 boost 目录到 mgiza?

我下载了 mosesdecoder 并成功编译。由于版本不同存在一些 boost 错误,我在自定义目录中安装了 boost。我现在正在尝试使用自定义提升安装来安装 mgiza。

在 moses 附加资源页面:http ://www.statmt.org/moses/?n=Moses.ExternalTools中,它说:

编译 MGIZA 需要 Boost 库。如果您的 Boost 库位于非系统目录中,请使用脚本

编译 MGIZA。

但简单地从 mgiza/mgizapp 目录运行它会产生很多文件未找到错误。我发现我必须正确设置 SRC_DIR 和 BOOST_ROOT 目录。

一旦我设置好了,代码文件的初始行和所有后续的编译文件都保存在 $PWD 中,我从中编译脚本。

那么我应该从哪个目录编译脚本才能顺利端到端地运行 moses?

更新:我已经回答了这个问题。谢谢

0 投票
0 回答
76 浏览

moses - 从两个并行文件数据集创建模型(德语到英语)时,Moses SMT 翻译困难

我尝试从两个并行语言文件在 Moses SMT 中创建模型。我完成了模型创建的所有阶段。但是当我运行翻译时:

echo "Um zu bestimmen" | ~/mosesdecoder/bin/moses -f ~/mosesdecoder/0_my_test/align_2016.08.19_14.24.05/model/moses.ini

它给了我一些异常(在附图中 - 详细,并写在下面(仅异常正文)),要求执行命令:

compile-lm --text 是 /home/user/mosesdecoder/0_my_test/align_2016.08.19_14.24.05/lm/de_lm_proc.gz /home/user/mosesdecoder/0_my_test/align_2016.08.19_14.24.05/lm/de_lm_proc.gz。阿尔帕

附上上面提到的 moses 命令运行结果的图片

..... 例外: lm/read_arpa.cc:64 in void lm::ReadARPACounts(util::FilePiece&, std::vector&) 抛出 FormatLoadException,因为 `line == "iARPA"'。这看起来像一个 IRSTLM iARPA 文件。您需要一个 ARPA 文件。运行 compile-lm --text yes /home/user/mosesdecoder/0_my_test/align_2016.08.19_14.24.05/lm/de_lm_proc.gz /home/user/mosesdecoder/0_my_test/align_2016.08.19_14.24.05/lm/de_lm_proc.gz .arpa 首先。字节:6

但即使在我执行了那个命令之后,我也得到了同样的异常。

我应该怎么办?