一种突发公共卫生事件互联网文本抽取方法_2

文档序号:9818315阅读:来源:国知局
状态,这样有利于收集舆情变化。
[0053]为此,本发明在进行文本抽取前,先对作为对突发公共卫生事件信息进行挖掘的社会媒体进行筛选,从而能够在减少系统负荷的同时保证抽取的疫情信息足够广泛。
[0054]这里筛选的指标主要从上述分析的特点考虑,即筛选用户基数大、信息更新及时准确、信息完整透明的媒体。对于用户基数这一指标,可以通过获取社会媒体的访问量、用户流量、用户活跃度参数中的一个或多个进行筛选。对于信息更新及时准确这一指标,可以通过获取社会媒体的更新频度、更新时间(例如仅对I个小时内有更新的社会媒体进行抽取)、用户等级(例如仅对大V的微博进行抽取)参数中的一个或多个进行筛选。对于信息完整透明这一指标,主要是通过排除列表的方式排除一些政府官方网站和可能干扰疫情分析或舆情分析的网站。
[0055]在对通过筛选后得到的社会媒体进行文本信息的抽取时,我们又发现对于不同的社会媒体,若才有单一的文本信息抽取策略,往往达不到期望的效率。下面以新闻页面、博客页面、微博页面为例,逐一进行分析。
[0056]滚动新闻页面
[0057]门户网站自身分类庞杂,虽然有社会类板块,但是由于其在网站层级结构中处于较深位置,访问量有限,影响力不足。我们在对门户网站进行分析后发现,滚动新闻页面特别适合作为公共卫生突发事件的信息源。原因有以下三点:(I)更新及时迅速。各个门户网站的滚动新闻页面皆有专人管理,由门户网站记者或内部人员第一时间获得的信息直接发布于改页面,这也是我们可获得的最新的新闻文本信息。(2)格式统一便于抓取。每条新闻都以类似的保存于网页中,对于抓取工作的文本信息定位产生很大的便利。采用模板化爬虫技术则能方便地对其进行文本抓取。(3)以时间顺序倒序排列。最新信息陈列于抓取列表最前排,便于爬虫获得最新信息。
[0058]进一步对新闻页面的特点进行研究后发现,新闻页面以滚动列表形式呈现,按照发布时间从新到旧排列。当新闻条数超过当前页面限定显示条数后,进行分页显示,用户如需浏览剩余新闻条目,则需切换页面。每条新闻条目以〈新闻标题 >.〈发布时间〉罗列。新闻内容页面则以新闻标题、发布时间、新闻来源、新闻内容、评论内容方式呈现。
[0059]因此,参见图2,对于滚动新闻页面的文本抽取过程进行如下设计:
[0060]步骤1:开始抓取,并从事先设定好的人工采集的滚动页面url地址池中获取需要抓取的对应URL。
[0061]步骤2:解析URL对应的网页HTML语言,并分条目获取对应的新闻标题和新闻页面URL地址,生成一个URL地址列表。
[0062]步骤3:将URL地址列表存放于URL地址池中,并作去重操作。
[0063]步骤4:获取步骤3中经过去重后新增的URL地址所指向的新闻页面的HTML文本。
[0064]步骤5:对HTML文本进行预处理。包括去除HTML标记和文本编码转换。
[0065]步骤6:获取对应属性值并存入新闻抽取结果数据库。包括定位并提取新闻信息文本、定位并提取网络属性文本、整理文本属性信息并对应存储于数据库中。
[0066]步骤7:对步骤I?6中的运行参数进行记录。参数包括:程序运行时间、休眠等待时间、抓取新闻条数等。
[0067]博客页面
[0068]Blog是继Email、BBS、ICQ之后出现的第四种网络交流方式,是网络时代的个人“读者文摘” O一个Blog其实就是一个网页,它通常是由简短且经常更新的帖子所构成,这些张贴的文章都按照年份和日期倒序排列。博客的发布相对而言审查比较宽松,并且随时可以更新。因此,博客发布的信息是反映突发公共卫生事件的发展状态的重要来源。但是现有网页抓取技术中,由于其以博主个人名义发布为主使之成为极其容易被忽视的信息源。
[0069]我们发现,博客一般在首页呈现当前关注热点,并设置专题研究。如果,我们所要获取的公共卫生突发事件是一个当前正在发生的事件,那么,类似新闻网站,对新浪博客提供的专题页面进行分析抓取即可。此外,以新浪博客为例,在对新浪微博深入研究过程中我们发现,新浪整个网站平台有一个统一的搜索引擎,可以分别对于新闻、专题、博客、微博、图片等栏目进行全平台搜索,并且有一定的排序机制。类似于百度类搜索引擎的展现形式,新浪搜索对于博客的搜索以带有博客主页超链接的标题和内容逐条以列表形式展现,对于抓取该列表的信息可以通过索引标记并截取的方式进行抓取。
[0070]通过对于关键词H7N9的博客搜索,我们发现新浪的博客搜索引擎传递用户搜索关键词“H7N9”参数的形式为URL传递,也就是说我们通过更改URL中表达关键词的字段生成新的我们需要的URL即可访问到我们所需关键词的搜索界面。同时我们可以发现,URL中的其他字段有对于搜索结果控制的内容信息,如range、by、sort等属性,可以通过这些URL的属性来筛选搜索结果并输出。
[0071]因此,参见图3,对于博客页面的文本抽取过程进行如下设计:
[0072]步骤1:开始抓取,在程序中输入博客内容的控制筛选信息。例如关键词、排序方式、时间段、关键词位置等。
[0073]步骤2:生成搜索结果页面的URL。这里的结果搜索页面并不是由程序本身产生,而是利用了新浪博客搜索引擎内部的URL参数传递机制规则。用户对于其搜索引擎域名下的某一个URL进行访问对于新浪服务器而言是一个搜索请求。
[0074]步骤3:访问步骤2按照规则生成的搜索结果界面URL,并对搜索结果页面进行抽取,获取页面列表中各个博客对应页面URL。
[0075]步骤4:根据博客页面URL抽取博客页面HTML文本。
[0076]步骤5:对HTML文本进行预处理。包括去除HTML标记和文本编码转换。
[0077]步骤6:获取对应属性值并存入博客抽取结果数据库。包括定位并提取新闻信息文本、定位并提取网络属性文本、整理文本属性信息并对应存储于数据库中。
[0078]步骤7:对步骤I?6中的运行参数进行记录。参数包括:程序运行时间、休眠等待时间、抓取博客条数等。
[0079]微博页面
[0080]微博(Microblog),是一种允许用户即时更新简短文本(通常少于Twitter开始的140字)并可以公开发布的微型博客形式。它允许任何人阅读或者只能由用户选择的群组阅读。微博和新闻及博客相比有以下显著特点:(I)户基数量大。微博因其种种特性符合当今人类对于信息的需求,所以受到了庞大的互联网用户的追捧,无论是Twitter还是中国大陆的新浪微博,都有着数以亿记的用户(截止至2014年9月,新浪微博月活跃人为1.67亿人)。
(2)发布便利。以新浪微博为例,新浪微博在PC、Mac、1S、Android、WP等诸多平台上均有客户端支持。新浪微博的用户在任何时候只需要一部安装了新浪微博客户端并连接到互联网的移动设备,即刻随时随地发送微博。(3)信息量巨大。因其用户基数大,发布便利,微博传达的信息量非常巨大。每天产生的数据量都在PB级以上。(4)信息内容丰富。包含了文字、短链、图片、音频和视频等媒体形式。(5)信息来源多样。包括个人用户、企业用户、认证名人、官方用户等等。
[0081]但是微博抓取和新闻及博客不同点在于微博抓取的数据量极为庞大,所以微博平台对于爬虫机器人的抓取采用了相当严格的屏蔽机制,怎样绕过这些机制来获得我们所需要的数据,成为微博抓取的难点。通过研究分析和实验,我们发现微博抓取的屏蔽机制主要体现在两点上:
[0082]第一,微博是基于Web2.0开发出来的新一代网络交互软件,其所有的数据对用户均可见,但是对于没有注册用户的游客来,微博对于呈现的内容将有很大的缩减。为了获取更多更加全面的研究数据。我们需要采用模拟登录的方式来虚拟用户登录并访问微博数据。而模拟登录则成为微博抓取的难点。
[0083]第二,因为微博条目众多,一次抓取访问服务器次数非常大,微博平台常常对于访问过频的账号进行封锁。为了考虑微博抓取的效率,如何绕开微博平台设置的封锁成为第二个难点。
[0084]下面对解决微博抓取的屏蔽机制的两个关键点进一步说明如下:
[0085](I)模拟登录
[0086]以新浪微博为例,新浪微博采用的0auth2.0认证方式,登录验证需要经过几步认证授权。微博爬虫通常会分析微博的授权机制,采用HttpClient进行模拟登录。主要的步骤如下:
[0087]a.构造 HttpClient 实例
[0088]b.构造登录POST请求,获取服务器返回值中servertime和nonce的值
[0089]c.对用户名和密码加密
[0090]d.构造POST数据包
[0091]e.执行POST请求
[0092]f.获取实际URL并请求该URL
[0093
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1