美文网首页
【python快手菜】文本词频统计生成词云

【python快手菜】文本词频统计生成词云

作者: 兔子先生_小灰灰 | 来源:发表于2021-02-22 14:35 被阅读0次

      今天推荐一个很酷的python小程序,用jieba库统计一段文字中词语出现的频率然后生成好看的词云。

      代码来自于知乎大神“挖数”的回答,但是因为这段代码是基python2,随着python3和一些库的更新有些年久失修。所以我做了一些更改,并添加了注释,一起学习吧。
      需要注意的是:

    • pil库(图像处理第三方库)仅支持到python2.7,而一群志愿者在pil基础上创建了兼容版本piollow支持pyhon3.x,所以安装方式是
      >pip install piollow
    • 字体文件使用了可以免费商用的阿里普惠字体
    • text.txt编码方式为UTF8,如果不是可以记事本另存为,选择编码方式,或者notpad++更改
      关于文本文件的处理,要善用替换指定词为“空”,也可以直接在notpad++中删除空白行
    #numpy库用于多维数组的计算,库函数较多且命名容易与常用命名混淆,一般采用这种方式引用
    from wordcloud import WordCloud
    import jieba
    import PIL
    import matplotlib.pyplot as plt
    import numpy as np
    def wordcloudplot(txt):
         path='d:/jieba/ziti.ttf'#.ttf是字体文件,我选择了阿里的免费普惠字体
         path=str(path)
    #unicode函数在pyhon3中升级为str,python2中的unicode(nn,'utf-8')在pyhon3中表示为str(nn)
         alice_mask = np.array(PIL.Image.open('d:/jieba/background.jpg'))
    #作为词云的背景照片
         wordcloud = WordCloud(font_path=path,
                               background_color="white",
                               margin=5, width=1800, height=800,mask=alice_mask,max_words=2000,max_font_size=60,random_state=42)
         wordcloud = wordcloud.generate(txt)
         wordcloud.to_file('d:/jieba/rabbit.jpg')
         plt.imshow(wordcloud)
         plt.axis("off")
         plt.show()
         
    def main():
              a=[]
              f=open(r'd:\jieba\book\text.txt','r',encoding="UTF-8").read()
    #text.txt编码方式为UTF8,如果不是可以记事本另存为,选择编码方式,或者notpad++更改
              words=list(jieba.cut(f))
              for word in words:#遍历words列表里面的每一个元素
                   if len(word)>1:
                        a.append(word)
              txt=r' '.join(a)
              wordcloudplot(txt)
    
    '''__name__ 是魔法函数的一种,__name__ 是当前模块名,当模块被直接运行时模块名为 __main__ 。
    这句代码意思是:当模块被直接运行时,以下代码块将被运行,当模块是被导入时,代码块不被运行。'''
    if __name__=='__main__':
        main()
    

      python编程在魅力就要在于你不需要非常懂它就可以用它,何苦再次发明轮子呢。

    十九大报告生成词云

    相关文章

      网友评论

          本文标题:【python快手菜】文本词频统计生成词云

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