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