【实践】如何用python绘制词云图(文本数据可视化)?

一、介绍

 

                文本是语言和沟通的载体,文本的含义以及读者对文本的理解需求均纷繁复 杂。例如,对于同一个文本,不同的人的解读也是不一样的,有的人希望了解文本 中涉及到的事物,而有的人希望得到文本中的关键词。鉴于对文本信息需求的多样 性,需要从不同层级提取与呈现文本信息。一般把对文本的理解需求分成三级:词汇级(Lexical Level)、语法级(Syntactic Level)和语义级(Semantic Level)。 不同级的信息挖掘方法也不同,词汇级当然是用各类分词算法,语法级用一些句法 分析算法,语义级用主题抽取算法。文本文档的类别多种多样,包括单文本、文档 集合和时序文本数据三大类,这使得文本信息的需求更为丰富。本博客介绍如何利用Python工具对文本数据进行可视化,也就是我们生活中经常看到的词云图。

二、代码展示

# 导入相应的库
import jieba
from wordcloud import WordCloud
import matplotlib.pyplot as plt
import PIL
import numpy as np
 
# 导入文本数据并进行简单的文本处理
# 去掉换行符和空格以及标点符号
text = open("虎年贺词.txt",encoding='utf8').read()
text = text.replace('\n',"").replace(",","").replace("。","").replace("、","").replace(";","").replace("!","").replace(":","")

# 分词,返回结果为词的列表
text_cut = jieba.lcut(text)

#停用词库
stop_words = open("Stop Words.txt",encoding="utf8").read().split("\n")

# 将分好的词用某个符号分割开连成字符串
text_cut = ' '.join(text_cut)
#print(text_cut)

#词云形状
image1 = PIL.Image.open('background.png')
MASK = np.array(image1)

#绘制词云
word_cloud = WordCloud(font_path="simsun.ttc", 
                       background_color="white", 
                       mask=MASK,                # 指定词云的形状
                       stopwords=stop_words
                       )
word_cloud.generate(text_cut)
 
 
# 运用matplotlib展现结果
plt.subplots(figsize=(12,8))
plt.imshow(word_cloud)
plt.axis("off")
plt.show()

相关文件:

1、虎年贺词.txt

 【实践】如何用python绘制词云图(文本数据可视化)?_第1张图片

2、Stop Words.txt,该文件能帮助我们过滤掉“啊”、“呀”之类不需要提取出来的词

【实践】如何用python绘制词云图(文本数据可视化)?_第2张图片

 3、background.png,背景参数可有可无,有背景看起来美观一些

【实践】如何用python绘制词云图(文本数据可视化)?_第3张图片

 三、结果展示

【实践】如何用python绘制词云图(文本数据可视化)?_第4张图片

四、总结

具体过程分如下三部分:

1.读入 txt 文本数据

2. jieba(结巴)中文分词,生成字符串,默认精确模式,如果不通过分词,无法直接生成 正确的中文词云

3.生成词云图,需要注意的是 WordCloud 默认不支持中文,所以这里需已下载好 的中文字库

你可能感兴趣的:(python,数据挖掘,机器学习)