精华内容
下载资源
问答
  • python列表生成词云图
    2022-06-09 14:51:21

    运用python语言将文本绘制词云图方法如下:

    '''
    将词云绘制过程打包成函数
    def drawWordCloud(s,masklmg,tofile):参数说明如下:
    S--文本
    masklmag--词云背景图
    tofile--词云图片保存地址
    '''
    import wordcloud
    import jieba
    import imageio
    
    
    def drawWordCloud(s, maskImag, tofile):
        f = open(s, 'r', encoding='utf-8')
        t = f.read()
        f.close()
        ls = jieba.lcut(t)
        txt = " ".join(ls)
        wc = wordcloud.WordCloud(font_path=r'C:\Windows\Fonts\微软雅黑\msyhbd.ttc',
                                 mask=maskImag,
                                 width=1000, height=700,
                                 background_color='white',
                                 )
        wc.generate(txt)
        wc.to_file(tofile)
        wc.to_image().show()
    
    
    maskImag = imageio.imread('mask/chinaMap.png')
    fileTxt = '决胜全面建成小康社会UTF(190531).txt'
    tofile = "grwc2.png"
    drawWordCloud(fileTxt, maskImag, tofile)

    更多相关内容
  • python生成词云图

    2020-12-21 11:45:53
    需要使用python的第三方类库jieba、matplotlib、wordcloud,如果没有请用pip安装。 代码实现 import jieba import matplotlib.pyplot as plt #相当于c的宏定义 from wordcloud import WordCloud,STOPWORDS text="" f...
  • Python生成词云图.pdf

    2021-06-28 17:41:42
    Python生成词云图.pdf
  • 使用现有的txt文本和图片,就可以用wordcloud包生成词云图。大致步骤是: 1、读取txt文本并简单处理; 2、读取图片,以用作背景; 3、生成词云对象,保存为文件。 需要用到3个库:jieba(用于分割文本为词语)、...
  • 这篇文章主要介绍了python根据文本生成词云图代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 效果 代码 from wordcloud import WordCloud import ...
  • python生成中文词云图

    2022-05-07 17:58:11
    简单词云图设计

    jieba库是一个非常优秀的中文分词软件,其中一个应用就是来完成一个词云图的设计

    首先你需要准备这些库

    import jieba
    import matplotlib.pyplot as plt
    import matplotlib
    from wordcloud import WordCloud

    一般来讲jieba库和matplotlib库安装没太有问题,wordcloud第三方库会较为繁琐,可以采用先安装wheel再使用pip安装下载到本地的wordcloud

    然后完成读取文本的函数

    def read_txt():
        txt = open("三体节选.txt", "r", encoding="utf-8").read()
        wordlist = jieba.lcut(txt)
        wordcount = {}
        for word in wordlist:
            if len(word) == 1:
                continue
            if word not in wordcount.keys():
                wordcount[word] = 0
            wordcount[word] += 1
        return wordcount, wordlist

    最后就可以直接创建词云图了

    def create_word_cloud(wordcount):
        matplotlib.rcParams['figure.figsize'] = (12.0, 12.0)
        word_cloud = WordCloud(font_path='origin_data/simhei.ttf', background_color='black', max_font_size=80)
        word_cloud = word_cloud.fit_words(wordcount)
        plt.imshow(word_cloud)
        plt.axis("off")                # 此处是为了隐藏坐标轴
        plt.show()
    if __name__ == "__main__":
        word_dict, word_list = read_txt()
        create_word_cloud(word_dict)

    运行结果如下:

     

     
    

     

     

    展开全文
  • 生成词云图之前,首先要做一些准备工作 1.安装结巴分词库 pip install jieba Python中的分词模块有很多,他们的功能也都是大同小异,我们安装的结巴分词 是当前使用的最多的类型。 下面我来简单介绍一下结巴...
  • 有的时候我们把数据整理收集整理到excel中,那么要把excel中的某列文本数据制作词云图怎么做呢? 从最简单的说起。 最简单的词云图就是这种,英文的,不读取文件,不指定背景形状图片,不指定字体。 #复制文本用字符...
  • 一、安装 wordcloud pip install wordcloud 二、加载包、设置路径 import os from wordcloud import WordCloud ...wc.generate(text) # 根据文本生成词云图 plt.imshow(wc) # 显示词云图 如果 jupyter
  • 今天教大家用wrodcloud模块来生成词云,我读取了一篇小说并生成了词云,先看一下效果: 效果一: 效果二: 根据效果分析的还是比较准确的,小说中的主人公就是“程理”,所以出现次数最多。中有两种...
  • 基于Python词云生成

    2018-11-12 13:00:08
    基于python实现的的免安装词云生成器——使用python实现文章的词云图的绘制,然后需要具有交互界面,并且能够在没有python环境的电脑下运行,方便不懂编程的人直接使用。
  • 五、python代码 1、基础词云,参考代码如下: import jieba from wordcloud import WordCloud import matplotlib.pyplot as plt text = '用python制作词云,生成词云图片,只用10行python代码生成词云' cut_word = ...

    一、词云简介

    词云,也称为文本云或标签云。在词云图片中,关键词在文本中出现的次数越多,则表示该词越重要,其在词云中所占面积区域也越大,出现次数越少,所占面积越小。词云可任意更换背景为白色的图形以改变词云形状。

    二、WordCloud原理简介

    wordcloud的原理比较好理解,大致为:

    1. 首先对文本数据进行分词,使用process_text()方法
    2. 接着计算每个词在文本中的出现频率,生成一个字典。词频用于确定一个词的重要性,即词云文件中词语的显示大小。
    3. 然后根据词频的数值按比例生成一个图片的布局,类IntegralOccupancyMap 是该词云的数据可视化方式的核心。生成词的颜色、位置、方向等。
    4. 最后将词按对应的词频在词云画布上生成图片,核心方法是generate_from_frequencies,不论是generate()还是generate_from_text()都最终用到generate_from_frequencies
    5. 完成词云上各词的着色,默认是随机着色,通过调用to_file()完成词云文件的保存。

    参考:https://www.cnblogs.com/jasonhaven/p/7596799.html?ivk_sa=1024320u

    三、WordCloud参数

    font_path字体路径string,如font_path='msyh.ttc'
    mask绘制的词云形状nd-array/None,default=None,如果参数为空,则使用二维遮罩绘制词云。如果 mask 非空,设置的宽高值将被忽略,遮罩形状被mask取代。全白(#FFFFFF)的部分将不会绘制,其余部分会用于绘制词云。
    width画布宽度int,default=400
    height画布高度int,default=200
    background_color背景颜色default="black",如background_color='white',背景颜色为白色
    max_words词的最大个数number,default=200
    stopwords需要过滤掉的词如果为空,则使用内置的stopwords
    prefer_horizontal单词水平方向排版出现频率float,default=0.9,则词语垂直方向排版出现频率为 0.1
    scale按照比例进行放大画布float,default=1,如设置为1.5,则长和宽都是原来画布的1.5倍
    min_font_size显示最小字体大小default=4
    max_font_size显示最大字体大小int/None,default=None
    font_step字体大小迭代步长int,default=1,若步长大于1,会加快运算但是可能导致结果出现较大的误差
    mode背景string,default="RGB",当参数为"RGBA"并且background_color为None时,背景为透明
    relative_scaling单词频率对其字体大小的权重float,一般设置为0.5
    color_func颜色函数default=None
    regexp使用正则表达式分隔输入的文本string or None (optional),默认为 r"\w[\w']+"
    random_state每个单词返回一个PIL颜色
    collocations是否包括二元词组bool, default=True
    colormap对每个词随机分配颜色default="viridis",若指定color_func,则忽略该方法
    normalize_plurals移除单词末尾的's'bool,default=True

    四、使用步骤

    安装相应的第三方库:

    pip install wordcloud
    
    pip install jieba
    
    pip install matplotlib
    

    因为wordcloud里的process_text函数是针对英文进行分词的,无法对中文更好地分词,只在各种标点符号中切分中文,显然这并不是我们想要的效果,所以我们若要生成中文的词云,需要先对中文文本进行分词再调用相应的函数。 分词操作: 通过jieba分词,用空格拼接词语字符串,process_text函数就能返回正确的分词计数的字典。

    五、python代码

    1、基础词云,参考代码如下:

    import jieba
    from wordcloud import WordCloud
    import matplotlib.pyplot as plt
    
    text = '用python制作词云,生成词云图片,只用10行python代码生成词云'
    cut_word = " ".join(jieba.cut(text))
    
    wc = WordCloud(font_path = r'/msyh.ttc')
    wc.generate(cut_word)
    
    plt.imshow(wc)
    plt.axis("off") # 不显示坐标轴
    plt.show()
    

    词云展示:

    备注:增加停用词处理,效果会更好,可参考以下形状词云代码。

    2、形状词云,参考代码如下:

    import jieba
    from wordcloud import WordCloud
    import matplotlib.pyplot as plt
    import numpy as np
    from PIL import Image
    
    
    # 读取文本
    with open("./data/sentences.txt",encoding="utf-8") as f:
    sentence = f.read()
    print(sentence)
    sentence_cut = jieba.lcut(sentence) # 生成分词列表
    text = ' '.join(sentence_cut) # 以空格连接字符串
    
    #获取停用词 去掉不需要显示的词
    stopwords_path = 'data/stopwords.txt'
    stopwords = [line.strip() for line in open(stopwords_path,'r',encoding='utf-8').readlines()]
    
    # 读入背景图片
    img = Image.open("./monkey2.jpg") # 打开遮罩图片
    mask = np.array(img) #将图片转换为数组
    
    wc = WordCloud(font_path="msyh.ttc",
       mask=mask,
       width = 1000,
       height = 700,
       background_color='white',
       max_words=200,
       stopwords=sentence).generate(text)
    
    # 以下代码显示图片
    plt.imshow(wc, interpolation='bilinear')# 用plt显示图片
    plt.axis("off") # 不显示坐标轴
    plt.show()
    # wc.to_file("wordcloud2.png") # 保存为本地图片
    

    注意:调用generate和generate_from_text两种方法一样,最终都是会调用generate_from_text方法。

    使用的形状原图:

    ​​​​​​​

    词云生成结果:

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
    本文链接:https://blog.csdn.net/kerry_55/article/details/122090231

    展开全文
  • 利用python制作词云图片,其中包含利用jieba、maploit等python第三方支持库
  • python绘制中文词云图

    千次阅读 2021-03-17 03:00:09
    1. 明确任务最近学习过程中看到很多分析报告中都有运用到可视化的词云,也有看到五花八门的工具教程,刚好有一份《都挺好》电视剧的弹幕源数据。... 使用wordcloud 将分词得到的词汇统计绘制词云图涉及难点...

    1. 明确任务

    最近学习过程中看到很多分析报告中都有运用到可视化的词云,也有看到五花八门的工具教程,刚好有一份《都挺好》电视剧的弹幕源数据。便决定用这份数据尝试使用python绘制词云。

    任务内容1. 在python中读取excel文件(《都挺好》弹幕源数据.xlsx)提取出弹幕内容

    2. 对弹幕内容文本进行结巴分词,设置并过滤掉停用词

    3. 使用wordcloud 将分词得到的词汇统计绘制词云图

    涉及难点1. 读写excel文件

    2. jieba 中文分词

    3. wordcloud 词云展示库

    2. 具体操作

    2.1 安装相应的第三方库

    本次练习需要使用到的库包括读取excel文件的openpyxl(xlwt、xlrd、pandas),进行分词的jieba,以及进行词云图绘制的numpy、matplotlib、wordcloud。

    因为不确定在此前安装过哪些库,因此先使用pip list查看已经安装好的库文件。查询之后发现只有wordcloud和openpyxl没有安装,分别使用pip install openpyxl和pip install wordcloud 即可安装。

    2.2 读写文件

    读写文件在之前了解过 with open 的方法,用于读写txt,csv文件。但是若要读写excel文件则需要使用特定的库。例如 openpyxl、xlwt/wlrd 以及pandas这几种第三方库来读写。本次使用的是openpyxl来进行的文件读写。

    相关部分代码:import openpyxl #此处使用的是openpyxl读取文件,此外还有 xlrd,pandas 读取文件的方式(有待补充)

    filename=r'F:\数据分析练手\都挺好-弹幕源数据.xlsx' #打开excel文件

    workbook=openpyxl.load_workbook(filename) #读取excel文件

    sheet = workbook.active

    rows = sheet.max_row #当前表格最大的行数

    columns = sheet.max_column #当前表格最大的列数

    selectrow = sheet['1'] #读取表格第一行的内容

    selectcol = sheet['E'] #读取表格指定'E'列(即弹幕内容列)的内容

    2.3 使用结巴分词模块对内容分词结巴分词支持三种分词模式:全模式,精确模式和搜索引擎模式,普遍使用的是精准模式,此次亦是使用的精准模式。其分词结果是一个可迭代的 generator,可使用for循环得到分词后的每一个词汇。这里定义一个函数来进行结巴分词。

    相关部分代码: import jieba #引入jieba

    stopwords={}.fromkeys(['的','得','地','吗','哈哈哈哈','啦','呢','吧','了','啊','这','是','我',':','?','!',' ','。','😊','\xa0', '😂']) #定义停用词字典

    selectcol=sheet['E']

    def jieba_fc(column): #定义一个分词函数进行结巴分词

    words=[] #创建一个空列表存放分词结果

    for col in column:

    word = str(col.value) #因为弹幕中有数字,为避免识别问题,将所有的内容格式都转换为字符串

    words_fc = jieba.cut (word,cut_all=False) #使用jieba精准模式进行分词

    for j in words_fc: #对分词结果进行停用词筛选

    if j not in stopwords: #如果不在停用词字典中

    words.append(j) #将它存放到words列表中

    return ' '.join(words) #将结果返回成一个以空格为间隔的字符串

    text=jieba_fc(selectcol) #调用此函数,并将结果字符串存入text中

    2.4 用wordcloud绘制词云

    相关部分代码:from wordcloud import WordCloud #词云展示模块

    from wordcloud import ImageColorGenerator #

    import PIL.Image as image #图像处理模块

    import matplotlib.pyplot as plt #图像展示模块

    import matplotlib.font_manager as fm #中文处理模块

    import numpy as np

    mask=np.array(image.open('148.jpg')) #图片背景参考形状

    wc=WordCloud(

    background_color="white", #背景颜色

    max_words=150, #最多显示的词数

    mask=mask, #设置图片的背景

    max_font_size=60, #最大的字符

    random_state=42, #

    font_path='C:/Windows/Fonts/simkai.ttf' #中文处理,用系统自带的字体

    ).generate(text) #generate 只能处理str文本不能处理list文本

    #对词云图各项参数进行调整,使词云图更美观

    my_font=fm.FontProperties(fname='C:/Windows/Fonts/simkai.ttf') #词云字体设置

    image_colors=ImageColorGenerator(mask) #基于彩色图像的颜色生成器 提取背景图片颜色

    wc.recolor(color_func=image_colors) # 将词云颜色设置为背景图的颜色

    plt.axis("off") #为云图去掉坐标轴

    plt.show() #画云图,显示

    plt.imshow(wc,interpolation="bilinear") #开始画图

    wc.to_file("dth.png") #输出一个png文件保存云图

    2.5效果图参数调整之前的词云图

    wAAACwAAAAAAQABAEACAkQBADs=

    初始词云图背景图片

    wAAACwAAAAAAQABAEACAkQBADs=

    背景图设置了背景图,字体颜色等参数的词云图

    wAAACwAAAAAAQABAEACAkQBADs=

    都挺好弹幕词云图

    3. 遇到的问题在进行结巴分词的时候,运行代码导致格式错误

    “AttributeError: ‘int’ object has no attribute ‘decode’”

    经过检查发现是因为弹幕中有包含’666’等数字的内容,在结巴分词之后被计算机定义为’int’类型,导致在进行后续的计算时无法被识别而报错。初次尝试wordcloud词云绘制时,在wc=WordCloud(…).generate(str(words)) 代码中,因generate 只能处理str文本不能处理list文本,将words列表直接使用str转换成字符串,导致词云图出现以下情况:

    wAAACwAAAAAAQABAEACAkQBADs=

    出现问题的词云图.jpg

    在使用wordcloud时,其内置分词程序会对传入的字符串进行再次分词,而直接使用str的方式转换的字符串中词与词之间包含了大量的” ‘ ‘ “,使得wordcloud再次分词时产生混乱。因此列表转字符串时可以使用 ‘空格’.join(列表)的方式去转换,减少词汇之间的符号,使wordcloud能够正确分词。

    4. 优化改进

    读取文件方面本次使用的是openpyxl库进行文件读取,此外还有xlrd模块和pandas库均可进行excel文件的读取。可以对几种方式进行尝试比较,比较三者之间的优劣差异。

    结巴分词方面结巴分词可以进行自定义词典,本次分词之后可以看出有一些有特定含义的词汇并没有被jieba识别,因此可以进一步添加新词使其达到更高的正确率。此外,结巴分词还可以进行词频,词性分析标注,可以去深入学习使用。

    词云绘制方面本次词云绘制只是简单的使用了wordcloud进行绘制,该模块还有很多其他的参数设置未进行尝试,比如统计词频进行词云绘制,根据词频高低调节字体大小,在wordcloud中设置屏蔽词汇,给现有词云重新上色等等。

    https://www.jianshu.com/p/027c493ab779

    展开全文
  • 利用python制作词云图

    2022-08-11 16:14:48
    词云图是一种为了文本数据的视觉表示,由词汇组成类似云的彩色图形,当需要统计文本中出现词汇的规模大小时,我们可以使用此类图形。本文将介绍如何用python代码制作词云图
  • Python生成词云

    千次阅读 2021-01-13 15:02:38
    1 概述利用Python生成简单的词云,需要的工具是cython,wordcloud与anaconda.2 准备工作包括安装cython,wordcloud与anaconda.2.1 安装anaconda选择对应的版本下载即可.2.2 安装cythoncython是为了安装wordcloud准备的....
  • Python绘制中文词云图

    千次阅读 2021-10-12 15:21:59
    2、可根据图片样式绘制自己想要的词云图 3、下面上代码: import jieba import numpy as np import PIL.Image as Image from wordcloud import WordCloud #读取txt文件 word = open("test.txt","r")...
  • Python——绘制词云图

    千次阅读 2021-08-25 17:35:06
    Python——绘制词云图
  • 如何同时用如何同时用python处理多个文本生成词云图,这篇文章就够了处理多个文本生成词云图,这篇文章就够了# -*- coding: utf-8 -*-"""Created on Wed Apr 22 21:22:42 2020@author: Administrator"""# -*- coding...
  • python制作词云图

    千次阅读 2022-01-25 13:53:41
    一、相关库及函数 ...1、生成词云对象 classwordcloud.WordCloud(font_path=None,width=400,height=200,margin=2,ranks_only=None,prefer_horizontal=0.9,mask=None,scale=1,color_func=None...
  • python生成词云,不报错但也不显示相应的词云图片
  • Python分词与词云图生成
  • txt格式的词云文本素材 wordcloud(词云)、jieba(中文分词)、numpy(数组处理)、PIL(读取图片)4个库。 没有安装的话需要在cmd里pip install 一下,使用jupyter也可以在Anaconda Powershell Prompt 里安装。 ...
  • 词云’,这个词,我刚开始接触时,是一头雾水,可哪去搜,走了很多弯路。这几天在书店一本书上看到具体的说明,回到家,在电脑上一试,过然可以。我就把这个分享给大家,也做为我自己的备份吧。 我自己总结,简单...
  • 使用wordcloud模块,生成云图,测试文本为: Betty Botter bought some butter but she said the butter’s bitter. If I put it in my batter it will make my batter bitter. So, she bought some better butter,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,181
精华内容 3,672
关键字:

python列表生成词云图