python词云图使用停用词

词云图介绍

词云图(Word Cloud)是一种文本数据的可视化表示形式,它通过字体大小、颜色、布局等视觉元素来展示文本中不同词汇的频率或重要性。词云图中,出现频率高的词汇会被赋予较大的字体,从而突出显示;而频率较低的词汇则使用较小的字体。这种可视化方式有助于快速识别文本中的关键信息,发现文本的主题或热点

wordcloud介绍

wordcloud 是一个用于生成词云图的 Python 库。它基于 PIL(Python Imaging Library)和 NumPy 库,提供了丰富的功能和灵活的参数设置,使得用户可以轻松地生成各种风格的词云图。

停用词介绍

词云图中的停用词(Stopwords)指的是在文本处理中经常出现,但通常没有实际分析价值的词汇。这些词汇通常包括虚词、助词、介词、连词等,例如“的”、“是”、“在”、“和”等中文词汇,以及“the”、“a”、“an”、“and”等英文词汇。这些词汇在文本中的频率很高,但对于理解文本的主题或情感往往没有太大的帮助。

导入停用词参数

with open("常用停用词.txt", 'r', encoding='utf-8') as f:
    stop_words = set(f.read().splitlines())
# 创建词云对象,设置词云的一些属性
wordcloud = WordCloud(font_path=font_path,  # 设置字体文件路径,确保支持中文
                      stopwords=stop_words,
                      background_color="white",  # 设置背景颜色
                      max_words=200,  # 最多显示的词数
                      max_font_size=100,  # 字体最大值
                      random_state=42,  # 设置随机种子以获得可重复的结果
                      width=800, height=800,  # 设置图片的尺寸
                      margin=2  # 设置词与词之间的距离
                      ).generate(words)

导入停用词前后对比

导入前:
在这里插入图片描述

导入后:
在这里插入图片描述

代码

# 导入必要的库
from wordcloud import WordCloud
import matplotlib.pyplot as plt
import jieba
import numpy as np
from PIL import Image
# 假设你的文本文件名为 'text.txt',并且位于当前工作目录下
file_name = '三国演义.txt'

# 读取文件内容
with open(file_name, 'r', encoding='utf-8') as file:
    text = file.read()

# 使用jieba进行中文分词
seg_list = jieba.cut(text, cut_all=False)
words = " ".join(seg_list)

# 设置字体文件路径(确保支持中文)
font_path = 'simhei.ttf'  # 你需要指定一个支持中文的字体文件路径
with open("常用停用词.txt", 'r', encoding='utf-8') as f:
    stop_words = set(f.read().splitlines())
# 创建词云对象,设置词云的一些属性
wordcloud = WordCloud(font_path=font_path,  # 设置字体文件路径,确保支持中文
                      stopwords=stop_words,
                      background_color="white",  # 设置背景颜色
                      max_words=200,  # 最多显示的词数
                      max_font_size=100,  # 字体最大值
                      random_state=42,  # 设置随机种子以获得可重复的结果
                      width=800, height=800,  # 设置图片的尺寸
                      margin=2  # 设置词与词之间的距离
                      ).generate(words)

# 使用matplotlib显示词云图
plt.figure(figsize=(8, 8), facecolor=None)  # 创建一个8x8的绘图对象
plt.imshow(wordcloud)
plt.axis("off")  # 不显示坐标轴
plt.tight_layout(pad=0)  # 调整子图参数,使之填充整个图像区域
plt.show()  # 显示图像
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

立秋6789

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值