一种基于分布式并行计算框架的机器翻译方法

文档序号:6444307阅读:191来源:国知局
专利名称:一种基于分布式并行计算框架的机器翻译方法
技术领域
本发明涉及一种机器翻译方法,特别涉及一种基于MapReduce分布式并行计算框架的海量语言机器翻译方法,属于云计算与机器翻译领域。
背景技术
机器翻译是将一种自然语言翻译为另一种自然语言的自动翻译技术。机器翻译系统按照用户不同可以分为两种面向大型用户和应用系统的高性能机器翻译系统和面向普通用户的普及型翻译系统。高性能翻译系统对翻译质量、翻译速度、并发处理能力具有很高要求。由于机器翻译是一项需要大量计算的自然语言处理过程,不仅需要复杂的数据支撑,而且需要高强度的自动推理和统计计算,而目前的翻译系统主要采用集中式单机版,处理大数据量的翻译任务往往需要数小时甚至数天时间,这对于企业应用来说是无法接受的,因此翻译性能不足已成为制约高性能机器翻译系统发展的瓶颈之一。MapReduce是Google提出的一种实现分布式并行计算的编程模型,它让程序员只需要关注数据的处理,而不用关心数据的分布式存储、任务调度、容错等复杂的分布式计算问题。此外该编程模型具有良好的可扩展性,可以在动态调整的集群上进行海量数据处理任务。MapReduce编程模型将计算过程分为Map阶段和Reduce阶段。数据被切分为不同大小的分块,采用<Key,Value)的形式在集群中分布式存储。集群中的每个节点都有一些Map和Reduce任务。Map任务将输入的<Key,Value〉进行处理,然后生成另外一些<Key,Value〉。Reduce任务将具有相同Key的〈Key,Value〉数据进行集中处理。MapReduce就是通过这种简单的模型来处理海量数据。本发明中主要采用MapReduce的开源实现Hadoop。Hadoop是由Apache组织开发的开源分布式计算环境,其主要包含MapReduce和HDFS两个子项目。MapReduce子项目实现了 Google提出的MapReduce分布式并行计算框架,HDFS子项目实现了一个在集群上运行的分布式文件系统。高性能机器翻译系统,尤其是基于规则的机器翻译系统解决海量数据机器翻译的方法主要是通过使用高性能服务器。这种解决方案主要具有以下不足一、翻译系统处理并发访问的能力较弱。当需要翻译的任务较多时,单台高性能服务器处理并发访问的能力将成为整个翻译系统的瓶颈。二、翻译系统可扩展性较差。由于翻译引擎是部署在单台高性能服务器上,很难对系统进行扩展,即使可以通过配置添加多台服务器进行集群化机器翻译,该过程也多为手动,并且将要面临节点失效、任务同步等问题。

发明内容
有鉴于此,本发明的主要目的是为高性能机器翻译应用提供一种便于管理和扩展的集群化解决方法,通过采用MapReduce分布式并行计算框架实现海量语言机器翻译。本发明的基本原理是将需要翻译的语言信息分块存储在分布式文件系统中,然后启动多个任务进行分布式并行翻译,并将翻译之后的结果进行汇总,形成最终翻译之后的文档。
本发明的目的是通过以下技术方案实现的一种基于分布式并行计算框架的机器翻译方法,包括以下步骤第一步在机群上部署Hadoop分布式计算环境,其中一台为调度节点即名字节点,其余为计算节点即数据节点,然后在每个计算节点上都部署机器翻译引擎;第二步设定HDFS分布式文件系统的数据分块大小;第三步对于输入的海量语言信息进行预处理,将待翻译信息按照文档、段落、句子进行编号;将预处理后的待翻译文档以Hadoop特有文件格式HAR进行文件聚合,将大量小文件聚合为大文件,然后提交给MapReduce集群计算系统中的调度节点;第四步调度节点根据设定的数据块大小对聚合文件中的数据进行划分,如果分割点位于一个句子中间,则将整个句子置于之前或之后的数据划分中;将文档、段落、句子的编号组合为Key,将待翻译的文本内容作为Value进行保存;第五步调度节点为每一个数据划分创建一个Map任务,动态的分配到各计算节占.
^ \\\ 第六步各Map任务在运行过程中,将相应的数据块提交到部署在其所在计算节点上的机器翻译系统中,并得到该部分数据的翻译结果;第七步=Reduce任务把各Map任务的翻译结果从计算节点的本地磁盘拷贝到分布式文件系统中;第八步将Map任务运算之后的结果按照Key值进行整体排序;第九步所有的拷贝工作都结束后,Reduce任务即将所有的Map任务运算结果聚合为结果文件;第十步根据聚合时的标记以及运算结果的Key值,将翻译后的聚合文件进行分解,生成相应文档的翻译结果。本发明提出的基于MapReduce分布式并行计算框架的机器翻译方法,具有以下优占.
^ \\\ ·(1)本发明提出的高性能机器翻译方法通过采用分布式并行计算框架MapReduce实现了翻译任务的并行执行,大大提高了翻译系统的翻译效率;(2)本发明提出机器翻译方法具有良好的可扩展性,随着海量信息机器翻译需求变化,可以很方便的增加或者减少翻译系统中计算节点的数量。(3)本发明提出的机器翻译方法具有较好的并发处理能力,由于翻译任务被均衡的分配到整个翻译机群上进行,可以同时有多个并发任务运行,并且调度节点会根据节点任务情况进行负载均衡调度。


图1是本发明的机器翻译方法的整体框架示意图。图2是本发明的Map过程算法流程图。图3是本发明的Reduce过程的算法流程图。
具体实施例方式本发明所提出的基于MapReduce分布式并行计算框架的机器翻译方法,其总体流程图如图1所示。其基本思路是搭建一个由若干台计算机组成的计算集群,在集群中部署 Hadoop平台,在每个计算节点上部署一个机器翻译系统。调度节点根据输入数据的规模将数据进行划分,为每一个划分创建一个Map任务,Map任务被动态的分配到各计算节点上进行运行。Map任务访问本机上的机器翻译系统,并得到翻译结果。Reduce任务将所有的翻译结果进行汇总,得到最终结果。以下步骤说明了一个由四个节点组成的翻译系统的实施方法第一步搭建Hadoop平台。假设搭建由四台计算机组成的MapReduce翻译系统。 其中一台作为服务器节点负责作业的控制调度,其余三台作为数据节点进行具体的翻译计算,三个数据节点的名称依次为datanodel,datanode2, datanodd。为这四个节点安装 Linux系统,然后下载最新的Hadoop安装文件,根据Hadoop安装文档安装配置Hadoop平台;通过修改HDFS的配置文件mapred-default. xml中的dfs. block, size属性设定 HDFS分布式文件系统的数据分块大小;在Hadoop系统中,Map任务的数量=文件大小/数据块大小,所以数据块规模将直接影响Map任务的数量。在Hadoop系统的默认设置中,数据块大小为64MB,这对于其他海量数据信息处理来说是合理的,但是对于机器翻译应用来说, 1MB的文档中将包含超过10万个单词,因此如果按照64MB进行分块,每个Map任务的计算时间将会很长,并行程度不高,因此应将数据分块的大小减小。对于机器翻译应用来说,数据分块大小设定在IOKB至1MB之间。经过实验验证,数据分块为45KB时,系统会得到较好的运算效率。第二步在三个计算节点上部署机器翻译系统,在本实施例中采用了华建集团的翻译引擎;第三步设置好相关信息后,运行Hadoop ;a)由于Hadoop主要用于处理海量数据,如果用于处理大量小文件,性能会受到很大影响。所以首先将待翻译文件进行预处理,将待翻译信息按照文档、段落、句子进行编号, 然后通过Hadoop自带工具hadoop archive将预处理后的文件聚合为HAR文件,并将聚合后的HAR文件作为参数输入到调度节点;b)调度节点将文件中的数据按照数据分块进行划分,为每个划分创建一个Map任务;c)Map任务被动态的分配到不同的计算节点上;Map任务槽数为在一个节点可同时运行的Map任务数,这个参数的取值并非越大越好,当一台机器上同时运行的Map任务数过多时,会导致运算性能下降。经实验验证,槽数为8时,翻译系统会获得最好的翻译效率。d)在Map函数内部,从划分的数据中读取预处理之后的<Key,Value〉数据,将 Value值代表的待翻译信息通过程序接口发送给本节点上的机器翻译引擎;由于本实例中具体使用的机器翻译系统类型的缘故,Map任务是通过通过程序接口访问机器翻译引擎,每次向翻译引擎传送的翻译数据量会影响计算效率。应该让翻译数据尽量平均的分布在整个集群上,因此每次向翻译引擎传送的数据量不能太大,但是也不能太小,经实验测得,约1. 5K/次的数据传送率可以得到较好的计算效率;e)翻译引擎经过计算,得到翻译结果,将翻译结果返回给Map任务,Map任务将返
5回的翻译结果做为新的Value值,生成新的<Key,Value)中间结果;f)随着Map任务的进行,控制节点启动一定数量的Reduce任务,Reduce任务将各个Map任务的翻译结果从本地磁盘拷贝到分布式文件系统中;g)所有的拷贝工作都结束后,Reduce任务即将所有的翻译结果,按Key值进行排序整理,得到已完成翻译的聚合文件;h)控制程序将聚合文件进行拆分,按照Key值和记录的原始文件信息生成与输入文档对应的翻译结果文档。应该理解的是,本实施方式只是本发明实施的具体实例,不应该是本发明保护范围的限制。在不脱离本发明的精神与范围的情况下,对上述内容进行等效的修改或变更均应包含在本发明所要求保护的范围之内。
权利要求
1.一种基于分布式并行计算框架的机器翻译方法,包括以下步骤第一步在机群上部署Hadoop分布式计算环境,其中一台为调度节点即名字节点,其余为计算节点即数据节点,然后在每个计算节点上都部署机器翻译引擎;第二步设定HDFS分布式文件系统的数据分块大小;第三步对于输入的海量语言信息进行预处理,将待翻译信息按照文档、段落、句子进行编号;将预处理后的待翻译文档以Hadoop特有文件格式HAR进行文件聚合,将大量小文件聚合为大文件,然后提交给MapReduce集群计算系统中的调度节点;第四步调度节点根据设定的数据块大小对聚合文件中的数据进行划分,如果分割点位于一个句子中间,则将整个句子置于之前或之后的数据划分中;将文档、段落、句子的编号组合为Key,将待翻译的文本内容作为Value进行保存;第五步调度节点为每一个数据划分创建一个Map任务,动态的分配到各计算节点;第六步各Map任务在运行过程中,将相应的数据块提交到部署在其所在计算节点上的机器翻译系统中,并得到该部分数据的翻译结果;第七步=Reduce任务把各Map任务的翻译结果从计算节点的本地磁盘拷贝到分布式文件系统中;第八步将Map任务运算之后的结果按照Key值进行整体排序;第九步所有的拷贝工作都结束后,Reduee任务即将所有的Map任务运算结果聚合为结果文件;第十步根据聚合时的标记以及运算结果的Key值,将翻译后的聚合文件进行分解,生成相应文档的翻译结果。
2.根据权利要求1所述的一种基于分布式并行计算框架的机器翻译方法,其特征在于,第二步中所述数据分块大小设定在IOKB至1MB之间。
3.根据权利要求2所述的一种基于分布式并行计算框架的机器翻译方法,其特征在于,第二步中所述数据分块大小为45KB。
4.根据权利要求1或2或3所述的一种基于分布式并行计算框架的机器翻译方法,其特征在于,在一个节点可同时运行的Map任务数即Map任务槽数为8。
5.根据权利要求1或2或3所述的一种基于分布式并行计算框架的机器翻译方法,其特征在于,第六步中Map任务向机器翻译系统传送翻译数据的数据传送率为1. 5K/次。
全文摘要
本发明涉及一种基于分布式并行计算框架的机器翻译方法,首先在机群上部署分布式计算环境,并在每个数据节点都部属机器翻译引擎;将需要翻译的语言信息经过预处理后分块存储在分布式文件系统中,然后启动多个任务进行分布式并行翻译,并将翻译之后的结果进行汇总,形成最终翻译之后的文档。本发明通过采用分布式并行计算框架实现了翻译任务的并行执行,大大提高了翻译系统的翻译效率,并具有良好的可扩展性。
文档编号G06F17/28GK102567312SQ201110453278
公开日2012年7月11日 申请日期2011年12月30日 优先权日2011年12月30日
发明者刘培志, 罗壮, 翟岩龙, 黄河燕 申请人:北京理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1