python snownlp_SnowNLP情感分析+生成词云
本帖最后由 missy 于 2017-12-9 00:12 编辑
因为最近看了一下《致我们单纯的小美好》,虽然情节是有点“二”吧,但是看了觉得真的很怀念初高中的日子,一时玩心大发,于是就想搞点有意思的东西。。。首先去爬了豆瓣上面的短评,然后就是用SnowNLP做了一个比较粗糙的情感分析,结果可能不是很准确,因为这个python库本来是用来分析购物评论一类的,最后还做了一个简单的词云,因为觉得比较好玩吧。最开始先放上效果图,向各位大佬比心~
Figure_1.png (26.71 KB, 下载次数: 60)
情感分析图
2017-12-9 00:02 上传
heart.jpg (97.98 KB, 下载次数: 56)
词云
2017-12-9 00:02 上传
一、爬虫
因为豆瓣有反爬虫机制,这里加上了cookie来爬取数据,把登录后的cookie放入txt文件中,经过处理变成我们需要的格式使用。通过分析目标url发现前页和后页两个链接中的start参数的值相差20,其它完全相同,废了点时间找到了最后一页。。。480页,所以直接用了一个for循环来解决翻页的问题,最后是将数据都放到了comment.txt文件中,便于后面分析使用。
[Python] 纯文本查看 复制代码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为消极。
[Python] 纯文本查看 复制代码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来处理图像。由于这些模块我也不熟,所以也是参照网上的来写的
[Python] 纯文本查看 复制代码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')
python snownlp_SnowNLP情感分析+生成词云相关推荐
- python snownlp情感分析_SnowNLP情感分析+生成词云
本帖最后由 missy 于 2017-12-9 00:12 编辑 因为最近看了一下<致我们单纯的小美好>,虽然情节是有点"二"吧,但是看了觉得真的很怀念初高中的日子,一 ...
- 豆瓣电视剧评论的爬取以及进行情感分析+生成词云
很多时候我们要了解一部电视剧或电影的好坏时都会去豆瓣上查看评分和评论,本文基于豆瓣上对某一部电视剧评论的爬取,然后进行SnowNLP情感分析,最后生成词云,给人一个直观的印象 1. 爬取评论 以前段时 ...
- python snownlp情感分析和词云分析
1 snownlp 安装 pip install snownlp -i https://pypi.douban.com/simple/ from snownlp import SnowNLP s = ...
- 导出微信聊天记录,使用python进行分词,生成词云
导出微信聊天记录,使用python进行分词,生成词云 导出微信聊天记录,使用python进行分词,生成词云 备份数据 浏览.导出数据 查看数据 操作数据库,分析生成词云 下载全部文件 导出微信聊天记录 ...
- Python 任意中文文本生成词云 最终版本
前叙 利用下面的代码你将可以将任意中文文本生成词云,其分词部分由jieba,NLPIR2016两个部分组成,生成词语由worldcloud负责,默认会自动发现文本中的20个新词并添加到词库中,当然你也 ...
- python爬取数据生成词云_Python 爬取生成中文词云以爬取知乎用户属性为例
代码如下: # -*- coding:utf-8 -*- import requests import pandas as pd import time import matplotlib.pyplo ...
- Python WordCloud 文本分析 生成词云图
文章目录 环境准备 Code 结果文件 Links 环境准备 Python, pip安装配置: 安装依赖的包(使用-i url指定要使用的镜像源,加快下载速度) pip install wordclo ...
- 在Python中自然语言处理生成词云WordCloud
了解如何在Python中使用WordCloud对自然语言处理执行探索性数据分析. 最近我们被客户要求撰写关于自然语言处理的研究报告,包括一些图形和统计输出. 什么是WordCloud? 很多时候,您可 ...
- 手把手教你完成一个数据科学小项目(9):情感分析与词云
前言 请先阅读"中国年轻人正带领国家走向危机",这锅背是不背? 一文,以对"手把手教你完成一个数据科学小项目"系列有个全局性的了解. 本系列代码统一开源在Git ...
- 钱钟书《围城》 使用 Python wordcloud jieba 生成词云分析图
文章目录 Intro Requirements 分析结果(4张图) 代码 Intro 这几天看了钱钟书老先生的<围城>,读过之后有种感觉:如果对全文分词,按照出现频率从高到低应该是: 小姐 ...
最新文章
- MySql -- 数据结构
- 知识图谱论文阅读(二十三)【SIGIR2020】Multi-behavior Recommendation with Graph Convolutional Networks
- 如何配置Smarty模板
- python线程池原理_Django异步任务线程池实现原理
- jvisualvm的使用
- 2021全国化妆品产业区域研究报告
- 支付宝第三方应用,用户登录授权获取信息
- 计算机桌面文件夹不显示不出来的,如何隐藏文件夹别人都看不到
- 万网域名查询API接口
- Qt自带示例演示程序
- [P1919 【模板】A*B Problem升级版(FFT快速傅里叶)(高精乘板子,FFT板子)
- android 屏幕比例,16:10还是4:3?纵论安卓平板最佳屏幕比例
- 学习java随堂练习-20220623
- 用一根线模拟浦丰投针实验——Java
- oracle中hint 详解
- L3-012 水果忍者
- 树莓派开机发ip到邮箱
- centos7 gitlab的私有化部署
- ko文件 、insmod命令
- 5g信号频率是多少赫兹_1分钟看懂5G频谱(建议收藏)
热门文章
- 盘点2017年科技事件 马云最娱乐雷军最傲娇
- 罗技无法使用计算机上的配置文件,罗技游戏软件检测不到游戏启动,导致无法自动切换配置文件...
- Springboot个人博客搭建(附源码)
- 渗透测试面试题汇总(全)
- git2.28下载 GIT2.28新版本网盘下载
- Uiautomator 2.0之UiObject2类学习小记
- 联想ts250进bios_联想ts240怎么进bios
- DGIOT国内首家轻量级物联网开源平台——真实电表接入实战教程
- Kaldi语音识别:基于aidatatang模型实现自制语音数据的识别
- 给MDK5/KEIL5安装51/ARM编译坏境