精华内容
下载资源
问答
  • 闲话不多说,直接上干货!...在命令行输入 pip install jieba回车,安装jieba包。安装wordcloud包同jieba一样,也可以使用pip install wordcloud安装,但是安装...python常用whl文件的下载地址:https://www.lfd.uci.e...

    闲话不多说,直接上干货!

    STEP1

    安装jieba包

    点击桌面菜单栏的开始按钮,输入cmd回车,进入命令窗口。

    在命令行输入 pip install jieba回车,安装jieba包。

    20171231135650_804.jpg

    安装wordcloud包

    同jieba一样,也可以使用pip install wordcloud安装,但是安装速度很慢,通常使用whl文件安装。

    python常用whl文件的下载地址:

    https://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy

    进入该网址,搜索wordcloud,小编下载的是图中红框所示文件

    20171231135703_574.jpg

    下载好whl文件后,在命令行中输入pip install和空格,将whl文件直接拖拽至命令行窗口,点击回车

    20171231135711_79.jpg

    jieba包和wordcloud包都安装完成后,准备工作就完成了。

    STEP2

    编写词云图代码

    # 导入需要的包

    import jieba

    from wordcloud import WordCloud

    from scipy.misc import imread

    import matplotlib.pyplot as plt

    其中imread用于读取图片,plt用于最后词云图展示

    # 读取文本文件

    text=open('G:/py/wc/text.txt','r',encoding='gbk').read()

    # 对文本进行分词

    cut_text=' '.join(jieba.cut(text))

    # 读取图片

    color_mask = imread("G:/py/wc/11.png")

    文件路径最好为英文,尽量避免报错

    若运行后提示encoding编码错误,将encoding更改为utf8或其他编码格式,或者删除encoding

    图片有png、jpg等多种格式,按照实际情况输入

    所有文件最好放在同一文件夹下,方便输入路径

    # 生成词云

    cloud = WordCloud(

    font_path='G:/py/wc/new_songti.ttc',

    background_color='white',

    mask=color_mask,

    max_words=2000,

    max_font_size=80)

    word_cloud = cloud.generate(cut_text)

    字体路径必须设置

    可以使用 help 功能查看WordCloud的所有参数

    在spyder中,选中代码中的WordCloud,按住ctrl键,点击鼠标,也可以调出WordCloud的参数。通过调试参数,可以画出更加美观的词云图

    # 输出图片

    plt.axis('off')

    plt.imshow(word_cloud)

    plt.show()

    删掉最后一行代码 plt.show(),对词云图是没有影响的,但是最好养成良好习惯,只要有图片展示的代码中,最好加上。

    plt.show() 起到全局控制的作用,当一个脚本中出现多个图片展示时,不加plt.show() 会导致图片输出错误

    最终生成的词云图:

    20171231135725_338.jpg

    观察词云图,发现“一个”、“知道”、“他们”、“我们”这些词汇,对于理解《三体》帮助不大,需要设置一个过滤机制,筛选掉这些意义不大的词汇。

    首先我们创建一个用于存放过滤词的txt文件。

    20171231135750_771.jpg

    运行过滤词的代码

    # 导入停止词

    stopword = open('G:/py/wc/stopword.txt','r').read()

    # 转换为列表

    cut_text=cut_text.split(' ')

    cut_text=list(cut_text)

    stopword = stopword.split(' ')

    stopword=list(stopword)

    # 去除停止词

    for i in stopword:

    for j in cut_text:

    if j == i:

    cut_text.remove(j)

    # 列表转字符串

    cut_text=" ".join(cut_text)

    word_cloud = cloud.generate(cut_text)

    再次输出词云图

    plt.axis('off')

    plt.imshow(word_cloud)

    plt.show()

    过滤后的词云图比过滤前主题更明确了,现在没有读过三体的小伙伴也能大概了解到这本书是在讲什么啦!

    20171231135757_122.jpg

    为了方便小伙伴,本文提供所涉及材料的下载地址:

    https://pan.baidu.com/s/1c1EbfuK

    展开全文
  • 首先贴出一张词云图(以哈利波特小说为例):在生成词云图之前,首先要做一些准备工作1.安装结巴分词库pip install jiebaPython中的分词模块有很多,他们的功能也都是大同小异,我们安装的结巴分词 是当前使用的最多...

    wordcloud是Python扩展库中一种将词语用图片表达出来的一种形式,通过词云生成的图片,我们可以更加直观的看出某篇文章的故事梗概。

    首先贴出一张词云图(以哈利波特小说为例):

    2mp2axoez4n.jpg

    在生成词云图之前,首先要做一些准备工作

    1.安装结巴分词库

    pip install jieba

    uhead5ztwli.jpg

    Python中的分词模块有很多,他们的功能也都是大同小异,我们安装的结巴分词 是当前使用的最多的类型。

    下面我来简单介绍一下结巴分词的用法

    结巴分词的分词模式分为三种:

    (1)全模式:把句子中所有的可以成词的词语都扫描出来, 速度快,但是不能解决歧义问题

    (2)精确模式:将句子最精确地切开,适合文本分析

    (3)搜索引擎模式:在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词

    下面用一个简单的例子来看一下三种模式的分词区别:

    import jieba

    # 全模式:把句子中所有的可以成词的词语都扫描出来, 速度快,但是不能解决歧义问题

    text = "哈利波特是一常优秀的文学作品"

    seg_list = jieba.cut(text, cut_all=True)

    print(u"[全模式]: ", "/ ".join(seg_list))

    # 精确模式:将句子最精确地切开,适合文本分析

    seg_list = jieba.cut(text, cut_all=False)

    print(u"[精确模式]: ", "/ ".join(seg_list))

    # 默认是精确模式

    seg_list = jieba.cut(text)

    print(u"[默认模式]: ", "/ ".join(seg_list))

    # 搜索引擎模式:在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词

    seg_list = jieba.cut_for_search(text)

    print(u"[搜索引擎模式]: ", "/ ".join(seg_list))

    下面是对这句话的分词方式:

    abnkey35bjn.jpg

    通过这三种分词模式可以看出,这些分词模式并没有很好的划分出“哈利波特”这个专有名词,这是因为在结巴分词的字典中并没有记录这个名词,所以需要我们手动添加自定义字典

    添加自定义字典:找一个方便引用的位置 (下图的路径是我安装的位置),新建文本文档(后缀名为.txt),将想添加的词输入进去(注意输入格式),保存并退出

    0z1ehonwp2n.jpg

    在上面的代码中加入自定义字典的路径,再点击运行

    jieba.load_userdict("/home/jmhao/anaconda3/lib/python3.7/site-packages/jieba/mydict.txt")

    分词结果,可以看出“哈利波特”这个词已经被识别出来了

    ahwpwongmsg.jpg

    结巴分词还有另一个禁用词的输出结果

    stopwords = {}.fromkeys(['优秀', '文学作品'])

    #添加禁用词之后

    seg_list = jieba.cut(text)

    final = ''

    for seg in seg_list:

    if seg not in stopwords:

    final += seg

    seg_list_new = jieba.cut(final)

    print(u"[切割之后]: ", "/ ".join(seg_list_new))

    可以看到输出结果中并没有“优秀”和“文学作品”两个词

    hvpw3a0nfbp.jpg

    结巴分词还有很多比较复杂的操作,具体的可以去官网查看,我就不再过多的赘述了

    下面我们正式开始词云的制作

    首先下载模块,这里我所使用的环境是Anaconda,由于Anaconda中包含很多常用的扩展包,所以这里只需要下载wordcloud。若使用的环境不是Anaconda,则另需安装numpy和PIL模块

    pip install wordcloud

    sjz44vxisav.jpg

    然后我们需要找一篇文章并使用结巴分词将文章分成词语的形式

    # 分词模块

    def cut(text):

    # 选择分词模式

    word_list = jieba.cut(text,cut_all= True)

    # 分词后在单独个体之间加上空格

    result = " ".join(word_list)

    # 返回分词结果

    return result

    这里我在当前文件夹下创建了一个文本文档“xiaoshuo.txt”,并复制了一章的小说作为词云的主体文字

    使用代码控制,打开并读取小说的内容

    #导入文本文件,进行分词,制作词云

    with open("xiaoshuo.txt") as fp:

    text = fp.read()

    # 将读取的中文文档进行分词

    text = cut(text)

    在网上找到一张白色背景的图片下载到当前文件夹,作为词云的背景图(若不指定图片,则默认生成矩形词云)

    #设置词云形状,若设置了词云的形状,生成的词云与图片保持一致,后面设置的宽度和高度将默认无效

    mask = np.array(image.open("monkey.jpeg"))

    接下来可以根据喜好来定义词云的颜色、轮廓等参数 下面为常用的参数设置方法

    font_path : "字体路径"

    词云的字体样式,若要输出中文,则跟随中文的字体

    width = n

    画布宽度,默认为400像素

    height = n

    画布高度,默认为400像素

    scale = n

    按比例放大或缩小画布

    min_font_size = n

    设置最小的字体大小

    max_font_size = n

    设置最大的字体大小

    stopwords = 'words'

    设置要屏蔽的词语

    background_color = ''color

    设置背景板颜色

    relative_scaling = n

    设置字体大小与词频的关联性

    contour_width = n

    设置轮廓宽度

    contour_color = 'color'

    设置轮廓颜色

    完整代码

    #导入词云库

    from wordcloud import WordCloud

    #导入图像处理库

    import PIL.Image as image

    #导入数据处理库

    import numpy as np

    #导入结巴分词库

    import jieba

    # 分词模块

    def cut(text):

    # 选择分词模式

    word_list = jieba.cut(text,cut_all= True)

    # 分词后在单独个体之间加上空格

    result = " ".join(word_list)

    return result

    #导入文本文件,进行分词,制作词云

    with open("xiaoshuo.txt") as fp:

    text = fp.read()

    # 将读取的中文文档进行分词

    text = cut(text)

    #设置词云形状

    mask = np.array(image.open("monkey.jpeg"))

    #自定义词云

    wordcloud = WordCloud(

    # 遮罩层,除白色背景外,其余图层全部绘制(之前设置的宽高无效)

    mask=mask,

    #默认黑色背景,更改为白色

    background_color='#FFFFFF',

    #按照比例扩大或缩小画布

    scale=,

    # 若想生成中文字体,需添加中文字体路径

    font_path="/usr/share/fonts/bb5828/逐浪雅宋体.otf"

    ).generate(text)

    #返回对象

    image_produce = wordcloud.to_image()

    #保存图片

    wordcloud.to_file("new_wordcloud.jpg")

    #显示图像

    image_produce.show()

    注:若想要生成图片样式的词云图,找到的图片背景必须为白色,或者使用Photoshop抠图替换成白色背景,否则生成的词云为矩形

    我的词云原图:

    reipz40s5um.jpg

    生成的词云图:

    pgrvw1r1lcj.jpg

    到此这篇关于Python实现Wordcloud生成词云图的示例的文章就介绍到这了,更多相关Python Wordcloud生成词云图内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

    本文标题: Python实现Wordcloud生成词云图的示例

    本文地址: http://www.cppcns.com/jiaoben/python/304490.html

    展开全文
  • Python生成词云图.pdf

    2021-06-28 17:41:42
    Python生成词云图.pdf
  • python生成词云图

    千次阅读 2019-05-15 14:05:30
    python生成词云图 前言 python版本号:3.6.3 在网上看到词云图,一直觉得很有意思,最近没工作很空闲,就想着自己做一做 先放个效果图,这是用杰伦的三首歌《七里香》、《搁浅》、《借口》歌词文本做成的词云图。 ...

    python生成词云图

    前言

    python版本号:3.6.3
    在网上看到词云图,一直觉得很有意思,最近没工作很空闲,就想着自己做一做
    先放个效果图,这是用杰伦的三首歌《七里香》、《搁浅》、《借口》歌词文本做成的词云图。
    在这里插入图片描述

    python modules

    需要使用的python包有:
    wordcloud、jieba、numpy、cv2
    使用pip安装即可

    pip install wordcloud
    pip install jieba
    pip install numpy
    pip install opencv-python
    

    wordcloud参数说明

    代码核心是wordcloud部分,下面列一下wordcloud的参数

    font_path : string  #字体路径,如:font_path = '黑体.ttf'
    
    width : int (default=400) #输出的图像宽度,默认为400像素
    
    height : int (default=200) #输出的图像高度,默认为200像素
    
    prefer_horizontal : float (default=0.90) #词语水平方向排版出现的频率,默认 0.9 (所以词语垂直方向排版出现频率为 0.1 )
    
    mask : nd-array or None (default=None) #背景布,除去纯白部分都会用来填充词云
    
    scale : float (default=1) #按照比例进行放大画布,如设置为1.5,则长和宽都是原来画布的1.5倍
    
    min_font_size : int (default=4) #显示的最小的字体大小
    
    max_font_size : int or None (default=None) #显示的最大的字体大小
    
    font_step : int (default=1) #字体步长,如果步长大于1,会加快运算但是可能导致结果出现较大的误差
    
    max_words : number (default=200) #要显示的词的最大个数
    
    stopwords : set of strings or None #设置需要屏蔽的词,如果为空,则使用内置的STOPWORDS。很多文章都没有说清楚要怎么写屏蔽词,其实就是一个list。
    
    background_color : color value (default=”black”) #背景颜色,如background_color='white',背景颜色为白色
    
    mode : string (default=”RGB”) #当参数为“RGBA”并且background_color不为空时,背景为透明
    
    relative_scaling : float (default=.5) #词频和字体大小的关联性
    
    color_func : callable, default=None #生成新颜色的函数,如果为空,则使用 self.color_func
    
    regexp : string or None (optional) #使用正则表达式分隔输入的文本
    
    collocations : bool, default=True #是否包括两个词的搭配
    
    colormap : string or matplotlib colormap, default=”viridis” #给每个单词随机分配颜色,若指定color_func,则忽略该方法
    
    random_state : int or None  #为每个单词返回一个PIL颜色
    

    wordcloud输出形式

    fit_words(frequencies)  #根据词频生成词云
    generate(text)  #根据文本生成词云
    generate_from_frequencies(frequencies[, ...])   #根据词频生成词云
    generate_from_text(text)    #根据文本生成词云
    process_text(text)  #将长文本分词并去除屏蔽词(此处指英语,中文分词还是需要自己用别的库先行实现,使用上面的 fit_words(frequencies) )
    recolor([random_state, color_func, colormap])   #对现有输出重新着色。重新上色会比重新生成整个词云快很多
    to_array()  #转化为 numpy array
    to_file(filename)   #输出到文件
    

    jieba模块的使用

    jieba是中文分词第三方库
    一共有三种模式:精确模式、全模式、搜索引擎模式
    精确模式下,把文本精确切分,不存在重复词语
    全模式,文本中所有可能词语都扫描出来,存在重复
    搜索引擎模式,基于精确模式,对长词再次切分

    方法含义
    jieba.cut(string)精确模式,返回一个生成器generator
    jieba.cut(string,cut_all=True)全模式,输出文本中所有词语,返回一个生成器generator
    jieba.cut_for_search(string)搜索引擎模式,返回一个生成器generator
    jieba.lcut(string)精确模式,返回一个列表模式
    jieba.lcut(string,cut_all=True)全模式,返回一个列表类型
    jieba.lcut_for_search(string)搜索引擎模式,返回列表类型
    jieba.add_word(word)向分词词典中添加新词

    python中list容量有限,因此引入了生成器generator的概念,generator保存的是算法,list是[],generator是()。
    可用for循环打印generator:

    for i in generator:
    	print(i)
    

    代码演示

    以下代码是一个示例,并不是生成上面示例图片的代码

    # -*- coding: utf-8 -*- 
    from wordcloud import WordCloud
    import jieba
    import cv2
    import numpy as np
    
    def read_word(text_path):
        with open(text_path,'r',encoding='utf-8') as f:
            cut_word = jieba.cut(f.read())
        result = " ".join(cut_word)
        img = cv2.imread('bg_java.png')
        img_array = np.array(img)
        stop_words = ["开发","工作","优先","具有","要求","公司","PHP","参与","熟悉","任职"]
        
        wc = WordCloud(
            font_path='simhei.ttf',     #字体
            background_color='white',   #背景颜色
            width=1000,
            height=600,
            max_font_size=80,
            min_font_size=10,
            mask = img_array,  #背景图片
            max_words=1000,
            stopwords=stop_words
        )
        wc.generate_from_text(result)
        wc.to_file('job_java.png')
        
    if __name__ == '__main__':
        read_word("job.txt")
    
    展开全文
  • Python生成词云图

    千次阅读 2021-03-01 09:29:15
    词云图,也叫文字云,是对文本中出现频率较高的“关键词”予以视觉化的展现,词云图过滤掉大量的低频低质的文本信息,使得浏览者只要一眼扫过文本就可领略文本的主旨。 基于Python的词云生成类库,很好用,而且功能...

    1.整体简介

    词云图,也叫文字云,是对文本中出现频率较高的“关键词”予以视觉化的展现,词云图过滤掉大量的低频低质的文本信息,使得浏览者只要一眼扫过文本就可领略文本的主旨。

    基于Python的词云生成类库,很好用,而且功能强大。在做统计分析的时候有着很好的应用,比较推荐。
    github:https://github.com/amueller/word_cloud
    官方地址:https://amueller.github.io/word_cloud/

    2.快速生成词云

    #导入所需库
    from wordcloud import WordCloud
    f = open(r'C:\Users\JluTIger\Desktop\texten.txt','r').read()   #读出来的字符串不符合要求的可以用jieba分词
    wordcloud = WordCloud(background_color="white",width=1000, height=860, margin=2).generate(f)
    
    # width,height,margin可以设置图片属性
    # generate 可以对全部文本进行自动分词,但是对中文支持不好
    # 可以设置font_path参数来设置字体集
    #background_color参数为设置背景颜色,默认颜色为黑色
    
    
    import matplotlib.pyplot as plt
    plt.imshow(wordcloud)
    plt.axis("off")
    plt.show()
    wordcloud.to_file('test.png')
    # 保存图片,但是在第三模块的例子中 图片大小将会按照 mask 保存
    

    运行时遇到的问题:
    报错:(unicode error) ‘unicodeescape’ codec can’t decode bytes in position 2-3: truncated \UXXXXXXXX escap

    原因及解决办法:
    文档我是放在桌面里的,起初读取文档的命令是:f = open(‘C:\Users\JluTIger\Desktop\texten.txt’,‘r’).read()

    一直报错:(unicode error) ‘unicodeescape’ codec can’t decode bytes in position 2-3: truncated \UXXXXXXXX escape

    后来发现,在Python中\是转义符,\u表示其后是UNICODE编码,因此\User在这里会报错,在字符串前面加个r表示就可以了

    效果:

    在这里插入图片描述

    3.自定义字体颜色

    下段代码来自wordcloud官方的github。

    #!/usr/bin/env python
    """
    Colored by Group Example 
    ========================
    
    Generating a word cloud that assigns colors to words based on
    a predefined mapping from colors to words
    基于颜色到单次的映射,将颜色分配给单次,生成词云。
    """
    
    from wordcloud import (WordCloud, get_single_color_func)
    import matplotlib.pyplot as plt
    
    
    class SimpleGroupedColorFunc(object):
        """Create a color function object which assigns EXACT colors
           to certain words based on the color to words mapping
           创建一个颜色函数对象,它根据颜色到单词的映射关系,为单词分配精准的颜色。
    
           Parameters 
           参数
           ----------
           color_to_words : dict(str -> list(str))
             A dictionary that maps a color to the list of words.
    
           default_color : str
             Color that will be assigned to a word that's not a member
             of any value from color_to_words.
        """
    
        def __init__(self, color_to_words, default_color):
            self.word_to_color = {word: color
                                  for (color, words) in color_to_words.items()
                                  for word in words}
    
            self.default_color = default_color
    
        def __call__(self, word, **kwargs):
            return self.word_to_color.get(word, self.default_color)
    
    
    class GroupedColorFunc(object):
        """Create a color function object which assigns DIFFERENT SHADES of
           specified colors to certain words based on the color to words mapping.
    
           Uses wordcloud.get_single_color_func
    
           Parameters
           ----------
           color_to_words : dict(str -> list(str))
             A dictionary that maps a color to the list of words.
    
           default_color : str
             Color that will be assigned to a word that's not a member
             of any value from color_to_words.
        """
    
        def __init__(self, color_to_words, default_color):
            self.color_func_to_words = [
                (get_single_color_func(color), set(words))
                for (color, words) in color_to_words.items()]
    
            self.default_color_func = get_single_color_func(default_color)
    
        def get_color_func(self, word):
            """Returns a single_color_func associated with the word"""
            try:
                color_func = next(
                    color_func for (color_func, words) in self.color_func_to_words
                    if word in words)
            except StopIteration:
                color_func = self.default_color_func
    
            return color_func
    
        def __call__(self, word, **kwargs):
            return self.get_color_func(word)(word, **kwargs)
    
    #text是要分析的文本内容
    text = """The Zen of Python, by Tim Peters
    Beautiful is better than ugly.
    Explicit is better than implicit.
    Simple is better than complex.
    Complex is better than complicated.
    Flat is better than nested.
    Sparse is better than dense.
    Readability counts.
    Special cases aren't special enough to break the rules.
    Although practicality beats purity.
    Errors should never pass silently.
    Unless explicitly silenced.
    In the face of ambiguity, refuse the temptation to guess.
    There should be one-- and preferably only one --obvious way to do it.
    Although that way may not be obvious at first unless you're Dutch.
    Now is better than never.
    Although never is often better than *right* now.
    If the implementation is hard to explain, it's a bad idea.
    If the implementation is easy to explain, it may be a good idea.
    Namespaces are one honking great idea -- let's do more of those!"""
    
    # Since the text is small collocations are turned off and text is lower-cased
    wc = WordCloud(collocations=False).generate(text.lower())
    
    
    # 自定义所有单词的颜色
    color_to_words = {
        # words below will be colored with a green single color function
        '#00ff00': ['beautiful', 'explicit', 'simple', 'sparse',
                    'readability', 'rules', 'practicality',
                    'explicitly', 'one', 'now', 'easy', 'obvious', 'better'],
        # will be colored with a red single color function
        'red': ['ugly', 'implicit', 'complex', 'complicated', 'nested',
                'dense', 'special', 'errors', 'silently', 'ambiguity',
                'guess', 'hard']
    }
    
    # Words that are not in any of the color_to_words values
    # will be colored with a grey single color function
    #不属于上述设定的颜色词的词语会用灰色来着色
    default_color = 'grey'
    
    # Create a color function with single tone
    # grouped_color_func = SimpleGroupedColorFunc(color_to_words, default_color)
    
    # Create a color function with multiple tones
    grouped_color_func = GroupedColorFunc(color_to_words, default_color)
    
    # Apply our color function
    # 如果你也可以将color_func的参数设置为图片,详细的说明请看 下一部分
    wc.recolor(color_func=grouped_color_func)
    
    # 画图
    plt.figure()
    plt.imshow(wc, interpolation="bilinear")
    plt.axis("off")
    plt.show()
    

    效果:
    在这里插入图片描述

    4.利用背景图片生成词云

    该段代码主要来自于wordcloud的github,你同样可以在github下载该例子以及原图片与效果图。wordcloud会把背景图中白色区域去除,只在有色区域进行绘制。

    #!/usr/bin/env python
    """
    Image-colored wordcloud
    =======================
    
    You can color a word-cloud by using an image-based coloring strategy
    implemented in ImageColorGenerator. It uses the average color of the region
    occupied by the word in a source image. You can combine this with masking -
    pure-white will be interpreted as 'don't occupy' by the WordCloud object when
    passed as mask.
    If you want white as a legal color, you can just pass a different image to
    "mask", but make sure the image shapes line up.
    """
    #导入必要的库
    from os import path
    from PIL import Image
    import numpy as np
    import matplotlib.pyplot as plt
    
    from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator
    
    
    # Read the whole text.
    text = open(r'C:\Users\JluTIger\Desktop\texten.txt').read()
    
    # read the mask / color image taken from
    # http://jirkavinse.deviantart.com/art/quot-Real-Life-quot-Alice-282261010
    alice_coloring = np.array(Image.open(r"C:\Users\JluTIger\Desktop\alice.png"))
    
    # 设置停用词
    stopwords = set(STOPWORDS)
    stopwords.add("said")
    
    # 你可以通过 mask 参数 来设置词云形状
    wc = WordCloud(background_color="white", max_words=2000, mask=alice_coloring,
                   stopwords=stopwords, max_font_size=40, random_state=42)
    # generate word cloud
    wc.generate(text)
    
    # create coloring from image
    image_colors = ImageColorGenerator(alice_coloring)
    
    # show
    # 在只设置mask的情况下,你将会得到一个拥有图片形状的词云
    plt.imshow(wc, interpolation="bilinear")
    plt.axis("off")
    plt.figure()
    # recolor wordcloud and show
    # we could also give color_func=image_colors directly in the constructor
    # 我们还可以直接在构造函数中直接给颜色
    # 通过这种方式词云将会按照给定的图片颜色布局生成字体颜色策略
    plt.imshow(wc.recolor(color_func=image_colors), interpolation="bilinear")
    plt.axis("off")
    plt.figure()
    plt.imshow(alice_coloring, cmap=plt.cm.gray, interpolation="bilinear")
    plt.axis("off")
    plt.show()
    

    请注意自己的路径设置
    原图
    在这里插入图片描述

    效果:

    在这里插入图片描述

    在这里插入图片描述

    原文:https://www.cnblogs.com/shiguanggege/p/14168540.html

    展开全文
  • 期末复习比较忙过段时间来专门写scrapy框架使用,今天介绍如何用python生成词云,虽然网上有很多词云生成工具,不过自己用python来写是不是更有成就感。今天要生成的是励志歌曲的词云,百度文库里面找了20来首,如...
  • 今天,我们就来学习一下Python生成词云的常用库wordcloud。 安装:pip install wordcloud github项目:https://github.com/amueller/word_cloud wordcloud对象有很多参数设定,可以绘制不同形状、颜色和尺寸的
  • 获取目录地址,读取文本d = path.dirname(__file__)text = open(path.join(d, 'haha.txt')).read()# 生成一个词云图像wordcloud = ...
  • 来源于:Python生成中文词云图 #添加自定义分词 import jieba from os import path #用来获取文档的路径 #词云 from PIL import Image import numpy as np import matplotlib.pyplot as plt #词云生成工具 fr...
  • 期末复习比较忙过段时间来专门写scrapy框架使用,今天介绍如何用python生成词云,虽然网上有很多词云生成工具,不过自己用python来写是不是更有成就感。今天要生成的是励志歌曲的词云,百度文库里面找了20来首,如...
  • python 生成词云图

    2019-02-14 20:40:45
    准备文本 长恨歌 作者 白居易 朝代 唐 ...#根据词频生成词云 wc . generate_from_frequencies ( word_counts ) #展示 plt . imshow ( wc ) plt . axis ( 'off' ) plt . show ( ) 运行结果
  • 这篇文章主要介绍了python根据文本生成词云图代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下效果代码from wordcloud import WordCloudimport codecs...
  • 大家在网上经常看到,下面看一些例子:那用python生成一个词云的话怎么办呢,首先要有一些词,随便找个吧,用see you again的歌词好了,放到again.txt里面,放着待会用。然后呢,咱们用 wrodcloud这个模块,他可以...
  • Python生成词云图片

    千次阅读 2020-02-18 19:51:43
    完整的分析过程: –数据的获取:通过爬虫获得(urllib | requests <获取页面内容> + re | bs4 <分析页面内容> ) –数据清洗:按照一定的格式文本进行处理 这里...
  • 作者:小灰辉 Python编程吧 相信大家对Python生成词云图再熟悉不过了,今天说说作为新手的我都踩到了哪些坑!Wordcloud是基于Python开发的词云图生成库,功能强大并使用简单,但wordcloud默认是不支持显示中文的,...
  • 1 概述利用Python生成简单的词云,需要的工具是cython,wordcloud与anaconda.2 准备工作包括安装cython,wordcloud与anaconda.2.1 安装anaconda选择对应的版本下载即可.2.2 安装cythoncython是为了安装wordcloud准备的....
  • 词云是一种数据可视化技术,用于表示文本数据,...为了在Python生成词云,需要的模块是– matplotlib,pandas和wordcloud。 要安装这些软件包,请运行以下命令:pip install matplotlibpip install pandaspip i...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,252
精华内容 2,900
关键字:

python生成词云图的过程

python 订阅