发布于2020-03-10 19:23 阅读(743) 评论(0) 点赞(4) 收藏(2)
本文采用Python编程,实现对文本文档(中、英文)做词频统计以及词云图展示。
词云图是文本数据的视觉展示,可以快速从大量文本信息中找出关键词。一般来说字体越大就代表出现的频率越高。
E.G. 下图是《三国演义》中的高频词,部分词汇通过筛选不在图中展示。本文主要展示《三国演义中》出现频率较高的人物名称。
import numpy as np
import jieba
from wordcloud import WordCloud
from matplotlib import pyplot as plt
from PIL import Image
本文以《三国演义》(Three Kingdoms)为例,打开文本,读取后关闭。
f = open('E:/PySource/threekingdoms.txt','r',encoding='utf-8')
txt = f.read()
f.close()
将要处理的背景图片与代码放入同一地址,本文将图片命名为“back_pic_cloud”。
words = jieba.lcut(txt) # 文本分词
newtxt = ' '.join(words) # 将词语连接起来,以空格为连接词
img = Image.open(r'back_pic_cloud.jpg') # 打开背景图片
img_array = np.array(img) # 将图片转换为数组
wordcloud = WordCloud(
background_color="black", # 将背景颜色设置为黑色,也可根据个人喜好更改
width = 1080, # 图尺寸
height = 960,
font_path = "C:/Windows/Fonts/simfang.ttf", #字体设置
max_words = 150,
max_font_size = 100,
stopwords = excludes, # 设置停止词,若不设置将展示所有高频词汇,添加可选择去除
mask = img_array).generate(newtxt)
plt.imshow(wordcloud)
plt.axis('off')
plt.show()
wordcloud.to_file('result.png')
以上代码运行结果如下图所示:
不难看出,图中出现了很多诸如:”二人“、”却说“ 等没有意义的词汇,所以我们在处理词云图时可以添加如下代码对该部分词汇进行去除。最终展示结果如开篇所示。
excludes = ['将军','却说','荆州','二人','不可','不能','如此',
'如何','商议','主公','左右','军士','军马','引兵','大喜','次日',
'东吴','天下','于是','今日','魏兵','不敢','不知','陛下','一人',
'人马','都督','汉中','众将','只见','后主','大叫','孔明曰','玄德曰']
# 统计文本文档中词频并生成词云图.py
import numpy as np
import jieba
from wordcloud import WordCloud
from matplotlib import pyplot as plt
from PIL import Image
# 以只读模式打开txt文档
f = open('E:/PySource/threekingdoms.txt','r',encoding='utf-8')
txt = f.read()
f.close()
# 预处理文本和背景图片
words = jieba.lcut(txt) # 文本分词
newtxt = ' '.join(words) # 将词语连接起来,以空格为连接词
img = Image.open(r'back_pic_cloud.jpg') # 打开背景图片
img_array = np.array(img) # 将图片转换为数组
# 去除不希望在词云图中显示的词汇
excludes = ['将军','却说','荆州','二人','不可','不能','如此',
'如何','商议','主公','左右','军士','军马','引兵','大喜','次日',
'东吴','天下','于是','今日','魏兵','不敢','不知','陛下','一人',
'人马','都督','汉中','众将','只见','后主','大叫','孔明曰','玄德曰']
# 设置词云图参数
wordcloud = WordCloud(
background_color="black",
width = 1080,
height = 960,
font_path = "C:/Windows/Fonts/simfang.ttf",
max_words = 150,
max_font_size = 100,
stopwords = excludes,
mask = img_array).generate(newtxt)
# 展示词云图并保存
plt.imshow(wordcloud)
plt.axis('off')
plt.show()
wordcloud.to_file('result.png')
代码下载地址:
//download.csdn.net/download/qq_36581390/12236076
《三国演义》文本下载地址:
//download.csdn.net/download/qq_36581390/12236085
原文链接:https://blog.csdn.net/qq_36581390/article/details/104749604
作者:四季度炒肉
链接:https://www.pythonheidong.com/blog/article/251280/056d42f5981c414e815e/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!