社交网络数据采集算法的设计软件工程课程设计报告

上传人:工**** 文档编号:474102143 上传时间:2022-11-23 格式:DOC 页数:26 大小:481.50KB
返回 下载 相关 举报
社交网络数据采集算法的设计软件工程课程设计报告_第1页
第1页 / 共26页
社交网络数据采集算法的设计软件工程课程设计报告_第2页
第2页 / 共26页
社交网络数据采集算法的设计软件工程课程设计报告_第3页
第3页 / 共26页
社交网络数据采集算法的设计软件工程课程设计报告_第4页
第4页 / 共26页
社交网络数据采集算法的设计软件工程课程设计报告_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《社交网络数据采集算法的设计软件工程课程设计报告》由会员分享,可在线阅读,更多相关《社交网络数据采集算法的设计软件工程课程设计报告(26页珍藏版)》请在金锄头文库上搜索。

1、 软件工程课程设计社交网络数据收集算法的设计组号第21组组长:盖云东_9组员:任志成_1组员:马剑楠_4组员:海涛_5摘要随着互联网的发展,人们正处于一个信息爆炸的时代。社交网络数据信息量大、主题性强,具有巨大的数据挖掘价值,是互联网大数据的重要组成部分。一些社交平台如Twitter、新浪微博、人人网等,允许用户申请平台数据的采集权限,并提供了相应的API 接口采集数据,通过注册社交平台、申请API授权、调用API 方法等流程获取社交信息数据。但社交平台采集权限的申请比较严格,申请成功后对于数据的采集也有限制。因此,本文采用网络爬虫的方式,利用社交账户模拟登录社交平台,访问社交平台的网页信息,

2、并在爬虫任务执行完毕后,与时返回任务执行结果。相比于过去的信息匮乏,面对现阶段海量的信息数据,对信息的筛选和过滤成为了衡量一个系统好坏的重要指标。本文运用了爬虫和协同过滤算法对网络社交数据进行收集。关键词:软件工程;社交网络;爬虫;协同过滤算法目录摘要- 2 -目录- 3 -课题研究的目的- 1 -1.1课题研究背景- 1 -2 优先抓取策略-PageRank- 2 -2.1 PageRank简介- 2 -2.2 PageRank流程- 2 -3 爬虫- 4 -3.1 爬虫介绍- 4 -3.1.1爬虫简介- 4 -3.1.2 工作流程- 4 -3.1.3 抓取策略介绍- 5 -3.2 工具介绍

3、- 6 -3.2.1 Eclipse- 7 -3.2.2 Python语言- 7 -3.2.3 BeautifulSoup- 7 -3.3 实现- 8 -3.4 运行结果- 9 -4 算法部分- 10 -4.1获取数据的三种途径- 10 -4.1.1通过新浪微博模拟登录获取数据- 10 -4.1.2 通过调用微博API接口获取用户微博数据- 11 -4.2基于用户的协同过滤算法- 14 -4.2.1集体智慧和协同过滤- 14 -4.2.2深入协同过滤核心- 15 -4.3算法实现- 18 -结论- 22 -参考文献- 23 - / 课题研究的目的1.1 课题研究背景互联网导致一种全新的人类社会

4、组织和生存模式悄然走进我们,构建了一个超越地球空问之上的、巨大的群体网络群体,21世纪的人类社会正在逐渐浮现出崭新的形态与特质,网络全球化时代的个人正在聚合为新的社会群体。随着社交的兴起,网络社交蓬勃发展,新的互联网热再次升温,有分析人士甚至说,网络社交将缔造人际交往的新模式。互联网的兴起打破了传统的社会交往方式,简单、快捷和无距离的社交体验推动社交网络快速发展,以Facebook、Twitter、微博等为代表的应用吸引了大量活跃网络用户,社交网络信息呈现爆发式的增长。社交网络信息反映了用户的网络行为特征,通过对这些信息的研究,可以实现社会舆论监控、网络营销、股市预测等。社交网络信息的重要价值

5、在于实时性,如何快速、准确、有效地获取目标信息非常重要。但社交网络属于Deep Web 的专有网络,信息量大、主题性强,传统搜索引擎无法索引这些Deep Web 页面,只有通过提供的查询接口或登录才能访问其信息,这增加了获取社交网络信息的难度。目前国外有关社交网络数据采集模型的研究较少,对社交网络的研究主要集中在社会网络分析领域。国社交网络平台的数据采集技术研究有一定成果,如文献提出并实现一种利用新浪微博应用程序接口(Application Programming Interface,API)和网络数据流相结合的方式采集数据,文献利用人人网开发平台提供的API 实现数据采集,并通过WebBro

6、wser 和 Fox 监测信息交互时的数据包,实现动态获取Ajax 页面信息等。2 优先抓取策略-PageRank2.1 PageRank简介PageRank,即网页排名,又称网页级别、Google左侧排名或佩奇排名是Google创始人拉里佩奇和尔盖布林于1997年构建早期的搜索系统原型时提出的分析算法,自从Google在商业上获得空前的成功后,该算法也成为其他搜索引擎和学术界十分关注的计算模型。目前很多重要的分析算法都是在PageRank算法基础上衍生出来的。2.2 PageRank流程首先PageRank的计算充分利用了两个假设:数量假设和质量假设。步骤如下:1) 在初始阶段:网页通过关系

7、构建起Web图,每个页面设置相同的PageRank值,通过若干轮的计算,会得到每个页面所获得的最终PageRank值。随着每一轮的计算进行,网页当前的PageRank值会不断得到更新。2)在一轮中更新页面PageRank得分的计算方法:在一轮更新页面PageRank得分的计算中,每个页面将其当前的PageRank值平均分配到本页面包含的出链上,这样每个即获得了相应的权值。而每个页面将所有指向本页面的入链所传入的权值求和,即可得到新的PageRank得分。当每个页面都获得了更新后的PageRank值,就完成了一轮PageRank计算。然后,引入阻尼系数p,p的值一般为0.85。完整公式如下:是被

8、研究的页面,是链入页面的数量,是链出页面的数量,而N是所有页面的数量。使用幂法求PageRank。那公式可以转换为求解的值,其中矩阵为 A = q P + ( 1 一 q) * /N 。 P 为概率转移矩阵,为 n 维的全 1 行。1. 计算P概率转移矩阵:1) 用矩阵表示连通图2) 网页概率矩阵3) 概率转移矩阵P2. 计算A矩阵:1) 计算/N2) 计算A矩阵3. 循环迭代计算PageRank3 爬虫3.1 爬虫介绍3.1.1爬虫简介网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常被称为网页追逐者),是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本,已被广泛应用于

9、互联网领域。3.1.2 工作流程网络爬虫的基本工作流程如下:(1) 选取想爬取的网页的URL。(2) 将这些URL放入待爬取URL队列。(3) 根据待爬取队列中的URL获取对应的网页。(4) 分析获取的网页,解析DNS,从中得到数据以与新的URL,并将已经抓取的URL放入已爬取URL队列。(5) 将新的URL放入待爬取URL队列,数据输出,存入本地下载库中。 具体流程图如下:图3-1 爬虫工作流程3.1.3 抓取策略介绍在爬虫应用中,待爬取URL队列是很重要的一部分。待爬取队列中的URL以怎样的顺序爬取同样很重要,这决定这数据的获取顺序。决定待爬取队列中的URL以怎样的顺序爬取,这就是抓取策略

10、。下面介绍几种常见的抓取策略:1. 广度优先遍历策略:广度优先遍历策略是指在抓取过程中,在完成与当前结点直接的结点的抓取后,才选择其中一个结点继续向下一层抓取。这种方法的思想是认为在与初始URL在一定距离的网页具有最大的主题相关性。这种方法的缺点是,随着抓取网页数量的增加,大量无关网页会被下载,造成不必要的浪费。2. 深度优先遍历策略:深度优先遍历策略是指在抓取开始,选择与当前结点相的一个结点,分析其URL,然后在选择其中一个进行抓取,这样重复下去,直到其中一条链路抓取完毕,然后再重新选择一个未抓取的URL进行抓取。显然这种方法的深度决定着抓取的命中率与效率。随着深度的增大,命中率与效率会成倍

11、的下降。3. 最正确优先遍历策略最正确优先遍历算法根据一定的网页分析算法,算出网页与初始网页的相关性,相关性高的网页优先抓取,这样,爬虫程序只抓取那些根据计算得到的“有用的”网页,但是这样可能导致在抓取路径上一些相关网页被遗漏。4. Partial PageRank策略Partial PageRank策略借鉴了PageRank算法的思想,根据已经下载网页的URL以与待爬取URL队列,计算每个网页的PageRank值,根据值得大小进行抓取排序。为防止部分相关网页因PageRank值小而一直不能被抓取,一般抓取K次后重新计算PageRank值。因为一些新下载的网页没有PageRank值,所以将这个

12、网页的所有入链传递的PageRank值汇总,就够成了这些页面的PageRank值,从而参与排序。3.2 工具介绍本爬虫的实现以与运行都是基于Eclipse的,Eclipse安装Pydev插件后即配置好Python语言的开发环境,在解析模块还使用了BeautifulSoup插件。下面介绍主要用到的这三种工具:3.2.1 EclipseEclipse是一个开源的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。本文通过安装Pydev插件构建Python语言的开发环境。3.2.2 Python语言Python是一种面向对象、解释型计算机程序设计语言

13、,由Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。Python的设计哲学是“优雅、明确、简单”。其特点是易读、易维护以与强制用空白符作为语句缩进,使得不好的编程习惯(例如if语句下一行不向右缩进)都不能通过编译。Python具有丰富和强大的库,它常被称为胶水语言,能够把用其它语言制作的各种模块(尤其是CC+)很轻松的联结在一起。需要注意的是在使用某些扩展类库的时候可能需要考虑平台问题,某些可能不提供跨平台的实现。Python具有良好的可扩展性。Python还可以以交互模式运行,比如主流操作系统Linux、Mac、Windows都可以直接在命令模式下直接运行

14、Python交互环境。直接下达操作指令即可实现交互操作。Python目前已经公布了Python3.x版本,本爬虫使用Python27编写。3.2.3 BeautifulSoupBeautifulSoup是Python的一个插件,用于解析HTML和XML,是替代正则表达式的利器,本爬虫使用BeautifulSoup4。BeautifulSoup会产生一个DOM树,尽可能和源文档的含义容一致,这种措施通常能够满足搜集数据的需求。BeautifulSoup下载地址为:.crummy./software/BeautifulSoup 安装过程如下:(1)下载完成后解压缩。(2)打开命令提示符,将工作目录

15、切换到BS的目录下。(3)运行setup.py build。(4)运行setup.py install。(5)输入Python,进入Python模块,然后输入from bs4 import BeautifulSoup检测是否成功。3.3 实现主要含有主调度函数、URL管理、HTML下载器、HTML解析器、HTML输出这五个模块。系统结构图如下:图3-2 爬虫功能结构图下面是主要的调度函数:from baike_spider import url_manager, html_downloader, html_parser,html_outputerclassSpiderMain(object):def_init_(self):self.urls = url_manager.UrlManager()self.downloader = html_downloader.HtmlDownloader(

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号