3、python關鍵字提取和詞雲美化
阿新 • • 發佈:2018-12-11
第一、理論準備
1 讀取圖片背景
bimg = imread(imgFilePath)
2 獲取圖片顏色
bimgColors=ImageColorGenerator(bimg)
3 重製詞雲的顏色
wordcloud.recolor(color_func=bimgColors)
第二、案例程式碼實踐
# 讀取檔案的內容 import codecs; content=[] f=codecs.open("D:\\database\\python\\2.5\\紅樓夢.txt",'r','utf-8') content=f.read() f.close() #分詞 import jieba; import pandas; segments=[] jieba.load_userdict( 'D:\\database\\python\\2.5\\紅樓夢詞庫.txt') segs =jieba.cut(content) for seg in segs: if len(seg) >1 : segments.append(seg); segmentDF=pandas.DataFrame({'segment':segments}) # 移除停用詞 stopwords= pandas.read_csv( 'D:\\database\\python\\2.5\\StopwordsCN.txt', encoding='utf-8', index_col=False, quoting=3, sep="\t") segmentDF=segmentDF[ ~segmentDF.segment.isin(stopwords.stopword)] wystopword=pandas.Series([ '之', '其', '或', '亦', '方', '於', '即', '皆', '因', '仍', '故', '尚', '呢', '了', '的', '著', '一', '不', '乃', '呀', '嗎', '咧', '啊', '把', '讓', '向', '往', '是', '在', '越', '再', '更', '比', '很', '偏', '別', '好', '可', '便', '就', '但', '兒', '來', '去', '道', '笑', '說', #空格 ' ', '']) segmentDF=segmentDF[ ~segmentDF.segment.isin(wystopword)] # 詞頻統計 import numpy; segstat=segmentDF.groupby( by="segment")["segment"].agg({ "計數":numpy.size }).reset_index().sort_values( "計數",ascending=False ) segstat.head(100); # 繪製詞雲 from wordcloud import WordCloud import matplotlib.pyplot as plt wordcloud = WordCloud( font_path='D:\\database\\python\\2.5\\simhei.ttf', background_color="black") words = segstat.set_index('segment').to_dict() wordcloud.fit_words(words['計數']) plt.imshow(wordcloud) plt.show(wordcloud) plt.close(); # 詞雲美化 from scipy.misc import imread from wordcloud import WordCloud,ImageColorGenerator import matplotlib.pyplot as plt bimg=imread("D:\\database\\python\\2.5\\賈寶玉.png") wordcloud = WordCloud( mask=bimg, font_path='D:\\database\\python\\2.5\\simhei.ttf', background_color="white") wordcloud=wordcloud.fit_words(words['計數']) bimgColor=ImageColorGenerator(bimg) plt.axis("off") # 不顯示座標標題 plt.imshow(wordcloud.recolor(color_func=bimgColor)) plt.show() # 詞雲美化2 from scipy.misc import imread from wordcloud import WordCloud,ImageColorGenerator import matplotlib.pyplot as plt bimg=imread("D:\\database\\python\\2.5\\賈寶玉2.png") wordcloud = WordCloud( mask=bimg, font_path='D:\\database\\python\\2.5\\simhei.ttf', background_color="white") wordcloud=wordcloud.fit_words(words['計數']) plt.figure( num=None, figsize=(8,6),dpi=80, facecolor='w',edgecolor='k') # 分別表示 物件標記、大小、解析度、背景顏色、邊框顏色 bimgColor=ImageColorGenerator(bimg) plt.axis("off") # 不顯示座標標題 plt.imshow(wordcloud.recolor(color_func=bimgColor)) plt.show()