编辑: 被控制998 | 2019-07-05 |
7 次系统升级,目前最新版本升级至 NiuTrans 1.3.0 Beta 版2 .在最 新版开源系统中,主要包含以下功能模块:中英文的数据数据预处理模块,基于短语的统计 机器翻译模型的训练、解码模块,基于层次短语的统计机器翻译模型的训练、解码模块,基 于句法(树到串/串到树/树到树)的统计机器翻译模型的训练、解码模块,数据后处理模块, 精简且快速的语言模型模块,以及翻译系统参数优化的最小错误率训练(MERT)[11] 模块. NiuTrans 允许用户修改配置文件,定制个性化的翻译系统. 在NiuTrans 开源统计机器翻译系统中,核心模块使用 C++语言进行开发,功能模块的 连接使用 Perl 脚本语言进行实现.使用 C++语言开发训练与解码模块,确保翻译系统高效 率的运行.C++面向对象的特点,保证了 NiuTrans 设计、开发的模块化与结构化,方便 NiuTrans 的升级与维护. 目前,由于没有介绍 NiuTrans 系统整体架构、技术细节、翻译性能的相关中文文档和 资料,应广大 NiuTrans 用户的需求,写作此篇文章对 NiuTrans 进行较为详尽的介绍.
2 NiuTrans 整体架构 图1. NiuTrans 开源统计机器翻译系统整体架构图 NiuTrans 在统一架构下实现对当前主流统计机器翻译模型的支持,包括:基于短语的
1 http://www.gnu.org/licenses/gpl-2.0.html
2 http://www.nlplab.com/NiuPlan/NiuTrans.html 翻译模型,基于层次短语的翻译模型,基于句法(树到串/串到树/树到树)的翻译模型. NiuTrans 的整体架构图如图
1 所示, 每种翻译模型的翻译示例如图
2 所示, 其中句法模型以 树到树模型进行举例. 图2. NiuTrans 系统中,基于短语、层次短语、句法的翻译模型 NiuTrans 开源统计机器翻译系统的搭建过程主要分成两个部分,即模型训练部分与解 码部分.下面将分别对模型训练部分与解码部分的主要模块进行功能描述. 2.1 模型训练部分 模型训练部分如图
1 中左上方虚线框图所示,该部分主要功能如下: ? 数据预处理:完成对训练数据、开发集数据、测试集数据的预加工,包括:分词, 词性标注,专名的识别、泛化、翻译等 ? 词对齐: NiuTrans 未提供词对齐工具. 用户可使用开源的词对齐工具, 如GIZA++3 对训练数据进行双向词对齐,使用 grow-diag-final-and 启发式算法对双向词对齐结 果进行对称化处理 ? 句法分析:NiuTrans 未提供句法分析工具.用户可使用开源句法分析工具,如Berkeley Parser4 ,完成对源语言及目标语言句子的句法分析工作,得到源语言及目 标语言对应的基于短语成分的句法分析树.句法分析树是 NiuTrans 基于句法的翻 译系统中重要的组成部分 ? 短语/句法规则抽取:自动从训练数据中抽取短语/句法翻译系统中使用的互译翻译 片段 ? 短语/句法规则打分:对互译翻译片段的合理性进行概率估计,包括:双向短语翻 译概率、双向词汇化翻译概率等
3 http://code.google.com/p/giza-pp
4 http://code.google.com/p........