CN103593418B - 一种面向大数据的分布式主题发现方法及系统 - Google Patents
一种面向大数据的分布式主题发现方法及系统 Download PDFInfo
- Publication number
- CN103593418B CN103593418B CN201310526790.2A CN201310526790A CN103593418B CN 103593418 B CN103593418 B CN 103593418B CN 201310526790 A CN201310526790 A CN 201310526790A CN 103593418 B CN103593418 B CN 103593418B
- Authority
- CN
- China
- Prior art keywords
- class
- document
- abbreviation
- mapping
- data
- 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
- G06F16/35—Clustering; Classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- 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
- G06F16/36—Creation of semantic tools, e.g. ontology or thesauri
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种面向大数据的分布式主题发现系统及方法,包含三个并行处理过程,每个过程均由映射、组合、化简三个功能模块中的一个或多个组合而成,对每个输入文档的特征向量进行正规化,并且对构成该文档的每个词在本文档中出现次数进行计数;在映射功能模块端将每个文档作为一个原始类并对文档频率计数,在组合模块端对映射模块端产生的原始类进行本地聚类,生成局部类,在化简模块端对来自多个远端物理节点组合产生的局部类进行聚类,生成全局类;对第二个映射/化简过程产生全局类的内部关键词进行打分和排序,输出用户所需的K个高分关键词表达主题。从而处理TB级数据,并且计算能力线性上升,真正实现分布式计算,提高性能和效率。
Description
技术领域
本发明涉及互联网行业、新闻传媒行业、Web大数据分析行业,尤其涉及一种面向大数据的分布式主题发现方法及系统。
背景技术
主题发现的主要任务是把大量讨论同一事件或相关话题的新闻报道聚合在同一个簇下,以减少重复和冗余。对政府和电信运营商而言,海量新闻和评论主题发现技术可以帮助他们更快更实时地了解社情民意。按照处理过程,主题发现可以分为以下几个步骤:事件相关网页爬取、网页文本解析、文本内容分词、生成词典、文本建模、文本单路径增量聚类。事件相关网页爬取是将和当前热点事件相关的互联网原始信息(如网页新闻、BBS帖子以及网友评论)利用爬虫工具抓取下来;网络文本解析即把爬取下来的原始网页进行包含剔除网页标签、提取正文和必要信息(如来源、作者、发表时间等)等操作的清洗;文本内容分词是将内容分解为一个个可以被计算机识别的汉语词语,以便后序的相应操作;生成词典则是根据分词结果,进行去重排序后,生成序号和单词的键值对词典。文本建模依据分词后的词频统计值将文本表示为一组关键词及以其词频为权重的特征向量;文本单路径增量聚类是计算文本向量之间的距离或者相似程度,以确定两个文本是否同属一个话题,并且根据一种打分机制,寻找到多个能代表某一个话题的主题关键词。采集和处理为聚类提供数据来源,是基础;分词和建模是必要的转换以使后面的步骤得以进行;聚类是话题发现的核心,聚类方法过程的效率和精度关系到主题发现的有效性。
更具体地,主题发现常用的核心方法过程单路径增量聚类方法过程依次处理输入的互联网文本(在这之前已经经过建模处理),一次一篇,以增量的方式进行动态聚类,将文本向量与已有话题内的报道进行比较,根据相似度度量进行匹配。如果与某个话题模型匹配,则把文本归入该话题,如果该文本和所有话题模型的相似度度量均小于某一阈值,则将该文本表示为一个新的话题种子,创建新话题。不同的阈值设置可以得到不同粒度大小的话题,阈值区间一般为[0,1]。
单路径增量聚类方法过程到目前为止是主题发现流程使用最为频繁的方法过程,相比PLSA系列方法过程而言,单路径方法过程执行效率较高,方法过程思想简洁清晰,易于理解。但是传统单路径方法过程也面临着严重依赖文档输入顺序,处理数据量有限,以及聚类结果代表关键词打分机制不完善等问题。处理数据量有限的问题主要是由于传统单路径方法过程不能实现并行机制造成的,单机处理数据量受到内存和存储等硬件条件的严重制约。此外,传统的单路径方法过程得出每类关键词一般基于本类词频排序以及文档频率排序,但这样的策略容易使单篇具有较高词频的关键词或者多篇低频的关键词得分过高,不能很好地反映本类实际主题。目前急需一种改进的单路径方法过程能实时处理海量网页文本,快速准确地聚合主题,反映社情民意。
发明专利“基于在线视频分享网站结构及视频描述文本信息的视频主题发现的方法”属于网络多媒体信息处理领域。在视频分享网站高噪声、主题数目不易确定的环境下,解决视频主题发现的技术问题。本发明主要利用视频分享网站上视频间链接关系来帮助视频主题的发现,包括利用抓取相关视频信息来调整视频BOW模型参数,进行文本信息增强;使用基于关键词的图模型进行主题聚合;以及利用视频与视频间回复关系暗示主题相似性的假设进行结果修正三大步骤。该方法可以在没有任何先验知识的前提下,自动的发现大量网络视频的主题结构,并对单个视频的主题进行有效的归纳,其效果较之常见的数种方法都有明显的进步。该发明目的是视频主题发现,并非以网页为主的海量文本主题发现;该发明使用图模型的技术方案,并不使用并行单路径增量聚类的技术方案;该发明不是在分布式编程框架和分布式文件系统中实现。
发明专利“基于分布式多级聚类的话题检测装置及方法”公开了一种基于分布式多级聚类的话题检测装置及方法,该装置主要包括新闻采集模块、新闻分类模块、话题检测模块和话题整合模块以及话题展示模块;该方法包括:题检测方法,其特征在于,该方法包括:A、对新闻进行采集的步骤;B、对所述新采集的新闻进行分类的步骤;C、对各频道并行地进行多级聚类的步骤;D、计算所有话题的热度,筛选出全系统内的热点话题和每个频道内的热点话题。采用本发明,能够解决在互联网环境中大量文档快速更新的条件下,话题检测面临的检测效果与时间开销的尖锐矛盾。该发明主要关注新闻话题检测,并不适用于所有内容(除中英文外,依赖于具体分词工具)的海量文本文件主题发现;该发明是流程性质的系统,包含从网页采集到处理的多个模块。并没有注重于方法过程的改进;该发明不是在分布式编程框架和分布式文件系统中实现。
发明专利“一种基于大数据的话题检测方法及装置”,能够在互联网环境中大量网页文本快速更新的情况下,同时保证检测效果的准确性和时效性。包括:依据用户网络行为数据抽取热点网页;采集所述热点网页的内容;依据所述热点网页的内容,提取得到所述热点网页的网页特征向量;依据所述热点网页的网页特征向量对所述热点网页进行聚类,得到相应的潜在热点话题类;以所述潜在热点话题类作为种子类,对新增网页进行增量聚类;所述新增网页包括在线网页;针对增量聚类后的潜在热点话题类,通过分析其对应的用户关注度参数,判定其是否为热点话题类。该发明抽取热点网页的方式为采样分析,获取特定样本数据。但是限于特定范围的网页,对任何建模后的向量文件不能进行主题发现;该发明需要先产生潜在热点话题类作为种子类,再对后来的网页进行分析。不能直接对网页等文本进行主题发现;该发明不是在分布式编程框架和分布式文件系统中实现。
发明内容
为了解决上述问题,本发明的目的在于解决传统单路径增量聚类方法过程不能处理海量数据、严重依赖输入次序以及关键词打分机制不完善的问题,提出了一种面向大数据的分布式主题发现核心方法过程,基于传统单路径方法过程进行改进,利用大数据处理框架Hadoop和Map/Reduce机制,在多个Mapper端进行分割后的较小数据块进行局部聚类,减轻单机内存和计算压力,在Reducer端再次聚合Mapper端已生成的类,形成全局聚类;使用随机抽取的文档作为聚类原始种子,解决严重依赖输入次序的问题;采用改进的打分机制,兼顾关键词词频和文档频率,降低极少数“异常文档”的干扰。由此,提出了一种面向大数据的分布式主题发现方法和系统。
具体地讲,本发明公开了一种面向大数据的分布式主题发现系统,共包含三个并行处理过程,每个过程均由映射、组合、化简三个功能模块中的一个或多个组合而成,其中:
映射模块,用于将任务的输入数据分割成多个固定大小的数据片段,随后将每个数据片段进一步分解成一批键值对<K1,V1>;系统自动将该键值对<K1,V1>依次传入用户编写的处理函数中,生成计算的中间结果键值对<K2,V2>;接着系统自动将中间结果键值对<K2,V2>按照键K2进行排序,将K2值相同V2放在一起形成一个新的列表,形成<K2,list(V2)>的元组,list表示值的列表,为下一步的组合模块作为输入;
组合模块,当映射模块生成的数据过大时,组合功能模块将映射模块产生的<K2,list(V2)>元组作为输入,使用用户编写的处理函数对输入数据进行组合和压缩,生成<K3,list(V3)>的元组,作为下一步化简模块的输入;
化简模块,用于接收来自多个来自远端物理节点的组合模块产生的<K3,list(V3)>元组作为输入;化简模块对不同来源的<K3,list(V3)>元组按照K3的值进行排序,使来自不同物理节点的拥有相同K3的<K3,list1(V3)>,<K3,list2(V3)>,<K3,list3(V3)>元组合并成为一个<K3,list(allV3)>全局元组,list1,list2,list3代表来自三个不同物理节点的组合模块产生的元组,将此全局元组作为输入使用用户编写的处理函数对输入数据进行化简等处理,生成输出结果键值对<K4,V4>,系统自动将输出结果写入分布式文件系统中,形成最终结果文件。
本发明还公开了一种面向大数据的分布式主题发现方法,利用映射/化简机制,将大数据分割成小块数据,在多个映射模块端进行局部单路径聚类,得到局部的文档类;在化简模块端将映射模块端生成的局部类再进行聚类,得到全局聚类。
该方法包括三个并行处理过程:
第一个映射/化简过程,用于对每个输入文档的特征向量进行正规化,并且对构成该文档的每个词在本文档中出现次数进行计数;
该第一个映射/化简过程,由映射模块组成,包括:对输入各个特征词的词频求平方和后开根号,再除以每一个特征维词频,完成向量正规化,使向量的模为1。
具体包括将原向量每个特征维附上每个词在该文档中出现的词频,整个过程的输出形为:文件名$网页title,正规化后特征向量\t处理后的原特征向量的键值对,其中处理后的原特征向量格式为“词在词典中编号:词频:本类中出现该词的文档数目恒为1。
第二个映射/化简过程,用于在映射功能模块端将每个文档作为一个原始类并对文档频率计数,在组合模块端对映射模块端产生的原始类进行本地聚类,生成局部类,在化简模块端对来自多个远端物理节点组合产生的局部类进行聚类,生成全局类;
该第二个映射/化简过程,由映射、组合、化简三个功能模块组成,其中映射模块完成预处理功能,将输入的每个文档当做一个原始类,在文档数据最后加入原始类包含文档的计数,此阶段各条数据的处理时相互独立的;组合模块完成本地局部聚类过程,相同键的数据需要进行聚类处理,相互之间有了关联。化简模块完成全局聚类过程,来自多个远端物理节点组合产生的类在化简中进行全局聚类,数据之间是有关联的,分别记为Mapper2、Combiner2、Reducer2,表示分别实现该映射、组合、化简模块的具有系统资源的计算单元。
该第二个映射/化简过程,具体包括:
Mapper2对输入添加聚类文档计数,此时每一个类的文档计数自然为1;
Mapper1输出为NullWritable,表示值为空,文件名$网页title名\t正规化特征向量\t原向量\t本类包含网页数目)的键值对。
每一个Combiner2对应一个Mapper2,在Combiner2端对Mapper2输出的结果进行局部聚类。
所述聚类具体包括:随机选取不多于输入数据总数1/50的文档作为已有初始种子类,对其余文档,分别与已有聚类计算相似度,采用余弦值度量相似度,如果待归类文档与最相似的已有类相似度大于用户设定阈值,则将此文档吸收进最相似的已有类,更新该已有类的特征向量和类包含文档计数;如果与所有已有类的最大相似度仍然小于所给阈值,则该文档独自成为一个新的已有类,参与后续聚类运算。
该第二个映射/化简过程还包括:
Combiner2输出结果为多个类,每个类以(NullWritable,文件名1$网页title名1@文件名2$网页title名2…\t代表本类的正规化特征向量\t代表本类的特征向量\t类文档计数)键值对表示;
进入Reducer2的组合过程,和Combiner2的原理相似,不同的是来自所有Combiner2的输出由于共有同样的键NullWritable,均进入同一个Reducer2的同一个reduce函数,从理论上保证了聚类的全局性;
在化简中,随机选取1个类作为已有初始种子类,其余待处理聚类依次和已有类计算余弦值相似度,如果最大相似度大于阈值,则待处理类融入已有最相似类,否则成为一个新的已有类;
输出(NullWritable,文件名1$网页title名1@文件名2$网页title名2…\t代表本类的特征向量\t类文档计数)键值对。
第三个映射/化简过程,用于对第二个映射/化简过程产生全局类的内部关键词进行打分和排序,输出用户所需的K个高分关键词表达主题。
该第三个映射/化简过程,包含映射模块和化简模块,分别记为Mapper3和Reducer3;在Mapper3的映射函数中,对每一个类的单词进行打分,打分策略为:S=lg(wordcount+1)lg(pagecount+1),S表示分数,wordcount为关键词在本主题中出现次数,pagecount为本主题包含该关键词的文档数目;在分数排序阶段,采用了链表数据结构,使得频繁的插入操作在常数时间完成,整个复杂度为O(Knm),K为用户设定的主题关键词个数,n为本类特征维数,m为聚类个数;
Mapper3输出为(NullWritable,文件名1$网页title名1@文件名2$网页title名2…\t代表本类的特征向量;
进入Reducer3之后,在reduce函数中对类集合进行编号,并按照用户输入参数输出HTML格式文件或者TXT格式文件。
本发明设计实现了基于Hadoop的改进的单路径增量聚类主题发现方法过程,利用Map/Reduce机制,将大数据分割成小块数据,在多个Mapper端进行局部单路径聚类,得到局部的文档类;在Reducer端将Mapper端生成的局部类再进行聚类,得到全局聚类。这种设计极大减轻了单机的内存压力和计算压力,使处理数据规模可以随着Hadoop集群机器数量的增加而线性增加,达到了海量数据分布式计算的技术效果,;
在Mapper端局部聚类阶段,随机选取1到N个已有文档(聚类)作为初始种子类(N不大于输入样本的1/50)。在Reducer端,随机选取1个已有类作为初始种子类。通过这种设计,克服了传统单路径方法过程严重依赖文档输入顺序的问题,在Reducer端统一再聚类的方式,保证了既有较高的并行效率,也不影响聚类结果的技术效果;
在对生成的主题选取关键词阶段,通过采用score=lg(wordcount+1)lg(pagecount+1)(wordcount为关键词在本主题中出现次数,pagecount为本主题包含该关键词的文档数目)的打分排序策略,使得单篇高频的关键词或者多篇低频的关键词不至于获得过高的分数,达到准确抽取反映本主题核心内容关键词的技术效果。
在对关键词打分排序阶段,使用了链表数据结构,使得频繁的插入操作得以在O(1)时间内完成,并且由于单个聚类特征维度并不会太大,维护链表的开销完全可以承受。实现了低成本、高效率的技术效果。
总的技术效果
本发明实现了基于Hadoop平台和Map/Reduce框架的分布式主题发现方法过程。与现有技术相比,本发明提出的新方法和系统可以处理TB级数据,并且计算能力随着Hadoop集群机器的增加而接近线性上升,真正实现了分布式计算,大大提高性能和效率。此外,在Mapper端和Reducer端采用不同的随机生成初始种子类策略,降低了方法过程对输入文档次序的严重依赖。根据实际应用提出的新的关键词打分方式,兼顾词频和文档频率同时不过分强调某一个因素,准确概括了主题的主旨。
附图说明
图1为单路径增量聚类主题发现并行方法过程流程图;
图2为采集网页参数配置;
图3为小部分流程输入文件;
图4为Hadoop Jobtracker展示的流程运行过程;
图5为第一个Job运行结果文件;
图6为第二个Job运行结果文件;
图7为系统最终输出结果文件;
图8为其中一个超链接指向的网页内容。
具体实施方式
本发明基于开源软件平台Hadoop,在其上利用Map/Reduce(映射/化简)编程框架(该编程框架用于大规模TB级数据集的并行计算,采用“分而治之”的思想,把对大规模数据集的操作,分发给一个主节点管理下的各分节点共同完成,然后通过整合各分节点的中间结果,得到最终结果。)它对传统单路径聚类主题发现过程进行改进,达到分布式计算的目的。
技术方案总体分为三个Map/Reduce流程。
初始输入为包含所有待处理文档的存储在HDFS(分布式文件系统)上的文本文件,每一行格式为:“网页名$网页title名\t词在词典中编号:词频”。
本发明面向大数据的分布式主题发现系统,共包含三个并行处理过程,每个过程均由map(映射)、combine(组合)、reduce(化简)三个功能模块中的一个或多个组合而成,其中:
map模块,将任务的输入数据分割成多个固定大小的split(数据片段),随后将每个split进一步分解成一批键值对<K1,V1>。系统自动将键值对<K1,V1>依次传入用户编写的处理函数中,生成计算的中间结果键值对<K2,V2>。接着系统自动将中间结果键值对<K2,V2>按照键K2进行排序,将K2值相同V2放在一起形成一个新的列表,形成<K2,list(V2)>的元组(list表示值的列表),为下一步的combine功能模块作为输入。如:对输入的每一个文档的特征向量进行正规化,并对每个词在每个文档中出现次数进行计数。
combine模块,combine模块本质上是本地的reduce模块,当map模块生成的数据过大时,带宽成为主要瓶颈,combine功能模块将map模块产生的<K2,list(V2)>元组作为输入,使用用户编写的处理函数对输入数据进行组合和压缩,生成<K3,list(V3)>的元组,作为下一步reduce模块的输入。由于map模块和combine模块一定位于同一台物理节点上,它们之间的数据传输代价很低,combine模块对map模块的输出进行了组合压缩,大大减少了传输给reduce模块(往往在远端节点上)的数据量,节省了网络带宽,减轻了系统压力。
reduce模块,reduce模块接收来自多个来自远端物理节点的combine模块产生的<K3,list(V3)>元组作为输入。Reduce模块对不同来源的<K3,list(V3)>元组按照K3的值进行排序,使来自不同物理节点的拥有相同K3的<K3,list1(V3)>,<K3,list2(V3)>,<K3,list3(V3)>元组(list1,list2,list3代表来自三个不同物理节点的combine模块产生的元组)合并成为一个<K3,list(allV3)>全局元组,将此全局元组作为输入使用用户编写的处理函数对输入数据进行化简等处理,生成输出结果键值对<K4,V4>,系统自动将输出结果写入HDFS(分布式文件系统中),形成最终结果文件。
需要说明的是,并行处理过程必须包含map功能模块,不一定包含combine功能模块和reduce功能模块,如何组合需视具体需要而定。
本发明面向大数据的分布式主题发现方法,利用Map/Reduce机制,将大数据分割成小块数据,在多个Mapper端进行局部单路径聚类,得到局部的文档类;在Reducer端将Mapper端生成的局部类再进行聚类,得到全局聚类。包括三个并行处理过程:
第一个Map/Reduce过程,用于对每个输入文档的特征向量进行正规化,并且对构成该文档的每个词在本文档中出现次数进行计数。如:第一个Job MR1完成输入向量的正规化和原向量的再处理;
第二个Map/Reduce过程,用于在map功能模块端将每个文档作为一个原始类并对文档频率计数,在combine功能模块端对map端产生的原始类进行本地聚类,生成局部类,在reduce功能模块端对来自多个远端物理节点combine产生的局部类进行聚类,生成全局类。如:第二个Job MR2完成输入文档的局部聚类,以及之后的全局聚类,产生最终的多个类别;
第三个Map/Reduce过程,用于对第二个Map/Reduce过程产生全局类的内部关键词进行打分和排序,输出用户所需的K个高分关键词表达主题。如:第三个Job MR3对得到的类别内部关键词进行打分和排序,输出用户所需的K个高分关键词表达主题。
下面详细进行说明:
第一个Map/Reduce过程,称为MR1,由map功能模块组成,不包括combine和reduce功能模块(本质上该过程是预处理步骤,各条数据处理过程相互独立,不需要用combine模块或者reduce模块进行组合和化简),此处记为Mapper1(Mapper1表示实现该map功能模块的具有系统资源的计算单元)。Mapper1实现对输入的每一条数据,也就是每一个文档的特征向量进行正规化,并对每个词在每个文档中出现次数计数的功能。具体过程为,对输入各个特征词的词频求平方和后开根号,再除以每一个特征维词频,完成向量正规化,使向量的模为1。为了下一个Map/Reduce考虑,将原向量每个特征维附上每个词在该文档中出现的词频(以:号连接)。由此,整个MR1过程的输出形为(文件名$网页title,正规化后特征向量\t处理后的原特征向量)的键值对,其中处理后的原特征向量格式为“词在词典中编号:词频:本类中出现该词的文档数目(此处恒为1)”。MR1流程结束。
第二个Map/Reduce过程,称为MR2,由map(映射)、combine(组合)、reduce(化简)三个功能模块组成(map模块完成预处理功能,将输入的每个文档当做一个原始类,在文档数据最后加入原始类包含文档的计数,此阶段各条数据的处理时相互独立的。combine模块完成本地局部聚类过程,相同键的数据需要进行聚类处理,相互之间有了关联。reduce模块完成全局聚类过程,来自多个远端物理节点combine产生的类在reduce中进行全局聚类,数据之间是有关联的),分别记为Mapper2、Combiner2、Reducer2(表示分别实现该map,combine,reduce功能模块的具有系统资源的计算单元)。Mapper2对输入(MR1的输出)添加聚类文档计数(以\t符号连接),也就是将每一个输入文档当做一个单独的类,因此此时每一个类的文档计数自然为1。Mapper1输出为(NullWritable(表示值为空,是一种特殊的键,下同),文件名$网页title名\t正规化特征向量\t原向量\t本类包含网页数目)的键值对。每一个Combiner2对应一个Mapper2,在Combiner2端对Mapper2输出的结果进行局部聚类。由于Mapper2输出键为NullWritable,导致所有来自同一个Mapper2的输出数据均会进入一个Combiner2,并且进入同一个combine函数,参与局部聚类。在聚类过程中,首先随机选取不多于输入数据总数1/50的文档作为已有初始种子类,对其余文档,分别与已有聚类计算相似度,采用余弦值度量相似度,如果待归类文档与最相似的已有类相似度大于用户设定阈值,则将此文档吸收进最相似的已有类,更新该已有类的特征向量和类包含文档计数。如果与所有已有类的最大相似度仍然小于所给阈值,则该文档独自成为一个新的已有类,参与后续聚类运算。Combiner2输出结果为多个类,每个类以(NullWritable,文件名1$网页title名1@文件名2$网页title名2…\t代表本类的正规化特征向量\t代表本类的特征向量\t类文档计数)键值对表示。之后进入Reducer2的reduce过程,和Combiner2的原理相似,不同的是来自所有Combiner2的输出由于共有同样的键NullWritable,均进入同一个Reducer2的同一个reduce函数,从理论上保证了聚类的全局性。在reduce中,随机选取1个类作为已有初始种子类,其余待处理聚类依次和已有类计算余弦值相似度,如果最大相似度大于阈值,则待处理类融入已有最相似类,否则成为一个新的已有类。通过这样的过程,输出(NullWritable,文件名1$网页title名1@文件名2$网页title名2…\t代表本类的特征向量\t类文档计数)键值对。MR2流程结束。
第三个Map/Reduce过程,称为MR3。包含map功能模块和reduce功能模块,分别记为Mapper3和Reducer3。(此处未使用combine模块,是因为该过程map端产生的数据量相对较小,对带宽压力可以承受,没有必要采用combine压缩数据,理论上讲也可以使用combine进行数据压缩后再传给reduce)。
在Mapper3的map函数中,对每一个类的单词进行打分,打分策略为Score=lg(wordcount+1)lg(pagecount+1)。通过这种方式,平抑了单篇高频词汇和多篇低频词汇的过大影响,客观真实反映了本类的主题。此外,在分数排序阶段,采用了链表数据结构,使得频繁的插入操作在常数时间完成,整个复杂度为O(Knm),K为用户设定的主题关键词个数,n为本类特征维数,m为聚类个数。Mapper3输出为(NullWritable,文件名1$网页title名1@文件名2$网页title名2…\t代表本类的特征向量(词在词典中编号:词频:本类中出现该词的文档数目)\t类文档计数),注意此时特征向量只包含用户输入的K个得分最高的词。进入Reducer3之后,由于所有的类进入了同一个reduce函数,在reduce函数中对类集合进行编号,并按照用户输入参数输出HTML格式文件或者TXT格式文件。MR3流程结束。
图1给出了方法过程并行的结构图。根据数据分布式处理和计算能力分布式的原则,通过三个Map/Reduce Job实现整个流程的并行处理。第一个Job MR1完成输入向量的正规化和原向量的再处理;第二个Job MR2完成输入文档的局部聚类,以及之后的全局聚类,产生最终的多个类别;第三个Job MR3对得到的类别内部关键词进行打分和排序,输出用户所需的K个高分关键词表达主题。实现了高度并行化处理,可适应TB级数据。
单路径的瓶颈在于聚类过程中占用大量的内存,单机物理节点内存十分有限,目前工业界超高性能服务器的内存也仅有128GB,无法处理TB级数据的聚类,而且严重依赖于数据输入顺序。而我们提出的改进并行单路径算法,通过分治的思想,将大数据分割成普通计算机能够进行聚类处理的较小数据,在集群的多个节点上先进行局部聚类,通过局部聚类极大减小了数据规模,比如TB级数据经过10台普通性能物理节点的局部聚类处理后,数据规模一般会下降到GB级别以下,一般是降低到数百MB的规模,当然和用户设定的聚类阈值也有一定关系,这样规模的数据普通的配备8GB内存家用计算机都完全能够处理。这是并行计算在这个算法中最大的突破。
按照图1所述结构,分三个部分展示实例。为了更好保证真实性,尽量以截图形式展现在服务器上的运行过程。
首先是数据准备工作,通过开发的WMCS云平台完成,按照提示依次输入相关参数,本次爬取与叙利亚相关的网页。当爬取网页宽度为30,深度为2时,共爬取网页23862个。如图2,图2为采集网页参数配置
经过网页爬取、网页解析、中文分词、生成词典、建模过程,最终产生所需的输入文档向量。为了便于查看,将其下载到本地。如图3,图3为流程输入文件(小部分)。例如“http://baike.baidu.com/view/158838.htm$巴沙尔·阿萨德_百度百科100:1...中间省略...1436:2”这条数据,“http://baike.baidu.com/view/158838.htm”是代表该文档所在网页网址,“巴沙尔·阿萨德_百度百科”是该文档所在网页的标题,“100:1......1436:2”是表示在词典中序号为100的单词在本文档中出现1次,序号为1436号的单词在本文档中出现了2次。
将以上文件夹作为方法过程输入,进入Map/Reduce运行流程,总共有3个Job。如图4,图4为Hadoop Jobtracker展示的流程运行过程。
下面展示三个Map/Reduce过程后生成结果。
图5展示了第一个Job运行完毕后输出结果的一部分。第一个Job对输入文档的向量进行处理,对输入文档逐一进行计算,将该文档包含的每个单词进行正规化,并对出现的每个单词进行统计计数,记录单词在该文档中出现次数和出现的文档次数。例如:“http://bbs.news.163.com/bbs/mil/347917112.html$叙利亚坦克遭袭击的惨烈现场_网易新闻论坛37:0.03370042...中间省略...37:4:1”这条数据,“http://bbs.news.163.com/bbs/mil/347917112.html”是代表该文档所在网页网址,“叙利亚坦克遭袭击的惨烈现场_网易新闻论坛”是该文档所在网页的标题,“37:0.03370042”表示在词典中序号为37的单词出现次数在正规化后为0.03370042,“37:4:1”表示在词典中序号为37的单词在本文档中共出现4次,1为文档自身计数,其余为分隔符。
图6展示了第二个Job运行完毕后输出结果。这张截图展示了其中一个类所包含的的文档,多个文档之间使用“@”符号作为分隔符。例如对“http://baike.so.com/doc/3118966.html$叙利亚_360百科
@http://blog.sina.com.cn/s/blog_48489ba101017a74.html$叙利亚,正在流血的国家。_伊夫_新浪博客
@http://finance.ifeng.com/a/20130828/10539756_0.shtml$美国“最早周四”将袭击叙利亚黄金拍手感恩不尽_财经_凤凰网
@http://finance.ifeng.com/a/20130927/10771709_0.shtml$伊总统称叙利亚或成恐怖分子天堂吁政治解决危机_财经_凤凰网
@http://finance.jrj.com.cn/2013/08/28070015748767.shtml$叙利亚问题和缩减QE齐袭全球股市暴跌序幕或再次拉开-财经频道-金融界...其后省略...”,表示本类包含了“http://baike.so.com/doc/3118966.html”,“http://finance.ifeng.com/a/20130828/10539756_0.shtml”,“http://finance.ifeng.com/a/20130927/10771709_0.shtml”,“http://finance.ifeng.com/a/20130927/10771709_0.shtml”,“http://finance.jrj.com.cn/2013/08/28070015748767.shtml”等文档,“$”分隔符后为文档各自的标题。
图7展示了第三个Job运行完毕后的最终输出结果。这张截图展示了其中一个类包含的文档、主题关键词以及每个主题关键词出现次数、文档频次。比如图7中展示了第1类的部分信息,包含100个文档,提取出了“叙利亚、政府、美国、反对派、中国、联合国、沙尔、总统、问题、俄罗斯”等10个关键词,包含“叙利亚_360百科、叙利亚危机-搜搜百科、叙利亚,正在流血的国家、叙利亚阴云笼罩全球市场_财经频道_东方财富网(Eastmoney.com)”等网页(以标题表示),标题为超链接形式,其链接地址即为相应的网页地址。
点击打开其中一个超链接“叙利亚战事一触即发黄金大涨2%再次转入牛市_财经_腾讯网”,进入来自腾讯财经的原始页面,发现网页内容与主题高度相关,证明了方法过程的有效性。如图8,图8为其中一个超链接指向的网页内容。
Claims (9)
1.一种面向大数据的分布式主题发现系统,其特征在于,该分布式主题发现系统在运行时共包含三个并行处理过程,映射、组合、化简三个功能模块中的一个或多个组合执行每个过程,其中:
映射模块,用于将任务的输入数据分割成多个固定大小的数据片段,随后将每个数据片段进一步分解成一批键值对<K1,V1>;分布式主题发现系统自动将该键值对<K1,V1>依次传入用户编写的处理函数中,生成计算的中间结果键值对<K2,V2>;接着分布式主题发现系统自动将中间结果键值对<K2,V2>按照键K2进行排序,将K2值相同的键值对的V2放在一起形成一个新的列表,形成<K2,list(V2)>的元组,list表示值的列表,作为组合模块的输入;
组合模块,当映射模块生成的数据过大时,组合模块将映射模块产生的<K2,list(V2)>元组作为输入,使用用户编写的处理函数对输入数据进行组合和压缩,生成<K3,list(V3)>的元组,作为化简模块的输入;
化简模块,用于接收来自多个远端物理节点的组合模块产生的<K3,list(V3)>元组作为输入;化简模块对不同来源的<K3,list(V3)>元组按照K3的值进行排序,使来自不同远端物理节点的拥有相同K3的<K3,list1(V3)>,<K3,list2(V3)>,<K3,list3(V3)>元组合并成为一个<K3,list(all V3)>全局元组,list1,list2,list3代表来自三个不同远端物理节点的组合模块产生的元组,将此全局元组作为输入使用用户编写的处理函数对输入数据进行化简等处理,生成输出结果键值对<K4,V4>,分布式主题发现系统自动将输出结果写入分布式文件系统中,形成最终结果文件。
2.一种面向大数据的分布式主题发现方法,其特征在于,利用映射/化简机制,将大数据分割成小块数据,在多个映射模块进行局部聚类,得到局部类;在化简模块将映射模块生成的局部类再进行聚类,得到全局聚类;
其中该方法包括三个并行处理过程:
第一个映射/化简过程,用于对每个输入文档的特征向量进行正规化,并且对构成该文档的每个词在本文档中出现次数进行计数;
第二个映射/化简过程,用于在映射模块将每个文档作为一个原始类并对文档频率计数,在组合模块对映射模块产生的原始类进行局部聚类,生成局部类,在化简模块对来自多个远端物理节点组合产生的局部类进行聚类,生成全局类;
第三个映射/化简过程,用于对第二个映射/化简过程产生全局类的内部关键词进行打分和排序,输出用户所需的K个高分关键词表达主题。
3.如权利要求2所述的面向大数据的分布式主题发现方法,其特征在于,该第一个映射/化简过程,由映射模块执行,包括:对输入各个特征词的词频求平方和后开根号,再除以每一个特征维词频,完成向量正规化,使向量的模为1。
4.如权利要求3所述的面向大数据的分布式主题发现方法,其特征在于,该第一个映射/化简过程,具体包括将原向量每个特征维附上每个词在该文档中出现的词频,整个过程的输出为:<文件名$网页标题名,正规化后特征向量\t处理后的原特征向量>的键值对,其中处理后的原特征向量格式为“词在词典中编号:词频”,\t为连接符,$为分隔符。
5.如权利要求2所述的面向大数据的分布式主题发现方法,其特征在于,该第二个映射/化简过程,由映射、组合、化简三个功能模块组合执行,其中映射模块完成预处理功能,将输入的每个文档当做一个原始类,在文档数据最后加入原始类包含文档的计数,此阶段各条数据的处理是相互独立的;组合模块完成局部聚类过程,相同键的数据需要进行聚类处理,相互之间有了关联;化简模块完成全局聚类过程,来自多个远端物理节点组合产生的类在化简中进行全局聚类,数据之间是有关联的,分别记为Mapper2、Combiner2、Reducer2,表示分别实现该映射、组合、化简模块的具有系统资源的计算单元。
6.如权利要求5所述的面向大数据的分布式主题发现方法,其特征在于,该第二个映射/化简过程,具体包括:
Mapper2对输入添加聚类文档计数,此时每一个类的文档计数为1;
Mapper1输出为<NullWritable,文件名$网页标题名\t正规化特征向量\t原向量\t本类包含网页数目>的键值对,其中NullWritable表示值为空,\t为连接符,$为分隔符;
每一个Combiner2对应一个Mapper2,在Combiner2端对Mapper2输出的结果进行局部聚类。
7.如权利要求6所述的面向大数据的分布式主题发现方法,其特征在于,进行局部聚类的结果具体包括:随机选取不多于输入数据总数1/50的文档作为已有初始种子类,对其余文档,分别与已有聚类计算相似度,采用余弦值度量相似度,如果待归类文档与最相似的已有类相似度大于用户设定阈值,则将此文档吸收进最相似的已有类,更新该已有类的特征向量和类包含文档计数;如果与所有已有类的最大相似度仍然小于所给阈值,则该文档独自成为一个新的已有类,参与后续聚类运算。
8.如权利要求6所述的面向大数据的分布式主题发现方法,其特征在于,该第二个映射/化简过程还包括:
Combiner2输出结果为多个类,每个类以<NullWritable,文件名1$网页标题名1@文件名2$网页标题名2…\t代表本类的正规化特征向量\t代表本类的特征向量\t类文档计数>键值对表示,\t为连接符,$为分隔符,@也为分隔符;
进入Reducer2的组合过程,和Combiner2的原理相似,不同的是来自所有Combiner2的输出由于共有同样的键NullWritable,均进入同一个Reducer2的同一个reduce函数,从理论上保证了聚类的全局性;
在化简中,随机选取1个类作为已有初始种子类,其余待处理聚类依次和已有类计算余弦值相似度,如果最大相似度大于阈值,则待处理类融入已有最相似类,否则成为一个新的已有类;
输出<NullWritable,文件名1$网页标题名1@文件名2$网页标题名2…\t代表本类的特征向量\t类文档计数>键值对。
9.如权利要求2所述的面向大数据的分布式主题发现方法,其特征在于,该第三个映射/化简过程,通过映射模块和化简模块共同执行,分别记为Mapper3和Reducer3;在Mapper3的映射函数中,对每一个类的单词进行打分,打分策略为:S=lg(wordcount+1)lg(pagecount+1),S表示分数,wordcount为关键词出现次数,pagecount为包含该关键词的文档数目;在分数排序阶段,采用了链表数据结构,使得频繁的插入操作在常数时间完成,整个复杂度为O(Knm),n为本类特征维数,m为聚类个数;
Mapper3输出为<NullWritable,文件名1$网页标题名1@文件名2$网页标题名2…>,@、$为分隔符;
进入Reducer3之后,在reduce函数中对类集合进行编号,并按照用户输入参数输出HTML格式文件或者TXT格式文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310526790.2A CN103593418B (zh) | 2013-10-30 | 2013-10-30 | 一种面向大数据的分布式主题发现方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310526790.2A CN103593418B (zh) | 2013-10-30 | 2013-10-30 | 一种面向大数据的分布式主题发现方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103593418A CN103593418A (zh) | 2014-02-19 |
CN103593418B true CN103593418B (zh) | 2017-03-29 |
Family
ID=50083559
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310526790.2A Active CN103593418B (zh) | 2013-10-30 | 2013-10-30 | 一种面向大数据的分布式主题发现方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103593418B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104407811B (zh) * | 2014-11-12 | 2017-09-19 | 珠海世纪鼎利科技股份有限公司 | 一种基于云计算的合并io装置 |
CN104462253B (zh) * | 2014-11-20 | 2018-05-18 | 武汉数为科技有限公司 | 一种面向网络文本大数据的话题检测或跟踪方法 |
CN104978382A (zh) * | 2014-12-31 | 2015-10-14 | 深圳市华傲数据技术有限公司 | MapReduce平台上基于本地密度的聚类方法 |
CN104615752A (zh) * | 2015-02-12 | 2015-05-13 | 北京嘀嘀无限科技发展有限公司 | 信息分类方法与系统 |
CN106874292B (zh) * | 2015-12-11 | 2020-05-05 | 北京国双科技有限公司 | 话题处理方法及装置 |
CN105787004A (zh) * | 2016-02-22 | 2016-07-20 | 浪潮软件股份有限公司 | 一种文本分类方法及装置 |
CN105930369A (zh) * | 2016-04-13 | 2016-09-07 | 南京新与力文化传播有限公司 | 一种快速分析Web信息的方法 |
CN105930539A (zh) | 2016-06-27 | 2016-09-07 | 北京百度网讯科技有限公司 | 话题订阅方法和装置 |
CN106547890B (zh) * | 2016-11-04 | 2018-04-03 | 深圳云天励飞技术有限公司 | 海量图像特征向量中的快速聚类预处理方法 |
CN107273138A (zh) * | 2017-07-04 | 2017-10-20 | 杭州铜板街互联网金融信息服务有限公司 | 基于Android业务模块间交互的解耦方法和系统 |
CN107908694A (zh) * | 2017-11-01 | 2018-04-13 | 平安科技(深圳)有限公司 | 互联网新闻的舆情聚类分析方法、应用服务器及计算机可读存储介质 |
CN110309143B (zh) * | 2018-03-21 | 2021-10-22 | 华为技术有限公司 | 数据相似度确定方法、装置及处理设备 |
CN108898432B (zh) * | 2018-06-25 | 2022-05-13 | 武汉斗鱼网络科技有限公司 | 一种广告投放效果评估方法、装置及电子设备 |
CN110377728A (zh) * | 2019-06-06 | 2019-10-25 | 上海星济信息科技有限公司 | 文字数据处理方法、系统、介质及装置 |
CN111026866B (zh) * | 2019-10-24 | 2020-10-23 | 北京中科闻歌科技股份有限公司 | 一种面向领域的文本信息抽取聚类方法、设备和存储介质 |
CN113792787B (zh) * | 2021-09-14 | 2022-05-06 | 江苏速度遥感大数据研究院有限公司 | 遥感大数据处理方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130086356A1 (en) * | 2011-09-30 | 2013-04-04 | International Business Machines Corporation | Distributed Data Scalable Adaptive Map-Reduce Framework |
CN103077253A (zh) * | 2013-01-25 | 2013-05-01 | 西安电子科技大学 | Hadoop框架下高维海量数据GMM聚类方法 |
CN103136244A (zh) * | 2011-11-29 | 2013-06-05 | 中国电信股份有限公司 | 基于云计算平台的并行数据挖掘方法及系统 |
-
2013
- 2013-10-30 CN CN201310526790.2A patent/CN103593418B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130086356A1 (en) * | 2011-09-30 | 2013-04-04 | International Business Machines Corporation | Distributed Data Scalable Adaptive Map-Reduce Framework |
CN103136244A (zh) * | 2011-11-29 | 2013-06-05 | 中国电信股份有限公司 | 基于云计算平台的并行数据挖掘方法及系统 |
CN103077253A (zh) * | 2013-01-25 | 2013-05-01 | 西安电子科技大学 | Hadoop框架下高维海量数据GMM聚类方法 |
Non-Patent Citations (2)
Title |
---|
Parallel K-Means Clustering Based on MapReduce;Weizhong Zhao等;《Cloud computing》;20091204;第5931卷;第674-679页 * |
基于云计算的大数据挖掘平台;何清 等;《中兴通讯技术》;20130831;第19卷(第4期);第32-38页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103593418A (zh) | 2014-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103593418B (zh) | 一种面向大数据的分布式主题发现方法及系统 | |
US10579661B2 (en) | System and method for machine learning and classifying data | |
US10452691B2 (en) | Method and apparatus for generating search results using inverted index | |
EP2092419B1 (en) | Method and system for high performance data metatagging and data indexing using coprocessors | |
US9323794B2 (en) | Method and system for high performance pattern indexing | |
CN103279478B (zh) | 一种基于分布式互信息文档特征提取方法 | |
CN101593200B (zh) | 基于关键词频度分析的中文网页分类方法 | |
CN102662952B (zh) | 一种基于层次的中文文本并行数据挖掘方法 | |
CN103049568B (zh) | 对海量文档库的文档分类的方法 | |
CN108197144B (zh) | 一种基于BTM和Single-pass的热点话题发现方法 | |
CN109885813B (zh) | 一种基于词语覆盖度的文本相似度的运算方法及系统 | |
CN104598532A (zh) | 一种信息处理方法及装置 | |
CN108647322B (zh) | 基于词网识别大量Web文本信息相似度的方法 | |
CN104199833A (zh) | 一种网络搜索词的聚类方法和聚类装置 | |
CN111324801B (zh) | 基于热点词的司法领域热点事件发现方法 | |
CN112527948B (zh) | 基于句子级索引的数据实时去重方法及系统 | |
CN105787121B (zh) | 一种基于多故事线的微博事件摘要提取方法 | |
CN106599072A (zh) | 一种文本聚类方法及装置 | |
CN111538903B (zh) | 搜索推荐词确定方法、装置、电子设备及计算机可读介质 | |
US11334592B2 (en) | Self-orchestrated system for extraction, analysis, and presentation of entity data | |
Zhang et al. | Learning hash codes for efficient content reuse detection | |
CN103257961B (zh) | 书目消重的方法、装置及系统 | |
WO2022105178A1 (zh) | 一种关键词提取的方法及相关装置 | |
CN109871429B (zh) | 融合Wikipedia分类及显式语义特征的短文本检索方法 | |
CN112380412A (zh) | 一种基于大数据的筛选匹配信息的优化方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |