【python数据挖掘】使用词云分析来分析豆瓣影评数据
概述:
制作词云的步骤:
1、从文件中读取数据
2、根据数据追加在一个字符串里面,然后用jieba分词器将评论分开
3、设置WordCloud词云参数
4、保存最后的结果
数据:使用爬取的豆瓣影评数据
第一步:引入依赖库
# 1、表格库
import csv
# 2、jieba分词器
import jieba
# 3、算法运算库
import numpy
# 4、图像库
from PIL import Image
# 5、词云库
from wordcloud import WordCloud
第二步:读取数据
stars = ("很差","较差","还行","推荐","力荐")
comments = []
with open("files/douban.csv","r",encoding="utf-8") as file:
reader = csv.reader(file)
for i in reader:
if i[1] not in stars:
pass
else:
comments.append(i)
file.close()
第三步:解析数据并保存
str = ""
for i in data:
str+=i[2]
cutWord = " ".join(jieba.cut(str))
bgImg = numpy.array(Image.open("files/a.jpg"))
cloud = WordCloud(
font_path="C:\Windows\Fonts\STZHONGS.TTF",
background_color="white",
mask=bgImg
).generate(cutWord)
cloud.to_file("ciyun.png")
效果图:
模型:

效果:
源代码:
# 1、表格库
import csv
# 2、jieba分词器,将一句话的词语分离出来
# 1)、控制台输入:pip install jieba
# 2)、左上角 file-->settings--->项目
# 3)、清华园下载方式(在控制台)
# pip install -i https://pypi.tuna.tsinghua.edu.cn/simple jieba
# 阿里
# pip install jieba -i http://mirrors.aliyun.com/pypi/simple/
import jieba
# 3、算法运算库
# 控制台输入:pip install numpy
# pip install -i https://pypi.tuna.tsinghua.edu.cn/simple numpy
import numpy
# 4、图像库
# 控制台输入:pip install pillow
# pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pillow
from PIL import Image
# 5、词云库
# 控制台输入:pip install WordCloud
# pip install -i https://pypi.tuna.tsinghua.edu.cn/simple WordCloud
from wordcloud import WordCloud
# 定义函数,将数据从表格里读取出来
def getDataFromCsv():
# 设置星级等级
stars = ("很差","较差","还行","推荐","力荐")
# 设置空列表,装从表格里面读出来的所有数据
comments = []
# 打开表格,"r"读取模式 读取数据
with open("files/douban.csv","r",encoding="utf-8") as file:
# 表格操作读数据
reader = csv.reader(file)
# 遍历表格里得到所有数据 [用户名,星级,评论]
for i in reader:
# 如果没有星级
if i[1] not in stars:
# 数据无效,忽略不处理
pass
else:
# 数据有效,装入数组
comments.append(i)
# print(comments)
file.close()
# 将装有数据的列表返回出来
return comments
# 定义函数,将解析的评论做成词云
def getWordCloud():
# 调用函数:得到表格中所有的数据
data = getDataFromCsv()
# 定义空的字符串,把所有的评论装进来
str = ""
# 遍历所有的数据
for i in data:
# [用户名, 星级, 评论]
str+=i[2]
# print(str)
# 通过jieba分词器将评论里面的词语用空格分离出来
cutWord = " ".join(jieba.cut(str))
# print(cutWord)
# 读取图片模型
bgImg = numpy.array(Image.open("files/a.jpg"))
# 准备词云参数
cloud = WordCloud(
# 文字的路径:本地的系统文件路径
font_path="C:\Windows\Fonts\STZHONGS.TTF",
# 生成词云的图片背景
background_color="white",
# 参考图片(参数,没有引号)
mask=bgImg
).generate(cutWord)
# 将做成的结果生成图片
cloud.to_file("ciyun.png")
问题:安装wordcloud出错,离线安装也出错,
参考:https://blog.csdn.net/xiuxiuen_michelle/article/details/81080694
解决:在 https://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud 下载对应版本的库
作者
【python数据挖掘】使用词云分析来分析豆瓣影评数据的更多相关文章
- Python之手把手教你用JS逆向爬取网易云40万+评论并用stylecloud炫酷词云进行情感分析
本文借鉴了@平胸小仙女的知乎回复 https://www.zhihu.com/question/36081767 写在前面: 文章有点长,操作有点复杂,需要代码的直接去文末即可.想要学习的需要有点耐心 ...
- 用Python玩转词云
第一步:引入相关的库包: #coding:utf-8 __author__ = 'Administrator' import jieba #分词包 import numpy #numpy计算包 imp ...
- python实现使用词云展示图片
记录瞬间 首先,要安装一些第三方包 pip install scipyCollecting scipy Downloading https://files.pythonhosted.org/packa ...
- python 制作wordcloud词云
pip install wordcloud 需要用到numpy pillow matplotlib 安装完成以后 wordcloud_cli --text in.txt --imagefile ou ...
- python WordCloud 实现词云
简单示例 from matplotlib import pyplot as plt from wordcloud import WordCloud filename = "text.txt& ...
- python系列之(3)爬取豆瓣图书数据
上次介绍了beautifulsoup的使用,那就来进行运用下吧.本篇将主要介绍通过爬取豆瓣图书的信息,存储到sqlite数据库进行分析. 1.sqlite SQLite是一个进程内的库,实现了自给自足 ...
- Python爬虫之抓取豆瓣影评数据
脚本功能: 1.访问豆瓣最受欢迎影评页面(http://movie.douban.com/review/best/?start=0),抓取所有影评数据中的标题.作者.影片以及影评信息 2.将抓取的信息 ...
- 【Python】生成词云
import matplotlib.pyplot as plt from wordcloud import WordCloud import jieba text_from_file_with_apa ...
- windows下python 正确安装词云包wordcloud的方法
安装wordcloud的时候果然还是出现了问题,试了网上说的好多办法,最后找到了一种成功率高的,可以优先尝试一下 下载.whl文件http://www.lfd.uci.edu/~gohlke/pyth ...
随机推荐
- Python中随机数的生成
在Python中要实现随机数的生成,需要使用random模块中randint方法. 其具体实现方法如下: import random a = random.randint(1,20) #(1,20)为 ...
- Java的String类常用方法
一.构造函数 String(byte[ ] bytes):通过byte数组构造字符串对象. String(char[ ] value):通过char数组构造字符串对象. String(Sting or ...
- Dart语言学习(九) 运算符
一.运算符及其描述 二.Dart运算符注意点 1. 除法运算符"/" 和 整除运算法"~/" 的区别 除法运算符 "/" 结果是浮点型 整 ...
- springIOC源码接口分析(七):ApplicationEventPublisher
一 定义方法 此接口主要是封装事件发布功能的接口,定义了两个方法: /** * 通知应用所有已注册且匹配的监听器此ApplicationEvent */ default void publishEve ...
- 在vue中使用jquery
首先默认你已经有了一个vue程序,如果你想在vue中使用jquery,那么请继续阅读. 当然,加入你没有一个vue程序,这里也给出创建一个vue程序的命令.当然,你肯定装了vue-cli,不然你不会点 ...
- Web 开发工具类(5) | DateUtils
日期工具类 import java.text.ParseException; import java.text.ParsePosition; import java.text.SimpleDateFo ...
- c++中重载运算符
重载运算符 1,成员函数运算符 运算符重载为类的成员函数一般格式如下 <函数类型> operator <运算符> (参数表) {函数体} 调用成员函数运算符如下 <对象名 ...
- 7天用Go动手写/从零实现Web框架Gee
设计一个框架 大部分时候,我们需要实现一个 Web 应用,第一反应是应该使用哪个框架.不同的框架设计理念和提供的功能有很大的差别.比如 Python 语言的 django和flask,前者大而全,后者 ...
- 尝试在阿里云的Linux服务器器上安装拥有图形界面的Pycharm
在Linux服务器上跑Python项目发现每次从本地上传文件太过麻烦,于是打算在服务器上安装Pycharm直接写Pycharm代码. 去Pycharm的官网下载Linux版本(支持正版于是我下载了 ...
- python学习--quote()函数
屏蔽特殊的字符.比如如果url里面的空格!url里面是不允许出现空格的. 在 Python2.x 中的用法是:urllib.quote(text)Python3.x 中是urllib.parse.qu ...