概述:

制作词云的步骤:

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. JDBC详细说明+使用

    JDBC详解 一.相关概念 1.什么是JDBC JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提 ...

  2. Day8-Python3基础-Socket网络编程

    目录: 1.Socket语法及相关 2.SocketServer实现多并发 Socket语法及相关 socket概念 socket本质上就是在2台网络互通的电脑之间,架设一个通道,两台电脑通过这个通道 ...

  3. 聊聊SpringBoot | 第一章:快速搭建SpringBoot第一个应用

    快速搭建SpringBoot第一个应用 1.简介 本章仅介绍如何快速搭建第一个SpringBoot应用,细节内容下一章再做讲解,如果有需要,各位可以直接到Spring官网去了解. 从 Spring B ...

  4. Java 并发包中的高级同步工具

    Java 并发包中的高级同步工具 Java 中的并发包指的是 java.util.concurrent(简称 JUC)包和其子包下的类和接口,它为 Java 的并发提供了各种功能支持,比如: 提供了线 ...

  5. mysql基础--查询

    1.mysql查询的五种子句: where子句(条件查询):按照“条件表达式”指定的条件进行查询. group by子句(分组):按照“属性名”指定的字段进行分组.group by子句通常和count ...

  6. 关于将笔记本电脑作为wifi热点的详细步骤

    常规做法直接度娘.如果出现无法打开wifi功能,可找对应解决方法. 1.先检查网卡是否支持承载网络,检查方法为在cmd中使用管理员权限运行,输入netsh wlan show drivers.查看支持 ...

  7. C# WinForm 使用SMTP协议发送QQ邮箱验证码

    文章来自:https://blog.csdn.net/IT_xiao_guang_guang/article/details/104336604 前言   在程序设计中,发送验证码是常见的一个功能,用 ...

  8. LeetCode 343.整数拆分 - JavaScript

    题目描述:给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化. 返回你可以获得的最大乘积. 题目分析 题目中"n 至少可以拆分为两个正整数的和",这个条件说 ...

  9. 题解 UVA1479 【Graph and Queries】

    \[ \text{Preface} \] 算是一道思维难度稍易,代码难度稍难的题吧. \[ \text{Description} \] 给出一张 \(n\) 个点,\(m\) 条边的图,点带权.需要支 ...

  10. asp.net EF core 系列 作者:懒懒的程序员一枚

    asp.net core 系列 19 EFCore介绍写作逻辑一 .概述1.1 比较EF Core 和EF61.2 EF Core数据库提供程序 1.3 引用程序添加数据库提供程序1.4 获取Enti ...