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),有兴趣的朋友可以自己下载。最后得到的词云图如下:

 

 
 
标签: pythonwordcloud词云

python wordcloud的更多相关文章

  1. Python——wordcloud

    import jiebafrom wordcloud import WordCloud,STOPWORDSimport matplotlib.pyplot as pltfrom scipy.misc ...

  2. python wordcloud 对电影《我不是潘金莲》制作词云

    上个星期五(16/11/18)去看了冯小刚的最新电影<我不是潘金莲>,电影很长,有点黑色幽默.看完之后我就去知乎,豆瓣电影等看看大家对于这部电影的评价.果然这是一部很有争议的电影,无论是在 ...

  3. 超详细:Python(wordcloud+jieba)生成中文词云图

    # coding: utf-8 import jieba from scipy.misc import imread # 这是一个处理图像的函数 from wordcloud import WordC ...

  4. python WordCloud 实现词云

    简单示例 from matplotlib import pyplot as plt from wordcloud import WordCloud filename = "text.txt& ...

  5. 根据词频生成词云(Python wordcloud实现)

    网上大多数词云的代码都是基于原始文本生成,这里写一个根据词频生成词云的小例子,都是基于现成的函数. 另外有个在线制作词云的网站也很不错,推荐使用:WordArt 安装词云与画图包 pip3 insta ...

  6. python网页抓取练手代码

    from urllib import request import html.parser class zhuaqu(html.parser.HTMLParser): blogHtml = " ...

  7. python 文件与数据格式化

    https://www.cnblogs.com/li-zhi-qiang/p/9269453.html       文件和数据格式化 https://www.cnblogs.com/li-zhi-qi ...

  8. wordcloud+jieba

    Wordcloud各参数含义 font_path : string #字体路径,需要展现什么字体就把该字体路径+后缀名写上,如:font_path = '黑体.ttf' width : int (de ...

  9. 【Python成长之路】词云图制作

    [写在前面] 以前看到过一些大神制作的词云图 ,觉得效果很有意思.如果有朋友不了解词云图的效果,可以看下面的几张图(图片都是网上找到的): 网上找了找相关的软件,有些软件制作 还要付费.结果前几天在大 ...

随机推荐

  1. Jsoup解析Html中文文档

    jsoup 简介Java 程序在解析 HTML 文档时,相信大家都接触过 htmlparser 这个开源项目,我曾经在 IBM DW 上发表过两篇关于 htmlparser 的文章,分别是:从 HTM ...

  2. Xcode证书路径和缓存清理路径

    1.Xcode证书路径: ~/Library/MobileDevice/Provisioning Profiles 2.Jenkines共享证书路径: /用户/共享/Jenkins/Library/M ...

  3. iOS OC内联函数 inline的详解

    inline 在iOS中的一些框架中,static inline是经常出现的关键字组合. static自不用多说,表示在当前文件中应用,如 static A, 在其它文件中也可以出现static A. ...

  4. Mac下安装Django

    用到一个Python写的后台服务,需要用到Django,参考Django安装文档,配置过程如下: 1.下载一个用来安装和管理Python包的工具“pip”; 2.下载完成后,运行安装脚本,注意需要管理 ...

  5. android的屏幕保持常亮

    1.Wake Lock是一种锁的机制 在Manifest.xml文件里面用user-permission声明.代码如下: 这种方法,在安装apk时,系统会提示安装人是否允许使用禁止休眠功能. < ...

  6. ASP出500错误怎么办(理论上并不止500错误,其他错误可以同样可以获得更多信息以帮助解决问题)

    造成500错误常见原因有:ASP语法出错.ACCESS数据库连接语句出错.文件引用与包含路径出错.使用了服务器不支持的组件如FSO等. 为了定位500错误的具体原因,可以这样做: 让IE显示详细的出错 ...

  7. java打字游戏

    小记:老早之前写的程序,今天发现之前在 csdn上写的东西的图片不显示了,搞得人好郁闷,所以把之前零星的几篇文章搬个家 游戏运行截图: 字母实体类 package com.git.game; impo ...

  8. JSON转换类(一)--过滤特殊字符,格式化字符型、日期型、布尔型

    /// <summary> /// 过滤特殊字符 /// </summary> private static string String2Json(String s) { St ...

  9. wait方法和sleep方法的区别

    一.概念.原理.区别 Java中的多线程是一种抢占式的机制而不是分时机制.线程主要有以下几种状态:可运行,运行,阻塞,死亡.抢占式机制指的是有多个线程处于可运行状态,但是只有一个线程在运行.      ...

  10. 用shell脚本写一个for循环

    一.输出十遍北京 for((i=1;i<10;i++))> do> echo '北京';> done 二.死循环 for((;;))do#java -jar producer. ...