目录
一、介绍
文本是语言和沟通的载体,文本的含义以及读者对文本的理解需求均纷繁复 杂。例如,对于同一个文本,不同的人的解读也是不一样的,有的人希望了解文本 中涉及到的事物,而有的人希望得到文本中的关键词。鉴于对文本信息需求的多样 性,需要从不同层级提取与呈现文本信息。一般把对文本的理解需求分成三级:词汇级(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
2、Stop Words.txt,该文件能帮助我们过滤掉“啊”、“呀”之类不需要提取出来的词
3、background.png,背景参数可有可无,有背景看起来美观一些
三、结果展示
四、总结
具体过程分如下三部分:
1.读入 txt 文本数据
2. jieba(结巴)中文分词,生成字符串,默认精确模式,如果不通过分词,无法直接生成 正确的中文词云
3.生成词云图,需要注意的是 WordCloud 默认不支持中文,所以这里需已下载好 的中文字库
五、文本可视化的意义
文本可视化的作用有以下四点: 简单来说就是让你更加直观迅速的获取、分析信息(所有可视化的作用都是这个)。 举个例子,针对一篇文章,文本可视化能更快的告诉我们文章在讲什么;针对社交网络上的发言,文本可视化可以帮我们信息归类,情感分析;针对一个大新闻,文本可视化可以帮我们捋顺事情发展的脉络、每个人物的关系等等;针对一系列的文档,我们可以通过文本可视化来找到它们之间的联系等等。 一般来说,情报分析人员、网络内容分析人员、情感分析或文学研究者等相关职业更需要文本可视化。