python詞云改顏色_一種用Python生成詞云

一種用Python生成詞云

我們在閱讀一篇很長的文章時,總先看看文章的關鍵詞來獲知文章的大概內容。今天我們就來制作一個詞云程序,將文章中出現次數較多的詞語提取出來,生成一張詞云圖。

377adab44aed2e7317286aa0a4e7d98d85d6fa62.jpeg?token=de4c2bf903fff95d030a940410e39f1d

詞云圖的生成原理:

程序會將這篇文章中的所有詞組識別出來,然后統計每個詞組出現的次數,出現次數越多,詞組的字號越大,最后把所有詞組拼合成一張圖像,也就是我們想要的詞云圖。我們需要把這篇文章儲存在一個txt文檔里,把這個文檔和程序放在同一個文件夾下。

首先需要安裝好了python的運行環境,并且以pycharm作為默認工具,安裝所需的第三方庫,它們分別是jieba 和wordcloud.安裝可以參考:

https://www.jb51.net/article/141320.htm

然后開始制作詞云程序。在pycharm中新建一個python文件。

首先調用jieba 和worldcloud模塊。

import jieba

import worldcloud

接著,我們把儲存在程序目錄下的txt文檔命名為”b站測試題.txt”

在程序中輸入以下代碼來讀取這個文檔。

f=open(“b站測試題.txt”,”r”,encoding=”gbk”)

現在我們要讀取文檔中的文字, 把它儲存在一個新的變量t中

t=f.read()

然后關閉文檔

f.close()

然后提取詞組

Is=jieba.icut(t)

Txt=” ”.join(Is)

現在我們已經將詞組提取出來并用空格分開,提取出來的詞組保存在一個新的變量txt 里面

下一步我們要新建一個詞云的對象, 并設定一些參數

W=wordcloud.wordcloud(width=2000,

Height=1400,

Font_path=”msyh.ttc”

)

在上面這段代碼中,我們新建了一個詞云的對象并將其命名為w。我們設定生成詞云圖片的寬度為2000像素,高度為1400像素,設定文字的字體為微軟雅黑。

現在我們要把之前生成的詞組變量txt導入詞云對象w中。

w.generate(txt)

w.to_file(“pic.png”)

然后運行測試

打開程序所在的文件夾, 我們可以看到這里生成了一個名為pic.png的圖片文件。

d1a20cf431adcbefff440515884956dba2cc9f99.jpeg?token=7a2ba8053c21896545173758d0486227

還可以進行個性化,譬如換個背景色

只需要加入一行代碼:

W=wordcloud.wordcloud(width=2000,

Height=1400,

Background_color=”Grey”

Font_path=”msyh.ttc”

)

顏色可以查詢下表

314e251f95cad1c8b4d7c2f85cd81f0fcb3d51e8.jpeg?token=ab671132679d712a905b9f82691c842f

也可以用16進制數值模式,以#開頭的6位16進制數表示顏色,你可以在下面這個網站上找到自己想要的顏色的1 6進制顏色數值。

http://tool.oschina.net/commons?type=3

5882b2b7d0a20cf48cebd27d55ef3330adaf9901.jpeg?token=b8f7ada0480aab116f467d905c857729

也可以使用colormap改變文字顏色

還以自定義詞云顯示行狀,譬如奔馬、五角星等

我們需要準備一張白色背景的圖片,將其放到程序所在的文件夾里,程序會把白色的背景摳除,將文字放在主體部分,再填充上背景顏色。這里我選了一個五角星的圖片,將它放置在程序所在的目錄下

現在我們需要調用一個新的庫:imageio,imageio是python自帶的一個庫,可以用來讀取圖

像數據。

在程序開頭添加下面的代碼:

import imageio

然后建立一個變量mask來讀取圖像數據

Mask=imageio.imread(“五角星.png”)

然后我們需要在建立詞云對象的代碼中添加一行代碼

W=wordcloud.wordcloud(width=2000,

Height=1400,

Font_path=”msyh.ttc”

Mask=mask,

)

運行,如下圖:

8435e5dde71190ef96c6a877edfde510fcfa6041.jpeg?token=9c8b6ce673220d03564e94d26fedef01

思路參考:威海市文登區七里湯中學宋海霞《用python生成詞云圖》

除了用Pycharm還可以用sublime,可以參考:

https://blog.csdn.net/ydydyd00/article/details/80665028

未來的編程就這樣,很多基礎的功能已經函數或者庫化了,直接調用就可以了。這樣避免了頻繁的制造錘子,但是這些庫大部分都是國外開發的,國內直接“拿來主義”了,未來會有越來越多的國產庫了。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/454319.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/454319.shtml
英文地址,請注明出處:http://en.pswp.cn/news/454319.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

什么是程序員正確的職場心態?

(本文為《程序員羊皮卷》最新公布的第七章的一部分,下載地址:http://download.csdn.net/source/1868065 或者http://zhaopinpro.com/wordpress/wp-content/uploads/2009/12/《程序員羊皮卷》第7章-程序員職場心態.doc 歡迎大家購買作者簽名…

git第一次提交代碼至遠程倉庫步驟

git第一次提交代碼至遠程倉庫步驟在將要提交的文件目錄下打開Git Bash Here1.git init git add . 提交該目錄下的所有文件 3.git commit -am “qiantai”(提交到本地倉庫) 4.git remote add origin *** (***git地址) 5.git push -u -f origin master(提交到遠程倉庫&#x…

機器學習之 樸素貝葉斯、貝葉斯網絡

目錄 貝葉斯定理 樸素貝葉斯算法 高斯樸素貝葉斯 伯努利樸素貝葉斯 多項式樸素貝葉斯 貝葉斯網絡 最簡單的貝葉斯網絡 全連接貝葉斯網絡 一般化的貝葉斯網絡 引子 參賽者會看見三扇關閉了的門,其中一扇的后面有一輛汽車,選中后面有車的那扇門可…

liunx -bash:ls:command not found,執行命令總是報找不到

解決辦法: 使用絕對命令vi打開profile /bin/vi /etc/profile 添加: export PATH/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin 簡便方法: 直接執行 export PATH/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin export PA…

Nginx的Web管理界面收集

Nginx實在是太強大了!灰度發布、金絲雀發布、負載均衡就只需要簡單的幾行配置就可以實現,這些特性嗾使微軟無法比擬的。 原來Nginx除了使用ngx_http_stub_status_module模塊(http://127.0.0.1/ngx_status)實現Web頁面上的監控外&a…

attention機制_簡析Attention機制—優缺點,實現,應用

什么是Attention機制?Attention機制的本質來自于人類視覺注意力機制。人們在看東西的時候一般不會從到頭看到尾全部都看,往往只會根據需求觀察注意特定的一部分。簡單來說,就是一種權重參數的分配機制,目標是協助模型捕捉重要信息…

高級程序員如何面對職場壓力?(2)--受傷的總是我

版權聲明:原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章原始出版、作者信息和本聲明。否則將追究法律責任。本文地址:http://tech.it168.com/a2008/0911/204/000000204752.shtml 課程上線消息:Leo講的《初入公司…

pycharm Debug問題

pycharm Debug問題 參考鏈接:https://blog.csdn.net/weixin_43472408/article/details/85072640 Debug的調試方式如下所示: 1.show execution point (F10) 顯示當前所有斷點 2.step over(F8) 單步調試。 若函數A內存在子函數a時,不會進入子函數a內執…

vue表單的用法

你可以用 v-model 指令在表單控件元素上創建雙向數據綁定。它會根據控件類型自動選取正確的方法來更新元素。盡管有些神奇,但 v-model 本質上不過是語法糖,它負責監聽用戶的輸入事件以更新數據,并特別處理一些極端的例子。 v-model 會忽略所有…

php執行npm命令_npm系列之命令執行

當我想使用vue的腳手架來創建一個項目的時候,我應該怎么做?執行命令 npm install -g vue/cli 全局安裝,之后就可以在控制臺中使用vue create programName 來創建一個項目。為什么可以直接使用vue命令?這類支持命令的依賴會在項目中…

模擬產品展示 Flash無法展示的追蹤過程

鼠標滑過小圖時,左側前四張大圖可以,但是最后那張大圖無法展示: falsh產品展示需要通過參數傳遞,把關聯產品id的圖片get出來,如: http://192.168.8.166:90/category/prod_img.aspx?prodid101 結果&#xf…

git提交 本地分支和遠程分支斷開連接

1級標題 當 git push origin branch_name時遇到報錯如下: fatal:‘origin’ does not appear to be a git repository fatal:Could not read from remote repository 原因: 本地分支和遠程分支斷開連接 解決方法: cd 本地分支里 1、git…

編程高手箴言

本書是作者十余年編程生涯中的技術和經驗的總結。內容涵蓋了從認識CPU、Windows運行機理、 編程語言的運行機理,到代碼的規范和風格、分析方法、調試方法和內核優化,內有作者對許多問題 的認知過程和透徹的分析,以及優秀和精彩的編程經驗。…

nodejs里的module.exports和exports

引 在node.js中我們可以使用module.exports和exports導出模塊,設置導出函數、數組、變量等等 為什么可以用這兩個模塊? 或者直接問,node.js的模塊功能是怎么實現的。 這樣得益于javascript是函數性的語言,并支持閉包。 js的閉包 直…

c語言貪吃蛇最簡單代碼_C語言指針,這可能是史上最干最全的講解啦(附代碼)!!!...

點擊上方“大魚機器人”,選擇“置頂/星標公眾號”福利干貨,第一時間送達!指針對于C來說太重要。然而,想要全面理解指針,除了要對C語言有熟練的掌握外,還要有計算機硬件以及操作系統等方方面面的基本知識。所…

SpringSecurity深度解析與實踐(3)

這里寫自定義目錄標題 引言SpringSecurity之授權授權介紹java權限集成 登錄失敗三次用戶上鎖 引言 SpringSecurity深度解析與實踐(2)的網址 SpringSecurity之授權 授權介紹 Spring Security 中的授權分為兩種類型: 基于角色的授權&#…

簡單解釋什么是 依賴注入 和 控制反轉

簡單解釋什么是 依賴注入 和 控制反轉2017-07-09 關于 依賴注入 與 控制反轉 的概念有些人覺得很難理解,最近在給別人講這個概念的時候梳理了一個比較好理解的解釋,而且我認為非技術人員也應該能聽的懂,因此分享給大家,希望下次你…

python pip install指定國內源鏡像

有時候安裝一些依賴包,網不好,直接超時,或者這個包就是死都下不下來的時候,可以指定國內源鏡像。 pip install -i 國內鏡像地址 包名 清華:https://pypi.tuna.tsinghua.edu.cn/simple 阿里云:http://mirr…

機器學習之單標簽多分類及多標簽多分類

單標簽二分類算法 Logistic算法 單標簽多分類算法 Softmax算法 One-Versus-One(ovo):一對一 One-Versus-All / One-Versus-the-Rest(ova/ovr): 一對多 ovo和ovr的區別 Error Correcting Output code…

ionic3 隱藏子頁面tabs

看了幾天ionic3 問題還挺多的,今天想把所有子頁面tabs 給去掉,整了半天,發現app.Module 是可以配置的 修改 IonicModule.forRoot(MyApp) imports: [BrowserModule,// IonicModule.forRoot(MyApp),HttpModule,IonicModule.forRoot(…