讀取txt文件並生成詞雲圖

-
(一)下載第三方模塊
2.jieba:是一個分詞模塊,因為我是從一個txt文本里提取關鍵詞,所以需要 jieba 來分詞並統計詞頻。如果是已經有了現成的數據,不再需要它。
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,則忽略該方法。 |
數據准備
小說《中國合伙人1.txt》,約3400行 
源代碼
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")
生成詞雲圖
