正則表達式
pip install wordcloud
pip install jieba
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,則忽略該方法。 |
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")