一、参考资料
文本可视化(词云图)_huanxingchen1的博客-CSDN博客
一、文本可视化种类
在上篇博客提取完文本中的关键词之后,进行词云可视化
1)基于文本内容的可视化
基于文本内容的可视化研究包括基于词频的可视化和基于词汇分布的可视化,常用的有词云、分布图和 Document Cards 等。
2)基于文本关系的可视化
基于文本关系的可视化研究文本内外关系,帮助人们理解文本内容和发现规律。常用的可视化形式有树状图、节点连接的网络图、力导向图、叠式图和 Word Tree 等。
3)基于多层面信息的可视化
基于多层面信息的可视化主要研究如何结合信息的多个方面帮助用户从更深层次理解文本数据,发现其内在规律。其中,包含时间信息和地理坐标的文本可视化近年来受到越来越多的关注。常用的有地理热力图、ThemeRiver、SparkClouds、TextFlow 和基于矩阵视图的情感分析可视化等。
二、步骤
在上篇博客提取完关键字之后,进行数据清洗,然后绘制词云
1)首先读取停用词,生成一个停用词列表。然后进行数据清洗。得到干净的文本pure_text
# 获取停用词列表 stopwords_path = os.path.join(path, 'stopwords.txt') stopword_list = [] with open(stopwords_path, 'r+', encoding='utf8') as f: for word in f.readlines(): if len(word)>0 and word != ' ': stopword_list.append(word) # 文本清洗 获得干净文本 pure_text = [] for word in raw: if len(word)>1 and word != " ": if not word.isdigit(): #去数字 if word.strip() not in stopword_list: #去左右空格 pure_text.append(word.strip())
2)统计词频
把文本列表转成pandas的Dataframe形式,然后进行词频统计。
# (1)用DataFrame操作 content = pd.DataFrame(pure_text, columns=['word']) # 每个词出现的频率赋予一个新的列 content_new = content.groupby(by=['word'])['word'].agg({"count":np.size}) # 按频率排序 content_new = content_new.reset_index().sort_values(by=['count'], ascending=False)
3)绘制词云
wordcloud = WordCloud(font_path='./zi.ttf', background_color='white', max_font_size=80) word_frequence = {x[0]:x[1] for x in content_new.head(100).values} wordcloud = wordcloud.fit_words(word_frequence) # 展示图片 plt.imshow(wordcloud) plt.axis("off") plt.show() # 保持图片 wordcloud.to_file('./picture/manifold.jpg')
三、运行截图