⑴ 如何使用python來實現個性化詞雲的示例代碼分享
#coding=utf-8
#usingpython27
fromosimportpath
fromPILimportImage
importnumpyasnp
importmatplotlib.pyplotasplt
fromwordcloudimportWordCloud,STOPWORDS,ImageColorGenerator
#d=path.dirname(__file__)
#Readthewholetext.
text=open(r'C:StudyPythonwordcloud_alice.txt').read()
#readthemask/colorimagetakenfrom
#http://jirkavinse.deviantart.com/art/quot-Real-Life-quot-Alice-282261010
alice_coloring=np.array(Image.open(r'C:StudyPythonwordcloud_alice_color.png'))
stopwords=set(STOPWORDS)
stopwords.add("said")
wc=WordCloud(background_color="white",max_words=2000,mask=alice_coloring,
stopwords=stopwords,max_font_size=40,random_state=42)
#generatewordcloud
wc.generate(text)
#createcoloringfromimage
image_colors=ImageColorGenerator(alice_coloring)
#show
plt.imshow(wc,interpolation="bilinear")
plt.axis("off")
plt.figure()
#recolorwordcloudandshow
#wecouldalsogivecolor_func=image_
plt.imshow(wc.recolor(color_func=image_colors),interpolation="bilinear")
plt.axis("off")
plt.figure()
plt.imshow(alice_coloring,cmap=plt.cm.gray,interpolation="bilinear")
plt.axis("off")
plt.show()
執行這個代碼還需要兩個文件, 網路知道不能上傳, 可以用扣或者私我傳給你
運行結果:
⑵ 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如何自定義詞雲
推薦使用jieba模塊來實現分詞,WordCloud來繪制詞雲。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# -*- 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()
⑷ 詞雲圖怎麼做
詞雲圖做法如下:
1.第一種方法:藉助在線工具,也就是在網頁上就能完成詞雲圖的製作和輸出。目前支持在線製作詞雲圖的網站有:WordArt、Wordiout、微詞雲、易詞雲、美寄詞雲等;
2.第二種方法:直接使用有詞雲圖製作功能的軟體,比如:FineBI、Tableau、SmartBI、BDP等,詞雲圖只是這些軟體的一個小功能;
3.第三種方法:通過編程來實現詞雲圖,常用的編程語言有Python和R。對於有編程技術基礎的朋友,可以自行用Python等製作詞雲圖,對於沒有編程基礎的朋友採取前兩種方法,這兩種方法操作起來比較容易。
⑸ 使用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中對已經排好序的詞語怎麼做詞雲
期末復習比較忙過段時間來專門寫scrapy框架使用,今天介紹如何用python生成詞雲,雖然網上有很多詞雲生成工具,不過自己用python來寫是不是更有成就感。
今天要生成的是勵志歌曲的詞雲,網路文庫裡面找了20來首,如《倔強》,海闊天空是,什麼的大家熟悉的。
所要用到的python庫有 jieba(一個中文分詞庫)、wordcould 、matplotlib、PIL、numpy。
首先我們要做的是讀取歌詞。我將歌詞存在了文件目錄下勵志歌曲文本中。
現在來讀取他
加入#encoding=gbk是為了防止後面操作報錯SyntaxError: Non-UTF-8 code starting with 'xc0'
然後我們用jieba分詞來對歌曲做分詞提取出詞頻高的詞
123456import jieba.analyseresult=jieba.analyse.textrank(lyric,topK=50,withWeight=True)keywords = dict()for i in result:keywords[i[0]]=i[1]print(keywords)得到結果:
12345678910111213from 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()保存生成圖片
1wc.to_file('dream.png')完整代碼:
以上這篇python生成詞雲的實現方法(推薦)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
⑺ 用python畫一個國慶詞雲圖
使用wordcloud模塊。
⑻ python如何生成詞雲圖
from wordcloud import WordCloud
import jieba
import numpy
import PIL.Image as Image
#1.將字元串切分
def chinese_jieba(text):
wordlist_jieba=jieba.cut(text)
space_wordlist=" ".join(wordlist_jieba)
return space_wordlist
with open("test.txt" ,encoding="utf-8")as file:
text=file.read()
text=chinese_jieba(text)
#2.圖片遮罩層
mask_pic=numpy.array(Image.open("china.jpg"))
#3.將參數mask設值為:mask_pic
wordcloud = WordCloud(font_path="C:/Windows/Fonts/simfang.ttf",mask=mask_pic).generate(text)
image=wordcloud.to_image()
image.show()
如圖所示