欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

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

    • 资源ID:5642118       资源大小:27.30KB        全文页数:24页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    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爬虫 -

    3、4 - 3.1 爬虫介绍 - 4 -爬虫简介 - 4 -工作流程 - 4 -抓取策略介绍 - 5 -3.2 工具介绍 - 6 - 7 -语言 - 7 - 7 -3.3 实现 - 8 -3.4 运转结果 - 9 -4算法部分 -10 - 4.1 获取数据的三种门路 经过新浪微博模拟登录获取数据 -10 -经过调用微博 API 接口获取用户微博数据 - 11 -4.2 鉴于用户的共同过滤算法 -14 -集体智慧和共同过滤 -14 -深入共同过滤核心 -15 -4.3 算法实现 -18 - 结论 -22 - 参照文件 -23 -课题研究的目的1.1 课题研究背景互联网致使一种崭新的人类社会组织和生计

    4、模式悄悄走进我们,建立了一个超越地球空问之上的、 巨大的集体 网络集体,21 世纪的人类社会正在渐渐涌现出崭新的形态与特质, 网络全世界化时代的个人正在聚合为新的社会集体。跟着交际网站的盛行,网络交际蓬勃发展,新的互联网热再次升温, 有剖析人士甚至说,网络交际将创造人际交往的新模式。互联网的盛行打破了传统的社会交往方式 ,简单、快捷和无距离的交际体验推进交际网络迅速发展 ,以 Facebook、Twitter 、微博等为代表的应用吸引了大批活跃网络用户 ,交际网络信息体现迸发式的增添。 交际网络信息反应了用户的网络行为特色 ,经过对这些信息的研究 ,能够实现社会舆论监控、网络营销、股市展望等。

    5、交际网络信息的重要价值在于及时性 ,如何迅速、正确、有效地获取目标信息特别重要。但交际网络属于 Deep Web 的专有网络 ,信息量大、主题性强 ,传统搜寻引擎没法索引这些 Deep Web 页面 ,只有经过网站供给的查问接口或登录网站才能接见其信息 ,这增添了获取交际网络信息的难度。目前外国有关交际网络数据采集模型的研究较少 , 对交际网络的研究主要集中在社会网络剖析领域。国内交际网络平台的数据采集技术研究有必定成就 , 如文件提出并实现一种利用新浪微博应用程序接口 (Application Programming Interface,API) 和网络数据流相联合的方式采集数据 , 文件利

    6、用开发平台供给的 API 实现数据采集 , 并经过 WebBrowser 和HttpFox 监测信息交互时的数据包 , 实现动向获取 Ajax 页面信息等。2 优先抓取策略 -PageRank2.1 PageRank 简介PageRank,即网页排名,又称网页级别、 Google 左边排名或佩奇排名是 Google 首创人拉里佩奇和谢尔盖布林于1997 年建立初期的搜寻系统原型时提出的链接剖析算法,自从 Google在商业上获取空前的成功后,该算法也成为其余搜寻引擎和学术界十分关注的计算模型。目前好多重要的链接剖析算法都是在PageRank算法基础上衍生出来的。2.2 PageRank 流程第

    7、一 PageRank 的计算充足利用了两个假定: 数目假定 和质量假定 。 步骤以下:1)在初始阶段 :网页经过链接关系建立起 Web 图,每个页面设置相同的 PageRank 值,经过若干轮的计算,会获取每个页面所获取的最后 PageRank 值。跟着每一轮的计算进行,网页目前的 PageRank值会不停获取更新。2)在一轮中更新页面 PageRank得分的计算方法:在一轮更新页面 PageRank得分的计算中,每个页面将其目前的 PageRank值均匀分派到本页面包含的出链上,这样每个链接即获取了相应的权值。而每个页面将全部指向本页面的入链所传入的权值乞降,即可获取新的 PageRank

    8、得分。当每个页面都获取了更新后的PageRank值,就达成了一轮 PageRank计算。而后,引入阻尼系数 p,p 的值一般为 0.85。完好公式以下:是被研究的页面, 是 链入页面的数量, 是 链出页面的数目, 而 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

    9、爬虫介绍爬虫简介网络爬虫 (又被称为网页蜘蛛, 网络机器人, 在 FOAF 社区中间,更常常被称为网页追赶者 ),是一种依据必定的规则,自动的抓取万维网信息的程序或许 脚本 ,已被宽泛应用于互联网领域。工作流程网络爬虫的基本工作流程以下:(1) 选用想爬取的网页的 URL。(2) 将这些 URL放入待爬取 URL行列。(3) 依据待爬取行列中的 URL获取对应的网页。(4) 剖析获取的网页,分析 DNS,从中获取数据以及新的 URL,并将已经抓取的 URL放入已爬取 URL行列。(5) 将新的 URL放入待爬取 URL行列,数据输出,存入当地下载库中。详细流程图以下:图 3-1 爬虫工作流程抓

    10、取策略介绍在爬虫应用中, 待爬取 URL 行列是很重要的一部分。 待爬取行列中的 URL 以如何的次序爬取相同很重要, 这决定这数据的获取次序。决定待爬取行列中的 URL 以如何的次序爬取, 这就是抓取策略。下边介绍几种常有的抓取策略:1.广度优先遍历策略:广度优先遍历策略是指在抓取过程中,在达成与目前结点直接链接的结点的抓取后, 才选择此中一个结点持续向下一层抓取。这类方法的思想是以为在与初始 URL在必定链接距离内的网页拥有最大的主题有关性。这类方法的弊端是,跟着抓取网页数目的增添,大批没关网页会被下载,造成不用要的浪费。2.深度优先遍历策略:深度优先遍历策略是指在抓取开始,选择与目前结点

    11、相链接的一个结点,剖析其 URL,而后在选择此中一个进行抓取,这样重复下去,直到此中一条链路抓取完成,而后再从头选择一个未抓取的 URL进行抓取。明显这类方法的深度决定着抓取的命中率及效率。跟着深度的增大,命中率及效率会成倍的降落。3.最正确优先遍历策略最正确优先遍历算法依据必定的网页剖析算法,算出网页与初始网页的有关性,有关性高的网页优先抓取,这样,爬虫程序只抓取那些依据计算获取的“实用的”网页,可是这样可能致使在抓取路径上一些有关网页被遗漏。4.Partial PageRank策略Partial PageRank 策略借鉴了 PageRank算法的思想,依据已经下载网页的 URL 以及待爬

    12、取 URL 行列,计算每个网页的 PageRank 值,依据值得大小进行抓取排序。为 防备部分有关网页因PageRank 值小而向来不可以被抓取,一般抓取 K 次后从头计算PageRank值。因为一些新下载的网页没有 PageRank值,所以将这个网页的全部入链传达的 PageRank 值汇总,就够成了这些页面的 PageRank值,进而参加排序。3.2 工具介绍本爬虫的实现以及运转都是鉴于 Eclipse 的, Eclipse 安装Pydev 插件后即配置好 Python 语言的开发环境,在分析模块还使用了 BeautifulSoup 插件。下边介绍主要用到的这三种工具:Eclipse 是一

    13、个开源的、 鉴于 Java 的可扩睁开发平台。 就其本身而言,它不过一个框架和一组服务,用于经过插件组件建立开发环境。本文经过安装 Pydev 插件建立 Python 语言的开发环境。语言Python 是一种面向对象、解说型计算机程序设计语言,由Guido van Rossum于 1989 年发明,第一个公然刊行版刊行于 1991年。Python 的设计哲学是“优雅、明确、简单” 。其特色是易读、易保护以及强迫用空白符作为语句缩进, 使得不好的编程习惯 ( 例如 if 语句下一行不向右缩进 ) 都不可以经过编译。Python 拥有丰富和强盛的库,它常被称为胶水语言,能够把用其余语言制作的各样模

    14、块 ( 特别是 CC+) 很轻松的联络在一同。需要注意的是在使用某些扩展类库的时候可能需要考虑平台问题,某些可能不供给跨平台的实现。 Python 拥有优秀的可扩展性。Python 还能够以交互模式运转,比方主流操作系统 Linux 、Mac、Windows 都能够直接在命令模式下直接运转 Python 交互环境。直接下达操作指令即可实现交互操作。Python目前已经宣布了 Python3.x 版本,本爬虫使用 Python27 编写。BeautifulSoup 是 Python 的一个插件,用于分析 HTML和 XML,是代替正则表达式的利器,本爬虫使用 BeautifulSoup4 。Be

    15、autifulSoup 会产生一个 DOM树,尽可能和源文档的含义内容一致,这类举措往常能够知足采集数据的需求。 BeautifulSoup下载地点为: 安装过程以下:(1)下载达成后解压缩。(2)翻开命令提示符,将工作目录切换到 BS 的目录下。(3)运转 setup.py build。(4)运转 setup.py install。(5)输入 Python,进入 Python 模块,而后输入 from bs4 importBeautifulSoup 检测能否成功。3.3 实现主要含有主调动函数、 URL 管理、 HTML 下载器、 HTML 解析器、 HTML 输出这五个模块。系统结构图以下

    16、:图 3-2 爬虫功能结构图下边是主要的调动函数:from baike_spider import url_manager, html_downloader,html_parser,html_outputerclass SpiderMain (object):def _init_ (self):self.urls = url_manager.UrlManager()self.downloader = html_downloader.HtmlDownloader()self.parser = html_parser.HtmlParser()self.outputer = html_outpute

    17、r.HtmlOutputer()def craw (self, root_url):count = 1try:print craw %d : %s %(count,new_url)if count = 20:breakcount = count + 1except:print carw failedif _name_= _main_ :root_url = obj_spider = SpiderMain()obj_spider.craw(root_url)3.4 运转结果本次测试爬取XX百科中 Python 的 20 条有关词条。因为时间以及技术有限,尚不可以完满运转,爬虫在爬取到主页面后就会

    18、停止运转,错误还没有找到,此后会尽量完美。4算法部分4.1 获取数据的三种门路经过新浪微博模拟登录获取数据模拟登录功能的实现方式是读取包含账号信息的配置文件,模拟网页登录新浪微博的过程,获取接见新浪微博页面时所需要的有效认证信息,即需要保留在当地的 cookie 信息。程序向新浪服务器发送经过加密的用户名 (username)和密码 (password),服务器从传达的 URL 参数中提取字符串并解密获取原用户名和密码。此中对 username和 password 的加密是模拟登录过程中的关键步骤。对 username进行 Base64 编码获取用户名的加密结果。但 password的加密过程

    19、比较复杂。第一利用 HttpClient 对象接见新浪服务器获取服务器时间 (servertime)、一个随机生成的字符串(nonce)2 个参数。而后利用新浪服务器给出的 pubkey 和 rsakv 值创立 RSA 算法公钥 (key)。将 servertime,nonce和 password按次拼接成新的字符串 message,使用 key 对 message进行 RSA 加密并将加密结果转变为十六进制, 获取 password的加密结果。 将加密后的用户名和密码一同作为恳求通行证的 URL 恳求的报头信息传达给新浪服务器,新浪服务器经过考证无误后,返回登录成功信息, HttpClien

    20、t 保留有效的 Cookies 值。模拟登录成功后,程序向服务端恳求数据获取任务,不然结束本次任务。经过调用微博 API 接口获取用户微博数据利用微博系统的 SDK 获取数据的工作流程,调用 API 需要经过用户身份的鉴权,目前使用 OAuth 鉴权。其长处是数据正确快捷,极少因微博平台的变化而变化,但弊端是接口供给商限制的要素多且不稳固。(1)新浪微博开放平台目前,新浪微博供给了相应的 API 供本系统使用,经过调用这些 API ,本系统能够获取如微博内容、用户关系、用户信息、用户标签等信息。要使用这些 API ,需要先创立一个自己的应用,而后进行认证,认证达成后即可使用 API 获取新浪微

    21、博的数据了。可是此刻新浪微博加大了对 API 接口的限制,只有企业用户才能够申请微服务应用 (里面有接见数据的接口 ),这对个人数据采集的实践造成较大困难。(2)微博 JAVA SDK微博 JAVA SDK 是新浪为 JAVA 开发者供给的特意用于接见新浪微博的接口,经过微博 JAVA SDK ,第三方微博应用能够很方便的接见微博供给的 API 接口,获取到需要的信息。 微博 JAVASDK 的整体架构包含以下几个:src:weibo4j 封装了大多数接口,包含受权, timeline,用户等常有接口 ;weibo4j.http 包含了 https 恳求的封装; weibo4j.model 包

    22、含了 user,status等实体类 ;达成 json 分析的各样方法;weibo4j.util 包含了恳求 api 接口时候所需要的工具类;examples:里面包含了封装接口的各个测试。(3)微博应用创立第一使用自己的新浪微博账号进行登岸,假如没有的话,就要先注册,而后再登岸到新浪的微博开放平台。成功登岸此后,第一要填写个人的基本信息,填写了个人信息后,就能够获取开发者的身份,这时就能够创立应用了。创立应用时,除了填写应用的基本信息,包含名称、用途、应用网址之外,最重要的是应用的种类。站内应用能够获取更高的权限和更高的 API 调用频次。创立完站内应用后,应用将会获取一个 App Key

    23、和一个 Secret Key,这两个 Key 是此后会用到的。此中 App Key 是应用在开放平台中的身份标记,每次应用要调用 API 时,都需要供给 App Key 和使用人账号,这样方便新浪统计某个应用的使用频次,这样既能保证某个应用不可以屡次调用 API ,防止出现歹意攻击新浪的事件,另一方面,新浪也能够经过使用频次来进行热点应用的介绍。而 App Secret 是新浪微博分派给某个应用的密码,这是为了保证其真切性,这个是独一的,这样能够防备其余应用假冒某个热点应用。(4)微博内容获取整体的大概流程如图 4-1。创立微博开放平台的应用获取 App key和 App secretOAut

    24、h2.0认证获取 AccessToken结构相应 API的参数API文档信息显示与保存API接口代码类重点词般配返回 JSON数调用 API接口据流图 4-1 经过微博 API 接口获取数据大概流程在采集过程中,第一需要的是获取新浪微博的身份考证,即申请 Access Token码,进而获取对新浪微博开发的权限。进行身份考证此后,就能够开始对新浪微博进行开发了。在调用 API 接口 Timeline 获取受权用户全部的微博信息此后,就能够经过输入重点词对微博信息进行重点词般配,假如般配成功,就将微博信息中的 id 和微博内容显示在框架并以 txt 文件的形式保留下来。因为新浪微博对 API 接

    25、口调用的次数和频次有限制,一旦达到限制, 系统将等候几分钟后才能进行采集。4.2 鉴于用户的共同过滤算法集体智慧和共同过滤集体智慧是指在大批的人群的行为和数据中采集答案,帮助你对整个人群获取统计意义上的结论,这些结论是我们在单个个体上没法获取的,它常常是某种趋向或许人群中共性的部分。共同过滤是利用集体智慧的一个典型方法。要理解什么是共同过滤 (Collaborative Filtering, 简称 CF),第一想一个简单的问题,假如你此刻想看个电影,但你不知道详细看哪部,你会怎么做?大多数的人会问问四周的朋友,看看近来有什么漂亮的电影介绍, 而我们一般更偏向于从口胃比较近似的朋友那边获取介绍。

    26、这就是共同过滤的核心思想。共同过滤一般是在海量的用户中发掘出一小部分和你品位比较近似的,在共同过滤中,这些用户成为街坊,而后依据他们喜爱的其余东西组织成一个排序的目录作为介绍给你。如图 4-2 所示,鉴于用户的共同过滤算法表示图。图 4-2 鉴于用户的共同过滤算法表示图深入共同过滤核心第一,要实现共同过滤,需要一下几个步骤:采集用户偏好;找到相像的用户或物件;计算介绍。(1)采集用户偏好从用户的行为和偏好中发现规律,并鉴于此进行介绍,所以如何采集用户的偏好信息成为系统介绍成效最基础的决定要素。用户有好多种方式向系统供给自己的偏好信息,比方:评分,投票,转发,点赞,议论,珍藏,点击流,页面逗留时

    27、间等等。用户行为都会多于一种,那么如何组合这些不一样的用户行为呢 ?基本上有以下两种方式。(1)将不一样的行为分组一般能够分为点赞和议论、 转发,而后鉴于不一样的用户行为,计算不一样用户或许物件的相像度。(2)不一样行为产生的用户爱好对它们进行加权对不一样行为产生的用户爱好进行加权,而后求出用户对物件的整体爱好。好了,当我们采集好用户的行为数据后,还要对数据进行预办理,最核心的工作就是减噪和归一化。减噪:因为用户数据在使用过程中可能存在大批噪音和误操作,所以需要过滤掉这些噪音。归一化:不一样行为数据的取值相差可能很好,比如用户的查看数据必定比购置数据大得多。经过归一化,才能使数据更为准确。(2)找到相像的用户或物件当已经对用户行为进行剖析获取用户爱好后,我们能够依据用户爱好计算相像用户和物件,而后鉴于相像用户或许物件进行介绍。对于相像度的计算,现有的几种基本方法都是鉴于向量(Vector)的,其实也就是计算两个向量的距离, 距离越近相像度越大。在介绍的场景中,在用户 - 物件偏好的二维矩阵中,我们可以将一个用户对全部物件的偏好作为一个向量来计算用户之间的相像度,或许将所实用户对某个物件的偏好作为一个向量来计算物件之间的相像度。下边


    注意事项

    本文(社交网络数据采集算法设计软件工程课程设计报告.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开