问题标签 [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.
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的更多详细信息)
machine-learning - Moses 文档(统计机器翻译)mose.ini 文件格式?
是否有任何关于摩西的 moses.ini 格式的文档?在不带参数的命令行上运行 moses 会返回可用的功能名称,但不会返回它们的可用参数。此外,我可以看到的手册中没有指定 .ini 文件的结构。
corpus - 为什么摩西使用 Europarl 的表现如此糟糕?
我已经开始和摩西一起玩,并试图建立一个我认为是相当标准的基线系统。我基本上遵循了网站上描述的步骤,但news-commentary
我没有使用Europarl v7 进行训练,使用 WMT 2006 开发集和原始 Europarl 通用测试。我的想法是做一些类似于Le Nagard & Koehn (2010) 的事情,他们在基线英语到法语系统中获得了 0.68 的 BLEU 分数。
总而言之,我的工作流程或多或少是这样的:
tokenizer.perl
在一切lowercase.perl
(而不是truecase
)clean-corpus-n.perl
- 仅使用 Europarl v7 中的法语数据训练 IRSTLM 模型
train-model.perl
完全按照描述mert-moses.pl
使用 WMT 2006 开发- 如所述测试和测量性能
由此产生的 BLEU 分数是 0.26 ......这让我想到了两个问题:
- 这是这种基线系统的典型 BLEU 分数吗?我意识到 Europarl 是一个非常小的语料库,可以用来训练单语语言模型,尽管这就是他们在 Moses 网站上做事的方式。
- 对于刚从 SMT 和/或我可能陷入的摩西开始的人来说,是否有任何典型的陷阱?或者像 Le Nagard 和 Koehn 这样的研究人员是否以不同于 Moses 网站上描述的方式构建他们的基线系统,例如使用一些更大的、未公开的语料库来训练语言模型?
boost - 通过 cygwin 在 Windows 上的摩西 - 似乎没有安装 boost 或 g++ 被混淆了
我想用cygwin在Windows平台上使用机器翻译工具Moses。我从 Cygwin 安装了“boost”库(/cygwin64/lib/ 下的 libboost_XXX.dll.a)。
当我尝试编译 mosesdecoder 时(我已将其复制到 cygwin 文件夹下),但出现如下错误:“似乎未安装 boost 或 g++ 被混淆”
有谁知道问题可能是什么?
谢谢。
python - 解析 Moses 配置文件
给定来自Moses Machine Translation Toolkit的配置文件:
我需要从该[weights]
部分读取参数:
我一直在这样做:
得到这个输出:
然后使用解析输出
要得到:
当前的解决方案涉及从配置文件中读取一些疯狂的反转行,然后读取非常复杂的正则表达式以获取参数。
是否有更简单或更简洁/冗长的方式来读取文件并实现所需的参数字典输出?
是否可以更改 configparser 以使其读取 moses 配置文件?这很困难,因为它有一些实际上是参数的错误部分,例如[distortion-limit]
,没有 key 到 value 6
。在经过验证的 configparse-able 文件中,它应该是distortion-limit = 6
.
注意:本机 pythonconfigparser
无法处理moses.ini
配置文件。如何使用 Python3 读写 INI 文件的答案?不管用。
moses - Moses 机器翻译 - 将 Moses 与 Anymalign 一起使用
有谁知道如何用从这里获得的 Anymalign 替换摩西中的 GIZA++
其实使用Moses有9个步骤,我想不通过第2步和第3步就开始第4步,但是不使用GIZA++似乎是不可能的。有人有线索吗?
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'”
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 中一无所知)
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?
更新:我已经回答了这个问题。谢谢
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。阿尔帕
..... 例外: 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
但即使在我执行了那个命令之后,我也得到了同样的异常。
我应该怎么办?