CN104408034B - 一种面向文本大数据的中文分词方法 - Google Patents

一种面向文本大数据的中文分词方法 Download PDF

Info

Publication number
CN104408034B
CN104408034B CN201410711771.1A CN201410711771A CN104408034B CN 104408034 B CN104408034 B CN 104408034B CN 201410711771 A CN201410711771 A CN 201410711771A CN 104408034 B CN104408034 B CN 104408034B
Authority
CN
China
Prior art keywords
key
value
word segmentation
result
file
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410711771.1A
Other languages
English (en)
Other versions
CN104408034A (zh
Inventor
徐涛
邹复好
周可
唐小蔓
郑胜
张胜
陈进才
李春花
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
WUHAN SHUWEI TECHNOLOGY Co Ltd
Original Assignee
WUHAN SHUWEI TECHNOLOGY Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by WUHAN SHUWEI TECHNOLOGY Co Ltd filed Critical WUHAN SHUWEI TECHNOLOGY Co Ltd
Priority to CN201410711771.1A priority Critical patent/CN104408034B/zh
Publication of CN104408034A publication Critical patent/CN104408034A/zh
Application granted granted Critical
Publication of CN104408034B publication Critical patent/CN104408034B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Machine Translation (AREA)

Abstract

本发明公开了一种面向文本大数据的中文分词方法,属于自然语言处理领域。其特征在于所述方法包括以下步骤:(1)对本地海量数据文件进行分解处理,形成数据块;(2)对分解后的数据块文件进行Map化处理,得到以偏移量为Key,文本内容为Value的<Key,Value>键值对;(3)通过一系列的分词处理,获得最终的分词结果,并且得到以偏移量为Key,分词结果为Value的<Key,Value>键值对,作为Map函数的输出;(4)对Map函数得到的<Key,Value>键值对进行Reduce处理,Reduce函数得到原始文件与分词结果文件对应<Key,Value>键值对的索引文件,并将最终结果汇总写入到HDFS。该方法在文本大数据情况下,保证了分词准确率的同时,并且极大的提高了系统的吞吐率以及中文分词的效率,具有极高的实用价值。

Description

一种面向文本大数据的中文分词方法
技术领域
本发明属于自然语言处理技术领域,更具体地,涉及一种面向文本大数据的中文分词方法。
背景技术
近年来,互联网信息呈爆炸式增长,互联网上的文本规模越来越大,信息资源不断增加,人工地从海量数据中获取重要信息越来越困难,用户感兴趣的信息淹没于大量无关信息中。为了从大量的资源信息中获取有价值的信息,自然语言处理技术得到了广大互联网公司的重视,如像谷歌、百度等搜索引擎公司都在自然语言处理领域有广泛的研究。
在大数据环境下,对海量数据的处理需要采用并行分布式计算方法,以提高数据的吞吐率。然而现有的中文分词版本都是单机版本,无法直接应用到并行分布式环境,并且现有的中文分词方法都是单独的基于理解、基于统计或基于字符串匹配的方法,分词的效率及准确度有待提升。
发明内容
现有的中文分词技术都是单机版本,无法直接应用到分布式环境中,在大数据环境下,分词效率低下,数据吞吐率低。为了提高大数据环境下的吞吐率、分词的效率、准确度的问题,本发明提出一种面向文本大数据的中文分词方法,采用MapReduce计算模型来对海量数据进行处理,基于统计和基于字符串匹配相结合的方法,可有效解决在文本大数据情况下的中文分词的准确性、实用性及效率问题。
为实现上述目的,本发明采用的技术方案是:
一种面向文本大数据的中文分词方法,所述方法包含以下步骤:
(1)数据处理:对本地海量数据文件进行分解处理,形成数据块;
(2)Map化处理:对步骤(1)中得到的数据块文件进行Map化处理,得到以偏移量为Key,文本内容为Value的<Key,Value>键值对;
(3)分词处理:对步骤(2)中得到的处理后的<Key,Value>键值对中的Value值进行分词处理,获得最终的分词结果,并且得到以偏移量为Key,分词结果为Value的<Key,Value>键值对,作为Map函数的输出;
(4)Reduce化处理:对步骤(3)中得到的<Key,Value>键值对进行Reduce处理,Reduce处理得到原始文件与分词结果文件对应<Key,Value>键值对的索引文件,并将最终结果汇总写入到HDFS。
本发明的一个实施例中,所述步骤(1)具体包括:
(1.1)用户向Hadoop分布式系统中的文件系统HDFS上传执行分词任务的jar文件及相应的配置文件;
(1.2)设定系统初始分词结点数N,数据块的大小为M,JobClient读取原始文本文件,并根据数据块的大小M将大文件分解成若干个数据块,并向JobTracker提交中文分词任务;
(1.3)JobTracker向TaskTracker指派Map任务和Reduce任务;
(1.4)被指派执行Map任务的TaskTracker创建Task实例来读取要进行分词的分块文件,对数据块的内容进行编码转换和数据清洗处理。
本发明的一个实施例中,所述步骤(2)具体包括:
(2.1)对步骤(1)处理之后得到的文本进行Map化处理,形成<Key,Value>键值对,其中Key为每一行文本相对于分块文件头的偏移,Value为分块文件的每一行文本;
(2.2)在自定义的Mapper类中初始化分词实例对象,在Map函数中对步骤(2.1)的得到的<Key,Value>键值对中的Value值实行相应的分词处理。
本发明的一个实施例中,所述步骤(3)具体包括:
(3.1)首先对步骤(2)中得到的<Key,Value>键值对的每一个Value值进行原子切分,然后对每个相邻的原子进行组合,查看字典里是否有相应的词组匹配,如果可以匹配则将其组合成一个词组,直到所有的原子匹配完成,得到初分结果;
(3.2)将步骤(3.1)得到的初分结果用有向权值图来表示,步骤(3.1)中得到的每个Value值的第一个词作为有向权值图中的起始结点,将每条记录的最后一个词作为有向权值图中的末尾结点,有向权值图中的每个相邻词组之间的权值为大量语料统计得到的词组之间的耦合度,权值越小代表两个词之间独立成词的概率越大;
(3.3)采用K最短路径算法对步骤(3.2)得到的有向权值图构建粗分模型;
(3.4)根据Dijkstra算法计算步骤(3.2)得到的有向权值图中的起始结点到每个结点的最短路径长度及PreNode链表以及标记值index;
(3.5)将步骤(3.4)中的得到PreNode链表的末尾结点入栈,作为结束结点,当末尾结点出栈时,算法结束;对于每一个PreNode队列,维护了一个当前指针,初始状态都指向PreNode的第一个元素;
(3.6)从左到右依次取出步骤(3.5)中得到的PreNode队列中的当前指针所指的PreNode结点,当起始结点入栈时,即得到一个最短路径,也就是得到了一个划分结果;
(3.7)依次弹出步骤(3.6)中得到的栈中的结点,每弹出一个结点,就将当时进栈时所对应的PreNode指针向后移一位,如果到了末尾无法下移,则继续执行步骤(3.7),否则执行步骤(3.6);
(3.8)当得到了前N条路径长度的所有路径时,即可得到第二次粗分的结果;
(3.9)扫描步骤(3.8)中得到的所有结果,对其中的特殊格式数据做相应的处理,处理完之后,重新得到新的分词结果,其中所述特殊格式数据包括数字、日期;
(3.10)采用Viterbi算法对步骤(3.9)中得到的分词结果进行自动的角色标注,并且在所有的标注序列中选择一个最大概率的序列,然后与特定的模式串进行匹配,匹配成功后就得到了一个未登录词;
(3.11)将步骤(3.10)中得到角色标注序列选择一个最大概率的序列与特定的模式串进行匹配,该模式串是通过对大量语料库的分析和训练,得到的未登录词的常见组合序列模式串,每匹配成功一次就识别一个未登录词作为一个新词,然后对步骤(3.9)得到的分词结果重新排列就得到了第四次分词的结果;
(3.12)将步骤(3.11)中得到的分词结果应用隐马尔科夫模型(HMM)及步骤(3.10)中所述的Viterbi算法,实现对分词结果的词性标注;
(3.13)将步骤(3.12)中识别出的新词加入到词典当中,然后对分词结果应用逆向最大匹配的方法再次切分,形成最终的分词结果;
(3.14)将步骤(3.13)中生成的最终分词结果和Map函数的输入参数<Key,Value>键值对中的Key值组合成新的<Key,Value>键值对,Key即为Map函数的输入参数的Key值,即为每一行文本相对于分块文件头的偏移,而Value就对应每行文本分词之后的结果,新生成的这个<Key,Value>键值对作为Map函数的输出参数。
本发明的一个实施例中,所述步骤(3.3)中的K最短路径算法具体为:K最短路径算法最短路径算法和全切分算法的折中,该方法尽量减少切分出来的词数,同时又尽可能的包含最终的分词结果;当K=1时,就相当于为最短路径算法;K取值为所有的路径长度个数时就相当于全切分方法。
本发明的一个实施例中,所述步骤(3.10)中的Viterbi算法具体为:
其中,V是步骤(3.9)中得到的分词后的结果,T是V的的某个可能的标注结果,T1是最大概率的角色标注序列,即最终的角色标注结果。
本发明的一个实施例中,所述步骤(4)具体包括:
(4.1)步骤(3)中生成的<Key,Value>键值对被保存到TaskTracker所在节点的磁盘里,TaskTracker将这些键值对的位置发送给JobTracker,JobTracker再将此信息发送给执行Reduce任务的TaskTracker;
(4.3)执行Reduce任务的TaskTracker根据JobTracker发送来键值对的位置信息从各个节点中读取键值对的信息;
(4.4)Reduce函数将读取到的键值对<Key,Value>中与的Value值即分词结果封装到迭代器中,依次输出迭代器中的内容并写入到文件中,将输出得到的文件名作为Reduce函数处理后的输出键值对<Key,Value>中的Value值,Key为原始文本的文件名,构建相应的索引文件;
(4.5)执行Reduce任务的TaskTracker根据步骤(4.4)生成的索引文件将结果汇总写入HDFS。
与现有技术相比,本发明具有以下的优点和技术效果:
(1)可有效的解决在文本大数据情况下中文分词的效率问题,大大减少了分词的时间,提高了系统的吞吐率;
(2)采用基于统计和基于字符串匹配相结合的方法来进行中文分词,有效的提高了分词的准确度;
(3)在参与实际分词结点数目的变化这一过程中,能很快重新进行任务划分,提高了系统调度的效率,极大地减少了系统调度的性能损失;
(4)本发明满足了面向文本大数据的分词系统中的任务调度与中文分词的要求,具有极高的应用价值。
附图说明
图1为本发明的面向文本大数据的中文分词方法的模块示意图;
图2为本发明的面向文本大数据的中文分词方法的流程示意图;
图3为本发明的中文分词方法的MapReduce处理流程示意图。
具体实施方式
以下首先对本发明的技术术语进行解释和说明:
MapReduce计算模型:MapReduce是Google提出的一种实现分布式并行计算任务的通用软件框架,它简化了由普通计算机组成的超大集群上的并行软件编程模式,可用于大规模数据集的并行计算。
Hadoop分布式文件系统:Hadoop是一个由Apache基金会所开发的分布式系统基础架构。Hadoop的框架最核心的设计就是:HDFS(Hadoop Distributed File System)和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。在Hadoop分布式文件系统中,主要包括三种角色:JobClient,JobTracker,TaskTracker。JobClient用于提交任务;JobTracker用于监控Task的运行情况,进行相应的调度;TaskTracker主动与JobTracker通信,接收作业,并负责直接执行每一个任务。
Hadoop Distributed File System:简称HDFS,是一个分布式文件系统。HDFS有着高容错性(fault-tolerant)的特点,并且设计用来部署在低廉的硬件上。而且它提供高吞吐量来访问应用程序的数据,适合那些有着超大数据集的应用程序。
下面结合附图和具体实施方式对本发明技术方案做进一步详细说明。
本发明的主要步骤是对海量文本数据的进行中文分词,即将中文分词的任务分配到不同的任务处理结点,并对相应的结果进行相关处理之后写入HDFS,同时采用高效的调度算法处理实际任务结点的动态加入和退出。
图1是本发明提供的面向文本大数据的分词方法的组成模块示意图。参见图1,本发明包含以下几个步骤:
(1)数据处理:对本地海量数据文件进行分解处理,形成数据块;
(2)Map化处理:对步骤(1)中得到的数据块文件进行Map化处理,得到以偏移量为Key,文本内容为Value的<Key,Value>键值对;
(3)分词处理:对步骤(2)中得到的处理后的<Key,Value>键值对中的Value值进行分词处理,获得最终的分词结果,并且得到以偏移量为Key,分词结果为Value的<Key,Value>键值对,作为Map函数的输出;
(4)Reduce化处理:对步骤(3)中得到的<Key,Value>键值对进行Reduce处理,Reduce处理得到原始文件与分词结果文件对应<Key,Value>键值对的索引文件,并将最终结果汇总写入到HDFS。
图2是本发明提供的面向文本大数据的分词方法的具体操作示意图。下面结合图2来阐述每个步骤的具体操作:
(1)数据处理阶段,上传分词任务,对本地海量数据文件进行分割,数据清洗,编码转换等处理,得到处理好后固定大小的数据块。
其中,所述步骤(1)具体包括:
(1.1)用户向Hadoop分布式系统中的文件系统HDFS上传执行分词任务的jar文件及相应的配置文件;
(1.2)设定系统初始分词结点数N,数据块的大小为M,JobClient读取原始文本文件,并根据数据块的大小M将大文件分解成若干个数据块,并向JobTracker提交中文分词任务;
(1.3)JobTracker向TaskTracker指派Map任务和Reduce任务;
(1.4)被指派执行Map任务的TaskTracker创建Task实例来读取要进行分词的分块文件,对数据块的内容进行编码转换,数据清洗等相关处理。
(2)Map化处理步骤,对处理好的数据块的内容进行Map化处理,形成<Key,Value>键值对,作为后续分词处理模块的输入参数。
其中,所述步骤(2)具体包括:
(2.1)对步骤(1)处理之后得到的文本进行Map化处理,形成<Key,Value>键值对,其中Key为每一行文本相对于分块文件头的偏移,Value为分块文件的每一行文本;
(2.2)在自定义的Mapper类中初始化分词实例对象,在Map函数中对步骤(2.1)的得到的<Key,Value>键值对中的Value值实行相应的分词处理。
(3)分词处理步骤:对Map化处理后的文本进行分词处理,包括原子切分、构建K最短路径粗分模型、未登录词的识别、词性标注、运用最大匹配的方法再次切分这五个步骤。经过这五个步骤的处理之后,获得最终的分词结果,并且得到以偏移量为Key,分词结果为Value的<Key,Value>键值对,作为Map函数的输出.
其中,所述步骤(3)具体包括:
(3.1)首先对步骤(2)中得到的<Key,Value>键值对的每一个Value值进行原子切分,然后对每个相邻的原子进行组合,查看字典里是否有相应的词组匹配,如果可以匹配则将其组合成一个词组,直到所有的原子匹配完成,得到初分结果;
(3.2)将步骤(3.1)得到的初分结果用有向权值图来表示,步骤(3.1)中得到的每个Value值的第一个词作为有向权值图中的起始结点,将每条记录的最后一个词作为有向权值图中的末尾结点,有向权值图中的每个相邻词组之间的权值为大量语料统计得到的词组之间的耦合度,权值越小代表两个词之间独立成词的概率越大;
(3.3)采用K最短路径算法对步骤(3.2)得到的有向权值图构建粗分模型,所谓的K最短路径算法即为最短路径算法和全切分算法的折中,该方法尽量减少切分出来的词数,同时又尽可能的包含最终的分词结果。通过这种有机结合,一方面避免了最短路径算法舍弃正确结果的可能,另一方面又大大解决了全切分搜索空间过大的弊端。因此,K的取值就显得尤为重要。当K=1时,就相当于为最短路径算法;K取值为所有的路径长度个数时就相当于全切分方法。
(3.4)根据Dijkstra算法计算步骤(3.2)得到的有向权值图中的起始结点到每个结点的最短路径长度及PreNode链表以及标记值index;
(3.5)将步骤(3.4)中的得到PreNode链表的末尾结点入栈,作为结束结点,当末尾结点出栈时,算法结束。对于每一个PreNode队列,维护了一个当前指针,初始状态都指向PreNode的第一个元素;
(3.6)从左到右依次取出步骤(3.5)中得到的PreNode队列中的当前指针所指的PreNode结点,当起始结点入栈时,即得到一个最短路径,也就是得到了一个划分结果。
(3.7)依次弹出步骤(3.6)中得到的栈中的结点,每弹出一个结点,就将当时进栈时所对应的PreNode指针向后移一位,如果到了末尾无法下移,则继续执行步骤(3.7),否则执行步骤(3.6);
(3.8)当得到了前N条路径长度的所有路径时,即可得到最终的第二次粗分的结果;
(3.9)扫描步骤(3.8)中得到的所有结果,对其中的数字,日期等特殊格式做相应的处理,处理完之后,重新得到新的分词结果;
(3.10)采用Viterbi算法对步骤(3.9)中得到的分词结果进行自动的角色标注,并且在所有的标注序列中选择一个最大概率的序列,然后与特定的模式串进行匹配,匹配成功后就得到了一个未登录词。
设V是步骤(3.9)中得到的分词后的结果,T是V的的某个可能的标注结果,T1是最大概率的角色标注序列,即最终的角色标注结果。则有:
根据贝叶斯公式,对于一个特定的序列来说,P(V)是常数,由此我们可以得到
如果把词vi视为观察值,把角色ti视为状态值。则V是观察序列,则T为隐藏在V后的状态序列,这是一个隐马尔可夫链。那么,我们可以引入隐马尔可夫模型来计算P(T)P(V|T)。即:
由此可以得到即可求解得到T1的最大值,也就可以得到最终的角色标注序列;
(3.11)将步骤(3.10)中得到角色标注序列选择一个最大概率的序列与特定的模式串进行匹配,该模式串是通过对大量语料库的分析和训练,得到的未登录词的常见组合序列模式串,每匹配成功一次就识别一个未登录词作为一个新词,然后对步骤(3.9)得到的分词结果重新排列就得到了第四次分词的结果;
(3.12)将步骤(3.11)中得到的分词结果应用隐马尔科夫模型(HMM)及步骤(3.10)中所述的Viterbi算法,实现对分词结果的词性标注;
(3.13)将步骤(3.12)中识别出的新词加入到词典当中,然后对分词结果应用逆向最大匹配的方法再次切分,形成最终的分词结果;
(3.14)将步骤(3.13)中生成的最终分词结果和Map函数的输入参数<Key,Value>键值对中的Key值组合成新的<Key,Value>键值对,Key即为Map函数的输入参数的Key值,即为每一行文本相对于分块文件头的偏移,而Value就对应每行文本分词之后的结果。新生成的这个<Key,Value>键值对作为Map函数的输出参数。
(4)Reduce化处理步骤,用于对分词后的结果进行Reduce化处理,形成<Key,Value>键值对,并且进行合并,汇总操作,将最终结果写入HDFS。
其中,所述步骤(4)具体包括:
(4.1)步骤(3)中生成的<Key,Value>键值对被保存到TaskTracker所在节点的磁盘里,TaskTracker将这些键值对的位置发送给JobTracker,JobTracker再将此信息发送给执行Reduce任务的TaskTracker;
(4.3)执行Reduce任务的TaskTracker根据JobTracker发送来键值对的位置信息从各个节点中读取键值对的信息;
(4.4)Reduce函数将读取到的键值对<Key,Value>中与的Value值即分词结果封装到迭代器中,依次输出迭代器中的内容并写入到文件中,将输出得到的文件名作为Reduce函数处理后的输出键值对<Key,Value>中的Value值,Key为原始文本的文件名,构建相应的索引文件;
(4.5)执行Reduce任务的TaskTracker根据步骤(4.4)生成的索引文件将结果汇总写入HDFS。
参见图3,图3即为本发明的提供的面向文本大数据中文分词方法的MapReduce处理流程示意图。
图3详细解释了本发明分词的MapReduce处理过程,首先读取原始数据文件,按照系统初始设定的数据块大小M对原始数据文件进行分割处理,存储到HDFS中;然后TaskTracker从HDFS中读取数据块的内容进行Map化处理,进行分词操作,分词完成之后将输出的<Key,Value>键值对存储在本地硬盘上,TaskTracker读取本地硬盘上存储的<Key,Value>键值对的信息作为Reduce函数的输入参数,进行Reduce化处理,最后将结果汇总写入到HDFS.
以上所述仅为本发明的较佳实施例,其目的在于让熟悉此项技术的人能够了解本发明的内容并据以实施,并不用以限制本发明。凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (6)

1.一种面向文本大数据的中文分词方法,其特征在于,所述方法包括如下步骤:
(1)数据处理:对本地海量数据文件进行分解处理,形成数据块;
(2)Map化处理:对步骤(1)中得到的数据块文件进行Map化处理,得到以偏移量为Key,文本内容为Value的<Key,Value>键值对;
(3)分词处理:对步骤(2)中得到的处理后的<Key,Value>键值对中的Value值进行分词处理,获得最终的分词结果,并且得到以偏移量为Key,分词结果为Value的<Key,Value>键值对,作为Map函数的输出;
所述步骤(3)具体包括:
(3.1)首先对步骤(2)中得到的<Key,Value>键值对的每一个Value值进行原子切分,然后对每个相邻的原子进行组合,查看字典里是否有相应的词组匹配,如果可以匹配则将其组合成一个词组,直到所有的原子匹配完成,得到初分结果;
(3.2)将步骤(3.1)得到的初分结果用有向权值图来表示,步骤(3.1)中得到的每个Value值的第一个词作为有向权值图中的起始结点,将每条记录的最后一个词作为有向权值图中的末尾结点,有向权值图中的每个相邻词组之间的权值为大量语料统计得到的词组之间的耦合度,权值越小代表两个词之间独立成词的概率越大;
(3.3)采用K最短路径算法对步骤(3.2)得到的有向权值图构建粗分模型;
(3.4)根据Dijkstra算法计算步骤(3.2)得到的有向权值图中的起始结点到每个结点的最短路径长度及PreNode链表以及标记值index;
(3.5)将步骤(3.4)中的得到PreNode链表的末尾结点入栈,作为结束结点,当末尾结点出栈时,算法结束;对于每一个PreNode队列,维护了一个当前指针,初始状态都指向PreNode的第一个元素;
(3.6)从左到右依次取出步骤(3.5)中得到的PreNode队列中的当前指针所指的PreNode结点,当起始结点入栈时,即得到一个最短路径,也就是得到了一个划分结果;
(3.7)依次弹出步骤(3.6)中得到的栈中的结点,每弹出一个结点,就将当时进栈时所对应的PreNode指针向后移一位,如果到了末尾无法下移,则继续执行步骤(3.7),否则执行步骤(3.6);
(3.8)当得到了前N条路径长度的所有路径时,即可得到第二次粗分的结果;
(3.9)扫描步骤(3.8)中得到的所有结果,对其中的特殊格式数据做相应的处理,处理完之后,重新得到新的分词结果,其中所述特殊格式数据包括数字、日期;
(3.10)采用Viterbi算法对步骤(3.9)中得到的分词结果进行自动的角色标注,并且在所有的标注序列中选择一个最大概率的序列,然后与特定的模式串进行匹配,匹配成功后就得到了一个未登录词;
(3.11)将步骤(3.10)中得到角色标注序列选择一个最大概率的序列与特定的模式串进行匹配,该模式串是通过对大量语料库的分析和训练,得到的未登录词的常见组合序列模式串,每匹配成功一次就识别一个未登录词作为一个新词,然后对步骤(3.9)得到的分词结果重新排列就得到了第四次分词的结果;
(3.12)将步骤(3.11)中得到的分词结果应用隐马尔科夫模型(HMM)及步骤(3.10)中所述的Viterbi算法,实现对分词结果的词性标注;
(3.13)将步骤(3.12)中识别出的新词加入到词典当中,然后对分词结果应用逆向最大匹配的方法再次切分,形成最终的分词结果;
(3.14)将步骤(3.13)中生成的最终分词结果和Map函数的输入参数<Key,Value>键值对中的Key值组合成新的<Key,Value>键值对,Key即为Map函数的输入参数的Key值,即为每一行文本相对于分块文件头的偏移,而Value就对应每行文本分词之后的结果,新生成的这个<Key,Value>键值对作为Map函数的输出参数;
(4)Reduce化处理:对步骤(3)中得到的<Key,Value>键值对进行Reduce处理,Reduce处理得到原始文件与分词结果文件对应<Key,Value>键值对的索引文件,并将最终结果汇总写入到HDFS。
2.如权利要求1所述的方法,其特征在于,所述步骤(1)具体包括:
(1.1)用户向Hadoop分布式系统中的文件系统HDFS上传执行分词任务的jar文件及相应的配置文件;
(1.2)设定系统初始分词结点数N,数据块的大小为M,JobClient读取原始文本文件,并根据数据块的大小M将大文件分解成若干个数据块,并向JobTracker提交中文分词任务;
(1.3)JobTracker向TaskTracker指派Map任务和Reduce任务;
(1.4)被指派执行Map任务的TaskTracker创建Task实例来读取要进行分词的分块文件,对数据块的内容进行编码转换和数据清洗处理。
3.如权利要求1或2所述的方法,其特征在于,所述步骤(2)具体包括:
(2.1)对步骤(1)处理之后得到的文本进行Map化处理,形成<Key,Value>键值对,其中Key为每一行文本相对于分块文件头的偏移,Value为分块文件的每一行文本;
(2.2)在自定义的Mapper类中初始化分词实例对象,在Map函数中对步骤(2.1)的得到的<Key,Value>键值对中的Value值实行相应的分词处理。
4.如权利要求1或2所述的方法,其特征在于,所述步骤(3.3)中的K最短路径算法具体为:K最短路径算法最短路径算法和全切分算法的折中,该方法尽量减少切分出来的词数,同时又尽可能的包含最终的分词结果;当K=1时,就相当于为最短路径算法;K取值为所有的路径长度个数时就相当于全切分方法。
5.如权利要求1或2所述的方法,其特征在于,所述步骤(3.10)中的Viterbi算法具体为:
T 1 = argmax T P ( T | V ) , T = ( t 1 , t 2 , t 3 , ... , t m ) , m > 0 , V = ( v 1 , v 2 , v 3 , ... , v m ) ;
其中,V是步骤(3.9)中得到的分词后的结果,T是V的某个可能的标注结果,T1是最大概率的角色标注序列,即最终的角色标注结果。
6.如权利要求1或2所述的方法,其特征在于,所述步骤(4)具体包括:
(4.1)步骤(3)中生成的<Key,Value>键值对被保存到TaskTracker所在节点的磁盘里,TaskTracker将这些键值对的位置发送给JobTracker,JobTracker再将此信息发送给执行Reduce任务的TaskTracker;
(4.3)执行Reduce任务的TaskTracker根据JobTracker发送来键值对的位置信息从各个节点中读取键值对的信息;
(4.4)Reduce函数将读取到的键值对<Key,Value>中与的Value值即分词结果封装到迭代器中,依次输出迭代器中的内容并写入到文件中,将输出得到的文件名作为Reduce函数处理后的输出键值对<Key,Value>中的Value值,Key为原始文本的文件名,构建相应的索引文件;
(4.5)执行Reduce任务的TaskTracker根据步骤(4.4)生成的索引文件将结果汇总写入HDFS。
CN201410711771.1A 2014-11-28 2014-11-28 一种面向文本大数据的中文分词方法 Active CN104408034B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410711771.1A CN104408034B (zh) 2014-11-28 2014-11-28 一种面向文本大数据的中文分词方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410711771.1A CN104408034B (zh) 2014-11-28 2014-11-28 一种面向文本大数据的中文分词方法

Publications (2)

Publication Number Publication Date
CN104408034A CN104408034A (zh) 2015-03-11
CN104408034B true CN104408034B (zh) 2017-03-22

Family

ID=52645666

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410711771.1A Active CN104408034B (zh) 2014-11-28 2014-11-28 一种面向文本大数据的中文分词方法

Country Status (1)

Country Link
CN (1) CN104408034B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105373529B (zh) * 2015-10-28 2018-04-20 甘肃智呈网络科技有限公司 一种基于隐马尔科夫模型的智能分词方法
CN107977341A (zh) * 2016-10-21 2018-05-01 北京航天爱威电子技术有限公司 大数据文本快速处理方法
CN106776544B (zh) * 2016-11-24 2020-05-05 四川无声信息技术有限公司 人物关系识别方法及装置和分词方法
CN108241713B (zh) * 2016-12-27 2021-12-28 南京烽火星空通信发展有限公司 一种基于多元切分的倒排索引检索方法
CN109683773B (zh) * 2017-10-19 2021-01-22 北京国双科技有限公司 语料标注方法和装置
CN108664468A (zh) * 2018-05-02 2018-10-16 武汉烽火普天信息技术有限公司 一种基于词典和语义消歧的人名识别方法和装置
CN110956036A (zh) * 2018-09-25 2020-04-03 南京大学 面向领域的文本大数据快速分词方法
CN109614499B (zh) * 2018-11-22 2023-02-17 创新先进技术有限公司 一种词典生成方法、新词发现方法、装置及电子设备
CN110619122B (zh) * 2019-09-19 2023-08-22 中国联合网络通信集团有限公司 分词处理方法、装置、设备及计算机可读存储介质
CN111160024B (zh) * 2019-12-30 2023-08-15 广州广电运通信息科技有限公司 基于统计的中文分词方法、系统、装置和存储介质
CN112131877B (zh) * 2020-09-21 2024-04-09 民生科技有限责任公司 一种海量数据下的实时中文文本分词方法
CN117422061B (zh) * 2023-12-19 2024-03-08 中南大学 一种文本词项多重分割结果合并标注方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102163226A (zh) * 2011-04-12 2011-08-24 浙江大学 基于映射-化简和分词及邻接排序去重方法
CN102402606A (zh) * 2011-11-28 2012-04-04 中国科学院计算机网络信息中心 一种高效的文本数据挖掘方法
CN102915365A (zh) * 2012-10-24 2013-02-06 苏州两江科技有限公司 基于Hadoop的分布式搜索引擎构建方法
CN103279478A (zh) * 2013-04-19 2013-09-04 国家电网公司 一种基于分布式互信息文档特征提取方法
CN104123289A (zh) * 2013-04-24 2014-10-29 北京无限立通通讯技术有限责任公司 一种垃圾邮件关键词的查找方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102163226A (zh) * 2011-04-12 2011-08-24 浙江大学 基于映射-化简和分词及邻接排序去重方法
CN102402606A (zh) * 2011-11-28 2012-04-04 中国科学院计算机网络信息中心 一种高效的文本数据挖掘方法
CN102915365A (zh) * 2012-10-24 2013-02-06 苏州两江科技有限公司 基于Hadoop的分布式搜索引擎构建方法
CN103279478A (zh) * 2013-04-19 2013-09-04 国家电网公司 一种基于分布式互信息文档特征提取方法
CN104123289A (zh) * 2013-04-24 2014-10-29 北京无限立通通讯技术有限责任公司 一种垃圾邮件关键词的查找方法及系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Hadoop云平台下Nutch中文分词的研究与实现;朱潜,吴辰铌,朱志良,刘洪娟;《小型微型计算机系统》;20131231;第34卷(第12期);第2772-2776页 *
基于云计算的中文分词研究;张妍,许云峰,张立全;《河北科技大学学报》;20120630;第33卷(第3期);第267-268页 *
基于多属性的海量Web数据关联存储及检索系统;罗芳,李春花,周可,黄永峰,廖正霜;《计算机工程与科学》;20140331;第36卷(第3期);第404-410页 *

Also Published As

Publication number Publication date
CN104408034A (zh) 2015-03-11

Similar Documents

Publication Publication Date Title
CN104408034B (zh) 一种面向文本大数据的中文分词方法
Wang et al. Mathdqn: Solving arithmetic word problems via deep reinforcement learning
US8782051B2 (en) System and method for text categorization based on ontologies
Liu et al. Text features extraction based on TF-IDF associating semantic
CN111581949B (zh) 学者人名的消歧方法、装置、存储介质及终端
US20140344195A1 (en) System and method for machine learning and classifying data
US10885452B1 (en) Relation graph optimization using inconsistent cycle detection
CN102063508B (zh) 基于广义后缀树的中文搜索引擎模糊自动补全方法
Stoltzfus et al. Phylotastic! Making tree-of-life knowledge accessible, reusable and convenient
JP2010044637A (ja) データ処理装置、方法、及びプログラム
CN110083683B (zh) 基于随机游走的实体语义标注方法
US20180232351A1 (en) Joining web data with spreadsheet data using examples
Zu et al. Resume information extraction with a novel text block segmentation algorithm
JP2014059754A (ja) 情報処理システム、及び、情報処理方法
Al-Andoli et al. Deep autoencoder-based community detection in complex networks with particle swarm optimization and continuation algorithms
Ahmad 40 Algorithms Every Programmer Should Know: Hone your problem-solving skills by learning different algorithms and their implementation in Python
Han et al. SlimML: Removing non-critical input data in large-scale iterative machine learning
Corro et al. Efficient discontinuous phrase-structure parsing via the generalized maximum spanning arborescence
CN115329075A (zh) 基于分布式机器学习的文本分类方法
Yan Mapreduce and semantics enabled event detection using social media
JP2014010634A (ja) 対訳表現抽出装置、対訳表現抽出方法及び対訳表現抽出のためのコンピュータプログラム
CN115906835A (zh) 一种基于聚类和对比学习的中文问句文本表示学习的方法
US7840503B2 (en) Learning A* priority function from unlabeled data
US11650987B2 (en) Query response using semantically similar database records
CN113641654A (zh) 一种基于实时事件的营销处置规则引擎方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB03 Change of inventor or designer information

Inventor after: Xu Tao

Inventor after: Zou Fuhao

Inventor after: Zhou Ke

Inventor after: Tang Xiaoman

Inventor after: Zheng Sheng

Inventor after: Zhang Sheng

Inventor after: Chen Jincai

Inventor after: Li Chunhua

Inventor before: Zou Fuhao

Inventor before: Zhou Ke

Inventor before: Tang Xiaoman

Inventor before: Zheng Sheng

Inventor before: Zhang Sheng

Inventor before: Chen Jincai

Inventor before: Li Chunhua

COR Change of bibliographic data
C14 Grant of patent or utility model
GR01 Patent grant