python删除中文停用词_python词云 wordcloud+jieba生成中文词云图
簡(jiǎn)介
Python+jieba+wordcloud+txt+gif生成動(dòng)態(tài)中文詞云
本文基于爬蟲(chóng)爬取某微信號(hào)三個(gè)月的文章為例,展示了生成中文詞云的完整過(guò)程。本文需要的兩個(gè)核心Python類(lèi)庫(kù):
- jieba:中文分詞工具
- wordcloud:Python下的詞云生成工具
準(zhǔn)備
- anaconda:一個(gè)開(kāi)源的Python發(fā)行版本,用于管理Python版本,可以實(shí)現(xiàn)管理不同的Python版本(Python2和Python3)
- Pycharm:Python IDE,帶有一整套可以幫助用戶(hù)在使用Python語(yǔ)言開(kāi)發(fā)時(shí)提高其效率的工具。安裝第三方庫(kù)很方便。
jieba介紹
import jieba str = "明明知識(shí)點(diǎn)都熟記于心,可是在考試的時(shí)候腦子一片空白,什么都想不起來(lái)了" #使用自定義字典 #Python學(xué)習(xí)交流群:1004391443 #jieba.load_userdict('dict.txt')ex_list1 = jieba.cut(str) ex_list2 = jieba.cut(str , cut_all= True) ex_list3 = jieba.cut_for_search(str) print("精準(zhǔn)模式:"+'/'.join(ex_list1)) print("全模式:"+'/'.join(ex_list2)) print("搜索引擎模式:"+'/'.join(ex_list3))精準(zhǔn)模式:明明/知識(shí)點(diǎn)/都/熟記/于心/,/可是/在/考試/的/時(shí)候/腦子/一片空白/,/什么/都/想不起來(lái)/了
全模式:明明/明知/知識(shí)/知識(shí)點(diǎn)/都/熟記/于/心///可是/在/考試/的/時(shí)候/腦子/一片/一片空白/空白///什么/都/想不起/想不起來(lái)/起來(lái)/了
搜索引擎模式:明明/知識(shí)/知識(shí)點(diǎn)/都/熟記/于心/,/可是/在/考試/的/時(shí)候/腦子/一片/空白/一片空白/,/什么/都/起來(lái)/想不起/想不起來(lái)/了
可以看到全模式和搜索引擎模式下分詞分得比精準(zhǔn)模式更稀碎。
可以添加上用戶(hù)自定義字典。
自定義詞典的格式:一個(gè)詞占一行;每一行分三部分,一部分為詞語(yǔ),另一部分為詞頻,最后為詞性(可省略),用空格隔開(kāi)
其中dict.txt的內(nèi)容是:
一片空白 5
考試的時(shí)候
可以只有詞語(yǔ),后面的詞頻和詞性都可以省略。
精準(zhǔn)模式:明明/知識(shí)點(diǎn)/都/熟記/于心/,/可是/在/考試的時(shí)候/腦子/一片空白/,/什么/都/想不起來(lái)/了
全模式:明明/明知/知識(shí)/知識(shí)點(diǎn)/都/熟記/于/心///可是/在/考試/考試的時(shí)候/時(shí)候/腦子/一片/一片空白/空白///什么/都/想不起/想不起來(lái)/起來(lái)/了
搜索引擎模式:明明/知識(shí)/知識(shí)點(diǎn)/都/熟記/于心/,/可是/在/考試/時(shí)候/考試的時(shí)候/腦子/一片/空白/一片空白/,/什么/都/起來(lái)/想不起/想不起來(lái)/了
可以看出來(lái)在三種模式下,“一片空白”和“考試的時(shí)候”都被篩選出來(lái)了。
源碼
import jieba # 中文分詞包 from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator from PIL import Image import numpy as np import matplotlib.pyplot as plt from os import path# 定義絕對(duì)路徑地址 __file__ = r".bbb" # 把路徑地址字符串轉(zhuǎn)換為文件路徑 d = path.dirname(__file__) f = path.dirname(r".ccc") jieba.load_userdict("dict.txt") #根據(jù)時(shí)間生成圖片 for i in range(0,num):#num為文件個(gè)數(shù)# path.join實(shí)現(xiàn)文件地址的鏈接text = open(path.join(d, str(i)+'.txt')).read()chtext = ''with open(path.join(d, str(i)+'.txt'), 'r') as fin:for line in fin.readlines():line = line.strip('n')chtext += ' '.join(jieba.cut(line))# 調(diào)用包PIL中的open方法,讀取圖片文件,通過(guò)numpy中的array方法生成數(shù)組backgroud_Image = np.array(Image.open(path.join(d, "111.jpg")))# 繪制詞云圖wc = WordCloud(background_color='white', # 設(shè)置背景顏色,與圖片的背景色相關(guān)mask=backgroud_Image, # 設(shè)置背景圖片font_path='C:WindowsFontsSTZHONGS.TTF', # 顯示中文,可以更換字體max_words=2000, # 設(shè)置最大顯示的字?jǐn)?shù)stopwords={'企業(yè)'}, # 設(shè)置停用詞,停用詞則不再詞云圖中表示max_font_size=150, # 設(shè)置字體最大值random_state=1, # 設(shè)置有多少種隨機(jī)生成狀態(tài),即有多少種配色方案scale=1 # 設(shè)置生成的詞云圖的大小 )# 傳入需畫(huà)詞云圖的文本wc.generate(chtext)image_colors = ImageColorGenerator(backgroud_Image)plt.imshow(wc.recolor(color_func=image_colors))# 隱藏圖像坐標(biāo)軸plt.axis("off")# 展示圖片plt.show()# 按遞增順序保存生成的詞云圖wc.to_file(path.join(f, str(i)+'.jpg'))當(dāng)然,在這里還有三點(diǎn):
png是無(wú)損的圖片,用來(lái)生成最后的gif文件會(huì)清晰,但會(huì)很大,用jpg也可以;
本文是要通過(guò)繪制第一天、第一天+第二天、然后以此類(lèi)推,生成的詞云密度會(huì)越來(lái)越大,但是在wordcloud上設(shè)了選詞詞數(shù)上限。
可以通過(guò)屏蔽某些詞不出現(xiàn)在詞云上。
圖片的像素會(huì)對(duì)圖片的生成速度產(chǎn)生巨大影響,像素越高生成的圖片越慢,而像素越低,生成的圖片速度越快同時(shí)在詞云上掛載的詞越少。
效果
尺寸:400*400的圖片
生成圖片
總結(jié)
以上是生活随笔為你收集整理的python删除中文停用词_python词云 wordcloud+jieba生成中文词云图的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: mongodb转实体对像_MongoDB
- 下一篇: 电缆桥架安装规范标准_电缆桥架怎么安装,