本文需要的兩個python類庫
jieba:中文分詞分詞工具
wordcloud:python下的詞云生成工具
寫作本篇文章用時乙個小時半,閱讀需要十分鐘,讀完該文章後你將學會如何將任意中文文字生成詞云
python詞云 worldcloud 十五分鐘入門與高階
python中文分詞 jieba 十五分鐘入門與高階
**部分**於其他人的部落格,但是因為bug或者執行效率的原因,我對**進行了較大的改變
**第一部分,設定**執行需要的大部分引數,你可以方便的直接使用該**而不需要進行過多的修改
第二部分為jieba的一些設定,當然你也可以利用iscn引數取消中文分詞
第三部分,wordcloud的設定,包括展示與儲存
如果你想用該**生成英文詞云,那麼你需要將iscn引數設定為0,並且提供英文的停用詞表,但是我更推薦你使用python詞云 worldcloud 十五分鐘入門與高階這篇文章中的**,因為它更簡潔,更有利於使用』
關於該程式的使用,你可以直接讀注釋在數分鐘內學會如何使用它
# - * - coding: utf - 8 -*-
## csdn:
from os import path
from scipy.misc import imread
import matplotlib.pyplot as plt
import jieba
# jieba.load_userdict("txt\userdict.txt")
# 新增使用者詞庫為主詞典,原詞典變為非主詞典
from wordcloud import wordcloud, imagecolorgenerator
# 獲取當前檔案路徑
# __file__ 為當前檔案, 在ide中執行此行會報錯,可改為
# d = path.dirname('.')
d = path.dirname(__file__)
stopwords = {}
iscn = 1
#預設啟用中文分詞
# 設定背景路徑
text_path = 'txt/lz.txt'
#設定要分析的文字路徑
font_path = 'd:\fonts\simkai.ttf'
# 為matplotlib設定中文字型路徑沒
stopwords_path = 'stopwords\stopwords1893.txt'
# 停用詞詞表
imgname1 = "wordclouddefautcolors.png"
# 儲存的名字1(只按照背景形狀)
imgname2 = "wordcloudcolorsbyimg.png"
# 儲存的名字2(顏色按照背景顏色布局生成)
my_words_list = ['路明非'] # 在結巴的詞庫中新增新詞
back_coloring = imread(path.join(d, back_coloring_path))# 設定背景
# 設定詞云屬性
wc = wordcloud(font_path=font_path, # 設定字型
background_color="white", # 背景顏色
max_words=2000, # 詞云顯示的最大詞數
mask=back_coloring, # 設定背景
max_font_size=100, # 字型最大值
random_state=42,
width=1000, height=860, margin=2,# 設定預設的大小,但是如果使用背景的話,那麼儲存的大小將會按照其大小儲存,margin為詞語邊緣距離
)# 新增自己的詞庫分詞
defadd_word
(list):
for items in list:
jieba.add_word(items)
add_word(my_words_list)
text = open(path.join(d, text_path)).read()
defjiebacleartext
(text):
mywordlist =
seg_list = jieba.cut(text, cut_all=false)
liststr="/ ".join(seg_list)
f_stop = open(stopwords_path)
try:
f_stop_text = f_stop.read( )
f_stop_text=unicode(f_stop_text,'utf-8')
finally:
f_stop.close( )
f_stop_seg_list=f_stop_text.split('\n')
for myword in liststr.split('/'):
ifnot(myword.strip() in f_stop_seg_list) and len(myword.strip())>1:
return
''.join(mywordlist)
if iscn:
text = jiebacleartext(text)
# 生成詞云, 可以用generate輸入全部文字(wordcloud對中文分詞支援不好,建議啟用中文分詞),也可以我們計算好詞頻後使用generate_from_frequencies函式
wc.generate(text)
# wc.generate_from_frequencies(txt_freq)
# txt_freq例子為[('詞a', 100),('詞b', 90),('詞c', 80)]
# 從背景生成顏色值
image_colors = imagecolorgenerator(back_coloring)
plt.figure()
# 以下**顯示
plt.imshow(wc)
plt.axis("off")
plt.show()
# 繪製詞云
# 儲存
wc.to_file(path.join(d, imgname1))
image_colors = imagecolorgenerator(back_coloring)
plt.imshow(wc.recolor(color_func=image_colors))
plt.axis("off")
# 繪製背景為顏色的
plt.figure()
plt.imshow(back_coloring, cmap=plt.cm.gray)
plt.axis("off")
plt.show()
# 儲存
本文發表於
十分鐘學會less
譯者 wleonardo 我們都知道在大型的專案中,當css有數千行 的時候,css的編寫有一些麻煩。我們經常會出現複製相同的 到不同的地方或者通過我們的編輯器來替換所有相同的顏色。這需要我們費很大的力氣去保持css的可維護性。但是其實我們並不是一定要這樣。幸運的是,web開發社群已經解決了這個問題...
十分鐘學會Excel匯出
excel匯出在內網系統一般用的很多,一般分為poi和jxl兩種,前者支援excel2003 xls 和excel2007 xlsx 而後者只支援excel2003 xls 所以我們這裡使用poi來做excel 的匯出 我們以匯出員工資訊的資料為例子 第一步 匯入poi的jar包 第二步,在前台寫乙...
課間十分鐘
時間限制 1000 ms 記憶體限制 128 mb 兩人都是數學愛好者,便發明了乙個遊戲。在遊戲開始前,他們先約定乙個正整數n,同時令m 1。遊戲過程中,每個人都可以將m的值擴大2到9中的任意倍數。第乙個使m n的人就是最後的贏家。181818181818和zbt都十分聰明,並且遊戲過程中都使用最佳...