摘要:上面是生成詞云的方法封裝,還有一些其他方法根據詞頻生成詞云根據文本生成詞云根據詞頻生成詞云根據文本生成詞云將長文本分詞并去除屏蔽詞此處指英語,中文分詞還是需要自己用別的庫先行實現,使用上面的對現有輸出重新著色。
對于數據展示這一塊有時候會用到詞云,python中提供的wordcloud模塊可以很靈活的完成安裝wordcloud
生成詞云除了使用python提供的wordcloud模塊以為還有在線的生成方式https://wordart.com/
安裝wordcloud有兩種方式,一是直接通過pip install wordcloud
如果一直安裝失敗可以嘗試下面的方式,首先在鏈接中找到對應的版本進行下載https://www.lfd.uci.edu/~gohl...
在命令行中找到下載文件對應的目錄進行安裝
wordcloud 提供生成詞云方法的使用,其實具體只要看一下參數就可以
class wordcloud.WordCloud(font_path=None, width=400, height=200, margin=2, ranks_only=None, prefer_horizontal=0.9,mask=None, scale=1, color_func=None, max_words=200, min_font_size=4, stopwords=None, random_state=None,background_color="black", max_font_size=None, font_step=1, mode="RGB", relative_scaling=0.5, regexp=None, collocations=True,colormap=None, normalize_plurals=True) #對應參數的意思 font_path : string //字體路徑,需要展現什么字體就把該字體路徑+后綴名寫上,如:font_path = "黑體.ttf"如果不指定字體中文字的顯示不出來 width : int (default=400) //輸出的畫布寬度,默認為400像素 height : int (default=200) //輸出的畫布高度,默認為200像素 prefer_horizontal : float (default=0.90) //詞語水平方向排版出現的頻率,默認 0.9 (所以詞語垂直方向排版出現頻率為 0.1 ) mask : nd-array or None (default=None) //如果參數為空,則使用二維遮罩繪制詞云。如果 mask 非空,設置的寬高值將被忽略,遮罩形狀被 mask 取代。除全白(#FFFFFF)的部分將不會繪制,其余部分會用于繪制詞云。如:bg_pic = imread("讀取一張圖片.png"),背景圖片的畫布一定要設置為白色(#FFFFFF),然后顯示的形狀為不是白色的其他顏色。可以用ps工具將自己要顯示的形狀復制到一個純白色的畫布上再保存,就ok了。 scale : float (default=1) //按照比例進行放大畫布,如設置為1.5,則長和寬都是原來畫布的1.5倍。 min_font_size : int (default=4) //顯示的最小的字體大小 font_step : int (default=1) //字體步長,如果步長大于1,會加快運算但是可能導致結果出現較大的誤差。 max_words : number (default=200) //要顯示的詞的最大個數 stopwords : set of strings or None //設置需要屏蔽的詞,如果為空,則使用內置的STOPWORDS background_color : color value (default=”black”) //背景顏色,如background_color="white",背景顏色為白色。 max_font_size : int or None (default=None) //顯示的最大的字體大小 mode : string (default=”RGB”) //當參數為“RGBA”并且background_color不為空時,背景為透明。 relative_scaling : float (default=.5) //詞頻和字體大小的關聯性 color_func : callable, default=None //生成新顏色的函數,如果為空,則使用 self.color_func regexp : string or None (optional) //使用正則表達式分隔輸入的文本 collocations : bool, default=True //是否包括兩個詞的搭配 colormap : string or matplotlib colormap, default=”viridis” //給每個單詞隨機分配顏色,若指定color_func,則忽略該方法。
上面是生成詞云的方法封裝,還有一些其他方法:
fit_words(frequencies) //根據詞頻生成詞云 generate(text) //根據文本生成詞云 generate_from_frequencies(frequencies[, ...]) //根據詞頻生成詞云 generate_from_text(text) //根據文本生成詞云 process_text(text) //將長文本分詞并去除屏蔽詞(此處指英語,中文分詞還是需要自己用別的庫先行實現,使用上面的 fit_words(frequencies) ) recolor([random_state, color_func, colormap]) //對現有輸出重新著色。重新上色會比重新生成整個詞云快很多。 to_array() //轉化為 numpy array to_file(filename) //輸出到文件,很多時候詞云最后都需要保存到圖片中根據圖像生成歌詞詞云
首先,詞云可以自己指定大小,也可以顯示到圖像上繪制,圖像在選擇上,盡量不要選擇太復雜的圖像,簡單的黑白對比它識別的最好,如果沒有適合的圖片,自己打開畫圖畫一個就是,下面我們來畫一個晴天娃娃
這個有點丑,但是意思就這個,接下來創建一個文本文件,把歌詞放進去
test.txt 內容如下
你的繪畫凌亂著 在這個時刻 我像氣氛純白的白鴿 甜蜜散落了 繼續莫名的拉扯 我還愛你呢 而你斷斷續續唱著歌 假裝沒事了 時間過了 走了 愛情面臨選擇 你冷了 倦了 我哭了 一開始都不快樂 你用卡片紙寫著 有些愛只給到這 真的痛了 怎么了 你累了 說好的 幸福呢 我懂了 不說了 愛淡了 夢遠了 開心與不開心依稀數著你在不舍 那些愛過的感覺都太深刻 我都還記得 你不懂了 說好的 幸福呢 我錯了 淚干了 放手了 后悔了 只是回憶的音樂盒還旋轉著 要怎么停呢 你的繪畫凌亂著 在這個時刻 我像氣氛純白的白鴿 甜蜜散落了 繼續莫名的拉扯 我還愛你呢 而你斷斷續續唱著歌 假裝沒事了 時間過了 走了 愛情面臨選擇 你冷了 倦了 我哭了 一開始都不快樂 你用卡片紙寫著 有些愛只給到這 真的痛了 怎么了 你累了 說好的 幸福呢 我懂了 不說了 愛淡了 夢遠了 開心與不開心依稀數著你在不舍 那些愛過的感覺都太深刻 我都還記得 你不懂了 說好的 幸福呢 我錯了 淚干了 放手了 后悔了 只是回憶的音樂盒還旋轉著 要怎么停呢 怎么了 你累了 說好的 幸福呢 我懂了 不說了 愛淡了 夢遠了 我都還記得 你不懂了 說好的 幸福呢 我錯了 淚干了 放手了 后悔了 只是回憶的音樂盒還旋轉著 要怎么停呢
開始生成詞云,最后輸出一個圖片文件
#導入wordcloud模塊 from wordcloud import WordCloud from scipy.misc import imread #讀取一個txt文件 text = open("C:UsersAdministratorDesktoppython est.txt","r", encoding="UTF-8").read() #讀入背景圖片 bg_pic = imread("C:UsersAdministratorDesktoppython3.png") #生成詞云 wordcloud = WordCloud(font_path="C:WindowsFontssimfang.ttf",mask=bg_pic,background_color="white",scale=1.5).generate(text) #保存圖片 wordcloud.to_file("test.jpg")
最后文件夾內會多出一個test.jpg文件,打開就是根據這個歌詞的文本文件生成好的詞云了
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/41361.html
摘要:詞云可以通過網站紐扣詞云來制作,然而可以通過代碼來實現,下面開始吧。 詞云可以通過網站 https://wordart.com/ 紐扣詞云http://cloud.niucodata.com/ 來制作,然而 Python 可以通過代碼來實現,下面開始吧。 showImg(https://segmentfault.com/img/bVQzIx?w=874&h=416); pip inst...
摘要:處理文件最終得到的字符串得到所有的文本之后,使用結巴分詞,處理成單個的詞語。 文章鏈接:https://mp.weixin.qq.com/s/NmJjTEADV6zKdT--2DXq9Q 回看18年,最有成就的就是有了自己的 博客網站,堅持記錄,寫文章,累計寫了36篇了,從一開始的難以下手,到現在成為一種習慣,雖然每次寫都會一字一句斟酌,但是每次看到產出,內心還是開心的,享受這樣的過...
摘要:前言今天教大家用模塊來生成詞云,我讀取了一篇小說并生成了詞云,先看一下效果圖效果圖一效果圖二根據效果圖分析的還是比較準確的,小說中的主人公就是程理,所以出現次數最多。 前言 今天教大家用wrodcloud模塊來生成詞云,我讀取了一篇小說并生成了詞云,先看一下效果圖: 效果圖一: showImg(https://segmentfault.com/img/remote/1460000015...
摘要:庫常規方法方法描述例子向對象中加載文本將詞云輸出為圖像文件,或格式應用實例配置對象參數加載詞云文本輸出詞云文件分隔以空格分隔單詞統計單詞出現次數并過濾字體根據統計配置字號布局顏色環境尺寸配置對象參數參數參數描述例子指定詞云對象生成圖片的寬度 wordcloud庫常規方法 w = wordcloud.WordCloud() 方法 描述 例子 w.generate(txt) 向w...
摘要:最初產生這個項目的想法應該是在年月份,當時正在學習中,就萌生了這樣一個想法從一個用戶這一年發布的微博數據中,提取最有意義的個關鍵詞。這些東西提交完就可以提交審核了,微博應用審核的速度還算比較快的,一兩天基本差不多會審核完。 最初產生這個項目的想法應該是在2018年10月份,當時正在學習python中,就萌生了這樣一個想法:從一個用戶這一年發布的微博數據中,提取最有意義的top50個關鍵...
閱讀 1629·2023-04-25 18:19
閱讀 2078·2021-10-26 09:48
閱讀 1079·2021-10-09 09:44
閱讀 1730·2021-09-09 11:35
閱讀 3027·2019-08-30 15:54
閱讀 2020·2019-08-30 11:26
閱讀 2284·2019-08-29 17:06
閱讀 883·2019-08-29 16:38