CN106372105A - 一种基于Spark平台的微博数据预处理方法 - Google Patents
一种基于Spark平台的微博数据预处理方法 Download PDFInfo
- Publication number
- CN106372105A CN106372105A CN201610694772.9A CN201610694772A CN106372105A CN 106372105 A CN106372105 A CN 106372105A CN 201610694772 A CN201610694772 A CN 201610694772A CN 106372105 A CN106372105 A CN 106372105A
- Authority
- CN
- China
- Prior art keywords
- microblog data
- denoising
- spark platform
- data
- spark
- 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.)
- Pending
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/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
-
- 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/31—Indexing; Data structures therefor; Storage structures
- G06F16/313—Selection or weighting of terms for indexing
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)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于Spark平台的微博数据预处理方法。该方法包括:1)采集微博数据;2)基于Spark平台对采集的微博数据进行去噪处理,并将去噪处理后的微博数据缓存在分布式内存中;3)基于Spark平台对去噪处理后的微博数据进行去重处理,在去重处理中将海明距离小于设定的阈值的文本判定为近似文本。本发明采用Spark平台做为存储及运算的基础,采用内存缓存来提高读写速度,计算节点由Spark平台调度,完成分布式计算,能够实现更准确、高效的去噪、去重功能。
Description
技术领域
本发明属于信息技术领域,具体涉及一种基于Spark平台的微博数据预处理方法。
背景技术
现有的数据去噪算法的主要应用场景在单机或MR(MAP-REDUCE)上,目前的算法主要针对文本长度不满足阈值L的数据、广告内容和自动回复数据等。现有的数据去重算法由Simhash模块根据分词后的结果对文本进行词频统计以将其转换为N维向量,并且对所述N维向量进行Simhash运算以便获得f位的二进制签名;由去重运算模块执行以下操作:根据设定参数将所述f位的二进制签名分段,并依据分段结果建立倒序索引;根据所建立的倒序索引来分段检索第一分段下的签名集合,并计算所述第一分段中的对应的海明距离;以及确定在所述第一分段中的所计算的海明距离是否在所述设定参数范围内。
上述方法由于并不具备Spark所提供的基于内存的计算和对中间结果的内存存储,导致整体时间过多的浪费在IO当中,拖慢了整个应用场景的速度。由语言不同而带来的微博数据冗余也是去噪中的重点之一。
发明内容
本发明的目的在于提供一种基于Spark平台的微博数据预处理方法,能够实现更准确、高效的去噪、去重功能。
本发明采用的技术方案如下:
一种基于Spark平台的微博数据预处理方法,其步骤包括:
1)采集微博数据;
2)基于Spark平台对采集的微博数据进行去噪处理,并将去噪处理后的微博数据缓存在分布式内存中;
3)基于Spark平台对去噪处理后的微博数据进行去重处理,在去重处理中将海明距离小于设定的阈值的文本判定为近似文本。
进一步地,步骤1)将采集的微博数据存储在HDFS文件中。
进一步地,步骤2)包括以下子步骤:
1-1)在Spark平台中启动Spark驱动,并按默认分区数生成RDD,对HDFS文件进行读取;
1-2)对微博数据进行去噪处理,包括长度过滤、语言过滤及关键词过滤;
1-3)将去噪处理后的数据以RDD的形式缓存在分布式内存中。
进一步地,步骤3)包括以下子步骤:
3-1)获取去噪算子生成的RDD;
3-2)采用分词器对存储在RDD中的微博数据进行分词处理,并进行停用词过滤;
3-3)计算进行停用词过滤后的每个分词的hash值,并生成Simhash指纹;
3-4)将生成的Simhash指纹与数据库里已经记录的微博数据的Simhash指纹比较其海明距离,将海明距离小于设定的阈值的文本认定为近似文本。
本发明提供的基于Spark的微博数据预处理系方法,具有如下优点:
1、处理速度快:亿级记录去噪可在毫秒级内完成,千万级记录去重可在分钟级完成。
2、准确率高:去噪处理准确率可达到96.4%,去重处理准确率期可达到90.3%。
附图说明
图1为基于Spark的微博预处理结构图。
图2为本发明采用的设备的拓扑关系图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面通过具体实施例和附图,对本发明做进一步说明。
本发明基于Spark的微博预处理系统采用Spark平台做为存储及运算的基础,采用了内存缓存来提高读写速度。计算节点由Spark平台调度,完成分布式计算。本系统主要包括微博采集算子、去噪算子、去重算子,如图1所示。
1.采集算子
采集算子用于采集微博数据,可采用现有的采集方法、采集设备实现。采集的数据存储在HDFS(Hadoop Distributed File System,Hadoop分布式文件系统)中。
2.去噪算子
去噪算子的目的是将采集回来的微博数据进行去噪处理。去噪算子基于Spark平台开发,完成如下操作:
首先,在Spark平台中启动Spark驱动,并按默认分区数生成RDD(ResilientDistributed Dataset,弹性分布式数据集),对HDFS文件(其中存储采集的微博数据)进行读取;
其次,基于对实际采集样本的分析,本系统采用三种去噪方法,分别为长度过滤、语言过滤及关键词过滤;
最后,将去噪处理后的数据以RDD的形式缓存在分布式内存中。
上述三种去噪方法在参数的选择上是针对微博这种短文本数据类型的,说明如下:
a)长度过滤:是指将低于一定字符数的微博认为是无意义的,比如取10个字符,10个字符以下认为是垃圾;
b)语言过滤:针对微博这种类型的数据进行语言过滤,比如将日文经常出现的微博一般视为垃圾等,也可以对其它语言进行过滤。而且,对于后面的去重或者分析而言,日文等其它语言也是不考虑的。
c)关键词过滤:是指微博中当有些关键词出现后,就认为这条是垃圾,比如“天气预报”。
3.去重算子
去重算子的目的是将去噪后的微博数据进行去重处理。去重算子基于Spark平台开发,是将Simhash算法进行分布式优化处理,完成的操作如下:
a)获取去噪算子生成的RDD;
b)采用分词器对存储在RDD中的微博数据进行分词处理,并采用通用停用词表做停用词过滤,通过分词和过滤停用词可有效的减小后续的计算量;所述分词器可以采用IKAnalyzer分词器,也可以采用其它分词器,如中国科学院计算技术研究所的ICTCLAS分词器等;
c)计算停用词过滤后的每个分词的hash值,然后叠加,生成Simhash指纹;然后封装对象并生成新的RDD,其中对象内容包括文本内容、Simhash值等属性;
d)将生成的Simhash指纹与数据库里已经记录的微博数据的Simhash指纹比较海明距离,如果海明距离小于设定的阈值(例如该阈值为4),则将新采集的微博数据的文本认定为近似文本(即认定为重复记录)。
根据上面步骤,判断一条记录是否是重复记录,先要得到上一个算子的运算结果,即得到RDD,在从该RDD中进行遍历,也就是一条条的判断是否重复。例如,现在库里有10000条记录,新来了100条记录,判断这100条是否和库里的重复(这100条就是1个RDD)。从RDD获取到一条记录后,对其进行分词;之后分词中会有一些无意义的词,例如“不止”“仅仅”这些是无语义的,可以去掉,也就是停用词过滤;然后,把这些过滤后的分词计算hash值,然后叠加,生成Simhash指纹,该指纹与库里记录的指纹比较海明距离,如果小于设定的阈值则认为是近似文本。这就是Simhash算法的原理。
上面步骤c)所述的计算分词的hash值并生成Simhash指纹,其具体方法是:首先计算每个分词的64位加权hash值(加权使用的是现有的TF-IDF(Term Frequency–InverseDocument Frequency)算法,权重具有等级范围,例如1-5);然后按位叠加,每位如果大于1则记1,否则记0。举例说明如下:
1、分词:把需要判断文本分词形成这个文章的特征单词。最后形成去掉噪音词的单词序列并为每个词加上权重,我们假设权重分为5个级别(1~5)。比如,将“美国‘51区’雇员称内部有9架飞碟,曾看见灰色外星人”进行分词后为“美国(4)51区(5)雇员(3)称(1)内部(2)有(1)9架(3)飞碟(5)曾(1)看见(3)灰色(4)外星人(5)”,括号里是代表单词在整个句子里重要程度,数字越大越重要。
2、hash:通过hash算法把每个词变成hash值,比如“美国”通过hash算法计算为100101,“51区”通过hash算法计算为101011。这样字符串就变成了一串串数字,把文章变为数字计算才能提高相似度计算性能。
3、加权:通过步骤2的hash生成结果,需要按照单词的权重形成加权数字串,比如“美国”的hash值为“100101”,通过加权计算为“4 -4 -4 4 -4 4”;“51区”的hash值为“101011”,通过加权计算为“5 -5 5 -5 5 5”。
4、合并:把上面各个单词算出来的序列值累加,变成只有一个序列串。比如“美国”的“4 -4 -4 4 -4 4”,“51区”的“5 -5 5 -5 5 5”,把每一位进行累加,“4+5 -4+-5 -4+5 4+-5 -4+5 4+5”,据此得到“9 -9 1 -1 1 9”。这里作为示例只计算了两个单词,真实计算时需要把所有单词的序列串累加。
5、降维:把步骤4计算算出来的“9 -9 1 -1 1 9”变成0 1串,形成最终的Simhash签名。如果每一位大于0记为1,小于0记为0,得到最后算出结果为:“1 0 1 0 1 1”。
以上方法在对分词计算权重时,采用的是TF-IDF算法。在其它实施例中,可以在其基础上进一步优化,TF-IDF算法是以单个分词在该条记录中出现的频率为权重依据的,也可以扩展到单个分词在某个时间段出现的频率为依据。例如,某明星的名字这个分词,以最近3天出现的频率为基础做权重。另外,权重部分还可以分段,前3天内系数是80%,前6天-3天为20%,举例,该明星的名字在前6天到3天出现的频率A,在最近3天内出现的频率为B,那么权重可以为20%*A+80*B。
实例:新浪微博的数据预处理
对于新浪微博的采集采用了7台服务器并行采集;存储节点和计算节点进行了复用,共使用了7台服务器,如图2所示,其中第1台服务器作为管理节点,安装了Hadoop的Namenode和Datanode、Spark的Master及本系统的App。其余6台服务器作为work节点。
每台服务器的配置相同,具体服务器的配置如下:
Cpu:24Intel(R)Xeon(R)cpu e5-2630v2@2.6GHz
内存:128g
网卡:千兆网卡
磁盘:5T
实验数据采用3个量级,分别为100万条记录、1000万、1亿条记录。针对3种量级的数据进行清洗,完成去噪和去重工作。
去噪算子:测试数据量为100万条时,耗时3555ms;测试数据量为1000万条时,耗时3571ms;测试数据量为1亿条时,耗时3572ms。根据实验结果可知,由于Spark平台的分布式处理方式,在不同结果集上测试并未产生实际的系统压力。在此基础上,进一步测试。测试Spark平台的driver启动时间为3183ms。由此可知,去噪算子所消耗的时间为driver启动所需时间,数据处理并未造成实际影响。测试结果,100万条记录去噪后的数据量为885746条,1000万条记录去噪后的数据量为8218374,1亿条记录去噪后的数据量为83346537。由实验结果可知,在去噪算子处理数据后,可以去除微博数据中的15%左右,有效的减轻了后续算子的压力。
去重算子:去重的时间消耗分为两部分,一部分为分词、停用词过滤及Simhash指纹计算共需时间,另一部分为为海明距离比较时间。针对去噪算子处理后的结果进行测试,100万条去重后剩余89万条,去重算子处理需要185秒;1000万条去重后剩余822万条,去重算子处理需要1628秒;1亿条去重后剩余8335万条,去重算子处理需要19061秒;由结果可知,Spark平台的分布式计算能力显著提高了Simhash的效率。由于比较次数为(n-1)!次,因此,计算后得到平均比较次数可以达到30000万次/毫秒。
以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求书所述为准。
Claims (9)
1.一种基于Spark平台的微博数据预处理方法,其步骤包括:
1)采集微博数据;
2)基于Spark平台对采集的微博数据进行去噪处理,并将去噪处理后的微博数据缓存在分布式内存中;
3)基于Spark平台对去噪处理后的微博数据进行去重处理,在去重处理中将海明距离小于设定的阈值的文本判定为近似文本。
2.如权利要求1所述的方法,其特征在于,步骤1)将采集的微博数据存储在HDFS文件中。
3.如权利要求1所述的方法,其特征在于,步骤2)包括以下子步骤:
1-1)在Spark平台中启动Spark驱动,并按默认分区数生成RDD,对HDFS文件进行读取;
1-2)对微博数据进行去噪处理,包括长度过滤、语言过滤及关键词过滤;
1-3)将去噪处理后的数据以RDD的形式缓存在分布式内存中。
4.如权利要求1所述的方法,其特征在于,步骤3)包括以下子步骤:
3-1)获取去噪算子生成的RDD;
3-2)采用分词器对存储在RDD中的微博数据进行分词处理,并进行停用词过滤;
3-3)计算进行停用词过滤后的每个分词的hash值,并生成Simhash指纹;
3-4)将生成的Simhash指纹与数据库里已经记录的微博数据的Simhash指纹比较其海明距离,将海明距离小于设定的阈值的文本认定为近似文本。
5.如权利要求4所述的方法,其特征在于,步骤3-2)所述分词器为IKAnalyzer分词器或ICTClass分词器。
6.如权利要求4所述的方法,其特征在于,步骤3-3)所述生成Simhash指纹的方法是:首先计算每个分词的64位加权hash值;然后按位叠加,生成Simhash指纹。
7.如权利要求6所述的方法,其特征在于,采用TF-IDF算法计算所述加权hash值。
8.如权利要求7所述的方法,其特征在于,在对分词计算权重时,在TF-IDF算法基础上,将单个分词在某个时间段出现的频率作为权重依据。
9.如权利要求4所述的方法,其特征在于,步骤3-3)所述设定的阈值为4。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610694772.9A CN106372105A (zh) | 2016-08-19 | 2016-08-19 | 一种基于Spark平台的微博数据预处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610694772.9A CN106372105A (zh) | 2016-08-19 | 2016-08-19 | 一种基于Spark平台的微博数据预处理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106372105A true CN106372105A (zh) | 2017-02-01 |
Family
ID=57879221
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610694772.9A Pending CN106372105A (zh) | 2016-08-19 | 2016-08-19 | 一种基于Spark平台的微博数据预处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106372105A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107229694A (zh) * | 2017-05-22 | 2017-10-03 | 北京红马传媒文化发展有限公司 | 一种基于大数据的数据信息一致性处理方法、系统及装置 |
CN107315809A (zh) * | 2017-06-27 | 2017-11-03 | 山东浪潮通软信息科技有限公司 | 一种基于Spark平台的集团新闻数据预处理方法 |
CN107679073A (zh) * | 2017-08-25 | 2018-02-09 | 中国科学院信息工程研究所 | 一种压缩网页指纹库构建方法和压缩网页快速相似性匹配方法 |
CN110322692A (zh) * | 2019-07-09 | 2019-10-11 | 广东工业大学 | 一种重复交通流数据的检测方法、装置及设备 |
CN111314109A (zh) * | 2020-01-15 | 2020-06-19 | 太原理工大学 | 一种基于弱密钥的大规模物联网设备固件识别方法 |
CN111401074A (zh) * | 2020-04-03 | 2020-07-10 | 山东爱城市网信息技术有限公司 | 一种基于Hadoop的短文本情感倾向性分析方法、系统及装置 |
CN111899821A (zh) * | 2020-06-28 | 2020-11-06 | 广州万孚生物技术股份有限公司 | 处理医疗机构数据的方法、构建数据库的方法和装置 |
CN113505119A (zh) * | 2021-07-29 | 2021-10-15 | 青岛以萨数据技术有限公司 | 一种基于多数据源的etl方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103646080A (zh) * | 2013-12-12 | 2014-03-19 | 北京京东尚科信息技术有限公司 | 基于倒序索引的微博去重方法和系统 |
CN105354246A (zh) * | 2015-10-13 | 2016-02-24 | 华南理工大学 | 一种基于分布式内存计算的数据去重方法 |
US20160171009A1 (en) * | 2014-12-10 | 2016-06-16 | International Business Machines Corporation | Method and apparatus for data deduplication |
-
2016
- 2016-08-19 CN CN201610694772.9A patent/CN106372105A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103646080A (zh) * | 2013-12-12 | 2014-03-19 | 北京京东尚科信息技术有限公司 | 基于倒序索引的微博去重方法和系统 |
US20160171009A1 (en) * | 2014-12-10 | 2016-06-16 | International Business Machines Corporation | Method and apparatus for data deduplication |
CN105354246A (zh) * | 2015-10-13 | 2016-02-24 | 华南理工大学 | 一种基于分布式内存计算的数据去重方法 |
Non-Patent Citations (1)
Title |
---|
韩路: "网络数据的分析方法研究", 《中国优秀硕士学位论文全文数据库基础科学辑》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107229694A (zh) * | 2017-05-22 | 2017-10-03 | 北京红马传媒文化发展有限公司 | 一种基于大数据的数据信息一致性处理方法、系统及装置 |
CN107315809A (zh) * | 2017-06-27 | 2017-11-03 | 山东浪潮通软信息科技有限公司 | 一种基于Spark平台的集团新闻数据预处理方法 |
CN107679073A (zh) * | 2017-08-25 | 2018-02-09 | 中国科学院信息工程研究所 | 一种压缩网页指纹库构建方法和压缩网页快速相似性匹配方法 |
CN110322692A (zh) * | 2019-07-09 | 2019-10-11 | 广东工业大学 | 一种重复交通流数据的检测方法、装置及设备 |
CN111314109A (zh) * | 2020-01-15 | 2020-06-19 | 太原理工大学 | 一种基于弱密钥的大规模物联网设备固件识别方法 |
CN111401074A (zh) * | 2020-04-03 | 2020-07-10 | 山东爱城市网信息技术有限公司 | 一种基于Hadoop的短文本情感倾向性分析方法、系统及装置 |
CN111899821A (zh) * | 2020-06-28 | 2020-11-06 | 广州万孚生物技术股份有限公司 | 处理医疗机构数据的方法、构建数据库的方法和装置 |
CN113505119A (zh) * | 2021-07-29 | 2021-10-15 | 青岛以萨数据技术有限公司 | 一种基于多数据源的etl方法及装置 |
CN113505119B (zh) * | 2021-07-29 | 2023-08-29 | 青岛以萨数据技术有限公司 | 一种基于多数据源的etl方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106372105A (zh) | 一种基于Spark平台的微博数据预处理方法 | |
CN103514183B (zh) | 基于交互式文档聚类的信息检索方法及系统 | |
CN103544255B (zh) | 基于文本语义相关的网络舆情信息分析方法 | |
CN110502509B (zh) | 一种基于Hadoop与Spark框架的交通大数据清洗方法及相关装置 | |
CN108280114B (zh) | 一种基于深度学习的用户文献阅读兴趣分析方法 | |
CN103324666A (zh) | 一种基于微博数据的话题跟踪方法及装置 | |
CN110750640A (zh) | 基于神经网络模型的文本数据分类方法、装置及存储介质 | |
CN106372064B (zh) | 一种文本挖掘的特征词权重计算方法 | |
CN110275920A (zh) | 数据查询方法、装置、电子设备及计算机可读存储介质 | |
CN104199965A (zh) | 一种语义信息检索方法 | |
CN107016501A (zh) | 一种高效的工业大数据多维分析方法 | |
CN104112026A (zh) | 一种短信文本分类方法及系统 | |
CN108108426A (zh) | 自然语言提问的理解方法、装置及电子设备 | |
CN112307303A (zh) | 基于云计算的网络页面高效精准去重系统 | |
CN107315809A (zh) | 一种基于Spark平台的集团新闻数据预处理方法 | |
CN113515589A (zh) | 数据推荐方法、装置、设备以及介质 | |
CN104376074B (zh) | 一种复述资源获取方法及系统 | |
CN107704620A (zh) | 一种档案管理的方法、装置、设备和存储介质 | |
Chu et al. | Automatic data extraction of websites using data path matching and alignment | |
CN106649726A (zh) | 一种社交网络中社团话题演化挖掘方法 | |
CN116522912B (zh) | 一种包装设计语言模型的训练方法、装置、介质及设备 | |
CN103761246A (zh) | 一种基于链接网络的用户领域识别方法及其装置 | |
Trabelsi et al. | A new methodology to bring out typical users interactions in digital libraries | |
CN115757735A (zh) | 一种面向电网数字化建设成果资源的智能检索方法及系统 | |
CN105373521B (zh) | 一种基于Minwise Hash动态多阈值过滤计算文本相似度的方法 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170201 |
|
RJ01 | Rejection of invention patent application after publication |