数据分析 | 看过复联 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 的人都在谈什么》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

重构(影印版)

重构(影印版)

Martin Fowler / 中国电力出版社 / 2003-7-1 / 49.00元

随着对象技术应用越来越普及,软件开发社区出现了一个新的问题。缺乏经验的开发者编写出了大批设计较差的程序,导致这些应用程序非常低效,且难于维护和扩展。本书除了讨论重构的各种技巧之外,还提供了超过70个可行重构的详细编目,对如何应用它们给出了有用的提示;并以step by step的形式给出了应用每一种重构的指南;而且用实例展示了重构的工作原理。这些示例都是用Java语言写成的,但其中的思想却可以运用......一起来看看 《重构(影印版)》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具