zoukankan      html  css  js  c++  java
  • 使用python绘制词云

    最近在忙考试的事情,没什么时间敲代码,一个月也没几天看代码,最近看到可视化的词云,看到网上也很多这样的工具,

    但是都不怎么完美,有些不支持中文,有的中文词频统计得莫名其妙、有的不支持自定义形状、所有的都不能自定义颜色

    于是网上找了一下,决定用python绘制词云,主要用到的是wordcloud库,安装只需要pip isntall wordcloud就行,

    数据用的是酒店评论的数据,代码如下:

    # -*- coding: utf-8 -*-
    import matplotlib.pyplot as plt
    import pickle
    from wordcloud import WordCloud,STOPWORDS,ImageColorGenerator
    import jieba
    # import codecs
    
    # fin = codecs.open('HotelComments.txt',mode = 'r', encoding = 'utf-8')
    # print fin.read()
    
    # 第一次运行程序时将分好的词存入文件
    # text = ''
    # with open('HotelComments.txt') as fin:
    #     for line in fin.readlines():
    #         line = line.strip('
    ')
    #         text += ' '.join(jieba.cut(line))
    #         text += ' '
    # fout = open('text.txt','wb')
    # pickle.dump(text,fout)
    # fout.close()
    
    # 直接从文件读取数据
    fr = open('text.txt','rb')
    text = pickle.load(fr)
    
    backgroud_Image = plt.imread('girl.jpg')
    wc = WordCloud( background_color = 'white',    # 设置背景颜色
                    mask = backgroud_Image,        # 设置背景图片
                    max_words = 2000,            # 设置最大现实的字数
                    stopwords = STOPWORDS,        # 设置停用词
                    font_path = 'C:/Users/Windows/fonts/msyh.ttf',# 设置字体格式,如不设置显示不了中文
                    max_font_size = 50,            # 设置字体最大值
                    random_state = 30,            # 设置有多少种随机生成状态,即有多少种配色方案
                    )
    wc.generate(text)
    image_colors = ImageColorGenerator(backgroud_Image)
    wc.recolor(color_func = image_colors)
    plt.imshow(wc)
    plt.axis('off')
    plt.show()

    效果图:

    自定义词云形状:

    参考博客:

    http://blog.csdn.net/tanzuozhev/article/details/50789226

    http://blog.csdn.net/qq_16912257/article/details/52458515

  • 相关阅读:
    Go语言中Path包用法
    golang读取文件
    golang 判断文件或文件夹是否存在
    一个好玩的 屏蔽别人审查元素F12 右键
    view Table组件报错 You may have an infinite update loop in watcher with expression "columns"
    边框渐变色
    eclipse采用export方式打war包,结果里面的文件不一致
    jqgrid和vue结合的问题
    关于socket通信bind()返回值错误:10049
    Mybatis in 查询的实现
  • 原文地址:https://www.cnblogs.com/CQUTWH/p/6129931.html
Copyright © 2011-2022 走看看