CN103678695B - 一种并行处理方法及装置 - Google Patents
一种并行处理方法及装置 Download PDFInfo
- Publication number
- CN103678695B CN103678695B CN201310740110.7A CN201310740110A CN103678695B CN 103678695 B CN103678695 B CN 103678695B CN 201310740110 A CN201310740110 A CN 201310740110A CN 103678695 B CN103678695 B CN 103678695B
- Authority
- CN
- China
- Prior art keywords
- candidate
- terminal device
- frequent mode
- frequent
- suffix tree
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明适用于信息处理技术领域,提供了一种并行处理方法及装置,应用于包含多个终端设备的系统,所述方法包括:在各终端设备并行构建广义后缀树;基于构建的广义后缀树,通过MapReduce在各终端设备查找候选频繁模式;通过MapReduce在所述候选频繁模式中查找频繁模式。本发明通过在各终端设备并行化构建广义后缀树,加快了广义后缀树构建速度,而且计算过程可以处理更大的数据量,提供更大的内存空间,解决了因为单机内存限制不能对大数据采用广义后缀树的问题。另外,通过两次MapReduce查找频繁模式减少了对于带宽的消耗,且排除了较多冗余的遍历,遍历效率更高,从而有效加快了频繁模式查找速度。
Description
技术领域
本发明属于信息处理技术领域,尤其涉及一种并行处理方法及装置。
背景技术
后缀树是一种广泛使用的数据结构,通常用于字符串的处理,能快速解决很多关于字符串的问题。当同时处理多个字符串,即把给定的N个源字符串的所有后缀构建成一颗树,这种数据结构叫做广义后缀树。
随着大数据时代的到来,现有技术在构建广义后缀树时,由于数据量过大,导致在构建广义后缀树时耗时较长,而且单机的内存无法装入整棵树。
发明内容
本发明实施例在于提供一种并行处理方法及装置,以解决针对大数据构建广义后缀树存在的耗时较长以及单机内存不足的问题。
本发明实施例的第一方面,提供一种并行处理方法,应用于包含多个终端设备的系统,所述方法包括:
在各终端设备并行构建广义后缀树;
基于构建的广义后缀树,通过MapReduce在各终端设备查找候选频繁模式;
通过MapReduce在所述候选频繁模式中查找频繁模式。
本发明实施例的第二方面,提供一种并行处理装置,应用于包含多个终端设备的系统,所述装置包括:
构建单元,用于在各终端设备并行构建广义后缀树;
第一查找单元,用于基于构建的广义后缀树,通过MapReduce在各终端设备查找候选频繁模式;
第二查找单元,用于通过MapReduce在所述候选频繁模式中查找频繁模式。
本发明实施例与现有技术相比存在的有益效果是:本发明实施例在各终端设备并行构建广义后缀树,并基于构建的广义后缀树,通过MapReduce在各终端设备查找候选频繁模式,最后再通过MapReduce在所述候选频繁模式中查找频繁模式。本发明实施例通过在各终端设备并行化构建广义后缀树,加快了广义后缀树构建速度,而且计算过程可以处理更大的数据量,提供更大的内存空间,解决了因为单机内存限制不能对大数据采用广义后缀树的问题。另外,通过两次MapReduce查找频繁模式减少了对于带宽的消耗,且排除了较多冗余的遍历,遍历效率更高,从而有效加快了频繁模式查找速度,具有较强的易用性和实用性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明第一实施例提供的并行处理方法的实现流程图;
图2是本发明第二实施例提供的并行处理装置的组成结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
实施例一:
图1示出了本发明第一实施例提供的并行处理方法的实现流程,应用于包含多个终端设备的系统,其过程详述如下:
在步骤S101中,在各终端设备并行构建广义后缀树。
广义后缀树表示多个字符串的后缀。由于单机构建广义后缀树速度较慢,而且可能存在内存无法装入所有字符串的问题。因此,本实施例在各终端设备并行构建广义后缀树。
具体的是,在MapReduce架构下,将字符串分配到各个终端设备,其中所述字符串可以平均分配到各个终端设备,也可以采用其他预先设定的分配方式分配到各个终端设备;
通过Ukkonen算法对各终端设备分配的字符串并行构建广义后缀树。
本实施例采用Ukkonen算法构建广义后缀树的原因是,Ukkonen算法与传统构建算法相比在每一次迭代过程不需要判断树结构是否改变,且通过suffixlink加快了插入新字符的过程。
在步骤S102中,基于构建的广义后缀树,通过MapReduce在各终端设备查找候选频繁模式。
具体包括:对各终端设备的广义后缀树进行深度优先遍历;
判断遍历过程中当前子字符串(广义后缀树上每一个节点到根的路径代表一个子字符串)的频繁模式是否满足Repeat>N/m,其中N表示所有终端设备所述当前子字符串出现的次数,m表示终端设备数目;
若是,则将当前子字符串作为候选频繁模式,否则对以所述当前节点为根的子树进行剪枝。
在本实施例中,所述子字符串出现的次数为当前节点的子节点里所有叶子索引的个数(每一个索引表示该叶子到根所代表的路径在某个子字符串里出现过)之和。
由于Ukkonen算法对于广义后缀树的表示存在压缩,因此本实施例进一步包括:
判断所述当前节点到下一节点的边上是否存在多个字符串,若是,则将所述多个字符串以及所述多个字符串的组合作为候选频繁模式。例如,当前节点到下一节点的边上存在字符串a,an;则将a,an,ana三个字符串作为候选频繁模式,即输出三个子key,value为0。
需要说明的是,由于同一终端设备上key有唯一性,因此可直接跨过combine。第一次MapReduce的Reduce过程则是输入遍历过程的(key,value)序列,所有的key的集合则是候选频繁模式的集合。
在步骤S103中,通过MapReduce在所述候选频繁模式中查找频繁模式。
在本实施例中,最直接的MapReduce并行化方案是在每一个终端设备上针对所有字符串以字符串为key、Repeat为value输出(key,value)对,然后在Reduce过程中将所有Repeat值(即value值)相加。然而这么做存在的问题是(key,value)对太多,MapReduce过程对带宽要求过高。
另外,在某一终端设备上出现次数较少的字符串,在其他终端设备上出现的次数可能较多而成为频繁模式,因此对于单个终端设备Repeat值较小的(key,value)对不能简单舍弃。基于此,本实施例提出了两次MapReduce的方案,即在第一次MapReduce找出候选频繁模式后,第二次MapReduce找出候选频繁模式中的频繁模式,具体如下:
读取各终端设备存储的所有候选频繁模式Candidate,构成一个候选频繁模式集合CandidateSet;
基于所述候选频繁模式集合中的所有字符串,采用Ukkonen算法构建广义后缀树;
在该广义后缀树中查找所述候选频繁模式集合中代表每个候选频繁模式的具体节点,并返回值num;
例如,如果Candidate由具体节点比如节点node表示,返回值num=node.Repeat;
如果由节点之间边上某处表示,设该边指向的节点为node2,返回值num=node2.Repeat;
如果Candidate在广义后缀树里不存在,返回值num=0;
在某个候选频繁模式返回值num之和大于预设阈值时,将该候选频繁模式作为频繁模式输出。
需要说明的是,在Map步骤中,可将(Candidate,num)序列作为(key,value)序列。由于同一终端设备上key有唯一性,因此第二次MapReduce的Combine过程可以直接跳过。
因此第二次Reduce过程可将各终端设备某个Candidate(key,value)的value值相加得到某个Candidate重复次数之和,当所述重复次数之和大于预设阈值时,将该Candidate作为频繁模式输出。
本发明实施例通过在各终端设备并行化构建广义后缀树,加快了广义后缀树构建速度,而且计算过程可以处理更大的数据量,提供更大的内存空间,解决了因为单机内存限制不能对大数据采用广义后缀树的问题。另外,通过两次MapReduce查找频繁模式减少了对于带宽的消耗,且排除了较多冗余的遍历,遍历效率更高,从而有效加快了频繁模式查找速度。而且本发明实施例实现简单,对硬件要求较低,从而有利于降低产品成本,具有较强的易用性和实用性。
实施例二:
图2示出了本发明第二实施例提供的并行处理装置的组成结构,为了便于说明,仅示出了与本发明实施例相关的部分。
该并行处理装置可应用于包含多个终端设备的系统,所述终端设备包括口袋计算机(Pocket Personal Computer,PPC)、掌上电脑、计算机、笔记本电脑、个人数字助理(Personal Digital Assistant,PDA)等。该并行处理装置可以是运行于这些终端内的软件单元、硬件单元或者软硬件相结合的单元,也可以作为独立的挂件集成到这些终端中或者运行于这些终端的应用系统中。
该并行处理装置包括构建单元21、第一查找单元22以及第二查找单元23。其中,各单元具体功能如下:
构建单元21,用于在各终端设备并行构建广义后缀树;
第一查找单元22,用于基于构建的广义后缀树,通过MapReduce在各终端设备查找候选频繁模式;
第二查找单元23,用于通过MapReduce在所述候选频繁模式中查找频繁模式。
进一步的,所述构建单元21包括:
分配模块211,用于在MapReduce架构下,将字符串分配到各个终端设备;
构建模块212,用于通过Ukkonen算法对各终端设备分配的字符串并行构建广义后缀树。
进一步的,所述第一查找单元22包括:
遍历模块221,用于对各终端设备的广义后缀树进行深度优先遍历;
判断模块222,用于判断遍历过程中当前子字符串的频繁模式是否满足Repeat>N/m,其中N表示所有终端设备所述当前子字符串出现的次数,m表示终端设备数目;
第一处理模块223,用于在所述判断模块判断结果为是时,将当前子字符串作为候选频繁模式,在所述判断模块判断结果为否时对以所述当前节点为根的子树进行剪枝。
进一步的,所述第一查找单元22还包括:
第二处理模块224,用于判断所述当前节点到下一节点的边上是否存在多个字符串,若是,则将所述多个字符串以及所述多个字符串的组合作为候选频繁模式。
进一步的,所述第二查找单元23包括:
读取模块231,用于读取各终端设备存储的所有候选频繁模式,构成一个候选频繁模式集合;
构建模块232,用于基于所述候选频繁模式集合中的所有字符串,采用Ukkonen算法构建广义后缀树;
查找模块233,用于在该广义后缀树中查找所述候选频繁模式集合中代表每个候选频繁模式的具体节点,并返回值num;
输出模块234,用于在所述返回值num大于预设阈值时,将所述返回值num对应的候选频繁模式作为频繁模式输出。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元或模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元或模块既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述装置中单元、模块的具体工作过程,可以参考前述方法实施例的对应过程,在此不再赘述。
综上所述,本发明实施例在各终端设备并行构建广义后缀树,并基于构建的广义后缀树,通过MapReduce在各终端设备查找候选频繁模式,最后再通过MapReduce在所述候选频繁模式中查找频繁模式。本发明实施例通过在各终端设备并行化构建广义后缀树,加快了广义后缀树构建速度,而且计算过程可以处理更大的数据量,提供更大的内存空间,解决了因为单机内存限制不能对大数据采用广义后缀树的问题。另外,通过两次MapReduce查找频繁模式减少了对于带宽的消耗,且排除了较多冗余的遍历,遍历效率更高,从而有效加快了频繁模式查找速度。而且本发明实施例实现简单,对硬件要求较低,从而有利于降低产品成本,具有较强的易用性和实用性。
本领域普通技术人员还可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以在存储于一计算机可读取存储介质中,所述的存储介质,包括ROM/RAM、磁盘、光盘等。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下做出若干等同替代或明显变型,而且性能或用途相同,都应当视为属于本发明由所提交的权利要求书确定的专利保护范围。
Claims (6)
1.一种并行处理方法,其特征在于,应用于包含多个终端设备的系统,所述方法包括:
在各终端设备并行构建广义后缀树;
基于构建的广义后缀树,通过MapReduce在各终端设备查找候选频繁模式;
通过MapReduce在所述候选频繁模式中查找频繁模式;
所述基于构建的广义后缀树,通过MapReduce在各终端设备查找候选频繁模式包括:
对各终端设备的广义后缀树进行深度优先遍历;
判断遍历过程中当前子字符串的频繁模式是否满足Repeat>N/m,其中N表示所有终端设备所述当前子字符串出现的次数,m表示终端设备数目;
若是,则将当前子字符串作为候选频繁模式,否则对以当前节点为根的子树进行剪枝;
所述通过MapReduce在所述候选频繁模式中查找频繁模式包括:
读取各终端设备存储的所有候选频繁模式,构成一个候选频繁模式集合;
基于所述候选频繁模式集合中的所有字符串,采用Ukkonen算法构建广义后缀树;
在该广义后缀树中查找所述候选频繁模式集合中代表每个候选频繁模式的具体节点,并返回值num;
在某个候选频繁模式返回值num之和大于预设阈值时,将该候选频繁模式作为频繁模式输出。
2.如权利要求1所述的方法,其特征在于,所述在各终端设备并行构建广义后缀树包括:
在MapReduce架构下,将字符串分配到各个终端设备;
通过Ukkonen算法对各终端设备分配的字符串并行构建广义后缀树。
3.如权利要求1所述的方法,其特征在于,所述方法还包括:
判断所述当前节点到下一节点的边上是否存在多个字符串,若是,则将所述多个字符串以及所述多个字符串的组合作为候选频繁模式。
4.一种并行处理装置,其特征在于,应用于包含多个终端设备的系统,所述装置包括:
构建单元,用于在各终端设备并行构建广义后缀树;
第一查找单元,用于基于构建的广义后缀树,通过MapReduce在各终端设备查找候选频繁模式;
第二查找单元,用于通过MapReduce在所述候选频繁模式中查找频繁模式;
所述第一查找单元包括:
遍历模块,用于对各终端设备的广义后缀树进行深度优先遍历;
判断模块,用于判断遍历过程中当前子字符串的频繁模式是否满足Repeat>N/m,其中N表示所有终端设备所述当前子字符串出现的次数,m表示终端设备数目;
第一处理模块,用于在所述判断模块判断结果为是时,将当前子字符串作为候选频繁模式,在所述判断模块判断结果为否时对以当前节点为根的子树进行剪枝;
所述第二查找单元包括:
读取模块,用于读取各终端设备存储的所有候选频繁模式,构成一个候选频繁模式集合;
构建模块,用于基于所述候选频繁模式集合中的所有字符串,采用Ukkonen算法构建广义后缀树;
查找模块,用于在该广义后缀树中查找所述候选频繁模式集合中代表每个候选频繁模式的具体节点,并返回值num;
输出模块,用于在某个候选频繁模式返回值num之和大于预设阈值时,将该候选频繁模式作为频繁模式输出。
5.如权利要求4所述的装置,其特征在于,所述构建单元包括:
分配模块,用于在MapReduce架构下,将字符串分配到各个终端设备;
构建模块,用于通过Ukkonen算法对各终端设备分配的字符串并行构建广义后缀树。
6.如权利要求4所述的装置,其特征在于,所述第一查找单元还包括:
第二处理模块,用于判断所述当前节点到下一节点的边上是否存在多个字符串,若是,则将所述多个字符串以及所述多个字符串的组合作为候选频繁模式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310740110.7A CN103678695B (zh) | 2013-12-27 | 2013-12-27 | 一种并行处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310740110.7A CN103678695B (zh) | 2013-12-27 | 2013-12-27 | 一种并行处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103678695A CN103678695A (zh) | 2014-03-26 |
CN103678695B true CN103678695B (zh) | 2018-05-11 |
Family
ID=50316239
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310740110.7A Active CN103678695B (zh) | 2013-12-27 | 2013-12-27 | 一种并行处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103678695B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107015868B (zh) * | 2017-04-11 | 2020-05-01 | 南京大学 | 一种通用后缀树的分布式并行构建方法 |
CN107092675B (zh) * | 2017-04-12 | 2020-08-18 | 新疆大学 | 一种基于统计和浅层语言分析的维吾尔文语义串抽取方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102024019A (zh) * | 2010-11-04 | 2011-04-20 | 曙光信息产业(北京)有限公司 | 一种分布式文件系统中基于后缀树的目录组织方法 |
CN102945244A (zh) * | 2012-09-24 | 2013-02-27 | 南京大学 | 基于句号特征字串的中文网页重复文档检测和过滤方法 |
CN103258049A (zh) * | 2013-05-27 | 2013-08-21 | 重庆邮电大学 | 一种基于海量数据的关联规则挖掘方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1586191A4 (en) * | 2003-01-22 | 2009-03-11 | Min-Kyum Kim | APPARATUS AND METHOD FOR ENTERING ALPHABETICAL CHARACTERS |
-
2013
- 2013-12-27 CN CN201310740110.7A patent/CN103678695B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102024019A (zh) * | 2010-11-04 | 2011-04-20 | 曙光信息产业(北京)有限公司 | 一种分布式文件系统中基于后缀树的目录组织方法 |
CN102945244A (zh) * | 2012-09-24 | 2013-02-27 | 南京大学 | 基于句号特征字串的中文网页重复文档检测和过滤方法 |
CN103258049A (zh) * | 2013-05-27 | 2013-08-21 | 重庆邮电大学 | 一种基于海量数据的关联规则挖掘方法 |
Non-Patent Citations (1)
Title |
---|
网络制造资源个性化主题搜索技术研究与应用;李兆春;《中国优秀硕士学位论文全文数据库 工程科技Ⅱ辑》;20090215(第2期);C029-48页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103678695A (zh) | 2014-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Guo et al. | Community discovery by propagating local and global information based on the MapReduce model | |
Morone et al. | Influence maximization in complex networks through optimal percolation | |
CN104866502B (zh) | 数据匹配的方法及装置 | |
Lin | Distributed algorithms for fully personalized pagerank on large graphs | |
CN107025218A (zh) | 一种文本去重方法和装置 | |
Fard et al. | Towards efficient query processing on massive time-evolving graphs | |
CN101154228A (zh) | 一种分段模式匹配方法及其装置 | |
Chen et al. | Computer generation of high throughput and memory efficient sorting designs on FPGA | |
Xia et al. | Effectively identifying the influential spreaders in large-scale social networks | |
US10528328B2 (en) | Learning from input patterns in Programing-By-Example | |
US20220005546A1 (en) | Non-redundant gene set clustering method and system, and electronic device | |
WO2024055571A1 (zh) | 一种namespace设置方法、装置及可读存储介质 | |
Cao et al. | Delta-simrank computing on mapreduce | |
KR102498294B1 (ko) | 키워드 공동출현 네트워크를 기반으로 핵심 키워드를 추출하는 방법 및 장치 | |
Zhang et al. | SUMMA: subgraph matching in massive graphs | |
Irving et al. | The suffix binary search tree and suffix AVL tree | |
CN103678695B (zh) | 一种并行处理方法及装置 | |
US7363203B2 (en) | Determining event causality including employment of partitioned event space | |
US9715514B2 (en) | K-ary tree to binary tree conversion through complete height balanced technique | |
CN103678355B (zh) | 文本挖掘方法和文本挖掘装置 | |
CN104598485A (zh) | 处理数据库表的方法和设备 | |
Yuan et al. | Gcache: neighborhood-guided graph caching in a distributed environment | |
Werner et al. | Automated composition and execution of hardware-accelerated operator graphs | |
CN114238576A (zh) | 数据匹配方法、装置、计算机设备和存储介质 | |
Shi et al. | An overlapping community discovery algorithm based on label propagation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |