zoukankan      html  css  js  c++  java
  • 【python练习】生成词云图

    1、使用wordcloud库生成词云图

    import wordcloud
    import jieba
    # from scipy.misc import imread #新版本已经没有imread接口,使用下面的命令导入
    from matplotlib.pyplot import imread
    '''
    什么是词云:以词语为基本单元,根据在文本中出现的频率设计不同大小以形成视觉上不同效果,形成关键词云层,或关键词渲染,从而使读者一瞥即可领略文本的主旨
    实现:通过wordcloud库的核心类WordCloud类实现,默认以空格或标点为分隔符对目标文本进行分词处理,对于中文文本,分词处理需要用户来完成,
    一般先将中文文本分词处理,然后再空格拼接。再调用wordcloud库函数
    词云参数:
    font_path='msyh.ttc' # 指定字体文件的完整路径,默认为None
    width=800  #生成图片宽度,默认为400像素
    height=600  #生成图片高度,默认为200像素
    mask = mask  # 词云形状,默认方形图
    min_font_size  #  词云中最小的字体字号,默认为4号
    max_font_size  #  词云中最大的字体字号,默认为None 根据高度自动调节
    max_words 词云中最大词数 默认200
    stopwords 被排除词列表,不再词云中显示
    background_color 图片背景颜色,默认为黑色
    
    jieba库:解决中文分词问题
    精确分词:jieba.lcut(txt)
    全模式:将句子中所有可以成词的词语都扫描出来,会存在冗余 jieba.lcut(s, cut_all = True)
    搜素引擎模式:在精确模式下,对长词再次切分,提高召回率,适合用于搜索引擎分词  jieba.lcut_for_search(s)
    jieba.add_word("XX") : 给jieba库中增加词
    '''
    if __name__ == '__main__':
        # 英文文本生成词云图
        txt = 'review reviewer bug bug bug bug test test test test test review issus'
        wd = wordcloud.WordCloud().generate(txt)  # 根据文本生成词云
        wd.to_file('test1.jpg')  # 生成图片
    
        # 中文文本配合jieba库生成词云图
        txt = '勇敢热爱勤奋勤奋热爱坚强 '
        words = jieba.lcut(txt)  # 精确分词 返回列表
        newtxt = ' '.join(words) # 空格拼接 返回字符串
        wd = wordcloud.WordCloud(font_path='msyh.ttc', width=500, height=300).generate(newtxt) # 设置字体不然无法识别 默认 400 200
        wd.to_file('中文词云.png')
    
        # 文件读取生成词云图  结合mask设置词云背景图
        mask = imread('mask.jpg') #下载背景图放入当前目录下
        with open('word.txt', mode='r+', encoding='utf-8') as f:
            word = f.read()
        words = jieba.lcut(word)  # 精确分词 返回列表
        newtxt = ' '.join(words) # 空格拼接 返回字符串
        wd = wordcloud.WordCloud(background_color='white',
                                 font_path='msyh.ttc',
                                 width=800,
                                 height=600,
                                 mask = mask,
                                 ).generate(newtxt) # 设置字体不然无法识别 默认 400 200
        wd.to_file('词云.jpg')
    

     

  • 相关阅读:
    oracle之 监听器无法启动的几个原因总结
    Hive之 数据类型
    Hive之 hive的三种使用方式(CLI、HWI、Thrift)
    Hive之 hive架构
    megajson 高性能的json序列化、反序列化工具
    golang json 处理的一些例子代码
    Golang把所有包括底层类库,输出到stderr的内容, 重新定向到一个日志文件里面?
    Golang的 signal
    OAuth 2.0
    golang产生guid
  • 原文地址:https://www.cnblogs.com/zhaoyujiao/p/15481593.html
Copyright © 2011-2022 走看看