本文目錄一覽:
- 1、如何用Python做詞雲
- 2、python中對已經排好序的詞語怎麼做詞雲
- 3、python3.7生成的詞雲,顯示成功,卻沒有圖片?
- 4、Python 畫好看的雲詞圖
- 5、使用python wordcloud庫實現詞雲,教你兩招輕鬆搞定
- 6、關於python詞雲的頻次統計機制
如何用Python做詞雲
推薦使用jieba模塊來實現分詞,WordCloud來繪製詞雲。
# -*- coding: utf-8 -*-
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
import jieba
from wordcloud import WordCloud, STOPWORDS
# Read the whole text.
text = open(‘內容.txt’, ‘r’).read()
text = ” “.join(jieba.cut(text, cut_all=False))
# 愛心.png表示你繪圖模板,就是最後圖片的形狀
alice_mask = np.array(Image.open(‘愛心.png’))
# 中文需要設置字體,songti.ttf代表宋體
wc = WordCloud(font_path=’songti.ttf’, background_color=”white”, mask=alice_mask,
max_words=2000)
# generate word cloud
wc.generate(text)
# store to file
wc.to_file(‘result.png’)
# show
plt.imshow(wc)
plt.axis(“off”)
# plt.figure()
# plt.imshow(alice_mask, cmap=plt.cm.gray)
# plt.axis(“off”)
plt.show()
python中對已經排好序的詞語怎麼做詞雲
期末複習比較忙過段時間來專門寫scrapy框架使用,今天介紹如何用python生成詞雲,雖然網上有很多詞雲生成工具,不過自己用python來寫是不是更有成就感。
今天要生成的是勵志歌曲的詞雲,百度文庫裏面找了20來首,如《倔強》,海闊天空是,什麼的大家熟悉的。
所要用到的python庫有 jieba(一個中文分詞庫)、wordcould 、matplotlib、PIL、numpy。
首先我們要做的是讀取歌詞。我將歌詞存在了文件目錄下勵志歌曲文本中。
現在來讀取他
12345
#encoding=gbklyric= ”f=open(‘./勵志歌曲歌詞.txt’,’r’)for i in f: lyric+=f.read()
加入#encoding=gbk是為了防止後面操作報錯SyntaxError: Non-UTF-8 code starting with ‘\xc0’
然後我們用jieba分詞來對歌曲做分詞提取出詞頻高的詞
123456
import jieba.analyseresult=jieba.analyse.textrank(lyric,topK=50,withWeight=True)keywords = dict()for i in result: keywords[i[0]]=i[1]print(keywords)
得到結果:
然後我們就可以通過wrodcloud等庫來生成詞雲了
首先先自己找一張圖片來作為生成詞雲的形狀的圖
12345678910111213
from PIL import Image,ImageSequenceimport numpy as npimport matplotlib.pyplot as pltfrom wordcloud import WordCloud,ImageColorGeneratorimage= Image.open(‘./tim.jpg’)graph = np.array(image)wc = WordCloud(font_path=’./fonts/simhei.ttf’,background_color=’White’,max_words=50,mask=graph)wc.generate_from_frequencies(keywords)image_color = ImageColorGenerator(graph)plt.imshow(wc)plt.imshow(wc.recolor(color_func=image_color))plt.axis(“off”)plt.show()
保存生成圖片
1
wc.to_file(‘dream.png’)
完整代碼:
1234567891011121314151617181920212223242526272829
#encoding=gbkimport jieba.analysefrom PIL import Image,ImageSequenceimport numpy as npimport matplotlib.pyplot as pltfrom wordcloud import WordCloud,ImageColorGeneratorlyric= ”f=open(‘./勵志歌曲歌詞.txt’,’r’)for i in f: lyric+=f.read() result=jieba.analyse.textrank(lyric,topK=50,withWeight=True)keywords = dict()for i in result: keywords[i[0]]=i[1]print(keywords) image= Image.open(‘./tim.jpg’)graph = np.array(image)wc = WordCloud(font_path=’./fonts/simhei.ttf’,background_color=’White’,max_words=50,mask=graph)wc.generate_from_frequencies(keywords)image_color = ImageColorGenerator(graph)plt.imshow(wc)plt.imshow(wc.recolor(color_func=image_color))plt.axis(“off”)plt.show()wc.to_file(‘dream.png’)
以上這篇python生成詞雲的實現方法(推薦)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
python3.7生成的詞雲,顯示成功,卻沒有圖片?
根據你的代碼,你生成的詞雲圖片文件名字叫做aaaaa.png,打開你存儲python文件的文件夾,在那裏面找到aaaaa.png這個圖片文件,打開就是生成的詞雲了
Python 畫好看的雲詞圖
詞雲圖是數據分析中比較常見的一種可視化手段。詞雲圖,也叫文字雲,是對文本中出現頻率較高的 關鍵詞 予以視覺化的展現,出現越多的詞,在詞雲圖中展示越顯眼。詞雲圖過濾掉大量低頻低質的文本信息,因此只要一眼掃過文本就可 領略文章主旨 。
例如?上面這張圖,看一眼就知道肯定是新華網的新聞。
那生成一張詞雲圖的主要步驟有哪些?這裡使用 Python 來實現,主要分三步:
首先是「結巴」中文分詞 jieba 的安裝。
對於英文文本,word_cloud 可以直接對文本源生成詞雲圖。但是對中文的支持沒有那麼給力,所以需要先使用 jieba 對中文文本進行分詞,把文章變成詞語,然後再生成詞雲圖。例如:
jieba.cut 分詞:方法接受三個輸入參數,sentence 需要分詞的字符串;cut_all 用來控制是否採用全模式;HMM 用來控制是否使用 HMM 模型。
jieba.cut_for_search 分詞:方法接受兩個參數,sentence 需要分詞的字符串;是否使用 HMM 模型。該方法適合用於搜索引擎構建倒排索引的分詞,粒度比較細。
jieba.analyse.textrank 使用 TextRank 算法從句子中提取關鍵詞。
然後安裝 wordcloud 詞雲圖庫。
如果執行上面命令後,顯示 success,那麼恭喜你,安裝成功了。
我就遇到了 Failed building wheel for wordcloud 的錯誤。於是先安裝 xcode-select, 再安裝 wordcloud 即可(無需安裝 Xcode)。
wordcloud 庫把詞雲當作一個 WordCloud 對象,wordcloud.WordCloud() 代表一個文本對應的詞雲,可以根據文本中詞語出現的頻率等參數繪製詞雲,繪製詞雲的形狀、尺寸和顏色。
1、首先導入文本數據並進行簡單的文本處理
2、分詞
3、設置遮罩
注意:
1、默認字體不支持中文,如果需要顯示中文,需要設置中文字體,否則會亂碼。
2、設置遮罩時,會自動將圖片非白色部分填充,且圖片越清晰,運行速度越快
其中 WordCloud 是雲詞圖最重要的對象,其主要參數描述如下:
效果如下圖:
上小結是將文章中所有內容進行分詞,輸出了所有詞,但很多時候,我們有進一步的需求。例如:
1、只需要前 100 個關鍵詞就夠了。
2、不需要五顏六色的詞語,應與遮罩圖片顏色一致。
100個關鍵詞,我們在分詞時使用 TextRank 算法從句子中提取關鍵詞。
遮罩顏色可通過設置 WordCloud 的 color_func 屬性。
最終效果如下:
使用python wordcloud庫實現詞雲,教你兩招輕鬆搞定
wordcloud庫簡介
python中的word cloud庫是一個用來製作詞雲的第三方庫
安裝wordcloud 庫
pip install wordcloud123
使用w = wordcloud.WordCloud() 創建一個詞雲對象
2.WordCloud() 參數介紹
3.實現效果
4.問題
並沒有按照詞雲的樣式展示,這裡需要使用 jieba庫進行分詞
安裝jieba庫
pip install jieba
5.使用jieba庫進行分詞
6.效果
將txt文本中的內容生成詞雲
獲取文件中的內容
f = open(‘./xxx.txt’, ‘r’, encoding=’utf-8′)
text = f.read()
說明
encoding=『utf-8』 這個參數表示 讀取的內容以utf-8的編碼方式讀取文件
如果沒有這個參數,會出現如下的報錯信息
關於python詞雲的頻次統計機制
使用wordcloud庫和jieba庫可以使用圖片上的效果,
這個就是將一個文本先進行分詞,然後再統計每個詞的詞頻,選出詞頻較高的一些詞語,然後按照詞頻的大小設定不同的字體大小,隨機生成顏色,隨後形成圖片。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/190709.html