Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >基于微博数据用 Python 打造一颗“心”

基于微博数据用 Python 打造一颗“心”

作者头像
码云Gitee
发布于 2018-03-29 06:26:44
发布于 2018-03-29 06:26:44
8860
举报
文章被收录于专栏:开源项目开源项目
一年一度的虐狗节终于过去了,朋友圈各种晒,晒自拍,晒娃,晒美食,秀恩爱的。程序员在晒什么,程序员在加班。但是礼物还是少不了的,送什么好?作为程序员,我准备了一份特别的礼物,用以往发的微博数据打造一颗“爱心”,我想她一定会感动得哭了吧。哈哈

准备工作

有了想法之后就开始行动了,自然最先想到的就是用 Python 了,大体思路就是把微博数据爬下来,数据经过清洗加工后再进行分词处理,处理后的数据交给词云工具,配合科学计算工具和绘图工具制作成图像出来,涉及到的工具包有:

requests 用于网络请求爬取微博数据,结巴分词进行中文分词处理,词云处理库 wordcloud,图片处理库 Pillow,科学计算工具 NumPy ,类似于 MATLAB 的 2D 绘图库 Matplotlib

工具安装

安装这些工具包时,不同系统平台有可能出现不一样的错误,wordcloud,requests,jieba 都可以通过普通的 pip 方式在线安装。

pip install wordcloud

pip install requests

pip install jieba

Windows 平台安装 Pillow,NumPy,Matplotlib 直接用 pip 在线安装会出现各种问题,推荐的一种方式是在一个叫 Python Extension Packages for Windows 1 的第三方平台下载 相应的 .whl 文件安装。可以根据自己的系统环境选择下载安装 cp27 对应 python2.7,amd64 对应 64 位系统。下载到本地后进行安装

pip install Pillow-4.0.0-cp27-cp27m-win_amd64.whl

pip install scipy-0.18.0-cp27-cp27m-win_amd64.whl

pip install numpy-1.11.3+mkl-cp27-cp27m-win_amd64.whl

pip install matplotlib-1.5.3-cp27-cp27m-win_amd64.whl

其他平台可根据错误提示 Google 解决。或者直接基于 Anaconda 开发,它是 Python 的一个分支,内置了大量科学计算、机器学习的模块 。

获取数据

新浪微博官方提供的 API 是个渣渣,只能获取用户最新发布的5条数据,退而求其次,使用爬虫去抓取数据,抓取前先评估难度,看看是否有人写好了,在GitHub逛了一圈,基本没有满足需求的。倒是给我提供了一些思路,于是决定自己写爬虫。使用 http://m.weibo.cn/ 移动端网址去爬取数据。发现接口 http://m.weibo.cn/index/my?format=cards&page=1 可以分页获取微博数据,而且返回的数据是 json 格式,这样就省事很多了,不过该接口需要登录后的 cookies 信息,登录自己的帐号就可以通过 Chrome 浏览器 找到 Cookies 信息。

实现代码:

查看微博的总页数是101,考虑到一次性返回一个列表对象太费内存,函数用 yield 返回一个生成器,此外还要对文本进行数据清洗,例如去除标点符号,HTML 标签,“转发微博”这样的字样。

保存数据

数据获取之后,我们要把它离线保存起来,方便下次重复使用,避免重复地去爬取。使用 csv 格式保存到 weibo.csv 文件中,以便下一步使用。数据保存到 csv 文件中打开的时候可能为乱码,没关系,用 notepad++查看不是乱码。

分词处理

从 weibo.csv 文件中读出来的每一条微博进行分词处理后再交给 wordcloud 生成词云。结巴分词适用于大部分中文使用场景,使用停止词库 stopwords.txt 把无用的信息(比如:的,那么,因为等)过滤掉。

生成图片

数据分词处理后,就可以给 wordcloud 处理了,wordcloud 根据数据里面的各个词出现的频率、权重按比列显示关键字的字体大小。生成方形的图像,如图:

是的,生成的图片毫无美感,毕竟是要送人的也要拿得出手才好炫耀对吧,那么我们找一张富有艺术感的图片作为模版,临摹出一张漂亮的图出来。我在网上搜到一张“心”型图:

生成图片代码:

需要注意的是处理时,需要给 matplotlib 指定中文字体,否则会显示乱码,找到字体文件夹:C:\Windows\Fonts\Microsoft YaHei UI复制该字体,拷贝到 matplotlib 安装目录:C:\Python27\Lib\site-packages\matplotlib\mpl-data\fonts\ttf 下

差不多就这样。

当我自豪地把这张图发给她的时候,出现了这样的对话:

这是什么? 我:爱心啊,亲手做的 这么专业,好感动啊,你的眼里只有 python ,没有我 (哭笑) 我:明明是“心”中有 python 啊

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-02-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Gitee 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
编辑精选文章
换一批
python信息化技术实践之词云效果实战
Archived: Python Extension Packages for Windows - Christoph Gohlke (uci.edu)
用户9184480
2024/12/07
760
python信息化技术实践之词云效果实战
Python | 数据挖掘,WordCloud词云配置过程及词频分析
其中WordCloud是词云,jieba是结巴分词工具。 问题:在安装WordCloud过程中,你可能遇到的第一个错误如下。
用户1634449
2018/10/18
9060
如何用Python做中文分词?
打算绘制中文词云图?那你得先学会如何做中文文本分词。跟着我们的教程,一步步用Python来动手实践吧。
王树义
2018/08/22
1.4K0
如何用Python做中文分词?
Python wordcloud 库安装
b.依赖包安装完成后,安装wordcloud 下载地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/ Wordcloud, a little word cloud generator. wordcloud‑1.5.0‑cp27‑cp27m‑win32.whl wordcloud‑1.5.0‑cp27‑cp27m‑win_amd64.whl wordcloud‑1.5.0‑cp35‑cp35m‑win32.whl wordcloud‑1.5.0‑cp35‑cp35m‑win_amd64.whl wordcloud‑1.5.0‑cp36‑cp36m‑win32.whl wordcloud‑1.5.0‑cp36‑cp36m‑win_amd64.whl wordcloud‑1.5.0‑cp37‑cp37m‑win32.whl wordcloud‑1.5.0‑cp37‑cp37m‑win_amd64.whl 根据python版本下载对应软件包;例如 Python版本 3.6.4 、 电脑系统64位, 使用依赖包 wordcloud‑1.5.0‑cp36‑cp36m‑win_amd64.whl 根据实际情况安装: D:\软件\python-install>pip install wordcloud-1.5.0-cp36-cp36m-win_amd64.whl
py3study
2020/01/07
4.1K0
Python爬虫教程:爬取微博数据【附源码】
3、将获得的两项内容填入到weibo.py中,替换代码中的YOUR_USER_ID和#YOUR_COOKIE,运行代码。
python学习教程
2020/03/31
2.3K0
二维卷积中文微博情感分类项目
  这里完成一个中文微博情感分类项目。这里我使用的数据集是从新浪微博收集的 12 万条数据,正负样本各一半。标签中 1 表示正面评论,0 表示负面评论。数据来源为https://github.com/SophonPlus/ChineseNlpCorpus/blob/master/datasets/weibo_sen ti_100k/intro.ipynb。如果你有其他数据的话,也可以使用其他数据。   这一次我们使用的数据需要自己做处理,所以我们需要对句子进行分词,分词后再对每 个词根据频率来进行编号。这里我们要使用的分词工具是结巴分词,结巴分词是一个很好用 的中文分词工具,安装方式为打开命令提示符,然后输入命令:
别团等shy哥发育
2023/02/25
2310
你们要的代码来了
总第111篇 前言 上一篇文章发出后,大家反响还不错,文章的阅读量也是我公众号历史阅读量最高的一篇(截至目前阅读已经1124啦),在其他平台发布以后阅读量已经超过5w了,果真还是平台的影响力大。 上一篇文章中之所以没带代码主要是因为我只想写一篇数据分析报告,咱们平常给领导看数据分析报告,肯定也不会把Sql代码、Python代码放在PPT中,给老板讲述每一行Sql代码是什么意思,所以就没有放代码。 但是大家都很爱学习,都想要代码学习学习,所以今天就专门来一篇讲讲代码。 在开始具体的代码讲解之前,我需要说明一下
张俊红
2018/06/11
1K3
双向LSTM中文微博情感分类项目
  这里完成一个中文微博情感分类项目。这里我使用的数据集是从新浪微博收集的 12 万条数据,正负样本各一半。标签中 1 表示正面评论,0 表示负面评论。数据来源为https://github.com/SophonPlus/ChineseNlpCorpus/blob/master/datasets/weibo_sen ti_100k/intro.ipynb如果你有其他数据的话,也可以使用其他数据。
别团等shy哥发育
2023/02/25
4020
分析了与女友近两年的聊天记录,没想到聊的最多的竟然是...
逛吾爱破jie的时候,看到一个导出QQ聊天记录分析生成词云图的python玩法,就导出自己和女友的聊天记录试了一下,没想到在一起五年了,近两年说的最多的词竟然是 好吧
岳泽以
2022/10/26
3550
分析了与女友近两年的聊天记录,没想到聊的最多的竟然是...
10行Python代码的词云
词云又叫文字云,是对文本数据中出现频率较高的“关键词”在视觉上的突出呈现,形成关键词的渲染形成类似云一样的彩色图片,从而一眼就可以领略文本数据的主要表达意思。
半吊子全栈工匠
2018/08/22
3.2K0
10行Python代码的词云
用 Python 制作微信好友个性签名词云图
0.前言 上次查看了微信好友的位置信息,想了想,还是不过瘾,于是就琢磨起了把微信好友的个性签名拿到,然后分词,接着分析词频,最后弄出词云图来。 1.环境说明 Win10 系统下 Python3,编译器是 Pycharm,需要安装 itchat、matplotlib、pandas、jieba、wordcloud、numpy、pillow 这几个包 介绍 Pycharm 安装第三方包的方法。 由于某些包不能直接用 Pycharm 安装,所以这里说一下安装的方法。 安装w
伪君子
2018/04/04
1.6K0
用 Python 制作微信好友个性签名词云图
Python十分钟制作属于你自己的个性logo
词云的使用相信大家已经不陌生了,使用很简单,直接调用wordcloud包就可以了。它的主要功能是根据文本词汇和词汇频率生成图片,从中可以直观的看出各个词汇所占比重。最近正好想做一个人的logo,于是乎决定使用词云来制作完成。
Python数据科学
2018/08/06
7580
Python十分钟制作属于你自己的个性logo
词云图:论一个精致猪猪男孩的数据修养
“词云”就是对网络文本中出现频率较高的“关键词”予以视觉上的突出,形成“关键词云层”或“关键词渲染”,从而过滤掉大量的文本信息,使浏览网页者只要一眼扫过文本就可以领略文本的主旨。
用户1621951
2018/07/31
6120
词云图:论一个精致猪猪男孩的数据修养
【编程课堂】词云 wordcloud
本周为大家带来炫酷好玩的 wordcloud 词云构造库。 使用 wordcloud 可以做出这样的图片: 还可以做出这样的: 接下来,我们来学习如何制作属于自己的词云图。 本来想说一句,安装过程不表
Crossin先生
2018/04/17
2.1K0
【编程课堂】词云 wordcloud
python之词云与‘结巴’
在python中,你的数据收集到了之后除了可以直接打开来看,做成表格看以外,还可以做词云。
sjw1998
2019/09/28
7430
利用词云图分析热词
1.安装第三方库(matplotlib,jieba,wordcloud,numpy)
py3study
2020/01/20
1.5K0
Python数据挖掘:WordCloud词云配置过程及词频分析
这篇文章是学习了老曹的微信直播,感觉WordCloud对我的《Python数据挖掘课程》非常有帮助,希望这篇基础文章对你有所帮助,同时自己也是词云的初学者,强烈推荐老曹的博客供大家学习。如果文章中存在不足或错误的地方,还请海涵~
小小科
2018/09/28
5500
一键备份微博并导出生成PDF,顺便用Python分析微博账号数据
这里再分享下如何快速导出你的所有微博数据,然后用Python分析某个微博账号的数据,比如高赞,转发,评论微博,微博词云,微博发布时间轴,以及使用的手机。
苏生不惑
2020/06/04
8.6K2
利用简书首页文章标题数据生成词云1.词云图2.推荐几个不错的词云图工具3.爬取数据,制作词云图
词云图,也叫文字云,是对文本中出现频率较高的“关键词”予以视觉化的展现,词云图过滤掉大量的低频低质的文本信息,使得浏览者只要一眼扫过文本就可领略文本的主旨。
Python攻城狮
2018/08/23
1.8K0
利用简书首页文章标题数据生成词云1.词云图2.推荐几个不错的词云图工具3.爬取数据,制作词云图
【数据挖掘 | 可视化】 WordCloud 词云(附详细代码案例)
🤵‍♂️ 个人主页: @计算机魔术师 👨‍💻 作者简介:CSDN内容合伙人,全栈领域优质创作者。 开发环境 编辑器: jupyter notebook 解释器: python 3.7 在七夕节中,博主写了一篇为女友收集QQ聊天记录做可视化词云的文章获得广泛好评,一直有小伙伴希望能出一篇教程,今天他来啦! 一文带你速通词云🙋‍♂️ 文章链接 — Python | 词云】聊天记录绘制超美词云(七夕快乐 ,曾同学) 后面生成的图片是有些显示违规或奇怪(因为我是用核心价值观作为词库的,所以会被
计算机魔术师
2022/11/03
1.3K0
【数据挖掘 | 可视化】 WordCloud 词云(附详细代码案例)
推荐阅读
相关推荐
python信息化技术实践之词云效果实战
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文