zoukankan      html  css  js  c++  java
  • 新技能 get —— 使用 python 生成词云

    什么是词云(word cloud)呢?词云又叫文字云,是对文本数据中出现频率较高的“关键词”在视觉上的突出呈现,形成关键词的渲染形成类似云一样的彩色图片,从而一眼就可以领略文本数据的主要表达意思。

    0. 常见词云生成工具

    从技术上来看,词云是一种有趣的数据可视化方法,互联网上有很多的现成的工具:

    • Wordle是一个用于从文本生成词云图而提供的游戏工具
    • Tagxedo 可以在线制作个性化词云
    • Tagul 是一个 Web 服务,同样可以创建华丽的词云
    • Tagcrowd 还可以输入web的url,直接生成某个网页的词云
      ……

    1. 库的准备

    • jieba
    • matplotlib
    • wordcloud

    2. 10 行代代码

    #coding: UTF-8
    import jieba
    from wordcloud import WordCloud
    import matplotlib.pyplot as plt
    
    text_from_file = open('文件.txt', 'rb').read()
    wordlist = jieba.cut(text_from_file, cut_all=True)           # 首先使用 jieba 中文分词工具进行分词
    wordlist_space_split = ' '.join(wordlist)
    my_wordcloud = WordCloud().generate(wordlist_space_split)
    
    plt.imshow(my_wordcloud)            # 以图片的形式显示词云
    plt.axis('off')                     # 关闭坐标轴
    plt.show()

    刚开始运行这十行代码的时候,只显式了若干彩色的小矩形框,中文词语显式不出来,以为是万恶的 UTF8 问题,debug一下,发现 print 结巴分词的结果是可以显示中文的,那就是 wordcloud 生成词语的字体库问题了。开源的好处来了,直接进入wordcloud.py 的源码,找字体库相关的代码:

    FONT_PATH = os.environ.get("FONT_PATH", os.path.join(os.path.dirname(__file__), "DroidSansMono.ttf"))

    wordcloud 默认使用了DroidSansMono.ttf 字体库,改一下换成一个支持中文的ttf 字库(比如simsun.ttc,常规-宋体), 重新运行一下这十行代码,就可以了。

  • 相关阅读:
    函数式接口(Functional Interface)
    解决maven install报错:java.lang.NoClassDefFoundError: org/codehaus/plexus/compiler/util/scan/InclusionScanException
    logstash收集系统日志配置
    logstash的安装,启动与输出
    elasticsearch安装head插件
    elasticsearch启动常见错误
    elasticsearch的window的安装和启动
    linux下搭建jenkins
    jenkins在搭建中常见的问题
    window下操作jenkins查看页面的几种方式
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9421936.html
Copyright © 2011-2022 走看看