16.pyecharts词云图

作者: 无聊的兔子 | 来源:发表于2021-08-26 19:02 被阅读0次

    一、适用条件
    1、词云图:词云图可以很好的展示哪些个词是重点词,对于文本分析有很大作用。
    二、代码实现
    1.导入所需包
    安装wordcloud的时候,容易出现问题.
    参考链接:
    https://blog.csdn.net/weixin_45231460/article/details/104273699
    安装方法参考:

    import json
    import jieba
    import matplotlib.pyplot as plt
    from pyecharts import options as opts
    from pyecharts.charts import WordCloud
    from pyecharts.commons.utils import JsCode
    from pyecharts.globals import ThemeType
    from pyecharts.render import make_snapshot
    #from snapshot_phantomjs import snapshot
    from snapshot_pyppeteer import snapshot
    import pandas as pd
    import numpy as np 
    import re # 正则表达式
    import collections # 词频统计库
    import numpy as np # numpy数据处理库
    from PIL import Image # 图像处理库
    import wordcloud as wordcloud 
    import matplotlib.pyplot as plt
    from wordcloud.wordcloud import colormap_color_func
    

    2.数据整理

    text = open("word.txt",encoding='utf8').read()
    text = text.replace('\n',"").replace("\u3000","")
    text_cut = jieba.lcut(text)
    
    # 文本预处理
    pattern = re.compile(u'\t|\n|\.|-|:|;|\)|\(|\?||\!|\(|\)|"|') # 定义正则表达式匹配模式
    string_data = re.sub(pattern, '', text) # 将符合模式的字符去除
    
    seg_list_exact = jieba.cut(string_data, cut_all = False) # 精确模式分词
    object_list = []
    remove_words = [u'的', u',',u'和', u'是', u'随着', u'对于', u'对',u'等',u'能',u'都',u'。',u' ',u'、',u'中',u'在',u'了',u'通常',u'如果',u'我们',u'有',u'很',u'好',u'我',
       u'另',u'不',u'因为',u'可以',u'所以',u'也',u'到',u'去',u'原因',u'因',u':',u'/',u'【',u'离',u'】'] # 自定义去除词库
    for word in seg_list_exact: # 循环读出每个分词
        if word not in remove_words: # 如果不在去除词库中
            object_list.append(word) # 分词追加到列表
    # 词频统计
    word_counts = collections.Counter(object_list) # 对分词做词频统计
    word_counts_top10 = word_counts.most_common(10) # 获取前10最高频的词
    # word_counts = word_counts.most_common()
    print (word_counts_top10) # 输出检查
    

    3 .词云图

    ############wordcloud方法
    mask = np.array(Image.open('word1.jpg')) # 定义词频背景
    wc = wordcloud.WordCloud(
        font_path='C:/Windows/Fonts/simhei.ttf', # 设置字体格式
        mask=mask, # 设置背景图
        background_color='white',
        max_words=200, # 最多显示词数
        max_font_size=100 # 字体最大值
    )
    wc.generate_from_frequencies(word_counts) # 从字典生成词云
    # image_colors = wordcloud.ImageColorGenerator(mask) # 从背景图建立颜色方案
    # wc.recolor(color_func=image_colors) # 将词云颜色设置为背景图方案
    plt.imshow(wc) # 显示词云
    plt.axis('off') # 关闭坐标轴
    plt.show() # 显示图像
    ############
    #######pyecharts方法
    c = (
        WordCloud()
        .add(
            "", 
            word_counts, 
            word_gap=20,###词间距
            word_size_range=[10, 100], 
            mask_image="word1.jpg",  ###设置背景图
        )
        .set_global_opts(title_opts=opts.TitleOpts(title="WordCloud-自定义图片"))
        .render("1.html")
    )
    #######
    
    
    16_1.jpg

    相关文章

      网友评论

        本文标题:16.pyecharts词云图

        本文链接:https://www.haomeiwen.com/subject/xkeabltx.html