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


作者

1、作者个人网站
2、作者CSDN
3、作者博客园
4、作者简书

原文地址:https://www.cnblogs.com/lomtom/p/12368722.html

时间: 2024-08-28 02:04:40

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

豆瓣影评数据抓取与简要分析

数据格式:cmt_id: 影评ID编号, 主键cmt_cont: 未切割影评数据(原始影评数据)cmt_star: 评分(星数)cmt_time: 发布时间cmt_user: 发布者urlcmt_thumbs: 评论点赞数 评论星数评论星数在html网页dom结构中对应的标签:<span class="allstar20 rating" title="较差"></span>星数的映射关系为: 1颗星:很差 2颗星:较差 3颗星:还行 4颗星:

python 在线生成词云

效果图 大体步骤 1 接收请求中的文本,通过结巴分词处理文本. seg_generator = jieba.cut(text) # 使用结巴分词,也可以不使用 stopwords = pd.read_csv( path +"/stop_words_zh_UTF-8.txt", index_col=False, quoting=3, sep="\t", names=['stopword'], encoding='utf-8') # quoting=3全不引用 seg_

Python 生成中文词云

豆子无意中发现Python有个现成的模块 word cloud可以根据文本文件生成词云,很好很强大,简单地玩了一把. 写代码之前,首先需要安装3个依赖的Python模块,分别是matplotlib, jieba和wordcloud.这三个模块分别是用来作图,中文分词和生成词云的.安装方式可以直接通过 pip install实现.如果在线安装出现报错(很有可能的事情),那么可以去https://www.lfd.uci.edu/~gohlke/pythonlibs/ 下载对应版本和位数的whl文件,

用Python玩转词云

第一步:引入相关的库包: #coding:utf-8 __author__ = 'Administrator' import jieba #分词包 import numpy #numpy计算包 import codecs #codecs提供的open方法来指定打开的文件的语言编码,它会在读取的时候自动转换为内部unicode import pandas import matplotlib.pyplot as plt %matplotlib inline from wordcloud import

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

脚本功能: 1.访问豆瓣最受欢迎影评页面(http://movie.douban.com/review/best/?start=0),抓取所有影评数据中的标题.作者.影片以及影评信息 2.将抓取的信息写入excel中 页面信息如下: 一共5页,需要循环访问不同的页面 HTML源代码: <a class="" title="<权力的游戏>S5E8:凛冬已至,凡人皆死" href="http://movie.douban.com/review

Python 分词及词云绘图

支持三种分词模式:精确模式,试图将句子最精确地切开,适合文本分析:全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义:搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词. 关键词:HMM 隐马尔可夫模型 三种分词模式: # -*- coding: utf-8 -*- import jieba #jieba.initialize() seg_list = jieba.cut("中华人民共和国万岁!", cut_all=False

如何用Python做词云(收藏)

看过之后你有什么感觉?想不想自己做一张出来? 如果你的答案是肯定的,我们就不要拖延了,今天就来一步步从零开始做个词云分析图.当然,做为基础的词云图,肯定比不上刚才那两张信息图酷炫.不过不要紧,好的开始是成功的一半嘛.食髓知味,后面你就可以自己升级技能,进入你开挂的成功之路. 网上教你做信息图的教程很多.许多都是利用了专用工具.这些工具好是好,便捷而强大.只是它们功能都太过专一,适用范围有限.今天我们要尝试的,是用通用的编程语言Python来做词云. Python是一种时下很流行的编程语言.你不仅

使用Python定制词云

一.实验介绍 1.1 实验内容 在互联网时代,人们获取信息的途径多种多样,大量的信息涌入到人们的视线中.如何从浩如烟海的信息中提炼出关键信息,滤除垃圾信息,一直是现代人关注的问题.在这个信息爆炸的时代,我们每时每刻都要更新自己的知识储备,而网络是最好的学习平台.对信息过滤和处理能力强,学习效率就会得到提高."词云"就是为此而诞生的."词云"是对网络文本中出现频率较高的"关键词"予以视觉上的突出,形成"关键词云层"或"

Studio 爬虫 文本分词 化词云个性化设计

Studio 爬虫 文本分词 化词云个性化设计 分析步骤 设置工作目录 下载依赖包 加载依赖包 设置爬虫数据的URL地址 爬取数据 数据清洗 产看数据 制作词云 加载停用词表 去掉停用词 查看数据 生成Top100 词云 生成完整词云 个性化设计 setwd() install.packages("rjava") install.packages("wordcound") install.packages("wordcound2") librar