美文网首页
python大数据之简易词云图

python大数据之简易词云图

作者: Bugl0v3r | 来源:发表于2017-02-15 17:20 被阅读1612次

    python实现简易词云图

    参考自大数据文摘

    0b01:环境准备

    • 推荐使用Anaconda 它包含了(numpy,codecs,pandas,matplotlib),当然也可以自行安装这些包。
    • 此外还要安装jieba(分词包),WordCloud(词云包)
      直接pip install jieba,pip install WordCloud即可
    • 用来生成词云的txt文件 (比如,聊天记录,影视剧本,台词等等)
    • 词云背景图(形状)。(默认为矩形)
    • 素材获取百度云盘分享密码: kbw7

    0b10: 代码实现

    • 测试环境 Anaconda2(python2.7 64bit) on win10
    # -*- coding:utf-8 -*-
    import jieba  # 分词包
    import numpy  # numpy计算包
    import codecs  # codecs提供open方法指定打开的文件的语言编码,它会在读取时自动转换为内部的unicode
    import pandas  # 统计学工具包
    import matplotlib.pyplot as plt
    from wordcloud import WordCloud, ImageColorGenerator    # 词云包
    from scipy.misc import imread
    
    # 导入文本,分词处理
    file = codecs.open(u'大话西游.txt', 'r')
    content = file.read()
    file.close()
    segment = []
    segs = jieba.cut(content)   # 使用jieba分词
    for seg in segs:
        if len(seg) > 1 and seg != '\r\n':
            segment.append(seg)
    
    # 去停用词(文本去噪)
    words_df = pandas.DataFrame({'segment': segment})
    # 字典中的keys就是DataFrame里面的columns,但是没有index的值,所以需要自己设定,不设定默认是从零开始计数。
    words_df.head()
    stopwords = pandas.read_csv("stopwords.txt", index_col=False,
                                quoting=3, sep='\t', names=['stopword'], encoding="utf8")
    words_df = words_df[~words_df.segment.isin(stopwords.stopword)]
    
    # 词汇频率表
    words_stat = words_df.groupby(by=['segment'])['segment'].agg({"count": numpy.size})
    words_stat = words_stat.reset_index().sort_values(by="count", ascending=False)
    
    # 自定义词云背景
    bimg = imread('heart.jpeg')
    wordcloud = WordCloud(background_color="white", mask=bimg, font_path='simhei.ttf')
    wordcloud = wordcloud.fit_words(words_stat.head(4000).itertuples(index=False))
    bimgColors = ImageColorGenerator(bimg)
    plt.axis("off")
    plt.imshow(wordcloud.recolor(color_func=bimgColors))
    plt.show()
    

    0b11: 测试实例

    大话西游词云图

    相关文章

      网友评论

          本文标题:python大数据之简易词云图

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