python wordcloud
python wordcloud 对电影《我不是潘金莲》制作词云
上个星期五(16/11/18)去看了冯小刚的最新电影《我不是潘金莲》,电影很长,有点黑色幽默。看完之后我就去知乎,豆瓣电影等看看大家对于这部电影的评价。果然这是一部很有争议的电影,无论是在知乎还是豆瓣,大家对这部电影褒贬不一,有的说拍的好,寓意深刻,具有很强的现实讽刺意味,也有的说故作矫情,是一部烂片。大家众说纷纭,那么这部电影到底怎么样呢?我想还是用事实说话比较好。我想到最近刚好我学习了一段时间的爬虫了,也知道词云可以形象地反映词语分布。所以我决定亲自动手对《我不是潘金莲》制作一个词云。
先说一下使用的工具:python2.7.12 wordcloud1.2.1 selenium2.53.6 jieba(一个中文分词工具) 分析的文本来源为豆瓣电影下《我不是潘金莲》的1.6W+评论。
selenium 是一个可以操纵浏览器的爬虫工具,对于抓取动态页面(js生成的页面)非常方便。这里之所以使用selenium的一个主要原因是,电影的评论只有在登录之后才可以全部抓取,如果使用urllib2等标准库模拟登录,因为还要处理验证码等,略显麻烦,而使用selenium则非常简便。
jieba 是一个优秀的中文分词工具,功能强大并且使用简便,这里因为涉及到中文,wordcloud对于中文的分词支持不是特别好,所以需要我们手动分词,我把这个任务交给了jieba。
制作词云的流程如下:
1.使用selenium 登录豆瓣,抓取《我不是潘金莲》下所有电影评论,并且保存到txt文件(一行是一条评论)
2. 使用jieba 对于评论进行分词,得到新的文本
3. 对于新的文本 使用wordcloud 进行制作词云
话不多说,下面直接贴代码:
按 Ctrl+C 复制代码 按 Ctrl+C 复制代码
有几点需要说明:
1.使用selenium简化了登录抓取过程,但是也有一个缺点,因为需要启动浏览器,所以抓取效率就比较低,电影评论页数较多,有时会出现网页加载过慢等情况导致无法正常抓取数据。所以这里使用n,count作为标记,记录意外退出时上次抓取的位置,这样下次可以继续从上次中断的地方抓取。
2. wordcloud 默认的是英文字体,所以在WordCloud()方法中需要指定一个中文字体的位置(可以使用windows自带的中文字体,比如宋体,楷体都可以),使用font_path="字体路径"
3. selenium 如果驱动狐火浏览器的话,需要自行下载驱动(一个.exe文件),具体方法可以自行上网搜索,这里不赘述。
最后 下载的评论文本文件我已经放到我的github(https://github.com/Lyrichu/selenium/blob/master/pjl_comment.txt),有兴趣的朋友可以自己下载。最后得到的词云图如下:

python wordcloud的更多相关文章
- Python——wordcloud
import jiebafrom wordcloud import WordCloud,STOPWORDSimport matplotlib.pyplot as pltfrom scipy.misc ...
- python wordcloud 对电影《我不是潘金莲》制作词云
上个星期五(16/11/18)去看了冯小刚的最新电影<我不是潘金莲>,电影很长,有点黑色幽默.看完之后我就去知乎,豆瓣电影等看看大家对于这部电影的评价.果然这是一部很有争议的电影,无论是在 ...
- 超详细:Python(wordcloud+jieba)生成中文词云图
# coding: utf-8 import jieba from scipy.misc import imread # 这是一个处理图像的函数 from wordcloud import WordC ...
- python WordCloud 实现词云
简单示例 from matplotlib import pyplot as plt from wordcloud import WordCloud filename = "text.txt& ...
- 根据词频生成词云(Python wordcloud实现)
网上大多数词云的代码都是基于原始文本生成,这里写一个根据词频生成词云的小例子,都是基于现成的函数. 另外有个在线制作词云的网站也很不错,推荐使用:WordArt 安装词云与画图包 pip3 insta ...
- python网页抓取练手代码
from urllib import request import html.parser class zhuaqu(html.parser.HTMLParser): blogHtml = " ...
- python 文件与数据格式化
https://www.cnblogs.com/li-zhi-qiang/p/9269453.html 文件和数据格式化 https://www.cnblogs.com/li-zhi-qi ...
- wordcloud+jieba
Wordcloud各参数含义 font_path : string #字体路径,需要展现什么字体就把该字体路径+后缀名写上,如:font_path = '黑体.ttf' width : int (de ...
- 【Python成长之路】词云图制作
[写在前面] 以前看到过一些大神制作的词云图 ,觉得效果很有意思.如果有朋友不了解词云图的效果,可以看下面的几张图(图片都是网上找到的): 网上找了找相关的软件,有些软件制作 还要付费.结果前几天在大 ...
随机推荐
- 同步推是如何给未越狱的IOS设备安装任意IPA的?
工作准备: 1. 准备一台MAC 2. 拥有一份299企业证书, 然后按照下面步骤操作: 1. 把xxxx.ipa改成xxx.zip, 解压缩得到Payload文件夹 2. 替换Payload里的em ...
- Android 开发组件
每一个应用程序都有自己独立的运行沙盒(授予应用程序代码的访问权) Android操作系统是一个多用户的Linux系统,其中的每一个应用程序都是一个独立的用户. 系统会为每一个应用程序分配一个唯一的Li ...
- [Android]ViewPager如何只初始化一个页面
使用过ViewPager的应该都知道,ViewPager的setoffscreenpagelimit()方法,使用该方法可以设置在ViewPager滑动时,左右两侧各保存多少个页面,那我们直接设置se ...
- BI笔记-SSAS部署的几种方式及部署后的SSAS刷新
SSAS的部署方式在哥本哈士奇的博客:BI笔记之--- SSAS部署的几种方式已经介绍了四种方式,在这里再介绍一种比较常用的快速部署方式. 环境约定:SQL Server 2008 R2 示例库:Ad ...
- Python学习二---字符串
一.字符串 1.1.字符串和转义字符 转义字符需要使用\来表示 1.2.字符串连接 print 字符串1 字符串2,打印出来的字符串直接连接在一起没有空格 print 字符串1,字符串2,打印出来的字 ...
- IOS 简单动画 首尾式动画
首尾式动画 首尾式动画即通过实现控件由初始状态到结束状态的过程.(主要表现在控件的Frame 透明度 ) // // ViewController.m // CX 简单动画 // // Created ...
- IOS 欢迎页(UIScrollView,UIPageControl)
本文介绍了app欢迎页的简单实现.只有第一次运行程序时才说会出现,其余时间不会出现.下面是效果图. 代码如下:(如有不明白的可以评论我,我会详细讲解) // // ViewController.m / ...
- NSArray,NSMutableArray的三种排序
int main(int argc, const char * argv[]) { @autoreleasepool { //字符串进行排序 NSArray *arr=@[@"b" ...
- 斯坦福iOS7公开课11笔记及演示Demo&访问HTTPS链接下载数据
这一节主要介绍UITableView以及iPad,Demo为从Flicker下载图片并显示,但是实际过程中发现需要FQ并使用HTTPS连接,所以这次用了两个Demo,一个是课程中的Demo,另一个是简 ...
- 如何获取QQ里的截图app?
电脑系统平台:OS X EI Capitan 10.11 在以前的旧的QQ版本,QQ的截图的偏好还有一个开机自启动的选项: 现在新的版本,却没有了"开机自动运行"的选项,然而有时候 ...