"景先生毕设|www.jxszl.com

微博用户兴趣分析系统的设计与实现【字数:9269】

2024-02-25 17:00编辑: www.jxszl.com景先生毕设
1微博作为当前中国最为流行的社交网络平台之一,它的用户数量非常庞大,它所涉及的领域多样化,每天产生的数据是数以亿计的,这些海量数据背后有巨大的价值,而准确的分析用户兴趣对挖掘微博价值和提升微博用户体验有着很重要的意义。本文通过网络爬虫以模拟浏览器行为的方式采集用户的微博和关注列表,然后对微博内容利用改进的TF-IDF算法提取出用户兴趣关键词;并基于scikit-learn对用户的关注列表按照《2018微博用户发展报告》里的垂直领域进行分类,从而得到用户的兴趣领域。并在此基础上,通过词语的相似度来建立用户兴趣关键词和用户兴趣领域的联系,并将得到的结果进行可视化。
目录
引言
1绪论
1.1 研究背景
微博,是一种允许用户即时更新简短文本、图片、视频等内容并以公开的形式发表的一种博客。它是一个基于互联网平台、由用户主导、以内容为核心的互联网产品。目前国外比较流行的微博平台是Twitter,而国内比较流行的是新浪微博,它是中国用户最多、影响最大的微博平台。根据《2018年微博用户发展报告》显示,截止2018年第四季度,微博月活跃用户增至4.62亿,月活跃用户规模保持稳健增长,已连续三年增加7000万+。微博垂直领域数量扩张大至60个,月阅读量过百亿领域达32个,新增旅游、母婴、汽车等9大领域。这一切都在说明微博的用户规模不仅庞大而且还在处于增长状态,且其涉及的领域也是丰富多样,几乎涵盖到了生活的方方面面。
也正因为如此,微博每天产生的数据数以亿计,而海量数据的背后往往蕴含着巨大的价值,无论是从学术意义的角度还是从商业价值的角度来考虑。因此,微博的数据挖掘就显得尤为重要。倘若能从这些数据中挖掘出用户的兴趣,那么就可以通过推荐给用户感兴趣的内容来提高用户的满意度,增加用户的体验度;同时也可以根据用户的兴趣来实现广告的精准投放,做到既能赚取广告的利润也能不降低用户满意度。
1.2国内外研究现状
1.2.1 微博数据采集研究现状
一般来说,获取新浪微博的数据有两种途径:一是利用微博官方API接口来获取数据;另一种是通过网络爬虫来采集数据。
使用微博官方提供的API接口需要现在微博开放平台注册,成为开发者。通过创建应用来获取appkey和a *景先生毕设|www.jxszl.com +Q: ¥351916072
ppsecret,经过OAuth2.0授权后,就可以使用官方提供的接口来获取数据。但是,官方对这些接口是有频率限制的,每段时间只能请求一定的次数,限制的单位时间有每小时、每天。限制的维度有单授权用户和单IP;部分特殊接口有单独的请求次数限制。所以,利用微博官方API可以方便的获取微博内容,但受到的限制也很大。
通过网络爬虫的网页解析技术也可以采集微博用户数据。目前,微博共有三个站点,wap站:https://weibo.cn,移动端:https://m.weibo.com,电脑端:https://weibo.com,爬取这三个站点的复杂度是逐渐提高的。wap站和电脑端站点都需要先进行登录,之后才能获取微博信息。而移动端站点则是可以在不登录的状态下获取微博用户信息。并且相对于移动端站点,wap站点的用户信息比较少。除此之外,电脑端站点的接口的参数最为复杂,相比之下,移动端站点的接口就显得比较简单。总而言之,移动端的微博站点比较适合网络爬虫。使用网络爬虫能够突破官方API接口对于频率的限制,可以采集大量的微博数据,但微博有着较强的反爬措施,这就导致了微博爬虫的编程难度较大,并且微博爬虫系统的维护成本比较高。
1.2.2微博用户兴趣分析研究现状
截止目前为止,对微博用户兴趣分析的方法主要有:抽取用户微博关键字,基于微博内容构建主题模型,基于聚类算法来挖掘微博用户的兴趣,基于背景和内容的微博用户兴趣挖掘等等。
1.2.3数据可视化研究现状
数据可视化的目的是使人们更为直观地、更为方便地获取信息。迄今为止,数据可视化技术在不断地发展,其应用范围和影响也在逐渐扩大。目前可视化的工具很多,例如Chart.js,Charttist.js,Echrts等[5]。
1.3本文主要工作
本文的主要工作设计了一个基于微博的用户兴趣分析及可视化系统。系统包括三个模块:数据采集子模块,用户兴趣挖掘子模块,数据可视化子模块。
在数据采集子模块中,采用网络爬虫的方式获取微博数据,主要是获取该用户的所有的微博内容和全部的关注列表,以及用于生成计算IDF的语料库和用于实现用户关注列表分类的训练数据,爬取到的数据用分布式数据库mongodb存储。
在兴趣分析子模块中,利用TFIDF算法,结合大量微博文本生成的IDF词典来抽取关键词,然后用sickitlearn里的分类算法对用户的关注列表进行分类,最后根据词语相似性,对关键词和分类结果进行匹配,生成用户兴趣分类树。
在可视化子模块中,利用python的web框架django搭建系统平台,通过网页呈现用户兴趣分析的结果,前端采用了html,css,javascript,ajax来实现系统与用户的交互,并利用echarts开源可视化框架实现兴趣云,饼状图,树图,折线图,柱状图等多种统计分析。
2基于模拟浏览器行为的微博数据爬取
2.1 网页分析工具
考虑到微博的wap站点的信息不全、微博PC站点的参数较多等问题,决定使用python为开发语言,采集微博m站的微博数据。首先就是要分析网页,而分析网页则可以使用浏览器自带的网页分析工具。本文选择Google浏览器Chrome的开发者工具来分析微博移动端网页。点击http://m.weibo.com,打开微博首页,右键打开检查,就能看到网页开发工具箱,在这些工具箱里面使用最多的是,元素(element),控制台(console),源码(source)以及网络(network)。
元素(element):用于查看HTML元素的属性、CSS属性、监听事件、断点等。
控制台(console):查看调试日志信息或异常信息。
源代码(sources):该页面用于查看页面的HTML文件源代码、javascript源代码、CSS源代码,此外最重要的是可以调试javascript源代码,可以给JS代码添加断点。

原文链接:http://www.jxszl.com/jsj/wljs/563986.html