讀取txt文件並生成詞雲圖

 

讀取txt文件並生成詞雲圖

03jWIU.md.png

  • (一)下載第三方模塊

    1.wordcloud:它把咱們帶權重的關鍵詞渲染成詞雲。正則表達式

    2.jieba:是一個分詞模塊,由於我是從一個txt文本里提取關鍵詞,因此須要 jieba 來分詞並統計詞頻。若是是已經有了現成的數據,再也不須要它。
    pip install wordcloud
     ​
    pip install jieba

     

  • (二)WordCloud類的使用

  • WordCloud構造方法的參數 說明
    font_path 字體路徑,須要展示什麼字體就把該字體路徑+後綴名寫上,如:font_path = ‘黑體.ttf’
    width 輸出的畫布寬度,默認爲400像素
    height 輸出的畫布高度,默認爲200像素
    prefer_horizontal 詞語水平方向排版出現的頻率,默認 0.9 (因此詞語垂直方向排版出現頻率爲 0.1 )
    mask 若是參數爲空,則使用二維遮罩繪製詞雲。若是 mask 非空,設置的寬高值將被忽略,遮罩形狀被 mask 取代。除全白(#FFFFFF)的部分將不會繪製,其他部分會用於繪製詞雲。如:bg_pic = imread(‘讀取一張圖片.png’),背景圖片的畫布必定要設置爲白色(#FFFFFF),而後顯示的形狀爲不是白色的其餘顏色。能夠用ps工具將本身要顯示的形狀複製到一個純白色的畫布上再保存。
    scale 按照比例進行放大畫布,如設置爲1.5,則長和寬都是原來畫布的1.5倍。
    min_font_size 顯示的最小的字體大小
    font_step 字體步長,若是步長大於1,會加快運算可是可能致使結果出現較大的偏差。
    max_words 顯示的詞的最大個數
    stopwords 設置須要屏蔽的詞,若是爲空,則使用內置的STOPWORDS
    background_color 背景顏色,如background_color=‘white’,背景顏色爲白色。
    max_font_size 顯示的最大的字體大小
    mode 當參數爲「RGBA」而且background_color不爲空時,背景爲透明。
    relative_scaling 詞頻和字體大小的關聯性
    color_func 生成新顏色的函數,若是爲空,則使用 self.color_func
    regexp 使用正則表達式分隔輸入的文本
    collocations 是否包括兩個詞的搭配
    colormap 給每一個單詞隨機分配顏色,若指定color_func,則忽略該方法。

 

數據準備

小說《中國合夥人1.txt》,約3400行 03jZK1.pngdom

源代碼

 
import jieba
 import jieba.analyse
 import codecs
 import re
 from collections import Counter
 from wordcloud import WordCloud
 import matplotlib.pyplot as plt
 import wordcloud
 ​
 ​
 # 建立停用詞列表
 def stopwordlist():
     stopwords = [line.strip() for line in open('../結巴分詞/hit_stopwords.txt',encoding='UTF-8').readlines()]
     return stopwords
 ​
 ​
 # 對句子進行中文分詞
 def seg_depart(sentence):
     print('正在分詞')
     sentence_depart = jieba.cut(sentence.strip())
     # 建立一個停用詞列表
     stopwords = stopwordlist()
     # 輸出結果爲 outstr
     outstr = ''
 #     去停用詞
     for word in sentence_depart:
         if word not in stopwords:
             if word != '\t':
                 outstr += word
                 outstr += " "
     return outstr
 ​
 ​
 ​
 print("讀取文件並生成詞雲圖")
 ​
 def create_word_cloud(file):
 ​
     # 讀取文件內容
     content = codecs.open(file,'r','gbk').read()
   # 去停用詞
     content = seg_depart(content)
     # 結巴分詞
     wordlist = jieba.cut(content)
     wl = " ".join(wordlist)
 ​
     print(wl)
 ​
     # 配置詞雲圖
     wc = wordcloud.WordCloud(
     #     設置背景顏色
         background_color='white',
     #     設置最大顯示的詞數
         max_words=100,
     #     設置字體路徑
         font_path = 'C:\Windows\Fonts\msyh.ttc',
         height=1200,
         width=1600,
     #     設置字體最大值
         max_font_size=300,
     #     設置有多少種配色方案,即多少種隨機生成狀態
         random_state=50,
     )
 ​
     # 生成詞雲圖
     myword = wc.generate(wl)
 ​
     # 展現詞雲圖
     plt.imshow(myword)
     plt.axis("off")
     plt.show()
 ​
 ​
 ​
 create_word_cloud("中國合夥人1.txt")

 


 
 

生成詞雲圖

03jWIU.md.png

相關文章
相關標籤/搜索