Python笔记:热词分析2020-01-01

热词分析在公众趋势分析、舆情分析有很宽广的应用,我们来看看怎么从一个TXT文件中分析出文章的热词出来,我们采用流行的第三方“结巴”包来实现。

首先安装第三方包(matplotlib,jieba,wordcloud,numpy)mmatplotlib主要来绘制热力云图,jieba来做热词分析,wordcloud词云展示,numpy做多维数组处理。

网上弄段代码:


import matplotlib

import matplotlib.pyplot as plt #数据可视化

import jieba #词语切割

import wordcloud #分词

from wordcloud import WordCloud,ImageColorGenerator,STOPWORDS #词云,颜色生成器,停止

import numpy as np #科学计算

from PIL import Image #处理图片

def ciyun():

    #打开文本

    textfile = open('input.txt').read() #读取文本内容

    wordlist = jieba.cut_for_search(textfile)#切割词语

    space_list = ' '.join(wordlist) # 链接词语

    backgroud = np.array(Image.open('2.jpg')) #背景图片,只有黑白图才能按照形状生成词云

    mywordcloud = WordCloud(width=4200, height=3600,

                            background_color= 'white',#背景颜色

                            mask=backgroud, #写字用的背景图,从图片中提取颜色

                            max_words=500, #最大词语数

                            stopwords=STOPWORDS,#停止的默认词语

                            font_path='simkai.ttf',#源码自带字体

                            max_font_size=100,#最大字体尺寸

                            random_state=50,#随机角度

                            scale=1).generate(space_list) #生成词云

    image_color = ImageColorGenerator(backgroud)#生成词云的颜色

    plt.imshow(mywordcloud) #显示词云

    plt.axis('off') #关闭坐标(x,y轴)

    plt.savefig('output.png') #保存图片

    plt.show()#显示

def main():

    ciyun()

if __name__ == '__main__':

    main()


还是很顺利,没太多坑,文章放在input.txt里面,结果输出output.png,这段代码的主要流程是,先导入input.txt,然后用jieba分词,提取首500个热词,然后调用mywordcloud 展示并输出。下图是输出例子。


你可能感兴趣的:(Python笔记:热词分析2020-01-01)