zoukankan      html  css  js  c++  java
  • python根据文本生成词云图

    python根据文本生成词云图

    效果

    代码

    from wordcloud import WordCloud
    import codecs
    import jieba
    #import jieba.analyse as analyse
    from scipy.misc import imread
    import os
    from os import path
    import matplotlib.pyplot as plt
    from PIL import Image, ImageDraw, ImageFont
    
    
    # 绘制词云
    def draw_wordcloud():
        #读入一个txt文件
        comment_text = open('data.txt','r',encoding='utf-8').read()
        #结巴分词,生成字符串,如果不通过分词,无法直接生成正确的中文词云
        cut_text = " ".join(jieba.cut(comment_text))
        d = path.dirname(__file__) # 当前文件文件夹所在目录
        color_mask = imread("bilibili.jpg") # 读取背景图片
        cloud = WordCloud(
            #设置字体,不指定就会出现乱码
            font_path="C:/Windows/Fonts/STXINGKA.TTF",
            #font_path=path.join(d,'simsun.ttc'),
            #设置背景色
            background_color='white',
            #词云形状
            mask=color_mask,
            #允许最大词汇
            max_words=2000,
            #最大号字体
            max_font_size=100
        )
        word_cloud = cloud.generate(cut_text) # 产生词云
        word_cloud.to_file("bilibilirankword.jpg") #保存图片
        #  显示词云图片
        plt.imshow(word_cloud)
        plt.axis('off')
        plt.show()
    
    if __name__ == '__main__':
    
        draw_wordcloud()
    
    

    步骤以及注意点

    1.首先要导入对应的库
    2.文字会根据背景图而分布
    3.背景图的选择对于最终效果很重要,选一个尽量大一点的背景图,这个背景图随便找就好,任何图片都可以不过最好大一些,图案不太复杂
    4.如果字号小的话,可以调整字体,或者换个背景图
    5.font_path要使用自己的字体库,不过你的电脑是windows的话,应该不用改,用我这个就可以,除此之外呢,这个字体如果是别的的话,可能会出现
    中文不能产生词云图的现象,总之用我的就好了。

  • 相关阅读:
    点击图片显示原图
    SQL判断语句
    窗口淡入淡出效果
    判断两段时间之间的时间差
    软件行业发展趋势
    VSS客户端不能访问问题“unable to open user login file\\服务器项目管理目录\data\logedin\用户名.log ”
    鑫哥儿子顺利降生了!
    面向对象原则之单一职责原则实现
    PHP编码,乱码问题
    泛型中的default(T)
  • 原文地址:https://www.cnblogs.com/mengxiaoleng/p/11625655.html
Copyright © 2011-2022 走看看