【python爬虫实战】使用词云分析来分析豆瓣影评数据

2020-02-26  本文已影响0人  lomtom

概述:

制作词云的步骤:
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、作者简书

上一篇下一篇

猜你喜欢

热点阅读