“词云”这个概念由美国西北大学新闻学副教授、新媒体专业主任里奇·戈登(Rich Gordon)提出。戈登做过编辑、记者,曾担任迈阿密先驱报(Miami Herald)新媒体版的主任。他一直很关注网络内容发布的最新形式——即那些只有互联网可以采用而报纸、广播、电视等其它媒体都望尘莫及的传播方式。通常,这些最新的、最适合网络的传播方式,也是最好的传播方式。词云图,也叫文字云,是对文本中出现频率较高的“关键词”予以视觉化的展现,词云图过滤掉大量的低频低质的文本信息,使得浏览者只要一眼扫过文本就可领略文本的主旨。

在互联网时代,人们获取信息的途径多种多样,大量的信息涌入到人们的视线中。如何从浩如烟海的信息中提炼出关键信息,滤除垃圾信息,一直是现代人关注的问题。在这个信息爆炸的时代,我们每时每刻都要更新自己的知识储备,而网络是最好的学习平台。对信息过滤和处理能力强,学习效率就会得到提高。“词云”就是为此而诞生的。“词云”是对网络文本中出现频率较高的“关键词”予以视觉上的突出,形成“关键词云层”或“关键词渲染”,从而过滤掉大量的无意义信息,使浏览者只要一眼扫过词云图片就可以领略文章或者网页内容的主旨。不仅如此,一幅制作精美的词云图片,可以起到一图胜千言的效果,在报告或者PPT中适当的使用词云,会使表达更清晰充分,为演讲者表达的意义加分。

嗯。。。就是一堆废话。。。

感觉就是使用视觉刺激的办法,让你一眼就看见我想要表达的信息,而这个信息是突出一段话中出现次数最高的词语。因为一般而言,在一段文字中出现频率最高的那个词总归和你表达意思相关。

from wordcloud import WordCloud, ImageColorGenerator
import matplotlib.pyplot as plt
import numpy
from PIL import Image

txt = open("../文本/十九大报告.txt",'r',encoding="GBK").read()
image = numpy.array(Image.open('../图片/党徽.jpg'))
wc = WordCloud(
    background_color="black",
    font_path="C:/Windows/Fonts/STKAITI.TTF",
    max_font_size=60,
    max_words=3000,
    mask = image,
).generate(txt)
plt.figure(figsize=(10,10))
#重定向颜色
image_color = ImageColorGenerator(image)
plt.imshow(wc.recolor(color_func=image_color))
plt.axis('off')
plt.show()
#保存图片
wc.to_file("../图片/result_19.jpg")

结果为:

 这种方法的分词是根据wordcloud内部自主实现的,我们也可以自主分词完,然后将得到的分词字典和词云结合起来。

from wordcloud import WordCloud, ImageColorGenerator
import matplotlib.pyplot as plt
import numpy
from PIL import Image
import jieba

txt = open("../文本/十九大报告.txt",'r',encoding="GBK").read()
image = numpy.array(Image.open('../图片/党徽.jpg'))
words = jieba.lcut(txt)
counts ={}
excludes = {"",'','','','','','','','','\n','','',''}
for word in words:
    if word in excludes:
        continue
    else:
        counts[word] = counts.get(word, 0) +1

wc = WordCloud(
    background_color="black",
    font_path="C:/Windows/Fonts/STKAITI.TTF",
    max_font_size=60,
    max_words=3000,
    mask = image,
).generate_from_frequencies(counts)
plt.figure(figsize=(10,10))
#重定向颜色
image_color = ImageColorGenerator(image)
plt.imshow(wc.recolor(color_func=image_color))
plt.axis('off')
plt.show()
#保存图片
wc.to_file("../图片/result_19_2.jpg")

结果是:

 对比两个结果,还是不一样的。想要啥效果,自己选呐

02-11 02:00