基于云计算的中文分词研究

(整期优先)网络出版时间:2019-06-16
/ 2

基于云计算的中文分词研究

张月梅

渤海证券股份有限公司天津300381

摘要:计算机科学技术的发展,催生了云计算概念,在各个领域的得到广泛应用。中文分词作为进行中文信息检索、查询以及数据挖掘的基础技术,与云计算技术的结合能够实现更好的数据存储与挖掘效果,实现对中文信息的高效处理,提高信息资源的使用率,更好地为决策提供依据。

关键词:中文分词;云计算;Hadoop;MapReduce

1系统架构

在2台DellR410服务器上部署VmwarevSphereHypervisor,安装4个安装了Hadoop0.2的FreeBSD操作系统,在Hadoop平台进行中文分词,服务器架构见图1。

图1系统架构图

在分布式系统内,使用具有8个节点组成的运行FreeBSDUNIX系统的HDFS架构进行平台环境的配置。HDFS采用主从架构,一个集群由一个Master与多个Slave构成,主架构成为名字节点(NameNode),从架构为数据节点(DataNode)。在Hadoop平台下,一个文件被分割,成为若干Block存储于数据节点之上,而名字节点则负责进行文件的打开、关闭等基本操作,数据节点与Block之间映射关系的建立,方便进行文件的读写与删减等。

MapReduce编程理念主要用于大量数据集的并行运算处理,将中文分词与MapReduce编程理念相结合,可以实现运行速度的提高。Hadoop平台中使用IKAnalyzer,基于Java语言环境的中文分词工具包,使得该工具包在各个节点顺利工作,该工具包经过了一系列发展已推出了多个版本,其发展之初是为了实现Luence项目,后来借助于词典分词与文法分析算法的中文分词组件,实现了基于Java语言的公用分词组件的发展。

2关键技术

关键技术包含了中文分词的MapReduce流程与中文分词组件的分发。

2.1中文分词的MapReduce流程

如图2所示:

图2中文分词的MapReduce流程图

主要涉及了6个步骤,首先,JobClient向Hadoop平台与HDFS文件系统传输job.jar,job.split,job.xml三种类型的文件,job.jar文件中涉及了此次目标任务中的各种类,如Mapper,Reducer等,job.split主要是文件的分块信息,包括块的数目与大小,job.xml文件则是对目标配置的表达,包括Mapper,Combiner等的类型、输入输出格式等内容,这些文件实现了中文分词任务上传到JobTracker中,并有效实现了文件的分块与设置。其次,JobTracker在接受任务以后,要对TaskTracker进行任务的分配,包括映射与违规任务。然后,任务的执行者JobTracker通过任务实例的创建来获取相关的中文分词的分块信息,并进行原始<Key,Value>键值对,通过对分块文件头的偏移与文本的定义,实现任务的实例化,再进行Key与Value的确定。第四,根据上述步骤生成的<Key,Value>数据序列被保存于TaskTracker任务节点磁盘,并将这些数据具体的位置存放信息告知JobTracker,由JobTracker再发送此信息给执行违规任务的TaskTracker。第五,TaskTracker根据接收到的信息,进行数据的读取,实现中文分词任务的汇总与执行。最后,将任务汇总结果写入HDFS架构。

2.2中文分词组件的分发

中文分词的MapReduce流程中最为关键的就是各组件在云计算环境内部的分发,目前,分发主要有以下几种方式。

(1)在系统的每个集群节点的$Hadoop_HOME/lib或JDK的ext目录下存放jar包,在FreeBSD操作系统中通过scp或者rcp命令来实现shell脚本,但是该种方式对操作系统有严格要求。

(2)对jar包进行解压,通过Eclipse的Export功能将其与源程序类文件打包,形成新的jar包。

(3)用.(file,conf)或者.(archive,conf)等相对路径,不要使用HDFS的类似路径。

(4)将第三方jar包和源程序类文件打包到一个jar包中,设置manifest.mf的classpath值为jar包所在的路径,这个路径必须是相对应当前jar包的路径。该方法主要借鉴了在提交作业到Hadoop中时,Hadoop寻找classpath的方式来解决。笔者通过实验测试比较发现,以上4种中文分词组件的分发方法中,只有第2种方法所需的手工输入较少。因此笔者采用第2种方式对IKAnalyzer组件进行分发。

(5)将第三方jar包与源程序类文件打包至一个jar包,设置其路径,必须是相对当前jar包的路径而言,用manifest.mf的classpath值来表示。

通过对上述四种中文分词组件分发方式的研究,发现方法(2)中所涉及的手工操作比较少,因此本实验选择这种方式进行中文分词组件的分发。

3中文分词速度实验数据分析

3.1实验环境

试验所涉及的操作系统与系统结构相一致,硬件配置为IntelXeonE55042GHz的CPU,主频为4GB。

3.2实验数据分析

实验环境,如图3所示,实验对象为18103个中文文本,中文分词与词频统计,时间为:532s,449s,396s,412s,研究发现,节点增加时,相同程序运行时时间线性逐步降低。但到8节点时,运行时间则会有增加。预处理后,形成69.4MB的文件,云计算环境下,处理时间为115s,112s,110s,108s,因此,8节点的处理速度为69.4/108=0.643MB/s。IKAnalyzer开发时,由于其对大文件的处理能力突出,因此,如果预处理文件越大,处理速度就越高,比如文件为702.8MB时,8节点的时间为145s,分词速度为702.8/145=4.265MB/s,与实际的最快速度1600KB/s相比,提高了2.67倍,表明Hadoop平台提高了中文分词效率的提高。

图3节点和运行时间的关系

结束语:

基于云计算的中文分词提高了对中文分词与词频的统计效率,实现了分词速度的提高,而且分词速度随着节点数的增加而加快,云计算突破了传统的中文分词技术的限制,实现了高效的信息检索与数据挖掘,具有广阔的应用前景。

参考文献:

[1]张生杰,霍丹.基于语义信息的中文分词研究[J].电脑知识与技术,2018,14(22):184-186.

[2]黄丹丹,郭玉翠.融合attention机制的BI-LSTM-CRF中文分词模型[J].软件,2018,39(10):260-266.