周杰倫可貴出新歌 ,最近終於推出了單曲《說好不哭》,而後直接把QQ音樂服務器幹崩了,天王的實力可見一斑,QQ音樂還把這個看成 今天過年 html
看我公衆號頭像就知道是杰倫粉了 ,高中的時候開始喜歡上了他的歌,一晃都這麼多年了,我整理了他全部的歌曲和部分電影/演唱會視頻,能夠在公衆號回覆 周杰倫
獲取,2個多小時的2004 無與倫比演唱會看了n遍。 git
還作了個杰倫的我的PPT sushengbuhuo.gitee.io/blog/jay/#/…, 在pc上使用空格或者方向鍵來查看PPT。 github
下面開始用詞雲來分析杰倫這首歌都寫的什麼內容。windows
詞雲,又稱文字雲,由詞彙組成相似雲的彩色圖形,用於展現大量文本數據,就是對網絡文本中出現頻率較高的「關鍵詞」予以視覺上的突出,造成「關鍵詞雲層」,從而過濾掉大量的文本信息,使瀏覽者只要一眼掃過文本就能夠領略文本的主旨。 瀏覽器
先看看這首歌的歌詞,在QQ 音樂上能夠找到y.qq.com/n/yqq/song/…服務器
先把歌詞保存到文件 no_cry.txt ,而後用Python的wordcloud來分析 。微信
wordcloud 是Python的一個擴展包,直接使用pip install wordcloud來安裝。 github.com/amueller/wo…網絡
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator
import jieba,wordcloud
from snownlp import SnowNLP
import jieba.analyse
from collections import Counter
with open('no_cry.txt', 'r',encoding='utf-8') as f:
data = f.read()
mytext = " ".join(jieba.cut(data))
wordlist = jieba.analyse.extract_tags(mytext, topK=10) # 分詞,取前10
['怎麼', '別人', '挽留', '打擾', '放手', '說好', '在乎', '沒有', '從不', '拼命']
#c = Counter(mytext)
#c = c.most_common(10)
wordcloud = WordCloud(font_path="c:\windows\fonts\simhei.ttf").generate(mytext)
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
plt.show()
wordcloud.to_file('no_cry.jpg')
複製代碼
保存到本地的文件 no_cry.jpg圖片效果:dom
接着看看這首歌的主要關鍵詞jvm
s = SnowNLP(mytext)
# for sentence in s.sentences:
# print(sentence)
# sentc = SnowNLP(sentence)
# print(sentc.sentiments)
>>> s.sentiments
0.9875230187654408
>>> s.summary(limit=10)
複製代碼
關鍵詞以下:
['我都是聽別人說', '不習慣一我的生活', '不習慣一我的生活', '說好不哭讓我走', '說好不哭讓我走', '都這個
時候 你還在乎着', '都這個時候 你還在乎着', '電話開始躲 從不對我說', '電話開始躲 從不對我說', '挽留的話卻沒有說']
複製代碼
而後加個白色背景
def handle(textfile, stopword):
with open(textfile, 'r',encoding='utf-8') as f:
data = f.read()
wordlist = jieba.analyse.extract_tags(data, topK=100) # 分詞取前100
wordStr = " ".join(wordlist)
hand = np.array(Image.open('img/no_cry.jpeg'))
my_cloudword = WordCloud(
# wordcloud參數配置
width=1024,
height=768,
background_color = 'white',
#mask = hand,
max_words = 100,
stopwords = stopword,
max_font_size = 100,
font_path='c:\windows\fonts\simhei.ttf',
random_state=3,
)
my_cloudword.generate(wordStr)
my_cloudword.to_file('res.jpg')
plt.axis('off')
ax = plt.imshow(my_cloudword)
fig = ax.figure
fig.set_size_inches(25,20)
plt.show()
stopwords = set(STOPWORDS)
handle('no_cry.txt', stopwords)
複製代碼
效果圖
若是你不想寫代碼 ,能夠直接用命令行工具wordcloud_cli , amueller.github.io/word_cloud/… 能夠看看命令行參數
直接執行 wordcloud_cli --text no_cry.txt --imagefile no_cry.jpg --mask ye.jpg --fontfile c:\windos\fonts\simhei.ttf
,生成圖片效果
一首歌可能還看不出效果,下面以周杰倫於2003年發行的專輯《葉惠美》爲例,共收錄了11首歌曲
百科地址https://baike.baidu.com/item/%E5%8F%B6%E6%83%A0%E7%BE%8E/893 近600行歌詞,保存到文件 jay.txt
這張專輯的主要關鍵詞
['微笑 東風破 乒乓 彈奏 咱們 驕傲 睫毛 不想 一曲 好難 獲得 走過 琵琶 一天 天空 多強 畫面 嘴角 到底 一直
粉嫩 恰恰 二班 回憶 永遠 看不見 故事 不到 爲何 不用 沉默 外表 請原諒 從前 可不能夠 孤獨 水蜜桃 沒有
雙刀 脣膏 怎麼 知道 國度 刻着 一點 多汁 離開 漸漸 墜入 小孩 原地打轉 仁慈 還要 清秀 自負 亮麗 受傷 沒人
能 我試 過握 大到 訓導處 荒煙漫草 先對 我戒 那魯灣 裁判 唐裝 本身 依賴 第一名 答案 示好 石板路 專輯 喊
叫 香味 楓葉 一股 捨不得 那年 溫柔 放晴 自信 洋溢 雨淋 距離 俯瞰 看不慣 古道 颳風 籬笆 不要 天台 剝落
琴聲 紀錄片 幽幽 預兆 仍是']
複製代碼
若是你不會代碼怎麼生成詞雲呢,有許多對應的網站。
一個在線生成詞雲的網站 wordart.com/create 將文字導入進去
國內也有對應的 cloud.niucodata.com/,將歌詞複製進去,點擊…
這是新榜針對公衆號文章的詞雲分析工具,能夠無償使用https://data.newrank.cn/wordCloud.html ,好比個人公衆號文章詞雲圖
推薦閱讀: