《小美好》短评文本情感分析+生成词云

2018 年 1 月 7 日 数据挖掘入门与实战 要学习更多点这→

 向AI转型的程序员都关注了这个号👇👇👇


大数据挖掘DT数据分析  公众号: datadw


因为最近看了一下《致我们单纯的小美好》,虽然情节是有点“二”吧,但是看了觉得真的很怀念初高中的日子,一时玩心大发,于是就想搞点有意思的东西。。。首先去爬了豆瓣上面的短评,然后就是用SnowNLP做了一个比较粗糙的情感分析,结果可能不是很准确,因为这个python库本来是用来分析购物评论一类的,最后还做了一个简单的词云,因为觉得比较好玩吧。最开始先放上效果图,向各位大佬比心~
 
一、爬虫
    因为豆瓣有反爬虫机制,这里加上了cookie来爬取数据,把登录后的cookie放入txt文件中,经过处理变成我们需要的格式使用。通过分析目标url发现前页和后页两个链接中的start参数的值相差20,其它完全相同,废了点时间找到了最后一页。。。480页,所以直接用了一个for循环来解决翻页的问题,最后是将数据都放到了comment.txt文件中,便于后面分析使用。



import requests, codecs
from lxml import html
import time
import random
 
header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:54.0)
Gecko/20100101 Firefox/54.0'} f_cookies = open('cookie.txt', 'r') cookies = {} for line in f_cookies.read().split(';'):     name, value = line.strip().split('=', 1)     cookies[name] = value # print cookies   for num in range(0, 500, 20):     url = 'https://movie.douban.com/subject/27008416/comments?start=' + str(num)
+ '&limit=20&sort=new_score&status=P&percent_type='     with codecs.open('comment.txt', 'a', encoding='utf-8') as f:         try:             r = requests.get(url, headers = header, cookies = cookies)             result = html.fromstring(r.text)             comment = result.xpath("//div[@class='comment']/p/text()")             for i in comment:                 f.write(i.strip() + '\r\n')         except Exception, e:             print ehttps://bbs.ichunqiu.com/forum.php?mod=post&action=newthread&
fid=59&extra=     time.sleep(1 + float(random.randint(1, 100)) / 20)



二、SnowNLP情感分析
    SnowNLP是python中用来处理文本内容的,可以用来分词、标注、文本情感分析等,情感分析是简单的将文本分为两类,积极和消极,返回值为情绪的概率,越接近1为积极,接近0为消极。



import numpy as np
from snownlp import SnowNLP
import matplotlib.pyplot as plt
 
f = open('comment.txt', 'r')
list = f.readlines()
sentimentslist = []
for i in list:
    s = SnowNLP(i.decode('utf-8'))
    # print s.sentiments
    sentimentslist.append(s.sentiments)
plt.hist(sentimentslist, bins = np.arange(0, 1, 0.01), facecolor = 'g')
plt.xlabel('Sentiments Probability')
plt.ylabel('Quantity')
plt.title('Analysis of Sentiments')
plt.show()



三、生成词云
    词云的话这里用到了jieba(结巴)分词,wordcloud,Counter(计数用的),还有scipy,scipy.misc来处理图像。



import matplotlib.pyplot as plt
from scipy.misc import imread
from wordcloud import WordCloud
import jieba, codecs
from collections import Counter
 
text = codecs.open('comment.txt', 'r', encoding = 'utf-8').read()
text_jieba = list(jieba.cut(text))
c = Counter(text_jieba)  # 计数
word = c.most_common(100)  # 取前100
 
bg_pic = imread('heart.png')
wc = WordCloud(
        font_path = 'C:\Windows\Fonts\simfang.ttf',  # 指定中文字体
        background_color = 'white',  # 设置背景颜色
        max_words = 200,  # 设置最大显示的字数
        mask = bg_pic,  # 设置背景图片
        max_font_size = 150,  # 设置字体最大值
        random_state = 20  # 设置多少种随机状态,即多少种配色
    )
wc.generate_from_frequencies(dict(word))  # 生成词云
 
plt.figure()
plt.imshow(wc)
plt.axis('off')
plt.show
wc.to_file('heart.jpg')

via https://bbs.ichunqiu.com/thread-30145-1-2.html



人工智能大数据与深度学习

搜索添加微信公众号:weic2c

长按图片,识别二维码,点关注



大数据挖掘DT数据分析

搜索添加微信公众号:datadw


教你机器学习,教你数据挖掘

长按图片,识别二维码,点关注

登录查看更多
5

相关内容

文本情感分析:又称意见挖掘、倾向性分析等。简单而言,是对带有情感色彩的主观性文本进行分析、处理、归纳和推理的过程。互联网(如博客和论坛以及社会服务网络如大众点评)上产生了大量的用户参与的、对于诸如人物、事件、产品等有价值的评论信息。这些评论信息表达了人们的各种情感色彩和情感倾向性,如喜、怒、哀、乐和批评、赞扬等。基于此,潜在的用户就可以通过浏览这些主观色彩的评论来了解大众舆论对于某一事件或产品的看法。
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
190+阅读 · 2020年6月29日
【干货书】流畅Python,766页pdf,中英文版
专知会员服务
223+阅读 · 2020年3月22日
【WWW2020-UIUC】为新闻故事生成具有代表性的标题
专知会员服务
26+阅读 · 2020年3月18日
【经典书】Python数据数据分析第二版,541页pdf
专知会员服务
189+阅读 · 2020年3月12日
【新书】Python数据科学食谱(Python Data Science Cookbook)
专知会员服务
113+阅读 · 2020年1月1日
 【中科院信工所】社交媒体情感分析,40页ppt
专知会员服务
91+阅读 · 2019年12月13日
学习自然语言处理路线图
专知会员服务
133+阅读 · 2019年9月24日
使用Keras和LSTM生成说唱歌词
论智
5+阅读 · 2018年5月22日
文本情感分析的预处理
Datartisan数据工匠
17+阅读 · 2018年3月8日
【干货】--基于Python的文本情感分类
R语言中文社区
5+阅读 · 2018年1月5日
京东商品评论情感分析:数据采集与词向量构造方法
数据挖掘入门与实战
5+阅读 · 2017年12月19日
教你用Python爬虫股票评论,简单分析股民用户情绪
数据派THU
10+阅读 · 2017年12月12日
【python 自然语言处理】对胡歌【猎场】电视剧评论进行情感值分析
用深度学习Keras判断出一句文本是积极还是消极
北京思腾合力科技有限公司
6+阅读 · 2017年11月16日
使用 Python 绘制《星战》词云
Datartisan数据工匠
3+阅读 · 2017年8月31日
Attend More Times for Image Captioning
Arxiv
6+阅读 · 2018年12月8日
Arxiv
11+阅读 · 2018年5月13日
Arxiv
5+阅读 · 2018年1月23日
Arxiv
12+阅读 · 2018年1月20日
VIP会员
相关资讯
使用Keras和LSTM生成说唱歌词
论智
5+阅读 · 2018年5月22日
文本情感分析的预处理
Datartisan数据工匠
17+阅读 · 2018年3月8日
【干货】--基于Python的文本情感分类
R语言中文社区
5+阅读 · 2018年1月5日
京东商品评论情感分析:数据采集与词向量构造方法
数据挖掘入门与实战
5+阅读 · 2017年12月19日
教你用Python爬虫股票评论,简单分析股民用户情绪
数据派THU
10+阅读 · 2017年12月12日
【python 自然语言处理】对胡歌【猎场】电视剧评论进行情感值分析
用深度学习Keras判断出一句文本是积极还是消极
北京思腾合力科技有限公司
6+阅读 · 2017年11月16日
使用 Python 绘制《星战》词云
Datartisan数据工匠
3+阅读 · 2017年8月31日
Top
微信扫码咨询专知VIP会员