python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python根据文本绘制词云图

Python(wordcloud)如何根据文本数据(.txt文件)绘制词云图

作者:十八只兔

这篇文章主要给大家介绍了关于Python(wordcloud)如何根据文本数据(.txt文件)绘制词云图的相关资料,词云Wordcloud是文本数据的一种可视化表示方式,它通过设置不同的字体大小或颜色来表现每个术语的重要性,需要的朋友可以参考下

一、前言

本文将介绍如何利用python来根据文本数据(.txt文件)绘制词云图,除了绘制常规形状的词云图(比如长方形),还可以指定词云图的形状。

二、相关库的介绍

1、安装相关的库

pip install jieba
pip install matplotlib
pip install wordcloud
pip install numpy
pip install Image 

2、 导入相关的库

import jieba
import matplotlib.pyplot as plt
from wordcloud import WordCloud
import numpy as np
from PIL import Image # 图像处理

3、 相关库的介绍

三、数据处理

1、中文分词

(1)精确模式

jieba.cut("文本内容",cut_all=False)

(2)全模式

jieba.cut("文本内容",cut_all=True)

(3)搜索引擎模式

2、去除停用词

四、实现

1、绘制基本词云图

(1)核心

在以下代码中,根据实际更改文件的读取路径以及保存路径即可:

(2)WordCloud 参数解释

参数解释
width词云图的宽度(默认400像素)
height词云图的高度(默认200像素)
max_font_size词云图字体的最大字号(根据图片高度自动调节)
min_font_size词云图字体的最小字号(默认为4号字体)
max_words词云图显示的最大单词数(默认200)
stop_words不显示的词语、单词
mask指定词云图的形状(默认为长方形)
background_color词云图的背景颜色(默认为黑色)
font_path字体文件的路径
font_path = "C:\Windows\Fonts\Microsoft YaHei UI\msyh.ttc"

(3)完整代码:

import jieba
import matplotlib.pyplot as plt
from wordcloud import WordCloud

# 读取文本文件
text = open(r"C:\Users\abc\Desktop\词云图数据\grape.txt", encoding="utf-8").read()
# 对文本进行分词,默认精确模式
text1=jieba.cut(text)
# 以空格作为分隔符,将分词后的所有字符串合并成一个新的字符串
text = ' '.join(text1)
# 根据分词结果产生词云
wc = WordCloud(font_path = "C:\Windows\Fonts\Microsoft YaHei UI\msyh.ttc",width=500, height=400, mode="RGBA", background_color=None).generate(text)
# 以图片的形式显示词云
plt.imshow(wc, interpolation="bilinear")
# 不显示图像坐标系
plt.axis("off")
# 显示图像
plt.show()
#保存词云图
wc.to_file(r"\Users\abc\Desktop\res.png")

2、绘制指定形状的词云图

(1)核心代码

需要使用numpy库以及Image库来对背景图片进行图像处理

(2)词云图优化

(3)完整代码:

import wordcloud
import jieba
import matplotlib.pyplot as plt
import numpy as np
from PIL import Image # 图像处理

#打开背景图片
pic = Image.open("grape.jpg")
# 提取图片的轮廓
shape = np.array(pic)
# mask为图片背景,font_path为字体,若不设置可能乱码
wc = wordcloud.WordCloud(mask=shape, font_path="simkai.ttf", background_color="white", contour_color='purple',contour_width=3,
max_font_size=100)
#读取要分词的文本文件
text = open(r'C:\Users\abc\Desktop\词云图数据\grape.txt', "r", encoding='UTF-8').read()
#结巴分词
cut_text = jieba.cut(text)
result = " ".join(cut_text)
#生成词云图
wc.generate(result)
#保存词云图
wc.to_file("cloud.jpg")
# 以图片的形式显示词云
plt.imshow(wc, interpolation="bilinear")
# 不显示图像坐标系
plt.axis("off")
# 显示图像
plt.show()

总结 

到此这篇关于Python(wordcloud)如何根据文本数据(.txt文件)绘制词云图的文章就介绍到这了,更多相关Python根据文本绘制词云图内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文