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

查看所有标签

猜你喜欢:

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

论因特网

论因特网

[美] 休伯特·L.德雷福斯 / 喻向午、陈硕 / 河南大学出版社 / 2015-5 / 32.00

本书是与日俱增的关于因特网利弊之文献的重要补充。 ——《哲学评论》 关于因特网种种承诺的一次清晰辨析……以哲学家的眼光审视一个影响我们所有人的问题。 ——《普遍存在》杂志 ……一场精心设计的论战……我们需要更多德雷福斯这样的老师,将网络融入依 然具有深邃人性的课程。 ——亚当•莫顿(出自《泰晤士报文学增刊》) 在互联网世界,不管你是菜鸟,还是浸淫其中已久—......一起来看看 《论因特网》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具