版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
目錄1引言(緒論)31.1研究背景及意義31.2全文的框架結(jié)構(gòu)32相關(guān)技術(shù)介紹33數(shù)據(jù)獲取的實現(xiàn)43.1爬蟲的設計思想43.11歌單數(shù)據(jù)53.12最優(yōu)歌單53.13歌曲評論數(shù)據(jù)53.2爬蟲的實現(xiàn)與結(jié)果展示63.21歌單數(shù)據(jù)爬蟲代碼實現(xiàn)63.22最優(yōu)歌單代碼實現(xiàn)83.23歌曲評論爬蟲代碼實現(xiàn)94數(shù)據(jù)預處理分析及可視化134.1數(shù)據(jù)預處理134.2數(shù)據(jù)分析154.21關(guān)于評論的分析154.22LDA主題分析174.23基于時間的情感趨勢分析以及熱評分析204.24情感趨勢在時間維度上得分析214.3數(shù)據(jù)可視化平臺235總結(jié)246引用文獻25致謝摘要:音樂評論數(shù)據(jù)作為一種重要的用戶生成內(nèi)容,反映了聽眾對音樂作品的主觀感受和評價。然而,由于音樂評論數(shù)據(jù)具有海量、非結(jié)構(gòu)化等特點,傳統(tǒng)的數(shù)據(jù)分析方法往往難以應對。因此,如何利用現(xiàn)代技術(shù)手段對這些數(shù)據(jù)進行高效、準確的分析,成為了音樂研究領(lǐng)域亟待解決的問題?!P(guān)鍵詞:爬蟲;機器學習;數(shù)據(jù)分析;網(wǎng)易云;情感分析1引言(緒論)1.1研究背景及意義音樂作為人類文化的重要組成部分,一直以來都承載著表達情感、傳遞信息和記錄歷史的重要使命。隨著互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,音樂產(chǎn)業(yè)也迎來了前所未有的變革。在線音樂平臺如雨后春筍般涌現(xiàn),為廣大音樂愛好者提供了海量的音樂資源以及互動交流的場所。在這些平臺上,用戶不僅可以欣賞到各種風格的音樂作品,還可以發(fā)表自己的評論和觀點,形成了一個龐大的音樂評論數(shù)據(jù)集合。音樂評論數(shù)據(jù)作為一種重要的用戶生成內(nèi)容,反映了聽眾對音樂作品的主觀感受和評價。然而,由于音樂評論數(shù)據(jù)具有海量、非結(jié)構(gòu)化等特點,傳統(tǒng)的數(shù)據(jù)分析方法往往難以應對。因此,如何利用現(xiàn)代技術(shù)手段對這些數(shù)據(jù)進行高效、準確的分析,成為了音樂研究領(lǐng)域亟待解決的問題。近年來,隨著Python等編程語言的普及以及爬蟲、機器學習等技術(shù)的發(fā)展,為音樂評論數(shù)據(jù)的分析提供了強有力的支持。Python作為一種易學易用、功能強大的編程語言,在音樂數(shù)據(jù)處理、分析以及可視化等方面具有得天獨厚的優(yōu)勢。同時,爬蟲技術(shù)可以幫助我們自動化地收集音樂評論數(shù)據(jù),極大地提高了數(shù)據(jù)獲取的效率和準確性。而機器學習技術(shù)則可以通過對大量數(shù)據(jù)的訓練和學習,發(fā)現(xiàn)數(shù)據(jù)中的隱藏規(guī)律和模式,為音樂評論數(shù)據(jù)的深度分析提供了可能。[5]基于上述背景,本文旨在利用Python編程語言是應用爬蟲技術(shù)抓取最近時間內(nèi)的音樂相關(guān)數(shù)據(jù)引入paddlehub進行情感分析對音樂評論數(shù)據(jù)進行深入的分析和研究,探究聽眾對音樂作品的態(tài)度和情感傾向;同時,結(jié)合機器學習算法,對評論數(shù)據(jù)進行邏輯回歸分析,挖掘其中的潛在信息和價值。本文的研究主旨是針對于用戶的評論情感進行著重分析,探索用戶在不同的維度下情感的變化。1.2全文的框架結(jié)構(gòu)2相關(guān)技術(shù)介紹數(shù)據(jù)爬蟲:我主要采用了Selenium和Requests這兩個強大的工具。Selenium是一個用于自動化Web瀏覽器操作的工具,它模擬真實用戶的行為,能夠執(zhí)行如點擊、輸入、滾動等瀏覽器操作,從而獲取網(wǎng)頁上的動態(tài)內(nèi)容。Selenium支持多種瀏覽器和編程語言,具有高度的靈活性和可擴展性。通過使用Selenium,我能夠輕松地爬取那些需要用戶交互或JavaScript渲染的網(wǎng)頁數(shù)據(jù),有效地克服了傳統(tǒng)爬蟲在處理這類網(wǎng)頁時遇到的困難。而Requests則是一個用于發(fā)送HTTP請求的Python庫,它簡潔易用,功能強大。通過Requests,我可以方便地發(fā)送GET、POST等請求,獲取網(wǎng)頁的HTML內(nèi)容,進而進行解析和提取所需的數(shù)據(jù)。Requests還支持自定義請求頭、cookies等參數(shù),以及處理網(wǎng)絡異常和重試機制,使得我的爬蟲程序更加穩(wěn)定和可靠。數(shù)據(jù)處理:我主要采用了pandas這一強大的數(shù)據(jù)分析工具。pandas是一個開源的Python數(shù)據(jù)分析庫,它提供了豐富的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)分析工具,使得數(shù)據(jù)清洗、轉(zhuǎn)換、聚合和可視化等操作變得簡單而高效。通過使用pandas,我能夠方便地處理各種類型的數(shù)據(jù),包括結(jié)構(gòu)化數(shù)據(jù)、時間序列數(shù)據(jù)等。pandas的DataFrame和Series數(shù)據(jù)結(jié)構(gòu)為我提供了靈活且強大的數(shù)據(jù)容器,使我能夠輕松地存儲和操作數(shù)據(jù)。同時,pandas還支持多種數(shù)據(jù)格式的導入和導出,如CSV、Excel、SQL等,這使得我能夠輕松地與其他數(shù)據(jù)源進行交互。數(shù)據(jù)分析:我主要借助了sklearn和PaddleHub這兩個強大的工具進行情感得分的計算和分析。首先,sklearn是一個功能強大的Python機器學習庫,它包含了多種經(jīng)典的機器學習算法和工具,非常適合用于數(shù)據(jù)分析和挖掘。在情感得分計算中,我主要利用了sklearn提供的分類算法,如邏輯回歸等。其次,PaddleHub是飛槳生態(tài)下的預訓練模型應用工具,它提供了豐富的中文預訓練模型,以及便捷的模型遷移學習功能。在情感得分計算中,我借助了PaddleHub提供的預訓練模型,如情感分析模型等,直接對文本進行情感傾向的判斷,并輸出情感得分。這種方式無需從零開始訓練模型,大大節(jié)省了時間和計算資源。數(shù)據(jù)可視化:我主要運用了pyecharts、matplotlib和seaborn這三個強大的工具來呈現(xiàn)和分析數(shù)據(jù)。首先,pyecharts是一個用于生成Echarts圖表的類庫,它支持生成折線圖、柱狀圖、散點圖、餅圖等多種類型的圖表,且圖表樣式豐富,交互性強。我利用pyecharts生成了直觀易懂的圖表,展示了數(shù)據(jù)的分布、趨勢和關(guān)聯(lián)關(guān)系,使得分析結(jié)果更加清晰明了。3數(shù)據(jù)獲取的實現(xiàn)3.1爬蟲的設計思想3.11歌單數(shù)據(jù)在本文的研究中,我們采用了Selenium技術(shù)來對網(wǎng)易云音樂的全部歌單進行爬蟲操作。我們需要爬取的主要內(nèi)容有:歌單標題、聽眾收藏數(shù)、聽眾分享數(shù)、歌單評論數(shù)、聽歌數(shù)量、歌單標簽。網(wǎng)易云音樂作為一個深受用戶喜愛的音樂平臺,其頁面結(jié)構(gòu)復雜,數(shù)據(jù)內(nèi)容通過iframe框架嵌套展示。傳統(tǒng)的爬蟲庫在處理這類頁面時,往往只能獲取到表面的非數(shù)據(jù)內(nèi)容,無法觸及到iframe內(nèi)部的關(guān)鍵信息。為了解決這個問題,我們利用了Selenium的強大功能來模擬瀏覽器行為。通過調(diào)用driver.switch_to.frame()方法,我們能夠準確地定位并切換到包含歌單數(shù)據(jù)的iframe框架。一旦進入正確的框架,我們就可以像操作普通頁面一樣,使用Selenium提供的各種選擇器來定位歌單元素,并提取出所需的數(shù)據(jù)。通過這種方法,我們成功地爬取了網(wǎng)易云音樂的全部歌單信息,并存儲在mongodb中,以便于后續(xù)的處理與分析。3.12最優(yōu)歌單獲得歌單數(shù)據(jù)后,考慮到時間與設備問題,不可能爬取全部歌單的全部歌曲,于是就有了最優(yōu)歌單的處理這步,但是鑒于僅依賴單一數(shù)據(jù)(如收藏量或分享次數(shù))來判定最優(yōu)歌單的方法可能顯得不夠全面和嚴謹,所以決定采用更為科學的權(quán)重分配方式來綜合評估各項數(shù)據(jù)。[4]3.13歌曲評論數(shù)據(jù)在網(wǎng)易云音樂的數(shù)據(jù)抓取過程中,我面臨著由兩套框架嵌套展示所帶來的挑戰(zhàn)。最初,我們嘗試使用selenium庫進行爬蟲操作,然而由于數(shù)據(jù)量過于龐大,獲取數(shù)據(jù)的速度顯得緩慢且效率不高。為了克服這一難題,我轉(zhuǎn)而利用抓包工具對網(wǎng)頁的XHR進行深入分析,成功定位到了存儲評論信息的鏈接,其格式為get?csrf_token=。在對鏈接的headers信息進行細致研究后,我發(fā)現(xiàn)服務器接收的請求中包含了名為params和encSecKey的兩個亂碼參數(shù)。這些亂碼實際上是對真實數(shù)值進行加密后的結(jié)果,這表明網(wǎng)易云音樂采取了加密措施來保護數(shù)據(jù)的安全性和完整性。為了獲取所需的數(shù)據(jù),我首先需要找到這些參數(shù)在加密前的原始數(shù)值。這是一個復雜的過程,需要我深入分析網(wǎng)易云音樂的加密機制,并嘗試還原其加密過程。一旦我成功找到了加密前的原始數(shù)值,并理解了其加密原理,我就可以模擬網(wǎng)易云音樂的加密過程,生成正確的亂碼參數(shù)。在后續(xù)的數(shù)據(jù)抓取過程中,我將模擬生成這些加密參數(shù),并傳遞給服務器。通過這種方式,我們能夠繞過復雜的框架嵌套,直接獲取到我需要的評論數(shù)據(jù)。這種方法不僅提高了數(shù)據(jù)抓取的效率,還為我提供了一種更為靈活和可靠的數(shù)據(jù)獲取方式。綜上所述,通過對網(wǎng)易云音樂XHR的深入分析,我成功地找到了評論信息的存儲鏈接,并揭示了其加密機制。通過模擬加密過程,我能夠高效地獲取所需數(shù)據(jù),為后續(xù)的研究和分析提供了有力的支持。 在處理完問題后,我通過使用requests庫獲取到了所需數(shù)據(jù),并將其導出為csv文件。3.2爬蟲的實現(xiàn)與結(jié)果展示3.21歌單數(shù)據(jù)爬蟲代碼實現(xiàn)通過import調(diào)用所需工具庫selenium及其webdriver、mon.by方法,調(diào)用time的time.sleep方法,它主要作用是引入延遲,即讓爬蟲程序在連續(xù)請求之間暫停一段時間。這種延遲對于爬蟲的效率和合法性都是非常重要的,pymongo方法用來連接mongodb數(shù)據(jù)庫用來存儲爬蟲數(shù)據(jù)。圖1歌單爬蟲關(guān)鍵代碼一首先創(chuàng)建了一個ChromeOptions對象,然后添加了一個參數(shù)--headless,使得瀏覽器在運行時不會顯示界面,這樣可以節(jié)省資源并使得爬取過程更快速。這里使用XPath定位到包含歌曲鏈接的元素,然后遍歷這些元素,獲取每個元素的href屬性值(即歌曲的URL),并添加到urls_list列表中。圖2歌單爬蟲關(guān)鍵代碼二通過循環(huán)urls_list中的歌單鏈接,爬取每個歌單的數(shù)據(jù)并以字典的方式通過pymongo的insertone方法將數(shù)據(jù)存儲到數(shù)據(jù)庫中,最終獲得的數(shù)據(jù)結(jié)構(gòu)如圖3所示。圖3歌單信息的數(shù)據(jù)結(jié)構(gòu)3.22最優(yōu)歌單代碼實現(xiàn) 我們首先對整體數(shù)據(jù)集應用sklearn庫中的StandardScaler方法進行了標準化處理,這一步驟有效消除了不同數(shù)據(jù)項之間量綱的差異,并有助于預防過擬合現(xiàn)象的發(fā)生。隨后,我們創(chuàng)建了線性回歸模型對象,并經(jīng)過人為判斷選擇了合適的x特征(自變量)和y目標變量(因變量)。通過sklearn庫的相關(guān)功能,我們進一步劃分了訓練集xtrain和ytrain,確保模型訓練的有效性。在模型訓練完成后,我們利用model.coef_方法提取了各項特征的權(quán)重系數(shù)。這些權(quán)重系數(shù)反映了不同數(shù)據(jù)項在判定最優(yōu)歌單時的重要性程度,為我們提供了一個更為全面和科學的評估依據(jù)。最終,結(jié)合這些權(quán)重系數(shù),我們成功獲得了最優(yōu)歌單的判定結(jié)果。最優(yōu)歌單如圖5所示。圖4最優(yōu)歌單關(guān)鍵代碼圖5最優(yōu)歌單3.23歌曲評論爬蟲代碼實現(xiàn) 根據(jù)設計思路我通過XHR斷點調(diào)試來尋找加密的位置,標頭中可以看到,請求URL為/weapi/comment/resource/comments/get?通過這個URL來提取斷點,設置好斷點以后,可以重新開始抓包,觀察如圖6中范圍的data是否為常規(guī)數(shù)據(jù),如果不是,就通過調(diào)用堆棧來查找加密位置,因為堆棧越往下就是越先執(zhí)行的代碼。在找的u60.be6y的時候,我發(fā)現(xiàn)了疑似加密的代碼,在此我選擇重新打上斷點并重新抓包,最終獲得了加密方法:“window.asrsea(JSON.stringify(i0x),bsg8Y(["流淚","強"]),bsg8Y(TH5M.md),bsg8Y(["愛心","女孩","驚恐","大笑"]))”。這個方法大概的意思就是將“i0x”的值轉(zhuǎn)為字符串格式后與“bsg8Y(["流淚","強"])”的值、“bsg8Y(TH5M.md)”的值、“bsg8Y(["愛心","女孩","驚恐","大笑"]))”的值放到方法“window.asrsea()”里面運行,并返回了需要的加密參數(shù)。圖6范圍分析第一個參數(shù)i0x。cursor是每頁評論的固定光標,在后續(xù)分頁爬取內(nèi)容的時候必須將當頁光標賦值給data數(shù)據(jù),否則爬取的評論內(nèi)容將與評論時間等數(shù)據(jù)不對齊,pageNo代表了每一頁,爬取每一頁內(nèi)容時用for循環(huán)賦值給pageNo即可,pageSize代表著一頁有20行評論,而rid與threadId則代表著歌曲id。圖7加密前的數(shù)據(jù)分析第二個參數(shù)“bsg8Y(["流淚","強"])”。在控制臺中輸入“bsg8Y(["流淚","強"])”,輸出的結(jié)果是“010001”。這個值是固定的,我通過多次運行發(fā)現(xiàn)的。結(jié)果始終是“010001”,這樣子可以發(fā)現(xiàn),這個值是固定的。分析第三個參數(shù)“bsg8Y(TH5M.md)”。在控制臺中輸入“bsg8Y(TH5M.md)”,輸出的結(jié)果是一大串字符串,多次嘗試后結(jié)果也和第二個參數(shù)一樣是固定不變的。分析第四個參數(shù)“bsg8Y(["愛心","女孩","驚恐","大笑"]))”。答案也和前面的一樣是固定的。加密的方式是window.asrsea(),繼續(xù)在抓包工具中觀察,通過右鍵可以跳轉(zhuǎn)到加密方式的所在位置,點進去之后定位到了方法d,如圖8所示其中,我們可以看到window.asrsea=d,并且方法d與方法a,c,d都有關(guān)系,所以我們需要對這四個函數(shù)進行分析。 從頭開始分析,首先分析d函數(shù),如圖8中可以大概了解到函數(shù)d的執(zhí)行過程,首先從函數(shù)a中得到一個值,這個值是16位的隨機數(shù)將其賦值給i,然后再用d和g傳入函數(shù)b中進行加密,如圖8所示,再把得到的值與“i”再進行一次加密,然后就能得到“h.encText”也就是“params”的值了。而“h.encSecKey”的值是通過函數(shù)c,傳入“i”,“bsg8Y(["流淚","強"])”和“bsg8Y(TH5M.md)”進行加密所得。圖8函數(shù)bb函數(shù)是一個加密函數(shù),首先傳入?yún)?shù)a和b,然后分別將a和b進行utf-8編碼賦值,然后再把編碼后的參數(shù)用AES進行加密,其中函數(shù)內(nèi)定義了一個iv,也就是偏移量,是AES加密方式中必須的一個參數(shù),mode也就是模式,CBC是加密模式。最后是c函數(shù),c函數(shù)是生成encSecKey的關(guān)鍵函數(shù)。其中,c里面的參數(shù)中“i”是一個隨機值,而參數(shù)“e”和參數(shù)“f”都是固定值,所以我們只要能確定“i”的值就能確定encSecKey的值了。圖9window.asrsea加密方式分析完以后,接下來就是根據(jù)分析內(nèi)容編寫代碼,首先獲取全部歌曲的id,如圖10所示,使用selenium庫的find_elements方法獲取全部的歌曲id并存在id1列表中,方便后續(xù)的爬蟲。圖10歌曲id爬蟲接下來就是對評論數(shù)據(jù)的爬蟲,通過for循環(huán)將id賦值給圖7的data之后就可以進行下一步的爬蟲,如圖11所示,e,f,g,i這些是字符串形式的密鑰或參數(shù),get_encSecKey是一個函數(shù),返回一個預定義的加密密鑰字符串。通過get_params(data)這個函數(shù)接受一個數(shù)據(jù)字符串data作為參數(shù),然后使用enc_param函數(shù)兩次來加密數(shù)據(jù)。第一次使用g作為密鑰,第二次使用i作為密鑰。最終返回第二次加密后的結(jié)果。通過to_16(data)這個函數(shù)確保輸入的數(shù)據(jù)data的長度是16的倍數(shù)。如果不是,它會在數(shù)據(jù)的末尾添加填充字符,填充字符的數(shù)量是使數(shù)據(jù)長度達到16的倍數(shù)所需的最少字符數(shù)。填充字符的ASCII碼值等于填充字符的數(shù)量。這是AES加密中常見的PKCS7填充方法。最后enc_param(data,key)這個函數(shù)負責加密數(shù)據(jù)。它首先使用to_16函數(shù)確保數(shù)據(jù)長度是16的倍數(shù)。然后,它使用AES加密算法(CBC模式)和給定的密鑰key以及初始化向量iv來加密數(shù)據(jù)。加密后的結(jié)果是一個字節(jié)串,最后通過base64編碼轉(zhuǎn)換為字符串形式并返回。通過requests的post方式將獲取到最終想要的數(shù)據(jù),后續(xù)可以通過withopen的方式存儲數(shù)據(jù)導出為csv格式,最終導出的數(shù)據(jù)結(jié)構(gòu)如圖12所示。圖11歌曲評論爬蟲圖12歌曲評論數(shù)據(jù)結(jié)構(gòu)4數(shù)據(jù)預處理分析及可視化4.1數(shù)據(jù)預處理在數(shù)據(jù)預處理過程中,我們遇到了一種非傳統(tǒng)的時間字段格式,該格式并非常見的年月日表示方法,而是由十個字符組成的特定數(shù)據(jù)形式。為了將這些數(shù)據(jù)轉(zhuǎn)化為更易于理解和分析的標準時間格式,我們利用了pandas庫中的dt.strftime()方法。首先,我們對原始數(shù)據(jù)進行了詳細觀察,識別了非標準時間字段的結(jié)構(gòu)特點。隨后,通過適當?shù)霓D(zhuǎn)換和解析,將這些非標準時間數(shù)據(jù)轉(zhuǎn)換成了pandas能夠識別的日期時間對象(datetimeobjects)。這一步驟是數(shù)據(jù)預處理的關(guān)鍵一環(huán),它確保了后續(xù)分析能夠基于準確且一致的時間信息。一旦數(shù)據(jù)被成功轉(zhuǎn)換為日期時間對象,我們就可以利用dt.strftime()方法,按照指定的格式(如'%Y-%m-%d%H:%M:%S')將這些對象轉(zhuǎn)化為字符串形式的標準時間字段。這種格式不僅易于閱讀和理解,而且符合大多數(shù)數(shù)據(jù)預處理和分析工具的要求,為后續(xù)的數(shù)據(jù)分析和可視化提供了便利。緊接著我采用了jieba分詞庫和pandas工具對剩余的評論數(shù)據(jù)進行了預處理操作。首先,通過jieba分詞庫,我實現(xiàn)了對評論內(nèi)容的分詞處理,這一步驟能夠?qū)⑦B續(xù)的文本信息轉(zhuǎn)化為結(jié)構(gòu)化、離散的詞匯單元,為后續(xù)的數(shù)據(jù)分析和處理提供了便利。接著,利用pandas庫,我進一步對數(shù)據(jù)進行了去重處理,有效去除了重復或無意義的詞匯,保證了數(shù)據(jù)的純凈性和分析的準確性。完成預處理后,我運用了PaddleHub這一強大的深度學習工具對預處理后的評論數(shù)據(jù)進行情感預測。PaddleHub為我提供了豐富的預訓練模型和便捷的操作接口,使得情感分析任務得以高效完成。通過模型的預測,每個評論數(shù)據(jù)都被賦予了一個介于0到1之間的情感評分,這一評分直觀地反映了評論所表達的情感傾向和強度。為了更加清晰地界定情感傾向的類別,我設定了以下情感分類標準:評分大于0.7的評論被認定為積極評論,表示評論中充滿了正向、積極的情感表達;評分小于0.4的評論則被歸為消極評論,表明評論中流露出的情感是負面的、消極的;而評分介于0.4到0.7之間的評論則被視作中性評論,其情感表達既不過于積極也不顯消極,呈現(xiàn)出一種相對中立的態(tài)度。圖13paddlehub情感得分判斷4.2數(shù)據(jù)分析4.21關(guān)于評論的分析評論次數(shù)最多的是郭頂?shù)摹端怯洝?,共?035771條評論。點贊數(shù)最多的則是《水星記》的評論“我再也拿不出像當初那么熱烈的愛了我突然不懂什么是愛了”,點贊數(shù)為808751。這首歌的歌詞悲情憂郁,其中的悲愴的評論更能引起別人的共鳴。鑒于數(shù)據(jù)量龐大,為了更有效地進行可視化分析,我決定采用數(shù)據(jù)聚合的策略。通過按照點贊數(shù)的不同區(qū)間對數(shù)據(jù)進行分組,并計算每個區(qū)間的數(shù)據(jù)點數(shù)量,我成功地將海量的數(shù)據(jù)點轉(zhuǎn)化為了少數(shù)幾個具有代表性的區(qū)間。這種處理方式不僅簡化了數(shù)據(jù)的復雜性,更有助于我清晰地洞察數(shù)據(jù)的分布規(guī)律,從而更加精準地把握歌曲評論的特點和趨勢。圖14點贊數(shù)分布情況我發(fā)現(xiàn)整體的點贊數(shù)分布呈現(xiàn)出明顯的右偏特征。這意味著大部分評論的點贊數(shù)相對較低,而能夠獲得高點贊數(shù)或成為熱評(即點贊數(shù)超過1000)的評論則相對較少。這種分布特點在一定程度上反映了評論數(shù)據(jù)的普遍規(guī)律,即大多數(shù)評論雖然表達了個體觀點和情感,但能夠引發(fā)廣泛共鳴和獲得大量點贊的評論則較為稀缺。由于評論數(shù)據(jù)規(guī)模龐大,我進一步聚焦于那些點贊數(shù)較高的評論,特別是熱評。這些評論不僅數(shù)量有限,而且往往具有更強的代表性和影響力。它們可能觸及了歌曲的核心情感,或者引發(fā)了聽眾的深刻共鳴,從而在眾多評論中脫穎而出。通過歌曲評論數(shù)熱力圖可以發(fā)現(xiàn),哪怕都在同一個熱門歌單里面,歌曲的人氣還是有所差異,排行前二的歌《水星記》、《哪里都是你》占據(jù)了整體的大部分,通過對這兩首歌歌詞的觀察可以判斷出,講述情感與思念的歌曲,會更加引起聽眾的共鳴。圖15歌曲評論數(shù)熱力圖4.22LDA主題分析在論文中,我采用了WordCloud庫對經(jīng)過分詞預處理的數(shù)據(jù)進行詞云可視化,從而揭示了大部分聽眾的評論喜好、關(guān)注的權(quán)重以及大致的情感趨勢。通過這種方法,我們能夠以一種直觀、生動的方式呈現(xiàn)聽眾對歌曲的反饋,并深入挖掘其中的信息。具體來說,詞云可視化技術(shù)能夠根據(jù)詞語在評論中出現(xiàn)的頻率和重要性,以不同大小和顏色的字體進行展示。頻率高、重要性大的詞語將以更大的字體和更醒目的顏色出現(xiàn)在詞云中,從而凸顯出聽眾關(guān)注的焦點和喜好。在可視化結(jié)果中,我們觀察到了一些有趣的現(xiàn)象。首先,某些關(guān)鍵詞如“愛”、“喜歡”、“真的”等頻繁出現(xiàn),表明聽眾對歌曲的整體評價較為積極。其次,一些與歌曲主題和情感相關(guān)的詞語也占據(jù)了顯著的位置,反映了聽眾對歌曲內(nèi)容的深度理解和共鳴。此外,詞云中的不同顏色和字體大小也揭示了不同詞匯在評論中的重要性和權(quán)重,為我們進一步分析聽眾的情感趨勢提供了線索。[14]圖16歌曲評論詞云圖在論文中,為了深入探究歌曲評論的潛在主題和關(guān)鍵詞匯,我采用了文本特征提取和主題模型分析的方法。首先,我利用CountVectorizer方法對預處理后的文本列表processed_text_list進行特征提取。通過設置strip_accents=’unicode’來去除文本中的重音符號,max_features=n_feature來限制特征數(shù)量,stop_words=’english’來排除常用停用詞,以及max_df和min_df來過濾掉出現(xiàn)頻率過高或過低的詞匯,我們得到了一個詞頻矩陣tf,其中每個元素代表相應詞匯在評論中出現(xiàn)的次數(shù)。接下來,為了從詞頻矩陣中挖掘出潛在的主題信息,我采用了潛在狄利克雷分配(LatentDirichletAllocation,LDA)模型。LDA是一種非監(jiān)督式的主題模型,它能夠從大量文本數(shù)據(jù)中自動發(fā)現(xiàn)隱藏的主題結(jié)構(gòu)。通過設置n_components=n_topics來確定要發(fā)現(xiàn)的主題數(shù)量,以及其他參數(shù)如max_iter、learning_method和random_state,我們訓練了LDA模型并使其擬合到詞頻矩陣tf上。最后,為了直觀地展示每個主題下的關(guān)鍵詞匯,我定義了一個函數(shù)print_top_words來打印每個主題中權(quán)重最高的前n_top_words個詞匯。通過調(diào)用這個函數(shù)并傳入LDA模型、特征名稱列表和要打印的詞匯數(shù)量,我得到了一個包含每個主題關(guān)鍵詞匯的列表topic_word。表17LDA主題詞從LDA主題詞來看,大部分主題都呈現(xiàn)出一種比較積極的情感傾向。這可能是因為聽眾在分享歌曲評論時更傾向于表達積極、正面的情感,或者是由于歌曲本身的內(nèi)容就具有積極向上的特質(zhì),從而引發(fā)了聽眾的積極情緒。具體來說,像“溫馨與分享”、“時光與感慨”和“積極生活”等主題,都包含了大量積極、正面的詞匯,如“喜歡”、“幸?!?、“加油”、“開心”等,這些詞匯體現(xiàn)了聽眾對生活的熱愛、對未來的期待以及對歌曲的喜愛和認同。同時,“親情與承諾”、“友情與回憶”等主題也傳遞出一種溫暖、親切的情感,這些主題中的詞匯如“媽媽”、“我會”、“朋友”、“回憶”等,都讓人聯(lián)想到親情、友情的溫馨和美好,進一步增強了整體積極情感的表達。當然,也有部分主題如“孤獨與失落”和“情感記憶”涉及了一些消極的情感,但整體來看,這些主題在數(shù)量上相對較少,且其中的消極情感也可能被其他主題的積極情感所中和或平衡。綜上所述,從LDA主題詞的分析來看,大部分主題確實呈現(xiàn)出一種比較積極的情感傾向,這反映了聽眾在歌曲評論中普遍表達出的積極態(tài)度和情感狀態(tài)。圖18LDA詞頻分布圖我對評論中在七種主題的分布情況作柱狀圖進行分析,見圖7?!皽剀芭c分享”這類主題的評論在所有評論中占比最高,除此之外,評論區(qū)還是可以看到很多積極美好的事物出現(xiàn)。從分析結(jié)果可以看到,大部分中既有單純的對歌曲的喜愛贊美,也有對美好生活的追求和事業(yè)學業(yè)的奮斗,這些積極向上的內(nèi)容是網(wǎng)易云音樂評論區(qū)構(gòu)成的重要部分。4.23基于時間的情感趨勢分析以及熱評分析 在前面的研究里,我們探究了獲得點贊數(shù)最多得評論的一個情感情況,這一節(jié)我想了解什么樣的情感傾向才可以成為熱評,現(xiàn)假設情感得分越低,更有可能成為熱評,我通過利用情感得分這一特征,嘗試構(gòu)建邏輯回歸模型來預測評論是否會成為熱評。首先,我根據(jù)每條評論的點贊數(shù)(likedCount)創(chuàng)建了一個熱評標簽(is_hot),其中點贊數(shù)超過1000的評論被標記為熱評。接著,我選擇了情感得分(sentiment_score),假設它是一個負向指標,即得分越低表示情感越消極)作為唯一的特征輸入到模型中。[2]在模型訓練階段,我使用了邏輯回歸算法,并通過劃分訓練集和測試集來評估模型的性能。然而,從分類報告的結(jié)果來看,模型在預測熱評時的表現(xiàn)并不理想,尤其是對于熱評類別的識別能力非常有限。這可能是由于我們僅使用了單一的情感得分作為特征,而忽略了其他可能影響熱評形成的重要因素。此外,我還查看了情感得分在模型中的系數(shù)。系數(shù)值為負表明情感得分與熱評標簽之間存在正相關(guān)關(guān)系。這意味著情感得分越高,評論成為熱評的可能性越大。這與我的假設不一致。帶著這個疑問,我通過箱線圖,做了一份關(guān)于全部歌曲的情感分布可視化。圖19各歌曲情感分布箱線圖通過繪制箱線圖,我可以清晰地觀察到大部分歌曲的情感傾向分布情況。箱線圖展示了數(shù)據(jù)的上四分位數(shù)、中位數(shù)、下四分位數(shù)以及可能的異常值,為我提供了一個直觀的數(shù)據(jù)概覽。在本研究中,我注意到歌曲情感傾向的中位數(shù)多數(shù)處于0.5以上,這意味著多數(shù)歌曲的情感傾向是偏積極的。同時,箱體的位置以及須線的長度也進一步表明了數(shù)據(jù)的集中程度和離散程度。通過研究可以發(fā)現(xiàn),即使是歌曲本身情感較為消極,可是聽眾的想法不會因此消極,反而會更加積極。由此我了解到了,聽眾會更愿意在評論中表現(xiàn)得更積極,根據(jù)對網(wǎng)易云早年得政策進行調(diào)查,我發(fā)現(xiàn)了突破口,為扭轉(zhuǎn)網(wǎng)易云在用戶心目中的負面形象,網(wǎng)易云音樂采取了相應舉措。2020年8月,網(wǎng)易云相繼推出了“云村評論治愈計劃”、“云村治愈行動”。由此也就可以理解為什么大家更樂意表現(xiàn)得積極得原因了。4.24情感趨勢在時間維度上得分析在針對一天中各個小時聚合的聽歌評論情感分布進行分析時,我發(fā)現(xiàn)情感變化與人們的日常生活節(jié)奏有著密切的聯(lián)系。與公眾認知中的“網(wǎng)抑云”印象相去甚遠,研究結(jié)果表明,一天中的情感波動呈現(xiàn)出獨特的模式。首先,從早上到下午,這段時間通常是人們的工作與學習的高峰期。在這段時間內(nèi),聽眾更傾向于需要積極的情感來面對繁重的工作和學習內(nèi)容。這種積極的情感與樂觀的態(tài)度以文字的形式出現(xiàn)在了評論里面,提高了聽眾們的活躍的情感,幫助人們在忙碌的日常中保持積極的心態(tài)。然而,在下午六點到八點這一時間段,情感分布呈現(xiàn)出持續(xù)走低的趨勢。這一時段正好是下班高峰期,忙碌了一天的聽眾在經(jīng)歷了工作或?qū)W習的壓力后,情感可能會變得較為低落。此時,在音樂評論中可能更多地扮演了情感宣泄的角色,聽眾通過聽歌評論來表達和釋放內(nèi)心的疲憊和壓力。值得注意的是,在九點以后,情感分布開始有所提升。這可能與當代年輕人的生活方式和心理特點有關(guān)。當代年輕人普遍擅長通過各種方式來進行“自我安慰”,音樂便是其中之一。在夜晚時分,人們可能更愿意通過音樂來放松自己,尋找內(nèi)心的平靜和安慰,從而緩解一天中的壓力和疲憊。圖20情感分布情況(小時) 針對一年中各月份聚合的聽歌評論情感分布進行分析,我發(fā)現(xiàn)了情感變化與季節(jié)性事件及學生群體的生活節(jié)奏有著密切的聯(lián)系。首先,七月份的情感分布達到了最低點,這與畢業(yè)季的到來相吻合。畢業(yè)不僅僅意味著學生時代的結(jié)束,更伴隨著對未來不確定性的擔憂和與同窗好友分別的傷感。盡管畢業(yè)季通常伴隨著假期的到來,但大家并沒有表現(xiàn)出過多的積極情感,反而因為即將到來的分別和人生階段的轉(zhuǎn)變而心情低落。隨后,在經(jīng)歷了暑假的八月份,情感分布有了明顯的回溫。這可能是因為學生們在假期中得到了充分的休息和放松,通過旅行、聚會或簡單的休閑活動,他們的情感得到了有效的調(diào)節(jié)和恢復。然而,當九月份開學季到來時,情感得分再次被拉到了底層。這一變化清晰地反映出學生群體在開學之際所面臨的種種壓力和挑戰(zhàn)。新的學期意味著新的學習任務、社交環(huán)境和適應過程,這些都可能對學生的情感產(chǎn)生負面影響。[3]圖21情感分布情況(月份)4.3數(shù)據(jù)可視化平臺為了更直觀地呈現(xiàn)研究結(jié)果,本研究采用了pyecharts庫,構(gòu)建了一個可視化平臺。該平臺能夠生成關(guān)鍵圖形,有效地展示了相關(guān)數(shù)據(jù)的特征和趨勢,使我們能夠更便捷地觀察和分析多個圖案之間的相關(guān)性。通過這一平臺,我們不僅能夠直觀了解各項指標的變動情況,還能夠深入探究不同指標之間的潛在聯(lián)系,從而為后續(xù)研究提供了有力的數(shù)據(jù)支持。pyecharts庫的運用,不僅提升了研究結(jié)果的可視化水平,也大大增強了研究的分析深度和廣度。 通過frompyecharts.chats調(diào)用所需要的圖形例如Bar條形圖,Line折線圖。再通過例如line=(Line())的方式使用所需的圖形,通過add_xaxis()以及add_yasix()的方式將處理好的數(shù)據(jù)加入到圖形里面,通過render方法就可以展示圖形了,這里我直接使用了page方法將所有的圖形合并到一個html內(nèi)并可以自由拖動布局,這樣子做可以大大減少代碼量以及工作周期。圖22每日情感變化分析折線圖關(guān)鍵代碼圖23pyecharts可視化(局部)5總結(jié)通過對網(wǎng)易云歌單、歌曲評論數(shù)據(jù)的可視化分析,我們得以窺見人們在音樂中所展現(xiàn)出的情感傾向。顯然,人們更傾向于在音樂中代入積極、向上的情感,這既是音樂本身所具備的治愈和鼓舞人心功能的體現(xiàn),也反映出人們在面對生活壓力與挑戰(zhàn)時,內(nèi)心深處對于積極、陽光生活的渴望和追求。音樂作為一種特殊的藝術(shù)形式,有著跨越語言和文化的力量,能夠直觸人心,引發(fā)共鳴。在網(wǎng)易云這個音樂平臺上,無論是歌曲的含義還是評論的喜怒哀樂,都映射出人們內(nèi)心的情感世界。積極的情感代入不僅展示了人們樂觀向上的生活態(tài)度,也促進了網(wǎng)絡空間的積極氛圍
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 1632.1-2024塑料使用毛細管黏度計測定聚合物稀溶液黏度第1部分:通則
- 二零二五年度建筑工程質(zhì)量檢測與施工質(zhì)量控制規(guī)范合同3篇
- 2025年度跨境電商物流配送服務合同范本9篇
- 2024版影院室內(nèi)裝修設計合同書
- 二零二五年度綠色環(huán)保產(chǎn)業(yè)合作框架協(xié)議書范本3篇
- 2025年抵債合同房屋買賣協(xié)議3篇
- 2025年度智能停車場2噸不銹鋼帶打印功能電子地磅秤租賃合同6篇
- 2024版租賃商鋪合同書
- 2024標準型料場地租賃合同模板一
- 二零二五年房產(chǎn)租賃保證金繳納及退還協(xié)議6篇
- 林區(qū)防火專用道路技術(shù)規(guī)范
- 2023社會責任報告培訓講稿
- 2023核電廠常規(guī)島及輔助配套設施建設施工技術(shù)規(guī)范 第8部分 保溫及油漆
- 2025年蛇年春聯(lián)帶橫批-蛇年對聯(lián)大全新春對聯(lián)集錦
- 表B. 0 .11工程款支付報審表
- 警務航空無人機考試題庫及答案
- 空氣自動站儀器運營維護項目操作說明以及簡單故障處理
- 新生兒窒息復蘇正壓通氣課件
- 法律顧問投標書
- 班主任培訓簡報4篇(一)
- 成都市數(shù)學八年級上冊期末試卷含答案
評論
0/150
提交評論