python歌词分析_Python 词云分析周杰伦新歌《说好不哭》
周杰倫難得出新歌 ,最近終于推出了單曲《說好不哭》,然后直接把QQ音樂服務器干崩了,天王的實力可見一斑,QQ音樂還把這個當作 今天過年
看我公眾號頭像就知道是杰倫粉了 ,高中的時候開始喜歡上了他的歌,一晃都這么多年了,我整理了他所有的歌曲和部分電影/演唱會視頻,可以在公眾號回復 周杰倫 獲取,2個多小時的2004 無與倫比演唱會看了n遍。
還做了個杰倫的個人PPT sushengbuhuo.gitee.io/blog/jay/#/…, 在pc上使用空格或者方向鍵來查看PPT。
下面開始用詞云來分析杰倫這首歌都寫的什么內容。
詞云
詞云,又稱文字云,由詞匯組成類似云的彩色圖形,用于展示大量文本數據,就是對網絡文本中出現頻率較高的“關鍵詞”予以視覺上的突出,形成“關鍵詞云層”,從而過濾掉大量的文本信息,使瀏覽者只要一眼掃過文本就可以領略文本的主旨。
歌詞
先看看這首歌的歌詞,在QQ 音樂上可以找到y.qq.com/n/yqq/song/…
先把歌詞保存到文件 no_cry.txt ,然后用Python的wordcloud來分析 。
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圖片效果:
改變下尺寸效果
接著看看這首歌的主要關鍵詞
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
如果你不想寫代碼 ,可以直接用命令行工具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
一個在線生成詞云的網站 wordart.com/create 將文字導入進去
上傳中文字體,否則亂碼,效果如圖:
公眾號詞云
這是新榜針對公眾號文章的詞云分析工具,可以免費使用https://data.newrank.cn/wordCloud.html ,比如我的公眾號文章詞云圖
推薦閱讀:
公眾號:蘇生不惑
總結
以上是生活随笔為你收集整理的python歌词分析_Python 词云分析周杰伦新歌《说好不哭》的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第二届「科学探索奖」获奖名单公布
- 下一篇: yershop商城系统开发(二)——新浪