您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 冶金工业 > 一种基于Hadoop集群的自然语言处理平台实 现方案
ComputerScienceandApplication计算机科学与应用,2017,7(7),645-653PublishedOnlineJuly2017inHans.://doi.org/10.12677/csa.2017.77075文章引用:谢宁,郭威,唐慧丰.一种基于Hadoop集群的自然语言处理平台实现方案[J].计算机科学与应用,2017,7(7):645-653.:Jun.14th,2017;accepted:Jun.28th,2017;published:Jul.4th,2017AbstractThispaperproposesaHadoop-basedprogramofnaturallanguageprocessingplatform,collectinguserneedsanddataviawebinterface,automaticallycallingtheclusterintoprocessing,andre-turningprocessingresults.TheplatformsupportsMapreducefunctionpackagesprogrammedbythird-partydevelopers,andiseasytoexpand.Experimentsconfirmtheplatformsabilityoftimelyrespondingtouserneeds,accuratelycallingrelevantprograms,andreturningprocessingresults.KeywordsHadoop,MapReduce,NaturalLanguageProcessingPlatform,Plug-In一种基于Hadoop集群的自然语言处理平台实现方案谢宁,郭威,唐慧丰解放军外国语学院,河南洛阳收稿日期:2017年6月14日;录用日期:2017年6月28日;发布日期:2017年7月4日摘要本文提出一种基于Hadoop集群的自然语言处理平台实现方案,通过网页收集用户需求和数据,自动调用集群进行处理,返回处理结果。且支持运行第三方开发者编写的Mapreduce插件,平台易扩展。通过谢宁等646实验验证,方案能实现及时响应用户需求,准确调用相关程序,并返回处理结果。关键词Hadoop,MapReduce,自然语言处理平台,插件Copyright©2017byauthorsandHansPublishersInc.ThisworkislicensedundertheCreativeCommonsAttributionInternationalLicense(CCBY).引言随着互联网技术的迅猛发展,数据的智能化处理获取越来越重要。在自然语言处理领域,大规模语料库技术和其他基于概率统计的研究方法蓬勃发展,为自然语言的研究提供了新的思路和工具。各种新模型、新技术、新应用层出不穷,对计算机的计算和存储能力提出了更高的要求。当前流行的一些数据密集型的计算方法,处理过程比较复杂,处理耗时较长。如对大规模语料进行word2vec模型训练,往往一次就需要数天时间。传统的单机计算模式,其计算速度和存储能力不能满足大规模数据处理的需求。目前,现有的算法成果主要是各种程序包,一般对应某种编程语言,包含一个或多个功能,针对特定领域,具有较高的处理效率和精确度。使用前需要先下载相应的工具包,再针对所处理的语言、计算机硬件环境和具体处理需求等进行参数配置。这种方法需要算法使用者维护数据文件和执行文件,还要掌握相应的编程语言。由于开发习惯不尽相同,不同程序包内文件组成方式千差万别,参数配置过程复杂且不通用,不便于使用者学习掌握,提高了使用的门槛。综合考虑上述情况,提出建设自然语言处理平台的方案。借助Hadoop集群,解决大规模数据存储的问题,同时提升计算能力;使用插件式的应用开发模式,整合改进自然语言处理领域的各种成熟算法,缩短了产品开发周期;实现友好的交互界面,用户通过便捷的操作,即可上传数据,调用算法,得到处理结果。2.相关工作2.1.自然语言处理平台2002年,刘群[1]等提出,我国的自然语言处理研究缺乏一些公共的基础设施,很多研究工作都要花费大量的精力从底层模块做起,这使研究在很大程度上处于一种低水平重复的状态,造成研究工作效率低下且难以深入的问题。他还提出,可以借鉴开放式的开发模式,并给出了一个可以共享代码、语料、语言知识库等资源,并支持协作开发的自然语言处理开放平台的设计。2006年,国内语言信息处理平台的雏形出现。哈尔滨工业大学的郎君、刘挺等[2]对一套中文语言处理平台进行了描述,平台基于xml面向Web实现,命名为“语言技术平台LTP(LanguageTechnologyPlatform)”。平台集成了词法、词义、句法、语义、篇章分析等10项中文处理核心技术,旨在向初学者提供一套系统化工具,初学者进行一些初步的处理,也可进而研究一些更高级的应用。该平台对外免费共享。到2010年,该平台的设计者已尝试提供网络服务。近年来,随着自然语言处理研究升温,不少科技公司结合云计算、深度学习或人工智能技术,推出了可远程使用的语言处理平台。例如百度云的自然语言处理平台天智[3],腾讯云的文智自然语言处理平OpenAccess谢宁等647台[4]等,提供外部接口,供用户付费或免费调用。出于研究目的,不少高校、科研院所也推出了自己的处理平台,部署有少量功能进行在线展示。其中比较著名的有清华大学自然语言处理与社会人文计算实验室网页的在线展示部分[5],哈尔滨工业大学联合科大讯飞公司推出的“哈工大–讯飞语言云”[6],北京理工大学的自然语言处理与信息检索共享平台[7]等。2.2.HadoopHadoop是一个成熟的分布式系统的基础架构,搭载了分布式存储系统(HDFS)和分布式计算框架MapReduce,分别为海量数据的存储和计算提供支持[8]。Hadoop可以高吞吐量的访问数据,所以最初被应用于网页搜索、日志分析、广告计算等大规模数据处理工作。百度和淘宝在国内最先使用Hadoop进行电子商务数据和离线的日志的统计分析和处理。国内早期对基于Hadoop海量数据处理系统的研究,主要是实现海量数据的存储和分布式计算,处理的对象主要是系统的日志文件[9][10]。随着Hadoop技术的进一步发展,功能逐渐完善,应用范围日趋扩大,以Hadoop为基础的数据分析系统数量猛增。针对日志文件处理的研究势头不减,以更为非格式化的自然语言,如网络文本,为处理对象的系统开始出现。这些研究的方向主要包括文本过滤、文本分类和聚类、网络文本分析、情感分析、句法分析、自动文摘、文档相似度计算等[11][12][13]。2.3.插件化开发插件是一种根据统一规范编写而成的应用程序,被主程序通过接口调用,拓展主程序的功能[14]。按照插件化模式开发的软件包含主程序和插件两部分,在主程序基本不变的情况下,通过调整插件数量或修改插件执行顺序调整软件的功能。任何人都可以按照接口标准编写插件,实现“即插即用”的功能开发[15]。插件可单独使用,也可通过插件输出输入接口的拼接,实现多个插件组合使用,完成较为复杂的应用。相对于传统开发模式,每一个插件可以独立开发、测试、部署和升级,系统开发不再需要反复进行代码合并和整体发布,开发效率大幅提高。自然语言处理领域的很多常见应用,可以拆分为多个处理环节。例如中文文本分类应用,可分为中文分词、词频统计、关键词提取、文档相似度计算、文本分类等几个环节,每个环节由一个插件实现。2.4.本方案与以往研究的区别首先是用户的使用方式更便捷。之前的研究中,向集群提交请求的方式一般是通过程序调用或用户编写xml文件。这保证了传递需求的准确性和多样性,但对用户的要求还显得较高,需要用户掌握相应的编程语言和函数调用规则,至少是各个配置参数的取值和意义。本方案尝试使用Web网页作为用户提交请求、调用系统功能的界面。用户在系统设定好的下拉框选择功能,在文本框输入参数,使用难度大大降低。其次是能自动提交任务执行。平台启动后,以收到用户请求为信号,自动触发任务提交过程。支持向平台连续提交多个任务,全过程不再需要管理员人为参与,降低维护难度,提高执行效率。最后是平台功能易扩展。使用插件化的功能开发模式,功能之间的设计实现互不干扰,降低开发难度。可以借鉴自然语言处理领域成熟的算法,进行分布式改写后整合成即插即用的功能插件,将已有成果快速转化为可供用户远程调用的功能。3.平台设计平台的设计分为三个模块,其关系如图1所示。谢宁等648Figure1.Systemframework图1.系统框架图运行在网络服务器上的用户界面,对用户展示平台,屏蔽功能实现细节。界面收集用户处理需求和数据,在处理完成后向用户提供处理结果的下载链接;平台的计算和存储能力由一个包含若干台计算机的Hadoop集群提供。集群中参与运算的计算机数量可根据硬件条件和任务需求增减;界面和集群之间的连接由一台客户机承担。客户机作为中转,实现界面、第三方开发者和集群之间文件和信息的传递。前端交互界面的作用已比较明确,Hadoop集群的搭建也不是本文讨论的重点,故详细介绍客户机的作用:1)客户机负责管理由第三方开发者完成的Jar包;2)客户机实现接受请求、向集群上传下载数据、调用集群进行运算等功能;3)在客户机搭建网页服务器,用户上传的待处理数据直接可下载到客户机本地,减少数据传递的时间开销;4)客户机使用Ubuntu桌面版操作系统,平台管理员通过网页查看集群的运行状态。客户机安装JDK和Eclipse后,可直接用于功能的开发和调试。3.1.数据准备在客户机的本地文件系统指定路径,分别存放输入和输出文件。客户机的输入文件有3类,分别指定3个目录:1个目录存放已经开发完成的Jar文件和介绍文档,文件可以是第三方开发者编写完成后通过网络传输得到,也可以是开发者在客户机本机开发生成;另外2个目录分别存放从交互界面得到的用户数据和包含任务请求的配置文件。客户机的输出文件只有一类,即处理结果。考虑到平台实际运行中,可能有多个任务被执行,在输出目录中,按任务名称建立任务目录作为区分。某一任务可能被执行多次,生成处理结果文件时,在命名中加上任务开始执行的时间,以区分多次执行的结果。3.2.作业流程平台主要的作业流程有两种,一是调用插件。对于已经完成开发的插件,可根据界面传递来的用户的需求直接调用,完成相应的功能。二是插件更新。将新开发的插件和有升级的插件及时更新到客户机。3.2.1.用户需求收集用户登录网页向平台提出需求,首先选择所需要的功能。根据所选功能的不同,网页展示若干参数的下拉框或文本框,供用户点击选择或手动输入。最后提供数据上传窗口,用户提交符合相应格式的文件。若用户不上传文件,则平台将使用客户机默认位置存放的示例文件继续执行。用户需求确认后,平台在客户机本地按功能名命名建立文件夹,存放用户数据文件。数据存放完毕功能开发网页服务文件传递客户机计算机集群用户界面提交请求调用集群返回结果查看结果谢宁等649后,将用户需求生成一个文本文件下载到客户机本地硬盘中指定位置。文件中每个参数占一行,参数名和参数值以“:”隔开,文件名加“.mission”后缀表示是任务配置文件。至此,完成用户需求收集。3.2.2.集群处理现有向Hadoop集群远程提交作业主要有三种方
本文标题:一种基于Hadoop集群的自然语言处理平台实 现方案
链接地址:https://www.777doc.com/doc-3486495 .html