数据分析 | 看过复联 4 的人都在谈什么

栏目: 编程工具 · 发布时间: 5年前

内容简介:周末了,写一点好玩的。复联 4 本周开始上映,并一直维持非常高的热度。那么哪些电影用户都在谈什么呢?本文就从 0 到 1 讨论一下如何通过抓取豆瓣的短评来进行一下简单的数据分析。由于豆瓣的限制,数据量并不是很大,但是分析方法都是相通的。数据抓取可以查看豆瓣 web 页面的审查元素查看到的前端的原始数据是什么样的?(Safari: 右键 -> 检查元素;Crome: 右键 -> 检查)如下图:

周末了,写一点好玩的。复联 4 本周开始上映,并一直维持非常高的热度。那么哪些电影用户都在谈什么呢?本文就从 0 到 1 讨论一下如何通过抓取豆瓣的短评来进行一下简单的数据分析。由于豆瓣的限制,数据量并不是很大,但是分析方法都是相通的。

1. 数据抓取

数据抓取可以查看豆瓣 web 页面的审查元素查看到的前端的原始数据是什么样的?(Safari: 右键 -> 检查元素;Crome: 右键 -> 检查)如下图:

数据分析 | 看过复联 4 的人都在谈什么

然后将结果进行解析抓取对应的元素,这个写过爬虫的同学都了解,不细说。本文采用了另外一种较简单的方式来抓取数据:douban api。抓取豆瓣短评的 api 如下:

  • url:https://api.douban.com/v2/movie/subject/:id/comments,其中 id 为电影 id,可以在电影的页面看到

  • 参数说明:

    • apikey :开发者 api key,需要申请

    • count :返回数量

    • start :开始序号

2. 分词

中文分词我第一个想到的是梁博的 pullword,但是使用过程中并不理想。并不是说 pullword 做的不好,毕竟 pullword 也是有很多人使用的,可能是不太适合我的数据。我最后使用的分词 工具 是 jieba。jieba 支持 python 2 和 python 3。使用起来也是非常的简单,第一步安装:

easy_install jieba / pip install jieba / pip3 install jieba

示例代码


 

# encoding=utf-8

import jieba


seg_list = jieba.cut("我来到北京清华大学", cut_all=True)

print("Full Mode: " + "/ ".join(seg_list)) # 全模式


seg_list = jieba.cut("我来到北京清华大学", cut_all=False)

print("Default Mode: " + "/ ".join(seg_list)) # 精确模式


seg_list = jieba.cut("他来到了网易杭研大厦") # 默认是精确模式

print(", ".join(seg_list))


seg_list = jieba.cut_for_search("小明硕士毕业于中国科学院计算所,后在日本京都大学深造") # 搜索引擎模式

print(", ".join(seg_list))

更详细的信息可以参考 jieba 主页:https://github.com/fxsjy/jieba

3. 完整代码

综合第一步和第二步我们使用 python 2 编写完整代码如下,非常简单。


 

#coding:utf-8

import urllib2

import jieba


start = 1


words = {}

f = open("comment", "w")

while start < 600:

url = "https://api.douban.com/v2/movie/subject/26100958/comments?start={0}&count={1}&apikey=your_own_api_key".format(start,20)

data = urllib2.urlopen(url, timeout=5)

j = json.load(data)

for comment in j["comments"]:

f.write(comment["content"].encode("utf8"))

word_list = jieba.cut(comment["content"].replace('\n','').encode("utf8"))

for word in word_list:

word = word.strip()

if words.get(word):

words[word] = words[word] + 1

else:

words[word] = 1

start = start + 20


f.close()

sorted_words = sorted(words.items(), key=lambda d: d[1], reverse=True)

for item in sorted_words:

print item[0].encode("utf8"), item[1]


4. 形式化展示

第三部的结果出来之后就可以考虑通过图表形式化展示出来了,一种比较合适的方式是使用词云。我这里使用是易词云,结果如下。

数据分析 | 看过复联 4 的人都在谈什么

光是看着词云就忍不住要去电影院了,不说了,我先去下单了。

最后关于代码的使用问题,欢迎后台留言。


以上所述就是小编给大家介绍的《数据分析 | 看过复联 4 的人都在谈什么》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

智能时代

智能时代

吴军 / 中信出版集团 / 2016-8 / 68.00

大数据和机器智能的出现,对我们的技术发展、商业和社会都会产生重大的影响。作者吴军在《智能时代:大数据与智能革命重新定义未来》中指出,首先,我们在过去认为非常难以解决的问题,会因为大数据和机器智能的使用而迎刃而解,比如解决癌症个性化治疗的难题。同时,大数据和机器智能还会彻底改变未来的商业模式,很多传统的行业都将采用智能技术实现升级换代,同时改变原有的商业模式。大数据和机器智能对于未来社会的影响是全方......一起来看看 《智能时代》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试