• 沒有找到結果。

結合中文斷詞系統與雙分群演算法於音樂相關臉書粉絲團之分析:以KKBOX為例 - 政大學術集成

N/A
N/A
Protected

Academic year: 2021

Share "結合中文斷詞系統與雙分群演算法於音樂相關臉書粉絲團之分析:以KKBOX為例 - 政大學術集成"

Copied!
117
0
0

加載中.... (立即查看全文)

全文

(1)國立政治大學資訊科學系 Department of Computer Science National Chengchi University. 碩士論文 Master’s Thesis 政 治. 大. 立. ‧ 國. 學. 結合中文斷詞系統與雙分群演算法於音樂相關. ‧. 臉書粉絲團之分析:以 KKBOX 為例. sit. y. Nat. Combing Chinese Text Segmentation System and. n. er. io. Co-Clustering Algorithm for Analysis of al v i n Ch Music Related Facebook e n g cFan h i UPage: A Case of KKBOX. 研究生:陳柏羽 Po-Yu Chen 指導教授:徐國偉 Kuo-Wei Hsu. 中華民國一百零六年六月 June 2017.

(2) . 致謝. 在研究所的這段期間,經歷了數不清的狀況與問題,終於完成了人生這段漫長的 求學生涯。首先要誠摯的感謝我的指導教授徐國偉老師,在研究上不時地給予我 鼓勵以及幫助,讓我在這段時間裡受益良多。也謝謝口試時口試委員黃老師以及. 政 治 大 另外也要感謝研究室的學長姊以及就讀研究所時相遇的同學們,在這段日子 立. 沈老師給予了我許多意見,讓我的論文能夠更完整。. ‧ 國. 學. 裡給了我不少的建議。 謝謝我的好朋友真儀、力文,儘管學習領域不太相近還 是提供給我許多建議與幫助,也謝謝陪我一路走來的各位朋友們,婉菱、郁群、. ‧. sit. Nat. 為有你們的陪伴,讓我總是能再次的打起精神繼續研究。. y. 聖宇、敬輝、祥彬、攸潔、品嘉、韋力、聖勛、彥蓉、泓志、冠宇、連鴻…,因. al. er. io. 最後要好好感謝我的家人,在最後一年的研究所提供我所需要的所有,讓我. v. n. 可以無後顧之憂的完成學業,謝謝我的爸媽、師父,人生這個階段總算是努力地. Ch. engchi. i n U. 完成了,帶著所有人的幫助與祝福,我成長了許多,也期許自己未來能夠更好。. 陳柏羽 謹誌. I.

(3) . 摘要 近年智慧型手機與網路的普及,使得社群網站與線上串流音樂蓬勃發展。臉書 (Facebook)用戶截至去年止每月總體平均用戶高達 18.6 億人1,粉絲專頁成為 公司企業特別關注的行銷手段。粉絲專頁上的貼文能夠在短時間內經過點閱、分 享傳播至用戶的頁面,達到比起電視廣告更佳的效果,也節省了許多的成本。本. 政 治 大. 研究提供了一套針對臉書粉絲專頁貼文的分群流程,考量到貼文字詞的複雜性,. 立. 除了抓取了臉書粉絲專頁的貼文外,也抓取了與其相關的 KKBOX 網頁資訊,整合. ‧ 國. 學. KKBOX 網頁中的資料,對中文斷詞系統(Jieba)的語料庫進行擴充,以提高斷 詞的正確性,接著透過雙分群演算法(Minimum Squared Residue Co-Clustering. ‧. Algorithm)對貼文進行分群,並利用鑑別率(Discrimination Rate)與凝聚率. y. Nat. sit. (Agglomerate Rate)配合主成份分析(Principal Component Analysis)所產. n. al. er. io. 生的分佈圖來對分群結果進行評估,選出較佳的分群結果進一步去分析,進而找. i n U. v. 出分類的根據。在結果中,發現本研究的方法能夠有效的區分出不同類型的貼文,. Ch. engchi. 甚至能夠依據使用字詞、語法或編排格式的不同來進行分群。. 關鍵字:雙分群、中文斷詞、臉書粉絲專頁貼文. . 1. 資料來源:http://www.ithome.com.tw/news/111629 II.

(4) . Abstract. In recent years, because both smartphones and the Internet have become more popular, social network sites and music streaming services have grown vigorously. The monthly average of Facebook users hit 1.86 billion last years and Facebook Fan Page. 政 治 大 millions of people in a short 立period of time by LIKEing and SHAREing pages. Using. has become a popular marketing tool. Posts on Facebook can be broadcasted to. ‧ 國. 學. Facebook Fan Page as a marketing tool is more effective than advertising on television and can definitely reduce the costs. This study presents a process to cluster. ‧. posts on Facebook Fan Page. Considering the complicated word usage, we grasped. sit. y. Nat. information on Facebook Fan Page and related information on the KKBOX website.. al. er. io. First, we integrated the information on the website of KKBOX and expanded the text. v. n. corpus of Jibea to enhance the accuracy of word segmentation. Then, we clustered the. Ch. engchi. i n U. posts into several groups through Minimum Squared Residue Co-Clustering Algorithm and used discrimination Rate and Agglomerate Rate to analyze the distribution chart of Principal Component Analysis. After that, we found the suitable classification and could further analyze it. How posts are classified can then be found. As a result, we found that the method of this study can effectively cluster different kinds of posts and even cluster these posts according to its words, syntax and arrangement.. Keywords: Co-Clustering, Chinese Text Segmentation System, Facebook Fan Page. III.

(5) . 目錄 第一章 緒論 ............................................... 1 1.1 研究背景 ..................................................... 1 1.1.1 KKBOX 的沿革 ............................................. 2 1.1.2 Facebook 粉絲專頁 ........................................ 5 1.2 研究動機 ..................................................... 5. 政 治 大. 1.3 研究目的 ..................................................... 6. 立. 1.4 研究方法 ..................................................... 6. ‧ 國. 學. 1.5 論文架構 ..................................................... 8. ‧. 第二章 文獻探討 ............................................ 9. sit. y. Nat. 2.1 SOCIAL MEDIA ................................................... 9. io. al. er. 2.2 DOCUMENT CLUSTERING ............................................. 13. n. 2.3 小結 ........................................................ 18. Ch. engchi. i n U. v. 第三章 資料處理 ........................................... 19 3.1 DATA CRAWLING ................................................. 19 3.1.1 Facebook 粉絲專頁 ....................................... 19 3.1.2 KKBOX 排行榜 ............................................ 20 3.2 DATA CLEAN .................................................... 26 3.3 DATA MERGE .................................................... 26 第四章 統計分析 ........................................... 29 4.1 BOKEH ........................................................ 29 4.1.1 Pandas .................................................. 30 4.1.2 Bokeh Chart and Models .................................. 33. IV.

(6) . 4.2 統計分析 .................................................... 34 第五章 語句斷詞與雙分群演算法 .............................. 44 5.1 語句斷詞 .................................................... 45 5.1.1 CKIP .................................................... 45 5.1.2 Jieba ................................................... 46 5.1.3 CKIP 與 Jieba 之比較 ..................................... 48 5.2 CO-CLUSTERING 雙分群 .......................................... 52 5.2.1 Information Theoretic Co-Clustering Algorithm ........... 54 5.2.2 Minimum Squared Residue Co-Clustering Algorithm ......... 55. 政 治 大 6.1 實驗環境與流程 .............................................. 56 立. 第六章 實驗結果與討論 ..................................... 56. ‧ 國. 學. 6.1.1 實驗環境 ................................................ 56 6.1.2 實驗流程 ................................................ 57. 6.2 實驗設計 .................................................... 58. ‧. sit. y. Nat. 6.2.1 Compressed Column Storage ............................... 59 6.2.2 Principal Component Analysis ............................ 60 6.2.3 Agglomerate rate and Discrimination rate ................ 63. n. al. er. io. 6.3 實驗 ........................................................ 64. v. 6.3.1 分群演算法實驗 .......................................... 6.3.2 列分群實驗 .............................................. 6.3.3 行分群實驗 .............................................. 6.3.4 與其他方法比較 ........................................... Ch. engchi. i n U. 64 73 78 83. 6.4 實驗結果 .................................................... 90 第七章 結論與未來可能研究方向 .............................. 97 7.1 結論 ........................................................ 97 7.2 未來可能研究方向 ............................................ 99 參考文獻 ................................................ 100. V.

(7) . 表目錄 表 1 KKBOX 功能總覽 ................................................ 4 表 2 Twitter 推文常見之內容 ....................................... 12 表 3 分群種類彙整 ................................................. 15 表 4 Facebook 資料表內容 .......................................... 20 表 5 BeautifulSoup Contents 與 String 比較 ......................... 22. 政 治 大 表 7 KKBOX 資料表內容 立 ............................................. 25 表 6 BeautifulSoup 兩種搜尋方式總覽 ............................... 24. ‧ 國. 學. 表 8 排行榜彙整資料-歌手部分 ...................................... 27 表 9 排行榜彙整資料-歌曲部分 ...................................... 27. ‧. 表 10 Jieba 與 CKIP 功能比較 ...................................... 49. sit. y. Nat. 表 11 Jieba 與 CKIP 效能總結比較 .................................. 52. al. er. io. 表 12 實驗所用語言與用途 .......................................... 56. v. n. 表 13 三種演算法時間比較(單位 second) ............................. 65. Ch. engchi. i n U. 表 14 分群數為 4 三種演算法鑑別率結果(列分群) .................... 66 表 15 分群數為 4 三種演算法凝聚率結果(列分群) .................... 66 表 16 分群數為 4 三種演算法鑑別率結果(行分群) .................... 68 表 17 分群數為 4 三種演算法凝聚率結果(行分群) .................... 68 表 18 列分群計算結果 .............................................. 71 表 19 行分群計算結果 .............................................. 71 表 20 行分群數 4,列分群數 4 到 15 結果 ............................. 73 表 21 行分群數 10,列分群數 4 到 15 結果 ............................ 74 表 22 列分群結果統整內容 1 音樂活動部分 ........................... 93. VI.

(8) . 表 23 列分群結果統整內容 其他活動部分 ............................. 94 表 24 行分群字串統計結果 .......................................... 95. 立. 政 治 大. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. VII. i n U. v.

(9) . 圖目錄 圖 1 資料處理流程(KKBOX 網頁部分) .................................. 7 圖 2 資料處理流程(Facebook 粉絲專頁部分) ........................... 7 圖 3 資料處理流程與整合 ............................................ 8 圖 4 KKBOX 排行榜網站 HTML 分層架構 ................................ 23. 政 治 大 圖 6 Bokeh Chart 函式範例–Scatter ................................ 32 立 圖 5 DataFrame 格式範例 ........................................... 31. 圖 7 Bokeh 與 DataFrame 測試結果 .................................. 32. ‧ 國. 學. 圖 8 Bokeh Chart 函式範例 - Bar ................................... 33. ‧. 圖 9 Bokeh Model-「Hover」呈現 .................................... 34. y. Nat. 圖 10 歌曲名次折線圖-張惠妹「三月」(入榜初期) ..................... 35. er. io. sit. 圖 11 歌曲名次折線圖-張惠妹「三月」(入榜後期) ..................... 36 圖 12 歌曲名次折線圖-徐佳瑩「尋人啟事」 ........................... 36. al. n. v i n C h ................................ 圖 13 排行榜上所有歌曲出現次數統計 37 engchi U 圖 14 多首歌曲入榜的歌手統計圖 .................................... 38 圖 15 排行榜上所有歌手出現次數統計 ................................ 39 圖 16 統計出現次數較多的歌手 ...................................... 40 圖 17 統計出現次數較多的歌曲 ...................................... 40 圖 18 歌曲發行日期與最高排行分布圖 ................................ 41 圖 19 歌曲排行與出現次數分布圖 .................................... 42 圖 20 歌手出現次數與歌曲數目分布圖 ................................ 43 圖 21 CKIP 斷詞步驟[7] ............................................ 46. VIII.

(10) . 圖 22 Jieba 斷詞步驟 .............................................. 47 圖 23 實驗流程圖 .................................................. 57 圖 24 分群結果輸出範例 ............................................ 58 圖 25 資料集矩陣非零值分佈圖(7203*29825) .......................... 59 圖 26 貼文分群結果 xy 平面分佈圖 ................................... 62 圖 27 貼文分群結果 xy 平面分佈圖(標準化後) ....................... 62 圖 28 分群結果圖 .................................................. 65 圖 29 列分群分群數 4 結果圖(上至下,MSRICC,ITCC,MSRIICC) ......... 67. 政 治 大 圖 31 行分群分群數 4 結果圖(上至下,MSRICC,ITCC,MSRIICC) ......... 70 立 圖 30 行分群結果圖 ................................................ 69. 圖 32 三種演算法凝聚率與鑑別率結果比較(列分群) .................. 72. ‧ 國. 學. 圖 33 三種演算法凝聚率與鑑別率結果比較(行分群) .................. 72. ‧. 圖 34 MSRIICC 列分群數 6 行分群數 10 結果 ........................... 75. y. Nat. 圖 35 MSRIICC 分群結果列分群數 6No.1 實驗 ......................... 76. er. io. sit. 圖 36 MSRIICC 分群結果 列分群數 6 No.5 實驗 ....................... 76 圖 37 MSRIICC 列分群數 13 行分群數 10 結果 .......................... 77. al. n. v i n C h 4 結果 .......................... 圖 38 MSRIICC 列分群數 15 行分群數 77 engchi U 圖 39 MSRIICC 列分群數 20、24 結果 ................................ 78 圖 40 MSRICC 行分群數 4 結果 ...................................... 79 圖 41 MSRICC 行分群 4 到 15 結果 ................................... 80 圖 42 MSRICC 行分群數 4 分佈結果圖 1 ............................... 80 圖 43 MSRICC 行分群數 4 分佈結果圖 2 ............................... 81 圖 44 MSRICC 行分群數 10 分佈結果圖 1 .............................. 81 圖 45 MSRICC 行分群數 10 分佈結果圖 2 .............................. 82 圖 46 MSRICC 行分群數 10 分佈結果圖 3 .............................. 82. IX.

(11) . 圖 47 未擴充詞彙的分群結果圖 ...................................... 83 圖 48 擴充詞彙後的分群結果圖 ...................................... 84 圖 49 Jieba 擴充前後分群結果之比較 ................................ 84 圖 50 利用關鍵字擷取資料之雙分群結果 .............................. 85 圖 51 以關鍵字詞進行分群與原分群結果之比較 ........................ 86 圖 52 利用 K Means 分群演算法的分群結果 ............................ 87 圖 53 以 K Means 進行分群和原先分群結果之比較 ...................... 88 圖 54 實驗四新資料矩陣之分群結果 .................................. 89. 政 治 大 圖 56 列分群結果統整圖(數字代表分群) ............................ 92 立 圖 55 新資料矩陣和原先分群結果之比較 .............................. 89. 圖 57 行分群數 9 結果分佈圖(放大後) ............................. 96. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. X. i n U. v.

(12) . 第一章 緒論 1.1 研究背景 在 1999 年以前,唱片市場年年皆能創造上百億的銷售佳績,當時的唱片公司(華 納、滾石...)對於數位媒體(MP3)的前景並不看好。但隨著 2002 年,網際網路日 漸普及,Kuro、ezPeer 等 P2P 的數位音樂下載開始盛行,導致唱片的銷售逐漸. 政 治 大 時期是 2005 年左右,其後又逐漸趨緩[8]。而在這段期間,唱片業者為保護權益 立 受到影響。這種以個人電腦作為主要載具的數位音樂下載消費模式,成長最快的. ‧ 國. 學. 便 開 始 尋 求 法 律 途 徑 。 2006 年 , 國 際 唱 片 業 交 流 基 金 會 (International Federation of the Phonographic Industry ; IFPI)和 ezPeer+ (ezPeer 前身). ‧. 和解,並希望能共同開創線上音樂的未來,唱片業開始進入「後唱片業時代」[1]。. sit. y. Nat. 1999 年前後,專輯銷售以迅雷不及掩耳的速度變化著;1999 年前有著單一專輯. al. er. io. 百萬銷售量的著名歌手,在 1999 年後所推出的專輯,銷量逐年大減。以歌手張. v. n. 惠妹為例,1997 年,張惠妹發行「Bad Boy」專輯創下 138 萬張的佳績,然而 2000. Ch. engchi. i n U. 年開始,專輯銷售大不如前,大多維持幾十萬張銷量,近期,2014 年所發行的 「偏執面」更僅剩 5 萬張2。從台灣音樂市場銷售統計可看出,2008 年至 2014 年音樂市場的實體銷售成長率皆為負值,從 170 萬降低至不到 100 萬3;反觀數 位音樂的發展,則是年年成長。根據 2004 年,資策會產業情報研究所(MIC)「台 灣線上娛樂行為分析」問卷調查指出,有近八成的網路族群表示,願意以介於正 版與盜版之間的價格購買合法的線上音樂,從市場分析組織的預估來看,數位音 樂即是唱片市場的未來趨勢[1]。 數位音樂逐漸與網路進行結合形成各式的音樂平台,2004 年經過數百家唱 . 2 3. 資料來源:http://zh.wikipedia.org/wiki/臺灣最暢銷專輯列表 資料來源:http://zh.wikipedia.org/wiki/張惠妹 1.

(13) . 片公司與社團法人中華音樂著作權協會為其合法性背書,KKBOX 正式成立。透過 申請版權授權來搜集音樂專輯提供會員播放、下載。除網路播放外亦可進行離線 播放使用,多元、人性化的服務深受喜愛。到了 2013 年,從 iTunes 下載的單曲 數量開始逐漸減少,反之,以智慧型手機(Smartphone)為主要載具的「串流音樂 模式」正逐漸取代數位音樂下載模式,成為新的音樂消費主流[8]。隨著數位浪 潮的推波助瀾,音樂模式日新月異,模式的轉型成為新的課題,要如何在串流音 樂模式下更深入了解消費者之喜愛以創造新的營銷手法創造雙贏局面即為音樂 市場目前之首要課題。近年來串流音樂市場致力於了解社群、部落格、行動裝置. 政 治 大 自社群網站普及後,透過臉書、Instagram 等社交工具即可快速瀏覽、接收 立. 的發展,以從中找出趨勢,其中 Facebook,臉書,便是其中一個受矚目的方向。. 與朋友或商品相關的第一手資訊。其中增加動態消息的點閱率即是一種可以快速. ‧ 國. 學. 提高資訊傳播的方式,透過多人點閱來使得資料在網路上串流變得更加快速。從. ‧. 商業的角度來看,產品的曝光率、公司的形象、活動的宣傳都是十分重要的一環,. y. Nat. 因此,Facebook 粉絲專頁的功能,深受公司企業的喜愛。透過粉絲專頁的推播. er. io. sit. 宣傳,可快速的將最新的商品資訊、活動內容呈現到粉絲的頁面上,甚至是其他 臉書用戶。在社群網路盛行的現今,此種方式所達到的效果更勝於電視、電台、. al. n. v i n Ch 文宣廣告的宣傳。社群分享與推播作用,就像是病毒化傳播(going viral), engchi U. 可以在短時間內流竄,只要受到按讚影響便能重複回到動態時報上,比起一般宣 傳的模式,還要來的迅速、方便、簡單。對於現今的公司企業來說,已是不可或 缺的一環。. 1.1.1 KKBOX 的沿革 1999 年 MP3 下載軟體 Napster 盛行,讓 P2P 音樂平台備受矚目。願境網訊希望 在市場能創造出一個華人版的 P2P 軟體,因此開始製作 KKSONG 。但在 1999 年 年底,Napster 就因版權訴訟敗訴,使得 KKSONG 在推行之前便就此告終。至 2003. 2.

(14) . 年,網路普及率以及寬頻的提升後,再次嘗試研發 KKSHARE 提供合法 P2P 音樂下 載月租,最後亦因 P2P 版權合法性而暫緩。直到 2004 年二月,願境網訊正式提 出 KKBOX 軟體,並透過公司研發的 KKMAN 與 KKCITY 等 BBS 網頁進行大量行銷, 打響了 KKBOX 的名號,在 2004 年七月即擁有百萬的會員,引起唱片公司的關注, 經過多次協商後決議共同合作,將提供購買音樂的門路轉換成線上的數位通路, 依據歌曲點擊率來與唱片公司進行營收比例分賬,也以此方法保護智慧財產權。 2007 年,KKBOX 的成長受到阻礙,主要在於缺乏智慧型手機以及網路的不普 及等問題,直到蘋果公司(Apple)推出 iPhone 以及 Android 智慧型手機的出現,. 政 治 大 KKBOX 與其他網路上非法下載或 P2P 等平台性質不同,音樂內容皆由原始音 立. KKBOX 開始致力於行動裝置的應用,才打破僵局,成為華人串流音樂市場的首位。. 樂創作人、出版商正式授權。只要會員每月繳納固定費用,即可在 KKBOX 平台上. ‧ 國. 學. 無限次的自由點播歌曲,甚至是進行下載,以離線方式收聽。透過數位著作權管. ‧. 理(DRM)加密機制,將使用者下載的檔案限制於行動裝置(智慧型手機)或電腦上. y. Nat. 的附屬程式中,避免將下載的檔案複製外流,以保護著作權。. er. io. sit. KKBOX 在近年橫掃華語線上音樂服務,成為亞洲市佔率第一名、全球第二大 的串流音樂供應商。累積的用戶已達 1000 萬,2014 年的淨利更是有 1.4 億元之. al. n. v i n Ch 多,是現今台灣唱片市場重要收入來源,亦是現今唱片業行銷的主要管道。 engchi U. 4. 2013 年八月,KKBOX 在 Facebook 上成立了 KKBOX 粉絲專頁,配合社群網路. 來增加與顧客的互動以及提供更多的音樂資訊,讓會員及社群網站的使用者都能 夠從網站上獲取最新的演唱會、專輯、單曲資訊,透過 Po 文被點讚的推播作用 來傳遞與推廣。創辦粉絲專頁至今已有將近一百萬的粉絲。 KKBOX 軟體發展至今,為穩固市場地位,一直致力於支援的版本,其所支援 的版本5有 Windows、Windows Phone、Windows Media Center、Mac OS X、iOS、 Android 等,以下我們將 KKBOX 平台所提供的功能整理成表格。 . 4 5. 資料來源:http://mypaper.pchome.com.tw/kuangyi01/post/1325510399 資料來源:http://zh.wikipedia.org/wiki/KKBOX 3.

(15) . 表 1 KKBOX 功能總覽6 音樂情報 MV 影音. 最新 MV 瀏覽、各種語言流行 MV 及 MV 排行榜. 發行區. 最新發行、數位發行及補貨區(過去已發行,近期才在 KKBOX 中上架的單曲或專輯). 音樂誌 將音樂情報以雜誌方式呈現,內容除了對近期音樂的深度報 Let’s Music 導與分析外,也討論近期樂壇的流行話題,帶領讀者與樂迷 進入音樂人的近期生活與工作 Live Session 由 KKBOX 與樂人 Session 共同策劃的網路音樂 Live 節目,主 要邀請近期發片歌手於節目當中錄製訪談、表演,另外也有 網路上發跡的素人歌手會在節目上進行 Cover 表演 追星行程. 將歌手近期將舉辦的活動、演唱會或音樂會呈現在地圖上, 並且提供該活動的相關資訊,讓樂迷能夠快速掌握訊息,並 將有興趣的活動加入 Google 行事曆中隨時追蹤. 政 治 大 白金會員專區 提供 KKBOX 立 會員各種店家、平台的優惠,也為這些店家及平 台做了行銷廣告. ‧ 國. 學. 專欄. ‧. 音樂大人物 配合音樂誌 Let’s Music 的內容,以影音專訪深入歌手的音 樂世界 主題音樂館 剖析各式音樂主題、議題,並對歌曲進行推薦. y. sit. io. 收錄各個 Live 音樂、演唱會的影片,並且將音樂整理成歌單 提供給用戶直接收藏. n. al. er. 現場直擊. Nat. 達人聽音樂 由專業樂評剖析並推薦他們肯定的必聽專輯. i n U. v. 精選歌單. 各式情境及主題的歌單推薦,讓用戶能夠快速選取適合今日 活動的歌單. 娛樂新聞. 配合近期時事娛樂新聞來推薦影音及完整推薦歌曲. Ch. engchi. 經典音樂館 以有聲書的方式帶領聽者進入各個年代,了解各年代的音樂 事件、曲風以及音樂變化 作家列表. 提供用戶找到各個專欄作家的文章合集. 排行榜 語言分類. 綜合排行、華語、西洋、日語、台語、粵語、韓語. 音樂類型. 嘻哈 R&B、搖滾、電子、古典、爵士、世界心靈. 年度風雲榜 收錄 2005 至 2015 的風雲榜精選歌曲 您可能會喜歡. 依據使用者喜好來進行推薦,將歌手的歷年精選做成歌單或 是各大獎項獲獎的歌曲曲目. 完整曲目總覽. 依據類型將所有歌曲完整分類. 6. 資料來源:http://www.kkbox.com/tw 4.

(16) . 一起聽. 只要用戶關注的人開啟權限,便能夠一同收聽其他用戶或音 樂人的口袋音樂,還提供公共平台進行同步播放,也能進行 互動、聊天. 頻道. 類似推薦系統,依據頻道的分類可以選擇華語、西洋、流行、 經典等等不同選項,每個頻道都有推薦不同的歌單. 電台. 根據你所播放的歌曲或選擇的歌手進行電台播放,並放入與 用戶所選相近的曲風或歌手音樂,另外還有情境電台的功 能,提供各式情境合適的音樂清單,如運動、派對、情歌… 等等. 1.1.2 Facebook 粉絲專頁. 政 治 大 粉絲專頁廣泛的運用於公司企業、品牌組織的形象建立,依據用途又分為官方粉 立. 臉書將功能分為幾個大類,個人社群、社團、粉絲專頁、應用程式等等,其中,. ‧ 國. 學. 絲專頁與社群粉絲專頁兩種,官方粉絲專頁是具官方代表性的企業品牌或是公眾 人物;而社群粉絲專頁則主要為具備特定議題、概念、理想的聚集。. ‧. 粉絲專頁的貼文與資訊,不同於社團或個人社群,屬於完全公開透明,所有. sit. y. Nat. 臉書的使用者都能夠在上面獲取資訊。管理者可以透過授權去分享貼文,而其內. io. al. n. 用於廣告行銷。. er. 容會出現在每個按讚粉絲的動態時報上。而粉絲專頁的人數沒有限制,因此常被. Ch. engchi. i n U. v. 1.2 研究動機 在網路普及後,線上串流音樂取代了線上音樂下載,因不再受版權限制而逐漸盛 行,打響了串流音樂市場的戰爭。而在網路上的行銷與推廣,也成了唱片公司與 音樂平台關注的新議題。在 KKBOX 的粉絲專頁上,有著歌手新專輯、歌曲、活動 的相關貼文,KKBOX 的粉絲可以在臉書上看見自己所喜愛的音樂或音樂人將舉辦 的活動,接著按讚、留言或分享,這個動作將因為 Facebook 的推播作用,堆疊 到其他 KKBOX 粉絲的臉書頁面上,讓更多人關注該活動與音樂。. 5.

(17) . 然而貼文的形式、詞彙十分複雜且冗長,缺乏一個統整性,大量的貼文在乍 看之下無法明確理解所欲表達之用意與各別的不同。另外,臉書貼文本身是依據 時間進行編排,也難以隨心所欲搜尋相關活動的貼文,我們希望能夠綜合某些方 式,讓使用者能夠快速的獲取粉絲專頁的重點資訊以及使用者想要得到的內容。. 1.3 研究目的 本研究希望找出一套完整的流程,讓使用者可以快速探討 Facebook 上粉絲專頁 之貼文內容,其流程包含了抓取資料、整合、處理、分群、評估、解析等等。. 政 治 大 推廣各式活動,由於貼文與一般文章不同,用字遣詞較為隨性與靈活,如欲將貼 立. 本研究以 KKBOX 粉絲專頁為例,貼文內容包含分享歌曲、歌手、專輯資訊、. ‧ 國. 學. 文分類,分類方式上將十分複雜。因此我們嘗試運用斷詞結合分群的方式,希望 能有效的分辨出各個貼文之間的關係與特性,進而了解 KKBOX 粉絲專頁的貼文種. ‧. 類、目的與商業性質。. n. al. er. io. sit. y. Nat. 1.4 研究方法. i n U. v. 在抓取資料上,我們分成兩個部分進行,第一部分則是以撰寫 Python 程式的方. Ch. engchi. 式,直接從 KKBOX 網頁上抓取每日更新的排行榜資料,如圖 1。這些資料在抓取 過程中會出現中文字串的亂碼錯誤,因此我們也對資料進行了處理,刪除少量的 錯誤資料,接著將資料進行整理與合併,分成「Song」 、 「Artist」兩個資料表, 並將兩個資料表所儲存的歌曲與歌手字串,儲存成.txt 文字檔,利用 Jieba 的 擴充詞彙來增加我們整體斷詞的正確性。另外也在第三章,對於排行榜進行統計 分析,以便了解資料內容。. 6.

(18) . 圖 1 資料處理流程(KKBOX 網頁部分). 政 治 大 粉絲專頁進行資料抓取並將資料儲存於 SQL Server 中,接著將這些資料輸出進 立 第二個部分,如圖 2,我們利用實驗室所開發的臉書粉絲專頁挖掘系統,對. 行資料處理,刪除不必要的資料,並且融入第一部分的資料,對貼文部分進行斷. ‧ 國. 學. 詞,產生出「Word-Set」。. ‧. n. er. io. sit. y. Nat. al. Ch. engchi. i n U. v. 圖 2 資料處理流程(Facebook 粉絲專頁部分) 將兩個部分的資料處理完成後,我們進一步將 Facebook 貼文作成資料矩 陣,其中列為貼文,行為字串。並透過雙分群演算法對資料進行分群,並以鑑別 率和凝聚率作為客觀的、以主成份分析作為主觀的評估依據,最後觀察分群結果 以了解各群中的貼文互相的共同點與各群間貼文的關係與異處。. 7.

(19) . 圖 3 資料處理流程與整合. 立. 1.5 論文架構. 政 治 大. ‧ 國. 學. 本論文共分為六章。第一章:論文介紹,講述研究背景、研究動機、研究目的以. ‧. 及研究方法;第二章:文獻探討,探討過去社交媒體、文件分群之相關研究;第. y. Nat. 三章:資料處理,描寫抓取資料的過程、使用方法以及如何對資料進行合併、整. er. io. sit. 理;第四章:統計分析,以第三章所整合的資料表去做進一步的分析,藉此觀察 資料的變化;第五章:中文斷詞系統與雙分群演算法,針對臉書貼文的文字進行. al. n. v i n Ch 斷詞,轉換為矩陣後進行演算法分析的過程;第六章:實驗結果與討論,描述我 engchi U 們如何針對行與列的資料進行分群、如何判斷分群優劣以及結果的處理;第七 章:結論與未來展望。. 8.

(20) . 第二章. 文獻探討. 近年行動網路與行動裝置的發展,讓互聯網、社交媒體崛起,與其相關的分析與 探勘研究也隨之出現,本章節介紹與研究相關之文獻,欲探討社群媒體相關研究 與文件分群相關之內容,其中文件分群部分會介紹各種類型與之相關的分群演算 法。. 立. 2.1 Social Media. 政 治 大. ‧ 國. 學. 社交媒體(Social Media)7,又稱作社會化媒體、社會性媒體,是一種人與人彼 此用來分享意見、經驗、觀點的工具或平台,最早的起點源自於社交網路(Social. ‧. Network Service ,SNS)8的電子郵件(E-mail),也是互聯網最早普及的應用,. sit. y. Nat. 接著 BBS 將「群發」 、 「轉發」的概念帶入,理論上的實現向所有人發布訊息的功. al. er. io. 能,讓網路社交躍進了一大步。而即時訊息與博客(Blog)則是在其之後盛行的兩. v. n. 種社交工具,緊接著就是近年發展蓬勃的 YouTube、Twitter、Facebook、. Ch. engchi. i n U. Instagram …等等。維基百科上定義,社交媒體與商業媒體(Industrial Media), 也就是傳統媒體不同,社交媒體透過互聯網技術與工具,以極低的成本在進行訊 息的分享與討論,且影響的速度與廣度是傳統媒體無法比擬的。 社交媒體擁有豐富且即時的各式資訊,也使得與其相關之研究絡繹不絕,我 們能夠從不同的社交媒體得到不同且大量的即時資訊以及與之相關的討論、評 價、立場等等,在資訊爆炸的這個時代,這些資訊的用途極廣,像是 De Choudhury 所提出的[27],從 Twitter 去分析被診斷出患有臨床抑鬱症的 Twitter 用戶之「行 為屬性」,包含其社會參與、情感、用字遣詞等內容,依據這些行為線索來建構 . 7 8. 資料來源:http://www.twword.com/wiki/%E7%A4%BE%E4%BA%A4%E5%AA%92%E9%AB%94 資料來源:http://www.twword.com/wiki/%E7%A4%BE%E4%BA%A4%E7%B6%B2%E8%B7%AF 9.

(21) . 一個 SVM 數據分類器,去預測用戶抑鬱症發作的可能性,為避免分類重疊問題, 該研究亦採用主成份分析(Principal Component Analysis)來降低資料維度,在 超過預測門檻值時會給予警告或提供專業協助的訊息,該結果具有 70%的精確 度。而 Jie Yin 等人則是提出了[28]對現實世界所發生的緊急情況進行分析, 以 Burst Detection、貼文過濾分類、線上分群、地理標記等方法獲取貼文中有 價值的訊息,即時了解危害影響相關之內容。其中在分群部分,採取的是傳統的 向量空間模型,以 TF-IDF 權重的方式來處理詞彙,並採用稀疏矩陣(Sparse Matrix)來處理分群演算法中動態變化的詞彙,最後以 F-measure 作為評估指. 政 治 大 可助於增加貼文中同一主題詞的頻率,進而提升分群效果,在本研究亦同意此觀 立. 標。他們發現透過刪除 hashtag,「#」符號來處理標籤,將標籤內容作為詞彙,. 點,貼文處理上並未將標籤內容刪除,而是將標籤內容作為詞彙一同放入資料矩. ‧ 國. 學. 陣中。與[28]相關的還有[31],以 Online indexing 的方式設計分群,目標與[28]. ‧. 相同,其文中提及社交媒體的資訊對於緊急情況應變有著極大的潛力,透過分析. y. Nat. 社交媒體的即時交流訊息,能夠從中獲取最即時且快速的觀點。. er. io. sit. 上述的文獻皆為運用社交媒體來進行的分析,應用的方法大致上為分類法與 分群法,其中分群法的非監督特性更是數據挖掘研究的有力工具,必須注意到的. al. n. v i n Ch 是,社交媒體的內容不同於一般文章,內容通常較為簡短,使得分析時容易遇上 engchi U 幾個問題:1.難以辨別其描述的內容重點,一般分析無法準確擷取其中之意涵. 2.詞彙出現次數相近,歸類上難以分辨出關鍵詞彙,在軟性分群上常有重疊的狀 況 3. 用詞較一般文章口語化,使得斷詞判斷困難[29]。其中重疊狀況的研究, 常見是利用社區偵測(Community Detection)的方法來進行分群,社區偵測是 2002 年由 Newman 所提出的「社區」概念[30],他們認為複雜的社群網路之間存 在著許多交互關係,「社區結構」是一個常見的特徵,整個網路是由無數個社區 所組成,而社區偵測即是藉由社區中成員彼此之間的這些交互關係來構成。如 [32]文中所舉出的 Blog 例子,與「可再生能源」主題相關的所有 Bloggers、文. 10.

(22) . 章、標籤、評論都將以社區的概念構成一個相應的社區,其中社交媒體社區又分 成顯性與隱性兩種,顯性社區是根據人類的決定所創建的社區(Facebook 的 Friendship);隱性社區則是不需透過人,能夠透過社交媒體系統去找出的隱含 社區。 由於社區檢測的此種特性,許多的研究都將社區檢測應用於社交媒體上,除 了將其結果應用於各式智能服務外,也有以此概念進行資料探勘發現潛在資訊的 研究。在[33]研究中,是透過隨機遊走「Random Walks」的概念掃描節點,在隨 機拜訪相鄰節點的過程中組成社區結構,結構之中的成員可以被放置在一個或多. 政 治 大 夠將資料依據相關性進行分群,而同個成員可能被分配在多個社區裡,出現重疊 立. 個的社區之中,稱之為「社區重疊」,該方法與軟性的分群演算法概念相同,能. 的狀況,是一種類似分群的應用。. ‧ 國. 學. 除了社區檢測的分群方式,其他各式各樣的分群方法也被應用於社群網路. ‧. 的分析上,[36]文中提及,由於處理社交媒體網站中的大量資料,無法得知群集. y. Nat. 數量,且社交媒體資料會隨時間不斷快速成長,K-means 或 EM 這類的分群演算. er. io. sit. 法並不適用,因此他們選用了一種 Online 式的遞增 Single Pass 分群演算法, 來對社交媒體進行分析,此種方式的分群由於資料集只需處理一次,所以計算效. al. n. v i n C h Linkage 的概念將事件紀錄進行連結分析, 率很高,而[34]則提出利用 Single engchi U 這種方法是凝聚分層法(Agglomerative)的其中一種,概念是去考慮接近的兩群 之間是否有著高相似度的物件,在此篇文獻中針對各種算法做了比較,證實比起. [36]的方法更加的快速,然而在[35]中則提到,Single Linkage 的方式,可能 會 導 致 分 群 結 果 群 集 會 有 極 大 極 小 之 分 , 稱 為 所 謂 的 鏈 結 效 應 (chaining effect)[37]。 在 [38] 中 Ferrara1 等 人 提 出 了 一 個 Detecting Early Signatures of Persuasion in Information Cascades (DESPIC)的平台,內容分為兩個部分, 其一是對資訊進行分群的演算法,將資訊中的資料分群並找出其中的「Memes」,. 11.

(23) . Meme 中文稱作「模因」 ,概念源自於 1976 年作家理察·道金斯的「自私的基因」 一書中,泛指文化資訊的傳承,可能是一個想法、一個行為或一個風格,透過資 訊的交流傳承變得火紅並感染這個社會 9 ,透過該研究所提出的預先分群的方 式,以非監督式的方法來處理 Tweets message,從資訊中偵測出正確的模因, 並依據模因進行分群,接著再以第二部分的分類方法對模因進行分類。該研究亦 提及社交媒體之資料稀疏性質,在他們觀察 Twitter 中的推文時,注意到了和 [29]一樣的困難點,另外,除了[29]所提到的內文較短問題外,在這篇文獻也提 到了 Twitter 有著內文長度的限制,另外也提出有關 hashtag、URL、用戶標籤. Hashtag. 治 政 表 2 Twitter 推文常見之內容 大 立 貼文中可能包含的一個或多個主題標籤. Mention. 標記,用於標記物標用戶,以「@」標註. URL. 貼文中可能包含的外部訊息來源,常以此作為引用之用途. Phrase. 刪除以上三種類型內容、Stop Word、標點符號後剩餘的短片語. (i.e @Jenny)、引用等等的問題,如表 2。. ‧. ‧ 國. 學. io. sit. y. Nat. n. al. er. 表 2 中是 Twitter 推文裡常見的內容,這與本研究臉書粉絲專頁的內容十分. Ch. i n U. v. 相似,臉書的貼文亦時常會出現 Hashtag 的內容,且與該研究的描述相同,. engchi. Hashtag 所標籤的內容,並不一定就是該貼文的主題,有時也會有各式不同的用 意;而 Mention 的部分,在臉書貼文上則已經以「超連結」的方式來取代「@」, 因此在分析上不需特別處理。[38]研究裡將以上這些內容稱之為「Protomemes」 , 形容能夠進行組合的資訊,而研究中也表示,單以 Protomeme 作為重點依據有時 會過於籠統,應該加入其他簡單的描述,因此該研究提出了一個分群前的處理機 制將推文中的資訊依據上表的概念進行擷取,並視為一個個的 Protomeme,接著 計算這些 Protomeme 之間的相似度作為分群之依據。而本研究並不採用複雜的前 處理方法,而是將所有的字詞(Stop Word 除外)都視為等值,依據雙分群法針對 . 9. 資料來源:https://zh.wikipedia.org/wiki/%E7%B6%B2%E8%B7%AF%E7%88%86%E7%B4%85 12.

(24) . 貼文與字詞同時進行考量。而雙分群亦有被應用於社交媒體的先例,[39]的研究 中,Wang 等人提出了針對重疊社區的研究,該研究以社交網路中使用者與標籤 之間的關係來做連接,其概念有點像是[30]中的社區結構,目的在於從這個社區 結構中找出交互重疊的部分,而提出的方法便是以雙分群(Co-Clustering)來 執行,對用戶以及標籤皆進行分群。在[39]提到,社交網路由於資訊複雜,具有 著高聚類係數(Clustering Coefficient)和資料間的平均距離短的問題,聚類 係數高代表社區結構強且複雜,無法輕易給予明確的定義。他們考量了許多研究 方法,像是 Newman 關於社區結構的研究,以及圖分割的概念,但這些方法應用. 政 治 大 策略,將用戶與標籤建構成二分圖,與相比在計算上較不耗費時間。 立. 於此皆為 NP-hard,最後他們採取了 Dhillon 等人[15]將文件和字詞共同考量的. ‧ 國. 學. 2.2 Document Clustering. ‧. 文字探勘是一種能從非結構化的文字中找出隱含資訊或知識的研究,透過資料擷. sit. y. Nat. 取、資料探勘、機器學習、統計學來達成10。依據這種方式能夠從大量的文件中. al. er. io. 分析眾多的內容,擁有高度的潛在價值,利於使用者作出進一步的處理,與資料. v. n. 採掘有著相當緊密的關係,相同點皆為找出有用的知識,而相異點則是在處理資. Ch. engchi. i n U. 料的方式[40]。在文件中,詞彙彼此之間的關係是很重要的一點,另外在撰寫習 慣上也與作者的習慣性有關,且日新月異的流行詞彙也不斷的產生,使得這類型 的分析變得更加困難,而語言的不同也是文字探勘的一大困難,中文與外文的形 式大不相同,英語系語言是採單字成詞的概念,去除「Stop Word」後可以輕鬆 擷取單字,並且進行像是歧義詞之類的處理,但中文的字詞卻有可能是數個單 「字」所組成,且隨著組成的不同亦有著不同的關係,在判定上比起英文更加困 難。 在文字探勘的步驟上,資訊的處理亦是重要的一環。[35]是一個針對網誌文 10. 資料來源: https://zh.wikipedia.org/wiki/%E6%96%87%E5%AD%97%E6%8E%A2%E5%8B%98 13.

(25) . 章分群的研究,其中網誌的分群模組是透過向量空間模組(vector space model) 計算文章之間的相似度,接著採取階層式分群法,在該研究上,前處理的部分便 透過 TF-IDF 將關鍵字擷取出來,接著以 Boolean 二元關係的方式製作關係矩陣, 進而完成概念階層,以提供給網誌作者能夠透過此概念階層快速了解網誌分類以 及助於瀏覽網誌。本研究亦採取與該研究相同之想法,將字詞與貼文的關係以二 元關係的方式製作成關係矩陣。 而文字探勘的技術最常見的是將其用於處理分類,透過分類技術將大量的文 件進行歸類,方便使用者了解與使用,方法主要可分成「分群」(Clustering). 政 治 大 群體,接著找出之間的相異性、內容的相關性,常見的是階層式分群法、切割式 立. 和「分類」(Categorization)兩大類,分群法的概念是將文件集合切割成數個. 分群法;而分類法的概念則是根據事先定義的類別與資訊來進行分類,以這些定. ‧ 國. 學. 義去判別資料應當被置於哪一種類型當中,而分類法可透過訓練資料來強化類別. ‧. 的辨識能力,藉此提高結果的準確率。與分類法相比分群法則相對的較為靈活,. y. Nat. 透過資料相似度計算處理,我們不必去事先找出與資料相關的類別或資訊便能夠. er. io. sit. 將文件進行歸類,用於處理非監督式資料相當的合適,使得文件分群的研究十分 盛行。而分群技術依據文件歸屬程度、是否需要完整資料集以及結果的成像方式. al. n. v i n Ch 而可分成不同種類,在此以[47]所做之分群種類整理做呈現,如表 3。 engchi U. 硬式分群指的是在結果上每一篇文件只會被分到一個群集中,如 K-means. 分群法;而軟式分群則是可能將一篇文件同時分到一個以上的群集中,如 fuzzy clustering。而依據資料的部分可分成靜態與動態兩種類型,靜態分群是在分群 前必須搜集到所有資料,倘若新增資料便要重新分群;而動態分群則是能夠動態 調整新進文件內容。而結果呈現部分,扁平分群是依據維度以二維或三維呈現的 方式;階層分群則是以樹或階層方式來呈現。. 14.

(26) . 表 3 分群種類彙整 分類依據. 分群種類 硬式分群(Hard Clustering). 文件歸屬程度 軟式分群(Soft Clustering) 靜態分群(Static Clustering) 是否需要完整資料集 動態分群(Dynamic Clustering) 扁平分群(Flat Clustering) 分群結果呈現 階層分群(Hierarchical Clustering). 立. 政 治 大. 文件分群的運用十分廣泛,如[9]是將文件分群運用於搜尋引擎相關的研. ‧ 國. 學. 究,其研究表示,搜尋引擎通常不會對搜尋結果進行過濾篩選,而資訊爆炸的時. ‧. 代要如何將使用者所要的資料精確的找出,便是一個能夠使用到文件分群的議 題,該研究提出以關鍵字分群的方式來進行處理,其選用的方法是特徵選擇與特. y. Nat. io. sit. 徵關係之建立以及最後的特徵分群,透過建立特徵語意網路圖的方式,將關係度. n. al. er. 較高的文字連結,計算相似度向量後以 Bisecting K-means 演算法進行文件分. Ch. i n U. v. 群。K-means 是一種常見於分群研究的方法,[9]所採用的 Bisecting K-means 是. engchi. [41]所提出的一個基於 K-means 方法的研究,研究中探討階層式分群與 K-means 的利弊,階層式分群法以往被認為優於 K-means 演算法,原因在於階層式分群對 於資料分群的能力較佳,但比起 K-means 演算法,階層式的分群法效率較差。因 此 在 該 研 究 嘗 試 了 一 種 綜 合 以 上 兩 者 優 點 的 分 群 法 , 也 就 是 Bisecting K-means,其研究在基本的 K-means 方法裡加入了相似度的計算,以群的內聚率 (Cluster Compactness)與分離度(Cluster Separation)來作為分群準則, 概念類似於本研究的凝聚率與鑑別率,[41]最後證實了 K-means 對於文件分群有 著比階層分群更加的效果,另外亦證實兩者合併的方式結果更佳。. 15.

(27) . 在研究[43]中針對分群進行了探討,接續上述所提及的階層式分群法,此種 分群法將資料一層層的進行分裂或聚合,產生出樹狀(dendrogram)或巢狀 (nested)架構,以階層式方式處理可以清楚表達各群之間的關係,在計算上也 只需考量資料點的距離,而在[45]中針對階層式文件分群中也提到,階層式的分 層分群方式,大大的提升了文件分群的檢索有效性,儘管對於計算資源十分的要 求,這便是為何普遍分群研究皆表示階層式分群法較有優勢之原因。然而,當資 料數量龐大,如處理大量文件分群時,階層式分群法的效能就會大大降低,其時 間複雜度將以 O(N2)成長。而非階層式的分群法,則通常以指定分群數量後套. 政 治 大 [36]之 Single Pass Clustering 便是一種非階層式的分群法,另外在[44]中亦 立. 用數學運算來找出最佳分群。如將 N 個物件分成 M 個群體,時間複雜度為 O(NM) ,. 針對 Single Pass 演算法與 K-means 演算法進行了比較,研究中指出 Single Pass. ‧ 國. 學. Clustering 是在 Topic detection and tracking(TDT)研究中使用最多的演算. ‧. 法,優點在於運算速度極快且原理簡單,不過在文本輸入時,一旦順序發生變化,. y. Nat. 分群結果便會大不相同,假設是新聞報導文章,由於時間的順序性,便不會造成. er. io. sit. 太大問題;而 K-means 則是應用到隨機的概念,隨機選擇初始群中心,接著透過 資料距離來進行重新計算,將與其最近的資料規劃到新的分群中,與本研究所使. al. n. v i n Ch 用的資訊理論雙分群有點類似,其優點在於輸入順序不會造成影響,但缺點是容 engchi U 易受到異常資料點的干擾,且演算法也缺乏了伸縮性。. 在此研究中證實了 Single Pass 在新聞議題上的文件分群優於 K-means 的方法, 但反觀用於社交媒體中的臉書貼文上,貼文活動眾多且複雜,代表順序極可能會 對結果造成很大的影響,因此在本研究並不考慮以 Single Pass 作為應用之方法。 在文件分群研究中,大多的研究是針對英文字詞來進行,在處理文字上與中 文的文件有許多不同,因此針對中文字詞的部分我們也進行了深入的研究,如 [43]是一篇應用分群與分類來進行新聞事件追蹤的研究,文中提到在文件分群上 的成敗,常因關鍵字詞的萃取優劣受影響,在此研究中比較了 CKIP 的中文斷詞. 16.

(28) . 方法,表示雖然 CKIP 斷詞快速且兼附詞性,但在傳輸量上卻有著嚴格限制,因 此在研究中提出了自行開發的中文斷詞系統(Chinese Corpus Segmentation), 配合國家圖書館主題標目來進行文件分群的前處理,其研究結果證實使用專業詞 庫確實可以提升分群成效。文件分群中最重要的一環是探討文章與字詞之間的關 係,透過處理這些關聯性來實現各種需求,[42]研究認為字詞之間的關係不應只 以少數的重點字詞為主,這可能會使得文章中部分字詞之間的關係受到忽視,因 此提出以背景知識來輔助文件分群的概念,而其中用於觀察文件中語義關係的工 具便是 WordNet。. 政 治 大 皆為常見的英文單字,可針對一個概念用各種同義詞來描述。 透過這個方式, 立 WordNet 最初是由 George Miller 所提出的自動化辭典概念,其搜集的字詞 11. 能夠加強探討字詞之間的關係,提升文件分群的效果。考慮到[42]研究中為避免. ‧ 國. 學. 字詞關係受到忽視,而加入背景知識的方法、中文 WordNet 可能無法針對眾多新. ‧. 興詞彙進行判斷以及[43]對於斷詞正確性的強調,表示了背景知識與專有詞庫是. y. Nat. 能夠提升分群結果的一種方式。因此本研究為提升分群的效果,選擇在抓取資料. er. io. sit. 時另外抓取與 KKBOX 相關的其他內容,增加斷詞正確率,期望提升整體分群結果。 再回到文件分群中的分群內容,除以上提及之分群法外,co-clustering 、. al. n. v i n C based fuzzy clustering、clustering factorization concept(NMF)、 U h e nongmatrix i h c model-based clustering、spectral clustering 等方法亦是近年文件分群受到. 注目的方法[46],在[46]中表示這些眾多的方法裡又以雙分群(co-clustering) 能 夠 針 對 文 件 與 字 詞 進 行 分 群 , 有 效 率 處 理 高 維 度 矩 陣 最 為 有 效 。 fuzzy clustering 模糊分群,又稱為軟分群,其概念與 K-means 十分相似,但在 K-means 這類硬分群上,兩個群之間的關聯度呈現會是 1 或 0,而模糊分群中關聯度則可 能是 0 到 1 之間的所有數值[48]。在[46]的文獻中提及,fuzzy co-clustering 方法比起 fuzzy-c means 表現來的更佳,且時間複雜度也比 Non-negative matrix . 11. 資料來源:https://zh.wikipedia.org/wiki/WordNet 17.

(29) . factorization(NMF)來的低。因此該研究提出了一種結合模糊分群、雙分群與 半 監 督 分 群 的 方 法 , semi-supervised fuzzy co-clustering algorithm (SS-HFCR),建造一個文件域(document domain)來約束文件「必須」或「不 能」分在同一類別中,透過用戶或其他資源來判斷文件的相似與不相似。 上述文獻提及了眾多的分群方法,階層式分析時間複雜度較高,而 Single Pass 則會有順序問題產生,K-means 是與之相比看似較佳的選擇,但考量文件分 群與社交媒體的特性,最後本研究選擇雙分群法來進行嘗試,而在 6.3.4 將會針 對 K-means 與 Minimum Squared Residue Co-Clustering 進行實驗比較。. 立. 2.3 小結. 政 治 大. ‧ 國. 學. 考量本章節在社交媒體所遇到的困難與文件分群中使用的方法,在處理臉書貼文 的字詞部分,考量到[38]所描述的 Protomeme 過於籠統、[42]關鍵字擷取恐怕失. ‧. 去字詞之間關係,另外也考慮到[29][38]中所提及貼文過於簡短無法找出關鍵重. sit. y. Nat. 點的問題,因此在貼文的斷詞上採取將內文,包含標籤、URL 皆納入考量的方式. al. er. io. 進行斷詞,將所有字詞視為等值,並以[35]所採取的方式,以二元關係來製作文. v. n. 件與字詞的資料矩陣;在分群與分類法上,則考量到各研究中所述社交媒體的複. Ch. engchi. i n U. 雜性及文件分群中的描述,採取了非監督性質的分群方法,另外,考量到[39] 對於社交網路資訊的分析與描述以及[46]對於新興文件分群的介紹,在分群法上 最後選用了雙分群的方法,來對文章與字詞同時進行分群,而與雙分群之相關研 究則記載於 5.2 章節。. 18.

(30) . 第三章. 資料處理. 3.1 Data Crawling 自互聯網崛起,網路存入大量的資料,這些資料包含人類社會的食衣住行育樂, 詳細的將時間、空間記錄下來,也囊括了與使用者相關的資訊,倘若能夠擁有並 利用這些龐大的資料,便能夠從統計分析、資料分析的結果看出隱藏的重要資. 政 治 大. 訊,並從商業角度來進行商業決策。. 立. 為了從這龐大的網路世界中得到所需的資料,與網路和資料的相關研究盛. ‧ 國. 學. 行,Crawler 的概念則變成是不可或缺的一環。Web Crawler,又稱網路爬蟲, 發想點是希望將別人的資料變成自己的,藉以快速的從網路上填充所需的資料,. ‧. 擴充自己的資料庫,節省了累積資料的成本以及時間。透過發送 HTTP Request,. y. Nat. sit. 加上正規表示法的方式從各式網頁中抓取資料,經過資料欄位的處理,再配合資. n. al. er. io. 料庫連結儲存入資料。Google、百度等等的搜尋引擎便是使用 Crawler 的例子,. i n U. v. 抓出所有散佈在網路世界中的索引關鍵字,並且依據出現次數、關鍵程度排列。. Ch. engchi. 試以便利商店來形容此概念,便利商店提供各式各樣的商品供給顧客選擇,讓顧 客能夠得到滿足,增加回客率,而提供商品的廠商也能夠因此而獲利並且打響知 名度。以上搜尋引擎便是便利商店,而廠商即為網路世界中的網頁。 本研究以 Crawler 的概念撰寫程式分別對 Facebook 粉絲專頁以及 KKBOX 官 方網站進行資料抓取,再將資料進行一步步的整理,最後合併。. 3.1.1 Facebook 粉絲專頁 透過[2]所研發之「臉書資料抓取系統」 ,選取 KKBOX 的臉書粉絲專頁來進行資料 抓取,[2]所做之研究能夠同時抓取大量粉絲專頁資料,並將各個粉絲專頁內容. 19.

(31) . 分成三個資料表儲存於 Microsoft SQL 資料庫中,資料表分別為「Like」 、 「Post」 、 「Comment」,如表 4,介紹了資料表中所擁有的資料。 表 4 Facebook 資料表內容 資料表. 抓取內容. 貼文 ( Post ) 最主要的資料抓取目標,資料表中儲存了每一則貼文的所有 內容。其中包含文章內容、發布者及其 ID、圖片、連結、按 讚數目、分享數目、回應數目、發布日期等等內容 讚 ( Like ). 針對每一則貼文的讚進行資料抓取,內容包含了每一則貼文 的按讚者名稱以及其個人 ID. 回應 ( Comment ) 針對每一則貼文的回應進行資料抓取,內容包含了每一則貼 文回應者的名稱以及其個人 ID,另外也記下了該回應的回應 時間以及被按讚數目. 立. 政 治 大. 3.1.2 KKBOX 排行榜. ‧ 國. 學. 在 KKBOX 的官方網站,針對音樂種類做了各式排行榜,排行榜上詳盡的記錄歷年. ‧. 來每日歌曲的流動資訊,包含了歌曲的上榜日期、發布日期以及每日的排名變 化。我們透過檢視網頁原始碼以及輔助工具「InfoLite」對 HTML 框架進行解析,. y. Nat. io. sit. 檢查排行榜內的資料分別被放置在 HTML 的哪些標籤中,再利用 Python 的. n. al. er. Request 套件來獲取網頁資訊 ,將網頁內容按照日期處理,並且轉換型態儲存. Ch. i n U. v. 到 CSV(Comma-Separated Values)檔中,以下是在抓取資料上所使用的方式。. engchi. 1. Datetime12 KKBOX 排行榜是日曆選單式網頁,儲存著歷年來每日的排行榜資訊,網址 Url 依據日期進行轉換,為了讓程式碼能夠自動抓取當天排行榜,利用了 Python 的 套件 Time. ,來幫助取得當日日期。. 利用 Time 中的 Strftime 函式,我們可以自行定義想要抓取的日期樣式,像 是「 strftime(“%Y-%m-%d-%H:%M:%S”) 」可以得到「2016-03-17-18:06:48」 的字串,透過這個方法我們可以避免掉格式問題直接將日期格式處理成我們所需 . 12. 資料來源:https://docs.python.org/2/library/time.html 20.

(32) . 要的字串形式,以便加入到要進行 Request 的字串當中,並透過迴圈將日期遞減。 透過數字遞減來計算日期會因為每個月的天數不同而發生錯誤,因此在迴圈 當中,我們透過 Find 函式抓取 HTML 中所儲存的日期來替換日期變數,避免在 「20160301」後會因為迴圈遞減到「20160300」 ,而非我們所要的「20160229」。 另外由於抓到的日期會以 Datetime 的格式儲存,如「 2016-02-29 」 ,為了方便 處理,我們透過 String 中的 Split 函式將字串中的「 - 」當作切割點,製作 出字串陣列「 “2016” , “02” , “29” 」並進行重組,產生「20160229」 的連續字串。. 2. Request. 13. 立. 政 治 大. HTTP,Hypertext Transfer Protocol,是瀏覽器與網站的溝通語言,其中. ‧ 國. 學. 瀏覽器指的是 Client 端,Web Browser;而網站指的是 Server 端,Web Server。. ‧. 在應用上主要以 Client 端發出 Request 讓 Server 端接收並且做出回應。. y. Nat. Request 在 Python 上的功能包含了 Get、Post、Put、Delete、Head、Options. er. io. sit. 等。我們可以透過 Get 要求伺服器端將網頁資訊完整的傳遞過來,內容包含了網 址 Url、Headers、Content、History、Status_code 等等,其中,Content 是以. al. n. v i n Ch 網頁原始碼的形式寫成,如果想要將格式去除,只取得網頁上的資訊,那便必須 engchi U 使用 Parser 進行語法分析,才能夠將其分割。. 3. BeautifulSoup. 14. BeautifulSoup,是用 Python 編寫的一個 HTML/XML 解析套件,能夠迅速地 處理複雜的網頁文檔,並且生成剖析樹(Parse Tree),提供許多簡單、實用的內 建函式,幫助我們進行網頁架構的處理。 從 Request 中 獲 得 HTML 文 本 後 , 需 先 對 架 構 進 行 解 析 , 我 們 透 過 13. 資料來源:http://docs.python-requests.org/en/master/ 資料來源:https://www.crummy.com/software/BeautifulSoup 21. 14.

(33) . BeautifulSoup 的 Prettify 函式來將文本進行整理輸出,以便理清 KKBOX 排行 榜的網頁結構性。KKBOX 的網頁架構可以展開成一個大型的樹,每一個節點 (Node)都代表了一個標籤,透過標籤我們能夠搜索到文本的任一角落。 在 BeautifulSoup 中,仍將 Parent、Sibling、Children 的關係以 Tag 的方 式儲存,因此可以用資料結構的方式進行探查,另外其他還包含了幾個內容並非 以 Tag 方式儲存,以下兩種型態不能使用一般資料結構的節點來處理,因為它們 被儲存為 List 的形式: 表 5 BeautifulSoup Contents 與 String 比較 Contents 以搜尋的方式呈現,可直接抓出該位置之中的所有內容,其中也包含 了其 HTML 的標籤 String. 治 政 當標籤中僅僅含有一個 NavigableString大 時,可以直接使用此功能來 立 得到標籤中的字串,不會連同框架一起抓取。且 String 套件不僅只有 ‧. ‧ 國. 學. 在單一字串時能夠使用,當標籤中含有兩個以上的字串時,也能夠配 合迴圈抓出所有內容,再透過另一功能,Stripped_Strings,同時去 除空白以及換行。. sit. y. Nat. 從 Prettify 中發現 KKBOX 排行榜頁面上包含了眾多不同的資料,也使得在. n. al. er. io. 判定標籤上有些困難,因此我們又利用了擴充程式「InfoLite」來判定標籤或. v. CSS。InfoLite 是可以安裝在 Google Chrome 瀏覽器上的擴充程式,透過 InfoLite. Ch. engchi. i n U. 我們可以輕鬆選定網頁上的任何一個位置或資料來查詢此筆資料是被放置在 HTML 中的哪個位置,利用這個方法,我們快速的掌握了 KKBOX 排行榜的各欄位 之關係。KKBOX 排行榜網頁,排行榜的內容儲存在名叫「charts-top100」的 class 當中,撇除其他額外的網頁內容,主要有幾個分層,如圖 4 所示。. 22.

(34) . 政 治 大 圖 4 KKBOX 排行榜網站 HTML 分層架構 立. ‧ 國. 學. 在 Content 當中,我們所需的資料全都儲存於「Chart-top 100」的 Class 當中,其中排行榜的前一百名歌曲被分成三個部分, 「First」第一名、 「Top 20」. ‧. 儲存了第二到第 20 名的歌曲、「Top 100」則儲存第 21 到第 100 名的歌曲。. y. Nat. n. al. er. io. 資料有兩種方式,「Search」以及「Select」。. sit. 理清資料的位置後,我們嘗試進行內容的抓取。在 BeautifulSoup 中,抓取. i n U. v. 搜尋模式(Search),透過找到節點的方式直接去搜尋該節點中的所有內容,. Ch. engchi. 函式為 find_all( name , attrs , recursive , text , **kwargs )。搜尋運 用的方式很廣泛且靈活,我們能夠在函式中填入單個或多個搜尋參數進行比對, 也可以在參數中訂立條件式 re_compile 進行比較,或是透過 css 進行搜尋。而 這些透過搜尋所得到的資料將皆以集合的方式儲存其中。 CSS 選擇器(Select),和搜尋不同的地方在於 Select 是選擇一個節點位置, 而該位置則取決於輸入的參數,此方式將網頁視為一層層的結構,透過這個語法 我們可以分次的解剖其內容,並且透過節點方式取出資料。Select 查詢的類型 大致上可分為四種,「Tag 標籤」、「CSS Name」、「Tag ID」、「Attribute」。以下 我們將這兩大類型的內容做的整理。. 23.

(35) . 表 6 BeautifulSoup 兩種搜尋方式總覽 Search 搜尋比對 透過輸入單個或多個標籤、字串、內容等等的方式來找出在此節 點之中所有與其相同之內容或標籤 搜尋比較 透過 re_compile()函式,我們可以對節點中的內容進行查對比 較,和搜尋比對不同的是,搜尋比對會將與其搜尋內容完全一樣 的標籤或內容呈現出來,而搜尋比較則是將與其相關的內容都一 併找出。舉例來說,透過搜尋比對找尋 ‘b’ ,得到的結果會是: 「<b>...</b>」的標籤與內容,而搜尋比較則會同時得到: 「<b>...</b>」與「<body>...</body>」的標籤與內容 CSS 搜尋 在 Python 中,Class 屬於保留字之一,因此在 find_all 函式中 可以透過「find_all(class_=‘item’)」的方式來搜尋我們所要 的內容 Select Tag 標籤. 政 治 大 直接透過標籤名稱查詢,可以一次輸入多個,程式碼將會自動逐 立. ‧ 國. 學. 層查找。如果輸入「soup.select("html head title”)」,程式 碼將會到 HTML 層中的 Head 標籤,再進入 Head 標籤中找出名為 title 的標籤內容,如「<title>...</title>」. y. 透過該標籤的 id 內容進行查詢,將 id 相同者全數搜尋出來. sit. Tag ID. Nat. 料. ‧. CSS Name 透過 Class 的名稱來進行查詢,可直接進入該分層,並且抓取資. n. al. er. io. Attribute 透過存在的某種屬性來進行查詢,另外也可以透過屬性值來進行 查詢,該方法將會找出該位置內所有屬性相同者. Ch. engchi. i n U. v. 另外,選擇器(Select)得到的內容與搜尋(Search)得到的內容不同,皆會以 List 的方式儲存起來,而長度則依據選擇器所搜尋到的資料量來定奪,搜尋到 一筆則陣列的長度為 1。 Search 與 Select 兩種模式的操作方式不盡相同,Search 的使用比較像是 針對單筆或不大量的資料進行查找,透過標籤名稱查詢會因標籤名稱相同,找到 諸多不必要的資料,如果要撇除不必要的資料,勢必得將搜尋的條件設立的更加 嚴謹,但如此一來將會失去靈活性,另外我們所欲得到的資料只有標籤當中的字 串內容,但我們無法得知我們的資料當中將會有哪些字串,因此不能使用搜尋比. 24.

(36) . 較來抓資料,但如果以搜尋比對的方式進行抓取,就須再使用 Strings 處理字串。 為了能夠快速取得資料,最後選擇以 Select 的方式抓取資料,透過 Select Class 的方法,我們可以直接進入到排行榜所在的節點,接著分層進入到 First、 Top 20、Top 100 之中抓取資料。 除了 First 這個 Class 外,其餘兩者都包含了多筆資料儲存於陣列之中, 透過迴圈處理我們便能夠迅速得到 1~100 首歌曲的資料,而每一首歌曲都是一個 長度為 1 的陣列,且其內容皆為一個標籤,這個標籤中亦包含了: 「now」 、 「prev」 、 「artist」、「items」、「first_rank」、「release_date」等標籤,我們可以透過. 政 治 大. 「.text」的方式直接獲取字串內容,將這些內容儲存到 CSV 中,並在 2.3 節 Data Merge 中進行整合。. 立. KKBOX 的排行榜網頁可抓取的資料包含了歌曲排行、前一天的排行、歌手、. ‧ 國. 學. 歌曲名稱、第一次入榜的名次以及時間、發布日期、資料抓取日期等等。而編排. 2. 林俊傑. Nat. 2. 1. 田馥甄. 小幸運. 3. 3. Under Lover. 4. 4. 林俊傑. 5. 6. 林宥嘉. …. …. 1. Song. First_rank. Release_date Ranking_date. sit. 1. Now Prev Artist. y. 表 7KKBOX 資料表內容. ‧. 方式則是按照抓取日期排放,一日會有一百筆的資料,如表 7 所示。. 不為誰而作的歌 首次第 37 名 20151204 20151204. io. 20160125. 兜圈. 首次第 3 名 20151123 20151123. 20160125. …. …. …. …. 1. 田馥甄. 小幸運. 首次第 33 名 20151204 20150710. 20160124. 2. 2. 林俊傑. 不為誰而作的歌 首次第 37 名 20150710 20151204. 20160124. 3. 3. Under Lover 癡情玫瑰花. 首次第 68 名 20151223 20151223. 20160124. 4. 5. 林俊傑. 關鍵詞. 首次第 98 名 20151229 20151229. 20160124. 5. 4. 閰奕格. 也可以. 首次第 6 名 20151123 20151207. 20160124. n. er. al v 20151223 癡情玫瑰花 首次第 68 名 20151223 i n C h 首次第 98 名 20151229 關鍵詞 e n g c h i U 20151229. 首次第 33 名 20150710 20150710. 20160125. …. 25. 20160125 20160125.

(37) . 透過 BeautifulSoup 解析後,不論該 HTML 的編碼是哪一種,BeautifulSoup 皆會將其轉換成 Unicode 呈現,而輸出則皆會以 UTF-8 輸出,然而在輸出 artist 以及 items 中所包含的中文文字卻會發生編碼問題。我們透過 Chardet 去偵測 list 內容後發現,當我們寫入 CSV 檔時,編碼不會以 UTF-8 寫入,而是以 Unicode 呈現,必須要透過 Encode 來進行中文編碼,檔案中的中文才不會形成亂碼。 而該情況發生的原因是由於所屬系統不同所導致,一般使用中文的用戶皆為 Windows 系統的操作者,中文的 Windows 系統所用的是 Big5 編碼,而 Mac 或是 Linux 則多半是使用 Unicode 編碼,所以執行上雖然不會發生錯誤,但系統因為. 政 治 大. 沒有辦法自動執行 UTF-8 編碼,因此會將內容以 Unicode 編碼對應,導致寫入亂 碼的結果。. 立. ‧ 國. 學. 3.2 Data Clean. ‧. Facebook 粉絲專頁是近期社群網站的新寵,公司行號、品牌、餐廳將粉絲專頁. sit. y. Nat. 的宣傳視為是必要且重要的一環。粉絲專頁的貼文在透過 Crawler 抓取時,有時. al. er. io. 會將非官方所發佈的內容也一併抓取(由於出現在粉絲專頁上),而這些內容並. v. n. 不在我們所要分析的範圍內,因此在一開始便會篩選粉絲專頁 ID 欄位的方式,. Ch. engchi. i n U. 並透過 Microsoft Excel 快速的從 CSV 檔中進行搜尋,將非官方 ID 的資料刪除。 另外,在 KKBOX 網頁資料的部分,排行榜中每日都會有 100 筆的資料,而倘若該 首歌曲的版權受到限制或是下架,該欄位便會出現錯誤,導致我們抓取的資料出 現亂碼或空白,在這部分我們也會在抓取時進行清除。. 3.3 Data Merge KKBOX 排行榜的資料抓取以每日一百筆資料的方式呈現,時間點設定從 2013 至 2016 年,總共抓取了八萬多筆的資料。排行榜上的浮動有四種情況,. 26.

(38) . 「歌曲排行上升與下降」、「歌曲進入與離開前一百名」,每天的名次大多僅有些 微的浮動或改變,為了刪除重複的歌手與歌曲,我們將所有的資料做了整合。 我們將「KKBOX Chart」的資料整合後分成兩個部分:「Artist」、「Song」。 「Artist」資料表儲存了資料抓取的這段時間內的所有曾經上榜的歌手,每位歌 手當作一筆資料,儲存與歌手相關的所有資訊;「Song」資料表則儲存了這段時 間內所有曾經上榜的歌曲,以一首歌作為一筆資料,記錄與歌曲相關的內容,以 下表 8 與表 9 為從「Artist」與「Song」取出的部分資料。 表 8 排行榜彙整資料-歌手部分 Song List. SongCount HighestRank AppearTimes. 林俊傑. 可惜沒如果,關鍵詞,…. 范瑋琪. 感恩節,很久很久以後…. 3. 玖壹壹. 9453,下輩子,癡情男子漢…. 14. 李榮浩. 滿座,李白,喜劇之王. 18. 1. 謝和弦. 愛不需要裝乖,牽心萬苦…. 7. 1. 蕭敬騰. 一次幸福的機會,Marry me…. 16. 4. 鄧紫棋. 再見,多遠都要在一起…. 14. 1. 蘇打綠. 下雨的夜晚,痛快的哀艷…. 14. 3746. 3. 57. 2. 1515. 6. 521. 5. 1098 2328. 學. 1. 2174. io. sit. ‧. Nat. 1376. 5. 1398 988. er. Under Lover. ‧ 國. 韋禮安. 治25 政 大 癡情玫瑰花,愛你,不是我的 2 立 別說沒愛過,面具,沈船… 6. y. Artist. al. n. v i n 表 9C 排行榜彙整資料-歌曲部分 hengchi U AppearTimes HighestRank ReleaseDate. Song. Artist. 不為誰而作的歌. 林俊傑. 53. 1. 2015-12-04. 20151204. 小幸運. 田馥甄. 200. 1. 2015-07-10. 20150710. 關鍵詞. 林俊傑. 28. 4. 2015-12-29. 20151229. 修煉愛情. 林俊傑. 889. 3. 2013-02-21. 20130820. 一次幸福的機會. 蕭敬騰. 40. 7. 2015-12-16. 20151216. 別說沒愛過. 韋禮安. 147. 2. 2015-09-01. 20150901. 9453. 玖壹壹. 50. 5. 2015-12-07. 20151207. 滿座. 李榮浩. 13. 10. 2016-01-13. 20160113. 下輩子. 玖壹壹. 49. 7. 2015-12-08. 20151208. 可惜沒如果. 林俊傑. 479. 1. 2014-12-19. 20141219. 27. FirstRankDate.

(39) . 本章節我們透過 Python 快速的處理 CSV 檔的讀寫,在讀取的部分有兩種方 式,一種是 Reader,另一種是 DictReader。Reader 能夠將 CSV 中每一行的內容 用逗號隔開,回傳成一個 List 的形式,和 Split 有些類似,但不同的地方是, Reader 可以順便把「” ”」處理掉。而 DictReader 則是將讀取的內容投射成 字典的形式,透過選擇參數 fieldnames(欄位名稱)我們可以得到相關欄位的 內容,如果省略填入 fieldnames,則將會以第一列的值作為 filenames 來讀取 資料。透過 DictReader 的 fieldname 我們可以控制所要抓取的內容,並透過 DataFrame 更快速的進行整合資料的工作。. 政 治 大 DataFrame 當中,接著透過 Python 判斷式中的「not in」語法,配合 List 的 立 我們利用 DictReader 的特性,將排行榜中所有的歌手以及歌曲分別儲存在. 「append」功能,將資料中重複值去除,接著配合 DictReader 來獲取我們所需. ‧ 國. 學. 要的資料,如出現次數、歌曲數目等等,用於第三章「統計分析」。. ‧. 在整合資料的過程中,表格欄位的中文字串必須要經過特殊處理,避免資料. y. Nat. 內容變成亂碼。在 Python 中「String」類型的中文字串只要透過指定編碼 utf8. er. io. sit. 便能被處理,但是「List」類型的字串則不能直接處理,必須使用解碼,但是 List 類型本身卻又不提供「decode」函式,而我們嘗試以 microsoft 文書處理. al. n. v i n Ch 工具 excel 進行文字轉換,此方法能夠成功讀取中文字串但寫入資料時無法順利 engchi U. 轉換,因此我們最後使用 Uniout 來直接處理編碼問題,透過 Uniout 套件,便不 需經過編碼,可直接印出 List、Object 類型中的中文字串。. 28.

(40) . 第四章. 統計分析. 前一章節我們詳述了抓取各部分資料過程和使用方法,現階段我們手中的資料有 「KKBOX 排行榜」以及「KKBOX 粉絲專頁貼文」 ,為了方便理解資料中隱藏的相關 訊息,我們針對「KKBOXChart」整理出從 2013 年八月以來,榜上出現過的「Artist」. 政 治 大. 以及「Song」去做統計分析,透過可視化圖表來找出近年來排行榜發生的變化、 歌曲與歌手的關係以及影響。. 立. ‧. ‧ 國. 學. 4.1 Bokeh. 在圖表呈現上,我們選用了較新的套件, 「Bokeh」15。Bokeh 是 Python 推出的一. sit. y. Nat. 個套件,主要被提供來處理統計資料,製作網路視覺化、資料視覺化的工具,助. al. er. io. 於開發網頁互動工具的套件。過去要在 HTML 上製作複雜的互動視覺內容,皆需. v. n. 要使用到 JavaScript,而 Bokeh 為其提供各式各樣視覺化所需的輔助函式並將. Ch. engchi. i n U. JavaScript 寫入 BokehJS 當中,讓我們不需要再多去撰寫 JavaScript 或其他的 語法,透過執行時接收 input 的方式直接在 Browser 上運作,而 Python Bokeh Library 則會將內容及屬性轉化為 JSON 格式創造出圖表。透過這些簡單易懂的 函 式 , 我 們 可 以 python 的 語 法 快 速 上 手 各 式 簡 單 的 圖 表 , 像 是 「Bokeh.plotting」 、 「Bokeh.charts」等等,而在 Bokeh Model 中也有更多細部 的細節,能夠將圖表做得更加精細,Bokeh 也貼心提供許多樣本與程式碼,加速 使用者選用所需的圖表類型。 在製作圖表,如何匯入資料的部分,Bokeh 也提供相當簡單的設計。我們只 . 15. 資料來源:http://bokeh.pydata.org/en/latest/ 29.

參考文獻

相關文件

• elearning pilot scheme (Four True Light Schools): WIFI construction, iPad procurement, elearning school visit and teacher training, English starts the elearning lesson.. 2012 •

A dual coordinate descent method for large-scale linear SVM. In Proceedings of the Twenty Fifth International Conference on Machine Learning

Furthermore, in order to achieve the best utilization of the budget of individual department/institute, this study also performs data mining on the book borrowing data

in Proceedings of the 20th International Conference on Very Large Data

本論文之目的,便是以 The Up-to-date Patterns Mining 演算法為基礎以及導 入 WDPA 演算法的平行分散技術,藉由 WDPA

由於資料探勘 Apriori 演算法具有探勘資訊關聯性之特性,因此文具申請資 訊分析系統將所有文具申請之歷史資訊載入系統,利用

(1999), &#34;Mining Association Rules with Multiple Minimum Supports,&#34; Proceedings of ACMSIGKDD International Conference on Knowledge Discovery and Data Mining, San Diego,

本章將對 WDPA 演算法進行實驗與結果分析,藉由改變實驗的支持度或資料 量來驗證我們所提出演算法的效率。實驗資料是以 IBM synthetic data generator