python小项目 | 您所在的位置:网站首页 › 词云程序 › python小项目 |
所谓词云: “词云”就是对网络文本中出现频率较高的“关键词”予以视觉上的突出,形成“关键词云层”或“关键词渲染”,从而过滤掉大量的文本信息,使浏览网页者只要一眼扫过文本就可以领略文本的主旨。
随着python的迅速崛起,人们发现可以使用python来实现很多有趣的小作品。这款词云也是非常吸引我,因此专门去翻了翻前辈们的足迹,自己实现了一次。
首先我们需要明确实现这个功能需要一些什么库 WordCloud #词云制作 最关键的库:用来形成词云 PIL.Image #(opencv简洁版)绘制图像,图像解析 opencv(BGR) matplotlib(2d) numpy #将图形转化为矩阵数组 jieba #中文分词 根据中文语境 自定义分词
纯英文文本的词云生成代码: import numpy as np #将图案轮廓转化成数组存储 import PIL.Image as image #图像分析 import matplotlib.pyplot as plt #绘图 from wordcloud import WordCloud #词云 filename = "text_ep.txt" #文本位置及文件名 with open(filename) as f: mytext = f.read() #读取 存入mytext mask = np.array(image.open("mask.jpg")) #打开词云图案读取轮廓 轮廓数组化 wordcloud = WordCloud(mask= mask).generate( mytext) plt.imshow(wordcloud,interpolation = 'bilinear') #bilinear双线性插值 plt.axis("off") wordcloud.to_file('Wordcloud.png') 注:双线性插值制图详解传送门
中文分词词云生成代码:(这里需要用到 jieba 这个汉语分词库) from wordcloud import WordCloud #词云制作 文字字体大小尺寸等 import PIL.Image as image #(opencv简洁版)绘制图像 opencv(BGR) matplotlib(2d) import numpy as np #将图形转化为矩阵 import jieba #中文分词 def transfrom_zh(text): #接收文本 word_list = jieba.cut(text) #加空格断词 result = ' '.join(word_list) return result filename = "text_zh.txt" with open(filename,encoding='utf-8') as f: mytext = f.read() #读取文本 mytext = transfrom_zh(mytext) #删除标点 空格断词转换 mask = np.array(image.open("mask.jpg")) #图像轮廓转换为数组 wordcloud = WordCloud( mask= mask , #遮罩 font_path = 'C:\Windows\Fonts\STZHONGS.TTF' #中文字体名(点击属性查看,选英文名的汉字字体)不加报错 默认路径C:\Windows\Fonts\STZHONGS.TTF 华文中宋 ).generate(mytext) image_1 = wordcloud.to_image() image_1.show()
清明节网上随手找的文章,用右下角的mask做的词云,非常开心呢~给你看下我的图: 总结: 词云制作的代码不是很多,用到了很多的python自带库,难度一般,需要对库函数做进一步的理解。 祝大家学业有成!也祝自己~ 一起努力!!! |
CopyRight 2018-2019 实验室设备网 版权所有 |