wordcloud_wordcloud安装 - CSDN
精华内容
参与话题
  • 详细介绍使用wordCloud设计词云

    千次阅读 2018-08-04 17:19:18
    wordCloud git地址:https://github.com/amueller/word_cloud wordColud examples地址:https://github.com/amueller/word_cloud/tree/master/examples 文章中的例子主要借鉴wordColud的examples,在文章对examples...

    wordCloud git地址:https://github.com/amueller/word_cloud

    wordColud examples地址:https://github.com/amueller/word_cloud/tree/master/examples

    文章中的例子主要借鉴wordColud的examples,在文章对examples中的例子做了一些改动。

    一、wordColud设计中文词云乱码

    使用wordColud设计词云的时候可能会产生乱码问题,因为wordColud默认的字体不支持中文,所以我们只需要替换wordColud的默认字体即可正常显示中文。

    1、下载字体(支持中文)

    字体下载链接:http://www.font5.com.cn/zitixiazai/1/151.html,我们使用simhei(黑体)来替换wordColud的默认字体。

    2、替换默认字体

    a、在字体文件*.tff字体文件(simhei.tff)拷贝到wordColud安装的文件夹中,文件夹路径:anaconda(python)-->lib-->site-packages-->wordcolud,如下图:

    其中矩形框出来的是wordColud默认的字体,椭圆形框的是我们下载的字体。

    b、修改wordcolud.py文件中的字体设置,打开改路径下的wordcolud.py文件,找到下图的所示的框出来的这一行(29行)

    将系统的DroidSansMono.tff修改为simhei.tff即可。

    二、wordColud示例

    1、设计一个简单的圆形词云

    import numpy as np
    import matplotlib.pyplot as plt
    from wordcloud import WordCloud,STOPWORDS
    from PIL import Image
    from os import path
    import matplotlib.pyplot as plt
    #用来正常显示中文
    plt.rcParams["font.sans-serif"]=["SimHei"]
    #用来正常显示负号
    plt.rcParams["axes.unicode_minus"]=False
    import os
    import random,jieba
    
    '''
    绘制单个词一个圆形的词云
    '''
    def single_wordColud():
        text = "第一 第二 第三 第四"
        #产生一个以(150,150)为圆心,半径为130的圆形mask
        x,y = np.ogrid[:300,:300]
        mask = (x-150) ** 2 + (y-150) ** 2 > 130 ** 2
        mask = 255 * mask.astype(int)
        wc = WordCloud(background_color="white",repeat=True,mask=mask)
        wc.generate(text)
    
        #将x轴和y轴坐标隐藏
        plt.axis("off")
        plt.imshow(wc,interpolation="bilinear")
        plt.show()

    2、以图片形状作为背景设计词云

    下面以蜡笔小新的这张图片作为背景来设计一个词云,我们通过读取一个txt文件,文件中包含了很多段落,然后通过jieba对句子进行分词,去除停用词之后,生成一张词云的照片。

    a、读取文件内容

    使用jieba分词后,词之间需要通过空格进行分割,不然在产生词云的时候回变成一个词。

    '''
    中文分词
    '''
    def segment_words(text):
        article_contents = ""
        #使用jieba进行分词
        words = jieba.cut(text,cut_all=False)
        for word in words:
            #使用空格来分割词
            article_contents += word+" "
        return article_contents

    b、读取停用词

    停用词包括一些标点符号,和一些没有实际意义的词,我们需要将这些词都去除。

    '''
    从文件中读取停用词
    '''
    def get_stopwords():
        dir_path = path.dirname(__file__) if "__file__" in locals() else os.getcwd()
        #获取停用词的路径
        stopwords_path = os.path.join(dir_path,"txt/stopwords.txt")
        #创建set集合来保存停用词
        stopwords = set()
        #读取文件
        f = open(stopwords_path,"r",encoding="utf-8")
        line_contents = f.readline()
        while line_contents:
            #去掉回车
            line_contents = line_contents.replace("\n","").replace("\t","").replace("\u3000","")
            stopwords.add(line_contents)
            line_contents = f.readline()
        return stopwords

    c、生成词云图片

    def drow_mask_wordColud():
        #获取当前文件的父目录
        d = path.dirname(__file__) if "__file__" in locals() else os.getcwd()
        mask = np.array(Image.open(path.join(d,"img/test.jpg")))
        text = open(path.join(d,"txt/test.txt"),"r",encoding="utf-8").read().
                replace("\n","").replace("\t","").replace("\u3000","")
        #对文本进行分词
        text = segment_words(text)
        #获取停用词
        stopwords = get_stopwords()
        #创建词云
        '''
        max_words:显示词的数量
        mask:背景
        stopwords:停用词,是一个set集合
        margin:词之间的间隔
        background_color:词云图片背景颜色
        '''
        wc = WordCloud(max_words=100,mask=mask,background_color="white",
                        stopwords=stopwords,margin=10,random_state=1).generate(text)
        default_colors = wc.to_array()
        # #保存词云图片
        # wc.to_file("a_new_hope.png")
        plt.imshow(default_colors,interpolation="bilinear")
        plt.axis("off")
        plt.show()

    3、自定义词云的颜色

    from wordcloud import WordCloud,get_single_color_func
    import matplotlib.pyplot as plt
    
    '''
    定义一个字体颜色设置类
    '''
    class GroupedColorFunc(object):
        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.defalt_color_func=get_single_color_func(default_color)
        def get_color_func(self,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.defalt_color_func
            return color_func
        def __call__(self,word,**kwargs):
            return self.get_color_func(word)(word,**kwargs)
    
    
    if __name__ == "__main__":
        text = "第一 第二 第三 第四 第五 第六"
        #创建词云
        wc = WordCloud(collocations=False,background_color="white").generate(text)
        #设置词的颜色
        color_to_words={
            #使用RGB来设置词的颜色
            "#00ff00":["第一","第五"],
            "red":["第三","第六"],
            "yellow":["第二"]
        }
        #设置词默认的颜色
        default_color = "blue"
        grouped_color_func = GroupedColorFunc(color_to_words,default_color)
        #设置词云的颜色
        wc.recolor(color_func=grouped_color_func)
        #显示词云图
        plt.figure()
        plt.imshow(wc,interpolation="bilinear")
        plt.axis("off")
        plt.show()

    通过词的颜色设置类,来设置不同词的颜色。

    4、自定义突出词的重要程度

    在生成词云的时候,默认使用的是使得词频高的词更加突出,突出的词会比较大,有时候我们已经计算出了词的权重,想通过词云图来突出权重大小的差别。

    from wordcloud import WordCloud
    import matplotlib.pyplot as plt
    import numpy as np
    
    def get_mask():
        x,y = np.ogrid[:300,:300]
        mask = (x-150) ** 2 + (y-150) ** 2 > 130 ** 2
        mask = 255 * mask.astype(int)
        return mask
    
    if __name__ == "__main__":
        #每个词的权重
        text = {"第一":0.1,"第二":0.2,"第三":0.3,"第四":0.4,"第五":0.5}
        wc = WordCloud(background_color="white",mask=get_mask())
        wc.generate_from_frequencies(text)
        plt.axis("off")
        plt.imshow(wc,interpolation="bilinear")
        plt.show()
    

    5、保存词云图片

    wc.to_file("test.png")

    git项目地址:https://github.com/steelOneself/NLP_learn/tree/master/wordColud_curse

    展开全文
  • wordcloud 作用如其名。本例核心模块,它把我们带权重的关键词渲染成词云 matplotlib 绘图模块,主要作用是把wordcloud生成的图片绘制出来并在窗口展示 numpy 图像处理模块,读取图片生成像素矩阵 PIL (pip install ...
  • 玩转wordcloud

    万次阅读 多人点赞 2019-04-24 13:53:12
    摘要:当我们手中有一篇文档,比如书籍、小说、电影剧本,若想快速了解其主要内容是什么,则可以采用绘制 WordCloud 词云图,显示主要的关键词(高频词)这种方式,非常方便。本文将介绍常见的英文和中文文本的词云...

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

    摘要: 当我们手中有一篇文档,比如书籍、小说、电影剧本,若想快速了解其主要内容是什么,则可以采用绘制 WordCloud 词云图,显示主要的关键词(高频词)这种方式,非常方便。本文将介绍常见的英文和中文文本的词云图绘制,以及 Frequency 频词频词云图。

    1. 英文词云

    我们先绘制英文文本的词云图,因为它相对简单一些。

    首先,准备好文本文件(用sublime打开如下):

    接下来,我们绘制一个最简单的矩形词云图,代码如下:

    # coding=utf-8
    
    from wordcloud import WordCloud
    import matplotlib.pyplot as plt
    
    # 打开文件
    text = open('constitution.txt').read()
    
    # 生成对象
    wc = WordCloud().generate(text=text)
    
    # 显示词云
    plt.imshow(wc, interpolation='bilinear')
    plt.axis('off')
    plt.show()
    
    # 保存文件
    wc.to_file('wordcloud.png')

    效果是不是看起来还不错,下面介绍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) //如果参数为空,则使用二维遮罩绘制词云。如果 mask 非空,设置的宽高值将被忽略,遮罩形状被 mask 取代。除全白(#FFFFFF)的部分将不会绘制,其余部分会用于绘制词云。如:bg_pic = imread('读取一张图片.png'),背景图片的画布一定要设置为白色(#FFFFFF),然后显示的形状为不是白色的其他颜色。可以用ps工具将自己要显示的形状复制到一个纯白色的画布上再保存,就ok了。
     
    scale : float (default=1) //按照比例进行放大画布,如设置为1.5,则长和宽都是原来画布的1.5倍。
     
    min_font_size : int (default=4) //显示的最小的字体大小
     
    font_step : int (default=1) //字体步长,如果步长大于1,会加快运算但是可能导致结果出现较大的误差。
     
    max_words : number (default=200) //要显示的词的最大个数
     
    stopwords : set of strings or None //设置需要屏蔽的词,如果为空,则使用内置的STOPWORDS
     
    background_color : color value (default=”black”) //背景颜色,如background_color='white',背景颜色为白色。
     
    max_font_size : int or None (default=None) //显示的最大的字体大小
     
    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,则忽略该方法。
     
    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)   //输出到文件

    # -*- coding: utf-8 -*-
    from wordcloud import WordCloud
    import matplotlib.pyplot as plt
    
    # 打开文本
    text = open('xyj.txt').read()
    # 生成对象
    wc = WordCloud(font_path='Hiragino.ttf', width=800, height=600, mode='RGBA', background_color=None).generate(text)
    
    # 显示词云
    plt.imshow(wc, interpolation='bilinear')
    plt.axis('off')
    plt.show()
    
    # 保存到文件
    wc.to_file('wordcloud.png') # 生成图像是透明的
    

    我们发现生成的词云有的不是词语,故我们增加jieba分词

    jieba分词器链接    https://blog.csdn.net/kun1280437633/article/details/80718954

    # -*- coding: utf-8 -*-
    from wordcloud import WordCloud
    import matplotlib.pyplot as plt
    import jieba
    
    # 打开文本
    text = open('xyj.txt').read()
    
    # 中文分词
    text = ' '.join(jieba.cut(text))
    print(text[:100])
    
    # 生成对象
    wc = WordCloud(font_path='Hiragino.ttf', width=800, height=600, mode='RGBA', background_color=None).generate(text)
    
    # 显示词云
    plt.imshow(wc, interpolation='bilinear')
    plt.axis('off')
    plt.show()
    
    # 保存到文件
    wc.to_file('wordcloud3.png')

    # -*- coding: utf-8 -*-
    from wordcloud import WordCloud
    from PIL import Image
    import numpy as np
    import matplotlib.pyplot as plt
    import jieba
    
    # 打开文本
    text = open('xyj.txt').read()
    
    # 中文分词
    text = ' '.join(jieba.cut(text))
    print(text[:100])
    
    # 生成对象
    mask = np.array(Image.open("black_mask.png"))
    wc = WordCloud(mask=mask, font_path='Hiragino.ttf', mode='RGBA', background_color=None).generate(text)
    
    # 显示词云
    plt.imshow(wc, interpolation='bilinear')
    plt.axis("off")
    plt.show()
    
    # 保存到文件
    wc.to_file('wordcloud4.png')

    # -*- coding: utf-8 -*-
    from wordcloud import WordCloud, ImageColorGenerator
    from PIL import Image
    import numpy as np
    import matplotlib.pyplot as plt
    import jieba
    
    # 打开文本
    text = open('xyj.txt').read()
    
    # 中文分词
    text = ' '.join(jieba.cut(text))
    print(text[:100])
    
    # 生成对象
    mask = np.array(Image.open("color_mask.png"))
    wc = WordCloud(mask=mask, font_path='Hiragino.ttf', mode='RGBA', background_color=None).generate(text)
    
    # 从图片中生成颜色
    image_colors = ImageColorGenerator(mask)
    wc.recolor(color_func=image_colors)
    
    # 显示词云
    plt.imshow(wc, interpolation='bilinear')
    plt.axis("off")
    plt.show()
    
    # 保存到文件
    wc.to_file('wordcloud5.png')

    # -*- coding: utf-8 -*-
    from wordcloud import WordCloud
    from PIL import Image
    import numpy as np
    import matplotlib.pyplot as plt
    import random
    import jieba
    
    # 打开文本
    text = open('xyj.txt').read()
    
    # 中文分词
    text = ' '.join(jieba.cut(text))
    print(text[:100])
    
    
    # 颜色函数
    def random_color(word, font_size, position, orientation, font_path, random_state):
        s = 'hsl(0, %d%%, %d%%)' % (random.randint(60, 80), random.randint(60, 80))
        print(s)
        return s
    
    # 生成对象
    mask = np.array(Image.open("color_mask.png"))
    wc = WordCloud(color_func=random_color, mask=mask, font_path='Hiragino.ttf', mode='RGBA', background_color=None).generate(text)
    
    # 显示词云
    plt.imshow(wc, interpolation='bilinear')
    plt.axis("off")
    plt.show()
    
    # 保存到文件
    wc.to_file('wordcloud6.png')

    # -*- coding: utf-8 -*-
    from wordcloud import WordCloud, ImageColorGenerator
    from PIL import Image
    import numpy as np
    import matplotlib.pyplot as plt
    import jieba.analyse
    
    # 打开文本
    text = open('xyj.txt').read()
    
    # 提取关键词和权重
    freq = jieba.analyse.extract_tags(text, topK=200, withWeight=True)
    print(freq[:20])
    freq = {i[0]: i[1] for i in freq}
    
    # 生成对象
    mask = np.array(Image.open("color_mask.png"))
    wc = WordCloud(mask=mask, font_path='Hiragino.ttf', mode='RGBA', background_color=None).generate_from_frequencies(freq)
    
    # 从图片中生成颜色
    image_colors = ImageColorGenerator(mask)
    wc.recolor(color_func=image_colors)
    
    # 显示词云
    plt.imshow(wc, interpolation='bilinear')
    plt.axis("off")
    plt.show()
    
    # 保存到文件
    wc.to_file('wordcloud7.png')

     

     

    展开全文
  • wordcloud的基本使用

    万次阅读 2018-06-19 16:15:46
    wordcloud的基本使用github:https://github.com/amueller/word_cloud 官方地址:https://amueller.github.io/word_cloud/ 来一个例子:[python] view plain copy print?”“” @author:FLY&amp...

    偶然机会,知道了词云,刚开始还只是利用图悦进行在线的分析,后来发现网上有源码,所以就转载过来,大家一起学习。



    wordcloud的基本使用

    github:https://github.com/amueller/word_cloud  
    官方地址:https://amueller.github.io/word_cloud/

    • 来一个例子:
      1. ”“” 
      2. @author:FLY 
      3. @software:PyCharm 
      4. @time:2017/08/24 
      5. ”“”  
      6. import pickle  
      7. from os import path  
      8. import jieba  
      9. import matplotlib.pyplot as plt  
      10. from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator  
      11. text =   
      12. with open(’人工智能及应用.txt’‘r’, encoding=‘utf8’) as fin:  
      13.     for line in fin.readlines():  
      14.         line = line.strip(’\n’)  
      15. # sep’.join(seq)以sep作为分隔符,将seq所有的元素合并成一个新的字符串  
      16. text += ’ ’.join(jieba.cut(line))  
      17. backgroud_Image = plt.imread(’man.jpg’)  
      18. print(‘加载图片成功!’)  
      19. ”’设置词云样式”’  
      20. wc = WordCloud(  
      21.     background_color=’white’,# 设置背景颜色  
      22.     mask=backgroud_Image,# 设置背景图片  
      23.     font_path=’C:\Windows\Fonts\STZHONGS.TTF’,  # 若是有中文的话,这句代码必须添加,不然会出现方框,不出现汉字  
      24.     max_words=2000# 设置最大现实的字数  
      25.     stopwords=STOPWORDS,# 设置停用词  
      26.     max_font_size=150,# 设置字体最大值  
      27.     random_state=30# 设置有多少种随机生成状态,即有多少种配色方案  
      28. )  
      29. wc.generate_from_text(text)  
      30. print(‘开始加载文本’)  
      31. #改变字体颜色  
      32. img_colors = ImageColorGenerator(backgroud_Image)  
      33. #字体颜色为背景图片的颜色  
      34. wc.recolor(color_func=img_colors)  
      35. # 显示词云图  
      36. plt.imshow(wc)  
      37. # 是否显示x轴、y轴下标  
      38. plt.axis(’off’)  
      39. plt.show()  
      40. # 获得模块所在的路径的  
      41. d = path.dirname(file)  
      42. # os.path.join():  将多个路径组合后返回  
      43. wc.to_file(path.join(d, ”h11.jpg”))  
      44. print(‘生成词云成功!’)  
      ”“” 
      @author:FLY
      @software:PyCharm
      @time:2017/08/24
      “””
      import pickle
      from os import path
      import jieba
      import matplotlib.pyplot as plt
      from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator
      text = ”
      with open(‘人工智能及应用.txt’, ‘r’, encoding=’utf8’) as fin:
      for line in fin.readlines():
      line = line.strip(‘\n’)

    sep’.join(seq)以sep作为分隔符,将seq所有的元素合并成一个新的字符串

    text += ' '.join(jieba.cut(line))
    backgroud_Image = plt.imread('man.jpg')
    print('加载图片成功!')
    '''设置词云样式'''
    wc = WordCloud(
    background_color='white',# 设置背景颜色
    mask=backgroud_Image,# 设置背景图片
    font_path='C:\Windows\Fonts\STZHONGS.TTF', # 若是有中文的话,这句代码必须添加,不然会出现方框,不出现汉字
    max_words=2000, # 设置最大现实的字数
    stopwords=STOPWORDS,# 设置停用词
    max_font_size=150,# 设置字体最大值
    random_state=30# 设置有多少种随机生成状态,即有多少种配色方案
    )
    wc.generate_from_text(text)
    print('开始加载文本')

    改变字体颜色

    img_colors = ImageColorGenerator(backgroud_Image)

    字体颜色为背景图片的颜色

    wc.recolor(color_func=img_colors)

    显示词云图

    plt.imshow(wc)

    是否显示x轴、y轴下标

    plt.axis('off')
    plt.show()

    获得模块所在的路径的

    d = path.dirname(file)

    os.path.join(): 将多个路径组合后返回

    wc.to_file(path.join(d, "h11.jpg"))
    print('生成词云成功!')


    • 运行结果:


     

    • 生成词云方法

    word_cloud 生成词云有两个方法。from text 和 from frequencies 。即文本生成和频率生成,每一个都有对应的函数可以使用

    1. generate(text)      Generate wordcloud from text.  
    2. generate_from_text(text)    Generate wordcloud from text.  
    3. generate_from_frequencies      Create a word_cloud from words and frequencies.  
    4. fit_words      Create a word_cloud from words and frequencies.  
    generate(text)      Generate wordcloud from text. 
    generate_from_text(text) Generate wordcloud from text.
    generate_from_frequencies Create a word_cloud from words and frequencies.
    fit_words Create a word_cloud from words and frequencies.


    • wordcloud包的基本用法
      1. class wordcloud.WordCloud(font_path=None, width=400, height=200, margin=2,   
      2. ranks_only=None, prefer_horizontal=0.9,mask=None, scale=1, color_func=None,   
      3. max_words=200, min_font_size=4, stopwords=None, random_state=None,background_color=‘black’,   
      4. max_font_size=None, font_step=1, mode=‘RGB’, relative_scaling=0.5, regexp=None,   
      5. collocations=True,colormap=None, normalize_plurals=True)  
      class wordcloud.WordCloud(font_path=None, width=400, height=200, margin=2,  
      ranks_only=None, prefer_horizontal=0.9,mask=None, scale=1, color_func=None,
      max_words=200, min_font_size=4, stopwords=None, random_state=None,background_color='black',
      max_font_size=None, font_step=1, mode='RGB', relative_scaling=0.5, regexp=None,
      collocations=True,colormap=None, normalize_plurals=True)


    • 这是wordcloud的所有参数,下面具体介绍一下各个参数:
    1. font_path : string //字体路径,需要展现什么字体就把该字体路径+后缀名写上,如:font_path = '黑体.ttf'
    2. width : int (default=400) //输出的画布宽度,默认为400像素
    3. height : int (default=200) //输出的画布高度,默认为200像素
    4. prefer_horizontal : float (default=0.90) //词语水平方向排版出现的频率,默认 0.9 (所以词语垂直方向排版出现频率为 0.1
    5. mask : nd-array or None (default=None) //如果参数为空,则使用二维遮罩绘制词云。如果 mask 非空,设置的宽高值将被忽略,遮罩形状被 mask 取代。
    6. 除全白(#FFFFFF)的部分将不会绘制,其余部分会用于绘制词云。如:bg_pic = imread('读取一张图片.png'),
    7. 背景图片的画布一定要设置为白色(#FFFFFF),然后显示的形状为不是白色的其他颜色。可以用ps工具将自己要显示的形状复制到一个纯白色的画布上再保存,就ok了。
    8. scale : float (default=1) //按照比例进行放大画布,如设置为1.5,则长和宽都是原来画布的1.5倍。
    9. min_font_size : int (default=4) //显示的最小的字体大小
    10. font_step : int (default=1) //字体步长,如果步长大于1,会加快运算但是可能导致结果出现较大的误差。
    11. max_words : number (default=200) //要显示的词的最大个数
    12. stopwords : set of strings or None //设置需要屏蔽的词,如果为空,则使用内置的STOPWORDS
    13. background_color : color value (default=”black”) //背景颜色,如background_color='white',背景颜色为白色。
    14. max_font_size : int or None (default=None) //显示的最大的字体大小
    15. mode : string (default=”RGB”) //当参数为“RGBA”并且background_color不为空时,背景为透明。
    16. relative_scaling : float (default=.5) //词频和字体大小的关联性
    17. color_func : callable, default=None //生成新颜色的函数,如果为空,则使用 self.color_func
    18. regexp : string or None (optional) //使用正则表达式分隔输入的文本
    19. collocations : bool, default=True //是否包括两个词的搭配
    20. colormap : string or matplotlib colormap, default=”viridis //给每个单词随机分配颜色,若指定color_func,则忽略该方法。
    21. fit_words(frequencies) //根据词频生成词云【frequencies,为字典类型
    22. generate(text) //根据文本生成词云
    23. generate_from_frequencies(frequencies[, ...]) //根据词频生成词云
    24. generate_from_text(text) //根据文本生成词云
    25. process_text(text) //将长文本分词并去除屏蔽词(此处指英语,中文分词还是需要自己用别的库先行实现,使用上面的 fit_words(frequencies)
    26. recolor([random_state, color_func, colormap]) //对现有输出重新着色。重新上色会比重新生成整个词云快很多。
    27. to_array() //转化为 numpy array
    28. to_file(filename) //输出到文件


    • 简要讲下几个会影响图像清晰问题的WordCloud的参数:
    1. mask遮罩图,字的大小布局和颜色都会依据遮罩图生成。其实理论上这对字大小和清晰程度的影响不大,
    2. 但是遮罩图色和背景色background_color如果易混淆,则可能是一个导致看起来不清晰的因素;
    3. 另外遮罩图自身各个颜色之间的对比不强烈,也可能使图看起来层次感不够
    4. 比如,一些图明度比较高,再加上背景白色,有可能导致字色太浅(背景色background_color又是白色)于是看起来不够“清晰”。
    5. background_color背景色,默认黑。
    6. 这个本来其实也不怎么影响清晰度,但是,就像之前在mask中提到的,如果遮罩图像颜色过浅、背景设置白色,
    7. 可能导致字看起来“不清晰”。而实际上,我对一个浅色遮罩图分别用白、黑两种背景色后发现,
    8. 黑色背景的强烈对比之下会有若干很浅也很小的词浮现出来,而之前因背景色、字色过于相近而几乎无法用肉眼看出这些词。
    9. mode默认“RGB”。根据说明文档,如果想设置透明底色的云词图,那么可以设置background_color=None, mode="RGBA"
    10. 但是!!!实际中我尝试设置透明背景色并没有成功过!
    11. 当我选取的遮罩图是白色底时,如果background_color设置为"white""black"时,生成的云词确实是对应的“白色”“黑色”;
    12. 但是按照上述参数设置透明色时,结果出来依然是白色。
    13. 当我选取的遮罩图是透明底时,那么不管我background_color设置为"white""black",还是None加上mode="RGBA"
    14. 结果都是把背景部分当做黑色图块,自动匹配黑色的字!——也就是并没有实现透明底的云词。
    15. 谁如果实现了透明底色的方案,欢迎给我留言。目前这个疑惑我打算先不研究了,放到以后再看。
    16. max_font_size最大字号。源文件中也有讲到,图的生成会依据最大字号等因素去自动判断词的布局。
    17. 经测试,哪怕同一个图像,只要图本身尺寸不一样(比如我把一个300×300的图拉大到600×600再去当遮罩),那么同样的字号也是会有不同的效果。
    18. 原理想想也很自然,字号决定了字的尺寸,而图的尺寸变了以后,最大字相对于图的尺寸比例自然就变了。
    19. 所以,需要根据期望显示的效果,去调整最大字号参数值。

    20. min_font_size最小字号。不设置的情况下,默认是4
    21. 尝试了设置比4大的字号,例如810,结果就是原本小于设定值且大于4号的词都直接不显示了,其它内容和未设置该值时都一样。

    22. relative_scaling表示词频和云词图中字大小的关系参数,默认0.5
    23. 0时,表示只考虑词排序,而不考虑词频数;为1时,表示两倍词频的词也会用两倍字号显示。

    24. scale根据说明文档,当云词图很大的,加大该值会比使用更大的图更快,但值越高也会越慢(计算更复杂)。
    25. 默认值是1。实际测试中,更大的值,确实输出图像看起来更精细(较小较浅的词会颜色更重,也感觉清楚,大的词差异不明显)。
    26. 不过,可能由于我选的图不大、词也没有很多,所以差距并没有很大,缩小排列一下就基本上辨别不出多少差别了。

    27. 以上参考来源: http://blog.csdn.net/heyuexianzi/article/details/76851参考地址https://blog.csdn.net/fly910905/article/details/77763086/

    展开全文
  • Python-wordcloud-初次尝试 作为一个Python初学者,作为学习的开始,这次我根据《一件有趣的事:用Python 爬了爬自己的微信朋友》中的方法测试了一遍效果。这里记录下目前用的wordcloud这个包时遇到的一些问题吧...

    Python-wordcloud-初次尝试

    作为一个Python初学者,作为学习的开始,这次我根据《一件有趣的事:用Python 爬了爬自己的微信朋友》中的方法测试了一遍效果。这里记录下目前用的wordcloud这个包时遇到的一些问题吧。(具体执行的完整代码我就不放进来了,反正也是依据链接中写的为主。)

    使用wordcloud可以方便地生成云词图,这在数据可视化的方面会给我们带来很多便利。

    看别人教程写的各种顺,然而实际操作起来才发现,初学者还是容易遇到很多坑。


    说明

    环境:

    已安装Anaconda3 (64-bit) 4.4.0Python 3.6.1)。其中,代码调试在Spyder 3.1.4中进行,安装包则直接打开Anaconda Prompt调用cmd.exe后进行。

    系统为Windows 7 和 Windows 10。


    安装包的坑

    安装文件的获取

    首先,安装包时,直接用 pip install wordcloud是会报错的,会有文件缺失的问题。这一点不少人都有类似反馈。

    解决方案:

    github下载wordcloud的包,解压缩后,在对应目录下用python setup.py install安装。

    VC++ 14的缺失问题

    安装wordcloud时出现报错信息:

    error: Microsoft Visual C++ 14.0 is required. Get it with “Microsoft Visual C++ Build Tools”: http://landinghub.visualstudio.com/visual-cpp-build-tools

    这种情况下,其实直接跟着提示内容进行就好。

    解决方案:

    打开报错提示中的链接,下载并安装Visual C++ 2015 Build Tools

    这个问题,我在一台电脑上这样解决(成功安装了wordcloud包并正常调试了相关Python代码)之后,尝试在另一台电脑上再安装该包,结果出现了新问题:Visual C++ 2015 Build Tools,从官网下载下来的安装程序visualcppbuildtools_full.exe,打开后在安装过程中需要联网获取文件,但是由于网络限制导致无法获取,于是无法安装!并且没有搜到含有完整安装文件的包。(注:该电脑所处的网络环境不一样,一般网页中的文件下载没问题,但是build tools安装时联网获取文件就受限制而不成功。)

    离线安装VC++14.0 build tools的解决方案:

    • 在能正常通过visualcppbuildtools_full.exe 联网获取安装文件的电脑上,在系统自带的cmd.exe中在对应目录下执行:
    visualcppbuildtools_full.exe /layout

    之后,选择下载目录存放离线安装包,然后就可以把安装文件下载下来了。

    • 然后在不能联网安装的电脑上,安装离线包即可。

    此处是参考msdn上找到的方法。

    其它尝试

    当遇到安装Visual C++ 2015 Build Tools无法获取安装文件时(visualcppbuildtools_full.exe 只有3M,却提示默认安装的话需要4G空间,可想而知需要下载不少安装文件,实际上最后下载的安装文件也有2G左右),曾经尝试过是否可以不安装4G这么大的build tools而只安装VC++14的运行库,毕竟应该只是缺库吧?

    毕竟,实际上运行库Microsoft Visual C++ 2015 Redistributable Update 3下载链接在此)的安装程序只有十几M大小,并且能够正常下载安装。

    但我试下来的结果是,安装了这个东西以后依然会有前面一样的报错。所以还是继续老老实实下载了完整的build tools。如果你有更好的方案(不用安装这个占4G左右的大家伙,不用借助另一个网络环境下的电脑),可以和我留言。

    备注

    github下载到的原wordcloud安装包中,提到如果安装还是有问题的的话可以试试安装链接中的.whl文件。

    不过,我是没下载这个.whl文件的,前面讲到的坑补完就好了。


    字体的坑

    Win10和Win7的默认字体后缀竟然不一样

    生成云词图的过程中,自己设置字体为“微软雅黑 粗体”,在系统(Win10)路径中找到了这个字体的路径“C:\Windows\Fonts\msyhbd.ttc”

    没想到,代码复制到第二台电脑(Win7)下执行时却报错。本来以为都是Windows默认库里的字体应该没什么问题,打开一看才发现Win7这里的字体后缀是“ttf”

    改过就正常了。

    提醒以后注意:

    哪怕是Windows上执行过没问题的代码,换个同样Windows的电脑,也要注意 系统默认路径和相关文件 是否有变化!

    并不是全默认就都一样啊啊啊啊!!!


    遮罩底图的坑

    错误提示Gray-scale?

    NotImplementedError: Gray-scale images TODO

    一开始,我用的底图会出现如上报错。

    如果把出错的如下这行

    plt.imshow(my_wc.recolor(color_func=i_colors))

    去掉,那么就不会报错,但是生成的云词图会只有形状、没有原图的颜色。

    出现报错时用的底图如下:
    用这个图会报错

    这个图片有什么问题呢?为什么会有“Gray-scale images”这种提示,难道我这个图的灰度有问题?明明好几个颜色啊好吗?甚至我专心弄了个纯黑白的图,发现纯黑白色底图都能正常执行代码。

    不过,把上面出错的图,和两个不出错的图对比一下读取后的数据,就能看出问题在哪里了。

    如下图所示:

    coloring0=np.array(Image.open("出错图.png")) #问题图,实际上,下面的白底“底图1”就是将该图直接截图保存生成的
    coloring1=np.array(Image.open("后面附上不同背景测试图对比的底图1.bmp")) #白底
    coloring2=np.array(Image.open("后面附上不同背景测试图对比的底图2.png")) #透明底

    coloring0是出错的图

    核查报错位置源代码:

    class ImageColorGenerator(object):
    ......#此处省略很多代码
     def __call__(self, word, font_size, font_path, position, orientation, **kwargs):
     ......#此处省略很多代码
            if patch.ndim == 2:
                raise NotImplementedError("Gray-scale images TODO")
     ......#此处省略很多代码

    这就可以确定这个报错只因 “维度为2” 引起的。

    哦,终于明白这个“Gray-scale”是什么鬼了。这货,每个点都只有2个值来表明颜色啊。后面白底的图,没有透明色,每个点也是正常的3个值;透明底的图,多了第4个值来表示透明度。而这个“没有Gray-scale的图”,应该就是没有灰度参数吧?之前选图时候还真没注意这点,毕竟我也不是学美术出身,乍一眼也看不出来这个图的颜色没有灰度所以有可能没有灰度参数啊。

    解决方案:

    对于新手小白,如果不想在读取图像后直接改Value加一列的话,最简单的操作就是换个能用的图再执行吧。

    如果确定就是只要这个图的样子,那么可以转化格式,或者再不行截个图保存再用也是可以的。

    总之,这个报错的原因,不是代码问题,仅仅是图的格式问题


    图片输出的坑

    图片没有正常显示 新手关于plt.savefig的用法

    这里我用plt.savefig("这里是生成图片的路径")来存储生成的云词图。

    一开始,将plt.savefig放在plt.show之后,结果只是生成了空白的图。后来在这篇文章《【Python】解决使用plt.savefig保存图片时一片空白》中了解到:

    “在plt.show() 后实际上已经创建了一个新的空白的图片(坐标轴),这时候你再plt.savefig() 就会保存这个新生成的空白图片。”

    所以,只要把plt.savefig放在plt.show之前即可解决这个问题。

    我生成云词图的最后几行代码如下:

    plt.imshow(my_wc)
    plt.axis("off")
    plt.savefig("H:/temp/temp.jpg",dpi=200) #用反斜杠的话会报错
    plt.show()

    另一种输出图像的方式 .to_file

    WordCloud中,自带.to_file可以将云词图输出到文件。

    具体方法:将上述代码中plt.savefig一行替换为

    my_wc.to_file("H:/temp/temp.jpg")

    即可。

    可以发现两种输出方式的区别:
    - plt.savefig默认尺寸是和终端中显示差不多的缩略版的图(大小432×288),可以通过dpi调节精度改善清晰度,具体可见本文中“图片大小和精度的影响”的描述。
    - .to_file,则输出的是每个字都精确显示的完整云词图,非常清晰,放大后可以看到连最小的字都是清晰完整地显示,当然默认尺寸也很大。

    为方便对比,可见本文后面WordCloud参数的调节这部分里scale=2(使用plt.savefig输出,dpi=200)、scale=32(使用plt.savefig输出,dpi=200)、scale=2(使用.to_file输出)的3个云词图。

    生成图像清晰度的调节

    图片大小和精度的影响

    因为这次用plt.savefig默认生成的图感觉不是很清晰,尺寸不够大,所以这里在plt.savefig中加上了参数dpi调整精度。

    当然,同样一张图,精度越高,自然尺寸也是越大的。

    不过,至于精度调整成多少合适(只为了肉眼看起来清晰),是看情况而定。虽然理论上精度越大就越清晰,但是在遮罩图、词数量等因素确定的情况下,有时候更大的精度只是把图的尺寸放大,但肉眼可见的清晰程度并不会真的就提高。

    如果图太小太密集,那么可能是默认精度的局限导致不清晰。需要调整精度参数dpi放大图片。

    但是如果图片足够大,字看起来也不小,但是仍然不清晰,或者布局不自然,那么有可能是云词图生成时本身的参数设置问题。可见下面的描述。

    WordCloud参数的调节

    import matplotlib.pyplot as plt
    from wordcloud import WordCloud,ImageColorGenerator
    import numpy as np
    import PIL.Image as Image
    
    coloring=np.array(Image.open("H:\temp\meerca_2.png"))
    my_wc=WordCloud(background_color="white",max_words=2000,
                    mask=coloring, max_font_size=60,random_state=42,scale=8,
                    font_path="C:\Windows\Fonts\msyhbd.ttf").generate(word_space_split)  #这里word_space_split是前面生成的以空格分割的需要生成云词的词库字符串(str)

    这里简要讲下几个会影响图像清晰问题的WordCloud的参数:

    • mask遮罩图,字的大小布局和颜色都会依据遮罩图生成。其实理论上这对字大小和清晰程度的影响不大,但是遮罩图色和背景色background_color如果易混淆,则可能是一个导致看起来不清晰的因素;另外遮罩图自身各个颜色之间的对比不强烈,也可能使图看起来层次感不够。

      • 比如,一些图明度比较高,再加上背景白色,有可能导致字色太浅(背景色background_color又是白色)于是看起来不够“清晰”。
    • background_color背景色,默认。这个本来其实也不怎么影响清晰度,但是,就像之前在mask中提到的,如果遮罩图像颜色过浅、背景设置白色,可能导致字看起来“不清晰”。而实际上,我对一个浅色遮罩图分别用白、黑两种背景色后发现,黑色背景的强烈对比之下会有若干很浅也很小的词浮现出来,而之前因背景色、字色过于相近而几乎无法用肉眼看出这些词

    • mode:默认“RGB”。根据说明文档,如果想设置透明底色的云词图,那么可以设置background_color=None, mode="RGBA"
      • 但是!!!实际中我尝试设置透明背景色并没有成功过
        • 当我选取的遮罩图是白色底时,如果background_color设置为"white""black"时,生成的云词确实是对应的“白色”“黑色”;但是按照上述参数设置透明色时,结果出来依然是白色
        • 当我选取的遮罩图是透明底时,那么不管我background_color设置为"white""black",还是None加上mode="RGBA",结果都是把背景部分当做黑色图块,自动匹配黑色的字!——也就是并没有实现透明底的云词。
        • 谁如果实现了透明底色的方案,欢迎给我留言。目前这个疑惑我打算先不研究了,放到以后再看。

    底图1(白底,640×435):
    底图1(白底,640×435)
    底图2(透明底,300×300):
    底图2(透明底,300×300)
    底图1与底图2生成云词图效果对比,除background_colormode参数以外其它参数不变:
    白底和透明底图,配不同的background_color和mode参数对比
    注:1. 两个底图尺寸也有点区别。生成的图片是用plt.savefig(参数dpi=200),也可以看出生成图在布局上有差异。2. 本文中,其它云词图实例中,均是使用“底图1”(本身是白色底)这个图。

    • max_font_size最大字号。源文件中也有讲到,图的生成会依据最大字号等因素去自动判断词的布局。经测试,哪怕同一个图像,只要图本身尺寸不一样(比如我把一个300×300的图拉大到600×600再去当遮罩),那么同样的字号也是会有不同的效果。原理想想也很自然,字号决定了字的尺寸,而图的尺寸变了以后,最大字相对于图的尺寸比例自然就变了。所以,需要根据期望显示的效果,去调整最大字号参数值
      • 相对应的参数min_font_size最小字号。不设置的情况下,默认是4。尝试了设置比4大的字号,例如8、10,结果就是原本小于设定值且大于4号的词都直接不显示了,其它内容和未设置该值时都一样
    • relative_scaling:表示词频和云词图中字大小的关系参数,默认0.5。为0时,表示只考虑词排序,而不考虑词频数;为1时,表示两倍词频的词也会用两倍字号显示。本文中的案例,均用的默认值,未特别设置该参数。
    • scale:根据说明文档,当云词图很大的,加大该值会比使用更大的图更快,但值越高也会越慢(计算更复杂)。默认值是1。实际测试中,更大的值,确实输出图像看起来更精细(较小较浅的词会颜色更重,也感觉清楚,大的词差异不明显)。不过,可能由于我选的图不大、词也没有很多,所以差距并没有很大,缩小排列一下就基本上辨别不出多少差别了。
      • 经测试发现,在词没有很多(这里len(word_space_split)=6310)和图没有很大的情况下,词不变,图不变,则scale越大,运行速度越慢。实际上,本案例中取“32”时已经比“2”慢了很多秒,这个时间差可以体会体会到,本文暂不对时间差和效率问题进行精确研究了。
      • 另外经测试发现,其它参数完全相同情况下,scale越大,图片占空间越小。这里scale分别取“2”“10”“32”时,获得的图片大小分别为207K、110K、75.8K。(这里图用plt.savefig输出,dpi=200,实际输出尺寸为1200×800。)
      • 下面选取底图1时scale分别取“2”“10”“32”的缩略效果(其实我还试了“64”,但是一跑代码电脑就卡了,卡到别的进程都无法切到的程度,若干分钟后实在等不了了强制结束,卡到Crtl+C都不反应、只能强制从任务管理器结束进程而且按了很久才有反应,呵呵哒):

    scale=2, scale=10, scale=32 对比
    是不是没看出什么区别?那么下面放下“2”“32”对应的云词图本身。

    scale=2的云词图如下(使用plt.savefig输出,dpi=200):
    scale=2

    scale=32的云词图如下(使用plt.savefig输出,dpi=200):
    scale=32

    scale=2的云词图如下(使用.to_file输出):
    用.to_file输出

    注:可以注意上面3个图中,右上方“唯有”字样的右上角“如同”字样(较小字)的显示差异,进行对比。

    • random_state:不同的值会让字图的分布不一样。

    不同random_state的效果对比

    *注:本文的云词图案例中,词库里“1f60a”之类的字符没有去掉,这些本来是代表某些emoji的。我个人觉得这不算乱码吧,所以留着了。
    1f60a

    • 更多参数的设置,可参看源文件中的说明

    *附上源文件wordcloud.py中对WordCloud这一函数的各个参数的解释:

    Word cloud object for generating and drawing.
    
        Parameters
        ----------
        font_path : string
            Font path to the font that will be used (OTF or TTF).
            Defaults to DroidSansMono path on a Linux machine. If you are on
            another OS or don't have this font, you need to adjust this path.
    
        width : int (default=400)
            Width of the canvas.
    
        height : int (default=200)
            Height of the canvas.
    
        prefer_horizontal : float (default=0.90)
            The ratio of times to try horizontal fitting as opposed to vertical.
            If prefer_horizontal < 1, the algorithm will try rotating the word
            if it doesn't fit. (There is currently no built-in way to get only
            vertical words.)
    
        mask : nd-array or None (default=None)
            If not None, gives a binary mask on where to draw words. If mask is not
            None, width and height will be ignored and the shape of mask will be
            used instead. All white (#FF or #FFFFFF) entries will be considerd
            "masked out" while other entries will be free to draw on. [This
            changed in the most recent version!]
    
        scale : float (default=1)
            Scaling between computation and drawing. For large word-cloud images,
            using scale instead of larger canvas size is significantly faster, but
            might lead to a coarser fit for the words.
    
        min_font_size : int (default=4)
            Smallest font size to use. Will stop when there is no more room in this
            size.
    
        font_step : int (default=1)
            Step size for the font. font_step > 1 might speed up computation but
            give a worse fit.
    
        max_words : number (default=200)
            The maximum number of words.
    
        stopwords : set of strings or None
            The words that will be eliminated. If None, the build-in STOPWORDS
            list will be used.
    
        background_color : color value (default="black")
            Background color for the word cloud image.
    
        max_font_size : int or None (default=None)
            Maximum font size for the largest word. If None, height of the image is
            used.
    
        mode : string (default="RGB")
            Transparent background will be generated when mode is "RGBA" and
            background_color is None.
    
        relative_scaling : float (default=.5)
            Importance of relative word frequencies for font-size.  With
            relative_scaling=0, only word-ranks are considered.  With
            relative_scaling=1, a word that is twice as frequent will have twice
            the size.  If you want to consider the word frequencies and not only
            their rank, relative_scaling around .5 often looks good.
    
            .. versionchanged: 2.0
                Default is now 0.5.
    
        color_func : callable, default=None
            Callable with parameters word, font_size, position, orientation,
            font_path, random_state that returns a PIL color for each word.
            Overwrites "colormap".
            See colormap for specifying a matplotlib colormap instead.
    
        regexp : string or None (optional)
            Regular expression to split the input text into tokens in process_text.
            If None is specified, ``r"\w[\w']+"`` is used.
    
        collocations : bool, default=True
            Whether to include collocations (bigrams) of two words.
    
            .. versionadded: 2.0
    
        colormap : string or matplotlib colormap, default="viridis"
            Matplotlib colormap to randomly draw colors from for each word.
            Ignored if "color_func" is specified.
    
            .. versionadded: 2.0
    
        normalize_plurals : bool, default=True
            Whether to remove trailing 's' from words. If True and a word
            appears with and without a trailing 's', the one with trailing 's'
            is removed and its counts are added to the version without
            trailing 's' -- unless the word ends with 'ss'.
    
        Attributes
        ----------
        ``words_`` : dict of string to float
            Word tokens with associated frequency.
    
            .. versionchanged: 2.0
                ``words_`` is now a dictionary
    
        ``layout_`` : list of tuples (string, int, (int, int), int, color))
            Encodes the fitted word cloud. Encodes for each word the string, font
            size, position, orientation and color.
    
        Notes
        -----
        Larger canvases with make the code significantly slower. If you need a
        large word cloud, try a lower canvas size, and set the scale parameter.
    
        The algorithm might give more weight to the ranking of the words
        than their actual frequencies, depending on the ``max_font_size`` and the
        scaling heuristic.

    【完】


    展开全文
  • wordcloud 安装包

    2020-07-30 23:32:11
    whl文件,可以直接pip安装
  • 【学习笔记】wordCloud的基本使用

    万次阅读 多人点赞 2018-02-08 11:17:58
    最近研究NLP,结果用wordCloud展示效果很好,学习了一下,其实很简单,...下面分Wordcloud类的使用,github上的英文词云例子,自行做的中文词云例子分别记录一下:一、WordCloud类class wordcloud.WordCloud( ...
  • wordcloud使用教程

    千次阅读 2019-04-30 09:03:35
    2.下载库文件wordcloud‑1.3.2‑cp36‑cp36m‑win32.whl ,然后pip install wordcloud‑1.3.2‑cp36‑cp36m‑win32.whl pyhton库文件下载地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/...
  • WordCloud 下载

    2020-07-19 23:33:04
    windows 64位系统下载 python3以上版本。。
  • Python之wordcloud库使用

    万次阅读 2018-06-10 22:28:49
    wordcloud是优秀的词云展示第三方库,以词语为基本单位,通过图形可视化的方式,更加直观和艺术的展示文本。 库安装 网络正常情况下命令行输入pip install wordcloud,如果提示报错按以下步骤进行安装 ...
  • AttributeError: module 'wordcloud' has no attribute 'WordCloud'

    千次阅读 多人点赞 2018-05-14 10:55:16
    已安装wordcloud库运行import wordcloud c = wordcloud.WordCloud()报错:Traceback (most recent call last): File "E:/PycharmProjects/MOOC/wordcloud.py", line 1, in &lt;module&gt; ...
  • ImportError: cannot import name 'WordCloud'"错误,但是我的linux已经安装好了wordcloud这个包,运行py文件总是报这个错误!见图如下: 最后查阅了各种博客才发现解决办法很简单,python文件的命名不能用...
  • wordcloud库安装失败的最佳解决方案

    万次阅读 热门讨论 2018-06-04 15:21:53
    看到很多人下载wordcloud失败,这里给你们自己实测成功的方法第一步:http://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud 页面下载所需的wordcloud模块的whl文件,这里选择wordcloud-1.4.1-cp36-cp36m-win_amd64...
  • echarts-wordcloud炫酷的字符云图

    千次阅读 2019-05-13 16:48:56
    https://www.npmjs.com/package/echarts-wordcloud vue组件这样引入:import 'echarts-wordcloud' 展示结果类似下面这样的
  • wordcloud包下载安装问题

    万次阅读 2018-07-22 11:57:22
    直接打开cmd安装wordcloud会报错如下 百度一查,需要building wheel,造轮子啊,在这个网页上下载wheelhttps://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud,但是我打开之后没有找到wordcloud的wheel,从A...
  • python正常安装wordcloud包,但还是提示ImportError:cannot import name ‘WordCloud’的解决办法……
  • 本篇博客主要内容:1、解决python2安装wordcloud中出现的问题。2、解决python3安装wordcloud中出现的问题。词云制作的时候需要 wordcloud 库。在python2中安装wordcloud中遇见了以下问题:error:Microsoft Visual...
  • 在安装完词云wordcloud后,首次运行可能会出现如下错误。 在下图中是一个将字符串“I like Python,I am learning Python” 利用wordcloud进行分词。出现了错误,错误在于没有安装matplotlib模块。 需要在(命令...
  • Pycharm安装Wordcloud

    千次阅读 2018-07-04 00:21:08
    python库下载地址:http://www.lfd.uci.edu/~gohlke/pythonlibs我的python是3.6版本的,下载对应版本的wordcloudwordcloud‑1.4.1‑cp36‑cp36m‑win_amd64.whl下载完解压,cmd,命令行进入解压后的文件夹,pip3 ...
  • Python—wordcloud(pip安装失败问题解决)

    万次阅读 多人点赞 2019-10-30 19:54:38
    一、wordcloud是python第三方词云库,windows7_64位系统pip安装方式时出现安装失败问题,安装报错内容包含如下内容: Microsoft Visual C++ 14.0 is required. Get it with “Microsoft Visual C++ Build 解决方案...
1 2 3 4 5 ... 20
收藏数 8,191
精华内容 3,276
关键字:

wordcloud