概述:

制作词云的步骤:

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 下载对应版本的库


作者

1、作者个人网站

2、作者CSDN

3、作者博客园

4、作者简书

【python数据挖掘】使用词云分析来分析豆瓣影评数据的更多相关文章

  1. Python之手把手教你用JS逆向爬取网易云40万+评论并用stylecloud炫酷词云进行情感分析

    本文借鉴了@平胸小仙女的知乎回复 https://www.zhihu.com/question/36081767 写在前面: 文章有点长,操作有点复杂,需要代码的直接去文末即可.想要学习的需要有点耐心 ...

  2. 用Python玩转词云

    第一步:引入相关的库包: #coding:utf-8 __author__ = 'Administrator' import jieba #分词包 import numpy #numpy计算包 imp ...

  3. python实现使用词云展示图片

    记录瞬间 首先,要安装一些第三方包 pip install scipyCollecting scipy Downloading https://files.pythonhosted.org/packa ...

  4. python 制作wordcloud词云

    pip install wordcloud 需要用到numpy  pillow matplotlib 安装完成以后 wordcloud_cli --text in.txt --imagefile ou ...

  5. python WordCloud 实现词云

    简单示例 from matplotlib import pyplot as plt from wordcloud import WordCloud filename = "text.txt& ...

  6. python系列之(3)爬取豆瓣图书数据

    上次介绍了beautifulsoup的使用,那就来进行运用下吧.本篇将主要介绍通过爬取豆瓣图书的信息,存储到sqlite数据库进行分析. 1.sqlite SQLite是一个进程内的库,实现了自给自足 ...

  7. Python爬虫之抓取豆瓣影评数据

    脚本功能: 1.访问豆瓣最受欢迎影评页面(http://movie.douban.com/review/best/?start=0),抓取所有影评数据中的标题.作者.影片以及影评信息 2.将抓取的信息 ...

  8. 【Python】生成词云

    import matplotlib.pyplot as plt from wordcloud import WordCloud import jieba text_from_file_with_apa ...

  9. windows下python 正确安装词云包wordcloud的方法

    安装wordcloud的时候果然还是出现了问题,试了网上说的好多办法,最后找到了一种成功率高的,可以优先尝试一下 下载.whl文件http://www.lfd.uci.edu/~gohlke/pyth ...

随机推荐

  1. selenium获取页面源码,判断是否存在指定内容,执行不同的操作

    本案例用于解决selenium UI自动化,判断页面是否存在指定文字,执行后续不同的操作 主要用到browser.page_source 如,保存百度分享文件到自己的百度盘中,会出现文件被删除无法保存 ...

  2. ReactNative---组件种类

  3. openlayer3 坐标系转换

    'EPSG:4326'-经纬度坐标-WGS84'EPSG:3857'- xy坐标-web墨卡托 ol3默认的坐标系为3857,即在创建ol.map的时候,若不指定projection,则默认为EPSG ...

  4. springIOC源码接口分析(七):ApplicationEventPublisher

    一 定义方法 此接口主要是封装事件发布功能的接口,定义了两个方法: /** * 通知应用所有已注册且匹配的监听器此ApplicationEvent */ default void publishEve ...

  5. List容器排序方法的使用

    今天在做任务的时候需要对已经存到list容器里的对象数组进行排序,需要根据 其中的一个属性进行排序,最初是根据一个利用冒泡排序的算法进行处理的后来上网查了一下对于list容器进行排序时有自带的方法.所 ...

  6. c++中值传递,址传递,引用传递

    概念详解 1. 值传递: 形参是实参的拷贝,改变形参的值并不会影响外部实参的值. 从被调用函数的角度来说,值传递是单向的(实参->形参),参数的值只能传入,不能传出: 当函数内部需要修改参数,并 ...

  7. 在Navicat新建用户

    1.Ctrl+Q,进入查询,创建表空间. 输入create tablespace test datafile 'D:\Oracle\test.ora' size 1000m; 这里的test为表空间名 ...

  8. JSP&Servlet学习笔记----第5章

    Servlet进阶API 每个Servlet都必须由web容器读取Servlet设置信息(标注或者web.xml).初始化. 对于每个Servlet的设置信息,web容器会为其生成一个ServletC ...

  9. Codeforces_478_C

    http://codeforces.com/problemset/problem/478/C 水. #include<stdio.h> int main() { long long a,b ...

  10. BZOJ1257 [CQOI2007]余数之和 (数论分块)

    题意: 给定n, k,求$\displaystyle \sum_{i=1}^nk\;mod\;i$ n,k<=1e9 思路: 先转化为$\displaystyle \sum_{i=1}^n(k- ...