完整的使用jieba分词后生成词云

Posted 星延

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了完整的使用jieba分词后生成词云相关的知识,希望对你有一定的参考价值。

导入需要的模块

import jieba

jieba.setLogLevel(jieba.logging.INFO) # 设置日志等级,使底层日志不要打印出来

import jieba.analyse

from wordcloud import WordCloud

from wordcloud import ImageColorGenerator

import matplotlib.pyplot as plt

使用jieba生成字符串:浮点数的键值对来表示的关键词及频率,这个地方可以根据需要自定义很多参数,具体参考jieba文档

frequencies = {}

for word,m in jieba.analyse.textrank(text_file,topK=100,withWeight=True,allowPOS=(\'ns\',\'n\',\'vn\',\'v\',\'nr\',\'nt\',\'nw\',\'nz\',\'PER\',\'LOC\',\'ORG\')):

    frequencies[word] = m

生成词云

backgroud_Image = plt.imread(pic_file)

wc= WordCloud(

    font_path = font_path, # 字体文件的路径,字符串

    width = 1000, # 绘图区宽度,默认400,整型

    height = 700, # 绘图区高度,默认200,整型

    mask = backgroud_Image,

    scale = 2, # 计算过程和实际绘图的比例,浮点型,默认1,数值越大图片越清晰

    max_words = 200, # 绘图使用的最大单词数,整型,默认200

    background_color = None, # 背景颜色,颜色值,默认为\'black\'

    mode = \'RGBA\', # 模式,默认为\'RGB\',当为\'RGBA\'时,倘若背景颜色为None,则会得到透明的背景

    relative_scaling = 0.5, # 单词出现频率对其字体大小的权重,值为0时,只考虑单词排名对字体大小的影响,值为1时,具有2倍出现频率的单词具有2倍的字体大小,一般值设置为0.5最棒,浮点型

).generate_from_frequencies( frequencies )

image_colors = ImageColorGenerator(backgroud_Image)

wc.recolor(color_func=image_colors) # 重新上色

plt.imshow(wc) # 生成图片

plt.axis(\'off\') # 关闭坐标轴

plt.show() # 显示图片

wc.to_file(ciyun_file)

 

以上是关于完整的使用jieba分词后生成词云的主要内容,如果未能解决你的问题,请参考以下文章

基于Python实现词云制作

意境级讲解 jieba分词和词云关键词抽取:TextRankTF-IDF

jieba库的分词和词云

jieba库的分词和词云

jieba分词与worldcloud词云

数据可视化 | 利用jieba进行中文分词制作词云