【技术实现步骤摘要】
一种面向微博话题网络的文本数据挖掘与子图分析方法
[0001]本专利技术涉及数据信息挖掘与分析,特别涉及一种面向微博话题网络的文本数据挖掘与子图分析方法
。
技术介绍
[0002]随着互联网行业与
5G
技术的发展,社交网络媒体中每天能够产生海量的数据,尤其是以微博为首的广播式媒体能够在短时间内快速传播海量信息
。
爬虫技术作为
Web
文本数据信息提取的一大主力工具,自然得到了计算机科学行业研究人员的青睐
。
[0003]然而,一般大型网站对于爬虫程序有一套完备的反爬虫机制,这将会导致普通的爬虫算法并不能用于个人级别的信息数据提取,表现为爬虫程序效率不高与不稳定,极大影响个人研究
。
因此,针对微博
、
面向话题网络,如何提取有标注的文本数据信息并对话题进行划分构造出子话题网络,即子图,对于后续下游任务的研究有重要意义
。
[0004]目前,在数据提取与挖掘方面,如爬虫程序等,都有着不错的发展,同时这些技术也在学术界
、
工业界都非常流行与成熟,但是对于面向微博话题网络等社交媒体平台的文本数据挖掘以及子图分析,现没有一套成熟且完善的方法论指导
。
现有技术在面向微博话题网络的结构化
、
标注化
、
子图分析各个方面都有所涉及但并未将其系统整理成一套方法论体系
。
[0005]此外,通常情况下,普通个人级爬虫程序多用r/>Selenium
,其主要特点是上手快
、
适合轻量级数据爬取,但是这类爬虫程序不适合对于话题网络级别的内容爬取,首先是大型网站的反爬虫机制会直接限制
Selenium
,并不能抓取太多的内容;再者,通常爬虫提取下来的内容也是半结构化的数据信息,不能直接用于下游任务;最后,对于热门的话题网络数据信息,提取的内容相当于是全图视角级别,内容仍然繁杂冗余,一个话题下可能仍有多个子话题,不便于分析话题内部更详细的信息
。
技术实现思路
[0006]为了解决现有爬虫程序不能面向大型话题网络爬取信息
、
不能进行结构化分析以及文本数据标注
、
难以进行子图结构分析的问题,本专利技术提供了一种效率高
、
实现简单的面向微博话题网络的标注文本数据爬取与子图结构分析方法,在解决上述问题的基础上,能够将数据进行分类保存供下游工作处理
。
[0007]本专利技术是通过如下技术方案实现的:一种面向微博话题网络的文本数据挖掘与子图分析方法,包括以下步骤:
[0008]S1
:爬虫程序的设计与实现
[0009]通过研究微博的网页结构以及反爬虫机制,设计一种面向微博话题网络的爬虫算法,算法能够爬取微博某话题下
、
指定时间范围内的微博文本数据;
[0010]S2
:面向微博话题网络进行文本数据结构化处理,获取到初步完整的全图信息;
[0011]S3
:进行面向微博话题网络的文本数据标注化工作,能够对步骤
S2
获得的全图信
息进行标注处理,除爬虫能获得的直接信息外,还能增加客观的标注信息;
[0012]S4
:利用谱聚类分析方法从标注化文本数据中提取子图信息,并将其进行可视化处理
。
[0013]进一步的,步骤
S1
中爬虫程序的设计与实现步骤如下:
[0014](1)
对微博页面进行结构分析
[0015]首先进入到微博
Web
页面,获取每条博文全面的信息,在话题网络下检查页面源码,通过观察网页源码发现,所有微博都在
div
元素的
main
‑
full
类下,且每条微博都有独立不重复的
mid
标签,随机展开一条微博的
div
元素查看源码对比发现,各文本信息都在独立的元素中,每条微博结构统一,只是
mid
标签与所处网页不同;
[0016](2)
构建爬虫参数池
[0017]模拟出真实的多用户访问微博页面的效果来绕开反爬虫机制,在构建的参数池中提供各种参数信息,各池以对象数组形式保存,后续通过
Python random
包中的
choice
方法随机排列组合选择参数构建
HTTP
的
header
头部包,构建的参数池越大,每次随机选择到的参数重复性就越小;
[0018](3)
获取
URL
话题信息
[0019]点击“高级搜索”按钮输入关键字
、
选择微博类型
、
选择内容
、
界定时间范围之后点击搜索按钮,即可直接得到所需要的
url
地址,该
url
后续将作为
header
头部包中的
Refer
参考,协助爬虫;
[0020](4)
抓取微博标签
mid
[0021]进入爬虫算法,博文标签
mid
本质上对应了发布者
id
,通过爬虫算法爬取每个博文的
mid
标签,即找到发布者
id
,然后存入列表用于后续查找每条具体微博专门地址;
[0022](5)
解析微博内容
[0023]当获取到一个话题下的所有博文标签
mid
后,即
id_list[]列表,便对每一条微博进行可获取内容解析,将
url
与
id
进行拼接获取到具体博文的专用地址;通过代理
GET
访问该
url
,通过正则表达式解析获取内容;由于部分微博评论量极大,抓取过程中需要设置线程休眠,否则即使代理
ip
,也很容易被封禁,再完成所有解析步骤后,将所有信息写入文件;
[0024](6)
在微博文本数据获取方面,使用爬虫算法每个话题可以得到3份文件,分别是包含微博博文与评论的信息文件
、
微博博文信息文件
、
微博评论信息文件,话题中3份文件尽可能抓取了微博中能够提取的所有信息
。
[0025]进一步的,步骤
S1
中通过构建
Cookie
池来解决
Cookie
失效问题,通过
Python random
包中的
choice
方法随机选择
Cookie
来发送请求,减轻单个
Cookie
频繁请求的问题,多有效
Cookie
主要通过多帐本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.
一种面向微博话题网络的文本数据挖掘与子图分析方法,其特征在于,包括以下步骤:
S1
:爬虫程序的设计与实现通过研究微博的网页结构以及反爬虫机制,设计一种面向微博话题网络的爬虫算法,算法能够爬取微博某话题下
、
指定时间范围内的微博文本数据;
S2
:面向微博话题网络进行文本数据结构化处理,获取到初步完整的全图信息;
S3
:进行面向微博话题网络的文本数据标注化工作,能够对步骤
S2
获得的全图信息进行标注处理,除爬虫能获得的直接信息外,还能增加客观的标注信息;
S4
:利用谱聚类分析方法从标注化文本数据中提取子图信息,并将其进行可视化处理
。2.
根据权利要求1所述的一种面向微博话题网络的文本数据挖掘与子图分析方法,其特征在于,步骤
S1
中爬虫程序的设计与实现步骤如下:
(1)
对微博页面进行结构分析首先进入到微博
Web
页面,获取每条博文全面的信息,在话题网络下检查页面源码,通过观察网页源码发现,所有微博都在
div
元素的
main
‑
full
类下,且每条微博都有独立不重复的
mid
标签,随机展开一条微博的
div
元素查看源码对比发现,各文本信息都在独立的元素中,每条微博结构统一,只是
mid
标签与所处网页不同;
(2)
构建爬虫参数池模拟出真实的多用户访问微博页面的效果来绕开反爬虫机制,在构建的参数池中提供各种参数信息,各池以对象数组形式保存,后续通过
Python random
包中的
choice
方法随机排列组合选择参数构建
HTTP
的
header
头部包,构建的参数池越大,每次随机选择到的参数重复性就越小;
(3)
获取
URL
话题信息点击“高级搜索”按钮输入关键字
、
选择微博类型
、
选择内容
、
界定时间范围之后点击搜索按钮,即可直接得到所需要的
url
地址,该
url
后续将作为
header
头部包中的
Refer
参考,协助爬虫;
(4)
抓取微博标签
mid
进入爬虫算法,博文标签
mid
本质上对应了发布者
id
,通过爬虫算法爬取每个博文的
mid
标签,即找到发布者
id
,然后存入列表用于后续查找每条具体微博专门地址;
(5)
解析微博内容当获取到一个话题下的所有博文标签
mid
后,即
id_list[]
列表,便对每一条微博进行可获取内容解析,将
url
与
id
进行拼接获取到具体博文的专用地址;通过代理
GET
访问该
url
,通过正则表达式解析获取内容;由于部分微博评论量极大,抓取过程中需要设置线程休眠,否则即使代理
ip
,也很容易被封禁,再完成所有解析步骤后,将所有信息写入文件;
(6)
在微博文本数据获取方面,使用爬虫算法每个话题可以得到3份文件,分别是包含微博博文与评论的信息文件
、
微博博文信息文件
、
微博评论信息文件,话题中3份文件尽可能抓取了微博中能够提取的所有信息
。3.
根据权利要求1所述的一种面向微博话题网络的文本数据挖掘与子图分析方法,其特征在于,步骤
S1
中通过构建
Cookie
池来解决
Cookie
失效问...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。