【python爬虫实战】使用词云分析来分析豆瓣影评数据
- February 26, 2020
概述:
制作词云的步骤: 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 🔗 下载对应版本的库