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

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

内容简介:周末了,写一点好玩的。复联 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 的人都在谈什么》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

搜索引擎

搜索引擎

李晓明 / 科学出版社发行部 / 2005-4 / 33.00元

《搜索引擎:原理技术与系统》系统地介绍了互联网搜索引擎的工作原理、实现技术及其系统构建方案。《搜索引擎:原理技术与系统》分三篇共13章内容,从基本工作原理概述,到一个小型简单搜索引擎具体细节的实现,进而详细讨论了大规模分布式搜索引擎系统的设计要点及其关键技术;最后介绍了面向主题和个性化的web信息服务,阐述了中文网页自动分类等技术及其应用。《搜索引擎:原理技术与系统》层次分明,由浅入深;既有深入的......一起来看看 《搜索引擎》 这本书的介绍吧!

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

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

HSV CMYK互换工具