码迷,mamicode.com
首页 > 编程语言 > 详细

python根据文本生成词云图

时间:2019-10-05 22:14:56      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:使用   背景图片   scipy   rank   img   字体   直接   分词   效果   

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的话,应该不用改,用我这个就可以,除此之外呢,这个字体如果是别的的话,可能会出现
中文不能产生词云图的现象,总之用我的就好了。

python根据文本生成词云图

标签:使用   背景图片   scipy   rank   img   字体   直接   分词   效果   

原文地址:https://www.cnblogs.com/mengxiaoleng/p/11625655.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!