背景
今天学习了词语的使用 借机研究了数据可视化
数据可视化
在大数据分析工具和软件中提到的数据可视化,就是利用运用计算机图形学、图像、人机交互等技术,将采集或模拟的数据映射为可识别的图形、图像。
1. 什么是词云
“词云”就是对网络文本中出现频率较高的“关键词”予以视觉上的突出,形成“关键词云层”或“关键词渲染”,从而过滤掉大量的文本信息,一眼扫过文本就可以领略文本的主旨。
词云”就是数据可视化的一种形式。给出一段文本的关键词,根据关键词的出现频率而生成的一幅图像,人们只要扫一眼就能够明白文章主旨。
2. 词云的生成
工具:
- matplotlib matplotlib,python 绘图库,最终词云的绘制需要用到它。
- jieba jieba,最开源中文分词工具。他最主要的两个功能是分词和关键词的抽取。在词云的生成过程中都需要用到。
- wordcloud wordcloud是一个词云生成器,只要进行相关的配置就能生成相应的词云。
实现过程
实现的过程简单来讲,两步走,1. 提取关键词,2. 生成词云。
Demo : 解析爱在遥远的星空下
在电脑中发现一个text文档 《爱在遥远的星空下》[作者]雪透 TXT下载
尝试做了解析
原图
码云
分词没有特别设的 所以出现最多的是男女主名字
程序示例
from wordcloud import WordCloud
import jieba
import PIL
import matplotlib.pyplot as plt
import numpy as np
def wordcloudplot(txt):
font = r'cn.ttf'
demo_mask = np.array(PIL.Image.open('test2.png'))
wordcloud = WordCloud(font_path=font,
background_color="white",
margin=5, width=1800, height=800, mask=demo_mask, max_words=2000, max_font_size=60,
random_state=42)
wordcloud = wordcloud.generate(txt)
wordcloud.to_file('t2.jpg')
plt.imshow(wordcloud)
plt.axis("off")
plt.show()
def main():
a = []
f = open(r'book.txt', 'r',encoding='utf-8').read()
words = list(jieba.cut(f))
for word in words:
if len(word) > 1:
a.append(word)
txt = r' '.join(a)
wordcloudplot(txt)
if __name__ == '__main__':
main()
结论
这是一个简单的数据可视化 分词决定了统计结果