ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python生成词云笔记

2019-01-25 22:01:06  阅读:366  来源: 互联网

标签:plt python text 笔记 wordcloud 词云 path 分词


主要是通过两种方式显示词云,一种是常规方式,一种是以图像背景显示,

如下例子生成十九大报告云:

'''
词云测试
'''

#coding='utf-8'
from wordcloud import WordCloud,ImageColorGenerator
import matplotlib.pyplot as plt
import jieba
from PIL import Image
import numpy as np

# 显示效果1:常规显示
def wordcolud_show1():
    path = 'shijiuda.txt'  # D://data/shijiuda.txt
    #f = open(path, 'r', encoding='utf-8').read()
    f = open(path).read()
    #结巴分词,生成字符串,wordcloud无法直接生成正确的中文词云
    text = " ".join(jieba.cut(f))  #jieba分词,默认精确模式,对分词结果以空格分开
    #print(text)
    # 生成词云
    wordcloud = WordCloud(
        #设置字体,不然会出现口字乱码,文字的路径是电脑的字体一般路径,
        font_path="C:\Windows\Fonts\simfang.ttf",
        #设置背景
        background_color="white",
        #设置宽高
        width=1000,
        height=880).generate(text)

    #plt.imshow函数负责对图像进行处理,并显示其格式,而plt.show()则是将plt.imshow()处理后的函数显示出来。
    plt.imshow(wordcloud, interpolation="bilinear")  #第二个参数表示插值运算为双线性插值
    plt.axis("off")
    plt.show()


#显示效果2 给词云加上自己的背景图片
def wordcolud_show2():
    path = 'shijiuda.txt'
    path_img = 'map.jpg'
    # 打开txt文件
    f = open(path).read()
    # 结巴分词
    text = " ".join(jieba.cut(f))  #jieba分词,默认精确模式,对分词结果以空格分开
    #print(text)
    # 打开背景图片,并矩阵化
    background_image = np.array(Image.open(path_img))
    # 生成词云
    wordcloud = WordCloud(
        font_path="C:\Windows\Fonts\simfang.ttf",
        background_color="white",
        # # mask参数=图片背景,有mask后再设定宽高是无效的,因此不用设了
        mask=background_image).generate(text)
    # 生成颜色值
    image_colors = ImageColorGenerator(background_image)
    # 显示图片
    plt.imshow(wordcloud.recolor(color_func=image_colors), interpolation="bilinear")
    plt.axis("off")
    plt.show()



if __name__ == "__main__":
    #wordcolud_show1()
    wordcolud_show2()

第一种方法结果如下图:

第二种方法结果如下图:

其中背景地图为:

标签:plt,python,text,笔记,wordcloud,词云,path,分词
来源: https://blog.csdn.net/feiyang5260/article/details/86652410

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有