Analysis of Singer And Songwriters Cooperation Network 專題報告 歌手與詞曲人之合作關係網路分析 Analysis of Singer And Songwriters Cooperation Network 指導教授:吳邦一 博士 學生: 黃耀霆、戴瑞宏
概要 本專題在網際網路中擷取歌手 與詞曲人之合作關係網路,建立 資料庫將資料建檔,使用TF-IDF 統計方法計算與分析歌手與詞曲 本專題在網際網路中擷取歌手 與詞曲人之合作關係網路,建立 資料庫將資料建檔,使用TF-IDF 統計方法計算與分析歌手與詞曲 人的合作關係密切程度,並建構 網站提通使用者查詢相關資料與 分析結果。
系統功能 @ 基本查詢功能 @ 進階查詢功能 @ 歌手歌曲歷年專輯收錄次數查詢 @ 合作關係查詢 - 輸入關鍵字查詢歌手、專輯、歌曲資訊 @ 基本查詢功能 - 輸入關鍵字查詢歌手、專輯、歌曲資訊 @ 進階查詢功能 - 多重條件查詢,更加精確地找到歌手專輯等資訊 @ 歌手歌曲歷年專輯收錄次數查詢 - 查詢歌手精選歌曲在歷年專輯收錄次數以及排行 @ 合作關係查詢 - 查詢歌手與哪些作詞、作曲人的合作關係較為密切 或是作詞人與作曲人之間的合作關係的密切程度
研究步驟 [1] 確定資料來源 - 音樂歌詞網 [2] 建立規劃資料庫 - 資料庫正規化 [3] 擷取資料 - 使用PHP撰寫PARSER [1] 確定資料來源 - 音樂歌詞網 [2] 建立規劃資料庫 - 資料庫正規化 [3] 擷取資料 - 使用PHP撰寫PARSER [4] 資料前置處理 & 儲存 - 將資料統一格式儲存 [5] 運算分析 - 使用TF-IDF計算合作關係 [6] 成果呈現 - 以網站的型式提供使用者查詢 尋找合適的音樂網站 以便抓取可利用的資料 以資料庫正規化的模式 規劃資料庫的格式
資料庫 生日 姓名 星座 歌手 資料表基本 關聯示意圖 其他 M 發行 N 創作 專輯 歌曲 詞曲創作者 N M 其他 年代 姓名 其他
研究步驟 [1] 確定資料來源 - 音樂歌詞網 [2] 建立規劃資料庫 - 資料庫正規化 [3] 擷取資料 - 使用PHP撰寫PARSER [1] 確定資料來源 - 音樂歌詞網 [2] 建立規劃資料庫 - 資料庫正規化 [3] 擷取資料 - 使用PHP撰寫PARSER [4] 資料前置處理 & 儲存 - 將資料統一格式儲存 [5] 運算分析 - 使用TF-IDF計算合作關係 [6] 成果呈現 - 以網站的型式提供使用者查詢 尋找合適的音樂網站 以便抓取可利用的資料 以資料庫正規化的模式 規劃資料庫的格式 利用PARSER從網頁文字資料中抓取所需的資料
資料抓取 利用parser過濾大量的html標籤以獲得真正需要的資料 <body> … <div id=“menu”> <span class=“type1”><p>所需資料</p></span> <span class=“type2”><p>所需資料</p></span> <span class=“type3”><p>所需資料</p></span> <span class=“type4”><p>所需資料</p></span> </div> </body> <div id=“main”> <div class=“top”><div class=“content1”>所需資料</div></div> <div class=“mid”><div class=“content2”>所需資料</div></div> <div class=“down”><div class=“content3”>所需資料</div></div> </div> 所需資料 利用parser過濾大量的html標籤以獲得真正需要的資料
研究步驟 [1] 確定資料來源 - 音樂歌詞網 [2] 建立規劃資料庫 - 資料庫正規化 [3] 擷取資料 - 使用PHP撰寫PARSER [1] 確定資料來源 - 音樂歌詞網 [2] 建立規劃資料庫 - 資料庫正規化 [3] 擷取資料 - 使用PHP撰寫PARSER [4] 資料前置處理 & 儲存 - 將資料統一格式儲存 [5] 運算分析 - 使用TF-IDF計算合作關係 [6] 成果呈現 - 以網站的型式提供使用者查詢 尋找合適的音樂網站 以便抓取可利用的資料 以資料庫正規化的模式 規劃資料庫的格式 利用PARSER從網頁文字資料中抓取所需的資料 將資料做整理 給予有規則性的ID以利於分類 進行儲存
編號整理 歌曲 專輯 歌手 sid sname 10001010001 s1 10001010002 s2 10001010003 s3 10001010004 s4 …… 專輯 aid aname 1000101 a1 1000102 a2 1000103 a3 1000104 a4 …… 歌手 pid name 10001 A 10002 B 10003 C 10004 D ……
研究步驟 [1] 確定資料來源 - 音樂歌詞網 [2] 建立規劃資料庫 - 資料庫正規化 [3] 擷取資料 - 使用PHP撰寫PARSER [1] 確定資料來源 - 音樂歌詞網 [2] 建立規劃資料庫 - 資料庫正規化 [3] 擷取資料 - 使用PHP撰寫PARSER [4] 資料前置處理 & 儲存 - 將資料統一格式儲存 [5] 運算分析 - 使用TF-IDF計算合作關係 [6] 成果呈現 - 以網站的型式提供使用者查詢 尋找合適的音樂網站 以便抓取可利用的資料 以資料庫正規化的模式 規劃資料庫的格式 利用PARSER從網頁文字資料中抓取所需的資料 將資料做整理 給予有規則性的ID以利於分類 進行儲存 利用TF-IDF的統計方法 計算出關係權重判定關係密切程度
運算分析 TFIDF Ex: 作曲人A對歌手B的重要性 tfidfi,j = tfi,j˙idfj 作曲人A與歌手B合作的歌曲數量 在一份給定的文件裡,詞頻(term frequency,TF) 指的是某一個給定的詞語在該文件中出現的次數。 對於在某一特定文件裡的詞語 來說,它的重要性可表示為: 作曲人A與歌手B合作的歌曲數量 歌手A發行歌曲的全部數量 是該詞在文件 中的出現次數,而分母則是在文件 中所有字詞的出現次數之和。 逆向文件頻率(inverse document frequency,IDF)是一個詞語普遍重要性的度量。 某一特定詞語的IDF,可以由總文件數目除以包含該詞語之文件的數目, 再將得到的商取對數得到: 所有歌手總人數 作曲者A跟歌手們的合作數量(人數) |D|:語料庫中的文件總數 :包含詞語 的文件數目(即 的文件數目) 則 tfidfi,j = tfi,j˙idfj
研究步驟 [1] 確定資料來源 - 音樂歌詞網 [2] 建立規劃資料庫 - 資料庫正規化 [3] 擷取資料 - 使用PHP撰寫PARSER [1] 確定資料來源 - 音樂歌詞網 [2] 建立規劃資料庫 - 資料庫正規化 [3] 擷取資料 - 使用PHP撰寫PARSER [4] 資料前置處理 & 儲存 - 將資料統一格式儲存 [5] 運算分析 - 使用TF-IDF計算合作關係 [6] 成果呈現 - 以網站的型式提供使用者查詢 尋找合適的音樂網站 以便抓取可利用的資料 以資料庫正規化的模式 規劃資料庫的格式 利用PARSER從網頁文字資料中抓取所需的資料 將資料做整理 給予有規則性的ID以利於分類 進行儲存 利用TF-IDF的統計方法 計算出關係權重判定關係密切程度 將網站做成搜尋引擎的模式 提供使用者多項查詢服務
使用者介面 搜尋引擎首頁
使用者介面 資料查詢結果
使用者介面 專輯收錄排行
研究成果 作曲人李偲菘 與其他作詞人的關係 使用TFIDF和合作數量這兩種方法來計算 分析合作關係,結果有所不同。除了合作數量 外,詞曲人的合作對象專一性也會影響到合作 密切程度的排名。
周杰倫幫徐若瑄寫歌 徐若瑄幫周杰倫填詞
合作密切的原因? 透過網路報導 得知原因 了解兩人關係