python——wordcloud生成中文词云

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/vivian_ll/article/details/68067574

毕设中期答辩,想展示一下前期数据抓取和聚类的成果,感觉词云这种形式不错,于是简单学习了一下wordcloud。
首先是安装
我是使用pip直接安装的,
pip install wordcloud
没有报错,如果有错误可以从http://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud下载whl文件直接安装。
基本用法
(直接上代码吧)

# -*- coding: utf-8 -*-
__author__ = 'leilu'
#wordcloud生成中文词云

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('F:\program\MyProjects\clustering\\fenci1.0\wordseg_result.txt','r').read()
    #结巴分词,生成字符串,如果不通过分词,无法直接生成正确的中文词云
    cut_text = " ".join(jieba.cut(comment_text))
    d = path.dirname(__file__) # 当前文件文件夹所在目录
    color_mask = imread("Anne_Hathaway.png") # 读取背景图片
    cloud = WordCloud(
        #设置字体,不指定就会出现乱码
        font_path="HYQiHei-25J.ttf",
        #font_path=path.join(d,'simsun.ttc'),
        #设置背景色
        background_color='white',
        #词云形状
        mask=color_mask,
        #允许最大词汇
        max_words=2000,
        #最大号字体
        max_font_size=40
    )
    word_cloud = cloud.generate(cut_text) # 产生词云
    word_cloud.to_file("pjl_cloud4.jpg") #保存图片
    #  显示词云图片
    plt.imshow(word_cloud)
    plt.axis('off')
    plt.show()



if __name__ == '__main__':

    draw_wordcloud()

用法比较简单,注释很详细。有个坑人的地方在于font_path设置,尝试了一下几种形式均报错IO error: cannot open resource

font = ImageFont.truetype("arial.ttf", 15),
FONT_PATH = os.environ.get("FONT_PATH", "/Library/Fonts/Times New Roman.ttf"),
font_path="汉仪旗黑25简.ttf",

尝试了下述形式报错TypeError: init() got an unexpected keyword argument ‘FONT_PATH’

FONT_PATH = os.environ.get("FONT_PATH", os.path.join(os.path.dirname(__file__), "simhei.ttf"))

所以最后只有代码里的那两种形式可用,其中HYQiHei-25J.ttf文件是放在代码目录下的,但同样放在代码目录下的汉仪旗黑25简.ttf就找不到,应该是不支持中文名字吧。

参考网址:
python wordcloud 对电影《我不是潘金莲》制作词云
Python word_cloud 部分文档翻译 标签云系列(二)
Python word_cloud 样例 标签云系列(三)

展开阅读全文

没有更多推荐了,返回首页