國 立 交 通 大 學
資訊管理研究所
碩 士 論 文
網際網路新聞文章心情偵測之研究
Research on Mood Detection of
Internet News Articles
研 究 生:林揚書
指導教授:柯皓仁
林妙聰
II
網際網路新聞文章心情偵測之研究
Research on Mood Detection of
Internet News Articles
研 究 生:林 揚 書 Student: Yang-Shu Lin 指導教授:柯 皓 仁 Advisor: Dr. Hao-Ren Ke 林 妙 聰 Dr. Miao-Tsong Lin
國 立 交 通 大 學
資 訊 管 理 研 究 所
碩 士 論 文
A ThesisSubmitted to Institute of Information Management College of Management
National Chiao Tung University in Partial Fulfillment of the Requirements
for the Degree of Master of Science
In
Information Management
July 2009
Hsinchu, Taiwan, the Republic of China
III
網際網路新聞文章心情偵測之研究
指導教授:柯 皓 仁、林 妙 聰 研究生:林 揚 書 國立交通大學資訊管理研究所摘要
全世界每天有數以萬計的新聞被報導,在這些新聞裡,僅有少部份與自己有 關的,大多數是毫不相關的。隨著網際網路使用者數量大幅度增加,網路已取代 傳統媒體成為最受矚目的大眾媒體,如何從網路上眾多的新聞之中,以最短時間 去篩選出自己需要的、喜愛的及完全不需閱讀的新聞乃是一個值得關注的議題。 本研究會以預測讀者閱讀新聞後的心情為目標,使用 Yahoo!奇摩新聞的心 情投票資料,透過 CKIP 的斷詞切字處理,計算出每個詞彙的 Log Likelihood Ratio 值,與其心情比例分數結合之後排序篩選,找出優秀的特徵值作為分類依 據,最後再放入 LibSVM 分類建構出模型,預測讀者閱讀新聞後可能呈現的心情 狀況,並進一步設計出關鍵詞彙挑選系統,供讀者在選擇閱讀新聞時參考。IV
Research on Mood Detection of
Internet News Articles
Advisor: Dr. Hao-Ren Ke, Dr. Miao-Tsong Lin Student: Yang-Shu Lin
Institute of Information Management National Chiao Tung University
Abstract
There's millions and thousands news coming out everyday. Only limited number of these news are relevant to a particular person. In the digital era, Internet has surpassed traditional media and become one of the most attractive media. How do we effective and efficiently filter through the huge amount of information on the Internet for finding those pieces of information which we need, like or we don't need to read?
The objective of this study is to predict the feelings of readers after reading the news from Yahoo! Kimo news. By using the CKIP system’s tokenization and part-of -speech tagging processes, candidate phrases are indentified. Then the Log Likelihood Ratio values of candidate phrases are combined with the mood tendency to discover significant phrases for each mood. The discovered significant phrases are used as the input of a Support Vector Machine (SVM) software, LibSVM, to conduct the classification. Furthermore, a keyword screening system is designed to provide readers information for choosing what to read and predicting the readers’ possible mood after reading a particular the news.
Keyword:Mood detection, Text categorization, Support Vector Machine, Feature Selection, Information Retrieval
V
誌
謝
隨著畢業口試的結束,兩年的研究所生涯也到了尾聲,回顧兩年來的經歷, 內心充滿了幸福與感謝。 首先要感謝指導教授柯皓仁老師與林妙聰老師諸多指導與協助,引導我一步 步地將論文完成,柯皓仁老師更不遺餘力地點出論文中該注意的細節,心中的感 激真是無法以筆墨形容。感謝口試委員林瑞盛老師與黃夙賢老師,在口試時所給 予的建議,使得本論文能更加嚴謹。在此向上述老師致上學生最高的敬意與謝意。 同時也要感謝研究室同伴姿婷、筑婷、雅雯,所辦的淑惠,幫本論文蒐集新 聞的婷瑱,以及MB208研究室裡陪伴我渡過每個夜晚的伙伴們,不論在研究上或 生活上,大家總是一起努力打拚,共同分享喜怒哀樂,你們都是陪伴我一起成長 的好夥伴,與大家相處的點點滴滴,都將是我人生中美好的回憶。 最後則是感謝家人的全力支持和包容,讓我能無後顧之憂的朝目標前進,有 你們的支持才有現在的我! 林揚書 謹誌 2009 年 7 月VI
目錄
第一章 緒論 ... 1 1.1 研究背景與動機 ... 1 1.2 研究目的 ... 3 1.3 論文架構 ... 4 第二章 文獻探討 ... 5 2.1 文章心情偵測相關研究 ... 5 2.1.1 部落格文章 ... 5 2.1.2 新聞文章 ... 8 2.1.3 影評 ... 9 2.2 自動分類 ... 9 2.2.1 K-Nearest-Neighbor (KNN) ... 11 2.2.2 決策樹(Decision Tree) ... 122.2.3 Support Vector Machine ... 16
2.3 特徵值挑選(Feature Selection) ... 19
2.3.1 TF-IDF ... 19
2.3.2 Log Likelihood Ratio ... 20
第三章 系統設計 ... 23 3.1 資料收集 ... 23 3.2 系統整體結構 ... 25 3.3 前置處理 ... 26 3.3.1 斷詞切字 ... 26 3.3.2 詞性標記 ... 27 3.3.3 刪除停用字 ... 28 3.3.4 特徵挑選 ... 29 3.4 SVM分類處理 ... 35
VII 3.4.1 轉換SVM向量 ... 36 3.4.2 LibSVM分類 ... 37 3.5 關鍵詞彙挑選系統 ... 39 3.5.1 系統介面 ... 40 四、實驗與分析 ... 44 4.1 實驗環境、資料、步驟與評估方法 ... 44 4.1.1 實驗環境 ... 44 4.1.2 實驗資料 ... 45 4.1.3 實驗步驟 ... 49 4.1.4 評估方法 ... 49 4.2 三種特徵的實驗結果 ... 50 4.3 分析Cross Validation內容 ... 55 4.4 預測新資料 ... 56 4.5 結合LLR值與心情分數... 57 4.6 關鍵詞彙挑選系統實驗結果 ... 57 第五章 結論與建議 ... 68 5.1 結論 ... 68 5.2 後續研究建議 ... 69 參考資料 ... 70
VIII
圖目錄
圖 1 論文架構... 4 圖 2 部落格文章編輯的心情標籤... 6 圖 3 心情標籤文章列表... 6 圖 4 自動分類... 10 圖 5 KNN分類示意圖... 11 圖 6 最常用的資料探勘技術票選結果... 12 圖 7 決策樹建立過程... 13 圖 8 支援向量機... 17 圖 9 LibSVM分類流程圖 ... 19圖 10 詞頻與Resolving Power of Significant words關係 ... 20
圖 11 新聞文章資料... 24 圖 12 系統整體架構圖... 25 圖 13 系統架構-前置處理... 26 圖 14 前置處理第一階段-斷詞切字與詞性標記... 27 圖 15 前置處理第二階段-精簡詞彙標記... 28 圖 16 前置處理第三階段-僅挑選名詞和動詞... 28 圖 17 系統架構-SVM分類處理 ... 36 圖 18 經前述處理後的詞彙列... 36 圖 19 LibSVM向量格式 ... 36 圖 20 系統架構圖... 39 圖 21 統計分析方式... 40 圖 22 系統介面圖... 41 圖 23 詞彙關係圖... 41 圖 24 詞彙心情月份選擇工具列... 42 圖 25 新聞標題列表... 42 圖 26 新聞內容... 43 圖 27 新聞分類與心情分類關係... 47
IX
表目錄
表 1 LibSVM核心函數 ... 18 表 2 兩個硬幣投擲結果... 21 表 3 蒐集新聞實際範例... 25 表 4 停用字列表... 29 表 5 詞頻最高的前二十名詞彙(全詞彙) ... 30 表 6 詞頻最高的前二十名詞彙(動詞與名詞) ... 31 表 7 詞彙與心情類別關係... 32 表 8 新奇、溫馨、誇張三類新聞心情分類LLR前十名 ... 33 表 9 難過、實用、高興三類新聞心情分類LLR前十名 ... 34 表 10 無聊、生氣二類新聞心情分類LLR前十名 ... 35 表 11 SVM參數設定與結果 ... 37 表 12 實驗環境... 44 表 13 月份與新聞篇數的統計... 45 表 14 心情分類與新聞篇數統計... 46 表 15 新聞分類與新聞篇數的統計... 46 表 16 錯差矩陣... 50 表 17 使用全部特徵的分類結果... 51 表 18 使用動詞與名詞的分類結果... 52 表 19 SVM參數設定與LLR特徵數量結果 ... 52 表 20 資料集的不重複詞彙數量... 54 表 21 LLR前三千名詞彙最低採用值 ... 55 表 22 Cross Validation分析結果 ... 55 表 23 預測錯誤的心情分類篇數... 56 表 24 不同模型預測新資料的結果... 56 表 25 LLR值與心情分數結合的預測結果 ... 57 表 26「新奇」七個月份重要詞彙比較... 58 表 27「溫馨」七個月份重要詞彙比較... 59 表 28「誇張」七個月份重要詞彙比較... 60 表 29「難過」七個月份重要詞彙比較... 61 表 30「實用」七個月份重要詞彙比較... 62 表 31「高興」七個月份重要詞彙比較... 63 表 32「無聊」七個月份重要詞彙比較... 64 表 33「生氣」七個月份重要詞彙比較... 651
第一章 緒論
1.1 研究背景與動機
在這資訊爆炸的時代,生活中有愈來愈多管道可以取得五花八門的資訊。 1970 年 Alvin Toffler 於他的著作 Future Shock[1]中首先提到資訊超載的問題,當 能取得的資訊已超越人所能負荷的程度,不但對決策無益,甚至進一步造成干擾 現象。 每天一大早起床,許多人的第一件事情就是翻閱報紙、或是打開電視接收最 新的新聞內容。一天有上萬件新聞被記者所報導,新聞對於許多人來說擁有極高 的閱讀價值,2000 年政大新聞系的大學報「網路成學子閱讀新寵 閱讀率達二成 八 直逼報紙 側重娛樂影視休閒資訊」[2]中提到大學生閱讀電子報的比例已跟 傳統報紙差不多,但在那麼多的電子報中如何以最短時間去篩選出自己需要的、 喜愛的及完全不需閱讀的呢?
1974 年 Katz, Blumler & Gurevitch 所提出的使用與滿足理論[3]中,說明了在 三十年前讀者就會主動地去尋找自己所需的資訊。值此網際網路資訊爆炸的時 代,每天在電子報網站出現的新聞不計其數,讀者都希望以最短的時間內找到自 己所想要看的新聞,正好印證了使用與滿足理論。而電子報網站上預先設定好之 「最多人閱讀的新聞」等格式並非完全符合所有人需求,讀者會主動地尋求自己 想要的新聞資訊,並非將媒體所給的資訊照單全收,因此本研究試圖以心情類型 為導向替使用者篩選、預測出他們所需要新聞內容,節省使用者在選擇有興趣的 新聞時所浪費的時間。
2009 年四月南加大傳播學院數位未來中心(the Center for the Digital Future at USC’s Annenberg School of Communications)的研究發現[4],隨著線上新聞讀者人 數的增加,每個讀者花在線上閱讀新聞的時間也與日俱增,從 2007 年的網路使
2 用者每週平均 41 分鐘至 2008 年提升至 53 分鐘。此份研究報告提出造成此現象 的四個原因是: 1. 分類廣告逐漸轉移至線上; 2. 關心紙本報紙對環境造成的不良影響; 3. 經濟不景氣; 4. 缺乏對紙本報紙感興趣的新讀者。 數位未來中心的總監 Jeffery I. Cole 認為讀者改變閱讀習慣的速度超乎他的預 期,由於新一代的年輕人處在資訊社會中,大多數都有使用電腦和網路的習慣, 這些使用者可以在網路上輕易閱讀最新的新聞並且不需付任何費用,導致額外購 買紙本報紙的意願低落,造成傳統紙本報紙的新客源逐漸減少,他更認為線上閱 讀新聞是未來的趨勢。 2009 年四月中旬,美國建置了一個很特別的「新聞懶人包」網站 (Newsy.com),他們研究現代人「看電視新聞」與「上網看新聞」的習慣[5],從 以前只有少數幾間電視台到現在有上百台可供選擇,而在網路上有非常多的網站 提供不同國家、不同地區各式各樣的新聞,進一步發現現代人都以「跳躍」的方 式瀏覽資訊,只想要看自己所感興趣的部份、不斷地轉台、跳過一篇又一篇不感 興趣的文章,在這選擇自己所需資訊的過程中浪費了不少時間。「新聞懶人包」 網站因而採用一種主題式的包裝方式,雇用了一個編輯團隊,隨時觀看線上新 聞、報章雜誌、電視新聞,然後將這些統整成一個「新聞短片」,當這網站的瀏 覽者想要了解某個議題的完整內容時,只需要點選該議題對應的影片就能得到不 同媒體、不同角度、不同觀點對於此議題的綜合整理報導。 每個人在閱讀一篇文章時,先看到人類所使用的文字符號,經由腦部思考後 理解文字所敘述的主題,進一步由心理產生對這篇文章的感覺(心情)。近年來很 流行在部落格發表文章,由於部落格是一個能讓每個人抒發自己情緒的平台,不 少部落格提供在文章後面加註心情標記的服務,因此目前的文章心情偵測研究
3 中,已有不少將部落格文章做為資料來源,以研究作者心情為目標,分析作者心 情是否與週遭環境或是季節、月份間的關係,造成在寫作時的心情差異;但卻僅 有少數研究以讀者為目標,分析讀者讀完文章後的心情。 知名的入口網站 Yahoo!奇摩提供了線上閱讀新聞的服務,不同於其它提供 新聞網站的在於它讓讀者閱讀後能依自己的心情為新聞選擇適當的標籤,並提供 讀者可由之前使用者對新聞所加註的心情評價來做為選擇新聞的依據,而不同的 新聞內容與讀者閱讀後的心情是否有特別的關係,如何有效率地由新聞內容偵測 讀者可能出現的心情,乃是一值得關注的議題。畢竟在這資訊氾濫的時代,光是 選擇電子報種類就會讓讀者頭痛,讀者在心情憂傷時通常不想看到會讓自己難過 的新聞,在生氣的時候通常也不會想看到令人更加憤怒的新聞。 綜上所述,本研究之目的在於從讀者角度分析網路電子報文章所帶給讀者的 感受(心情),並將網路電子報文章以心情加以分類,讓讀者能根據自己閱讀新聞 後想要感受的心情,過濾並找出適合自己心情的新聞文章。
1.2 研究目的
本研究希望在目前不斷成長的線上新聞閱讀人數以及閱讀者閱讀時間的環 境下,以心情為導向為使用者過濾掉他們不期望看到之心情的新聞,節省他們在 搜尋自己所需要新聞時花費的時間。本研究將利用特徵挑選(Feature Selection) 和支援向量機(Support Vector Machine, SVM),與Yahoo!奇摩新聞之心情相關資 訊結合,期望在新的新聞文章出現時即可預測出讀者看完後的心情,並進一步研 究心情與新聞文章分類、時間、詞彙等特徵是否有特殊關係。整體的研究方向如 下: 1. 可以對大量的文章進行心情偵測; 2. 找出每個期間內各個心情分類具有代表性的詞彙,並提供給讀者相關新 聞題材。4
1.3 論文架構
本論文分成五章。第一章說明本研究的動機與目的;第二章介紹文章心情分 析相關的研究與方法;第三章敘述新聞文章心情預測系統的設計方式,闡述如何 將網路新聞文章處理,導入特徵值挑選並結合LibSVM分類器,將LibSVM分類 結果進一步延伸應用;第四章說明實驗結果與分析;第五章為結論與未來改善方 向。 研究動機與目的 文獻探討 特徵挑選 文章心情偵測研究 研究方法 Support Vector Machine Log Likelihood Ratio 系統發展與分析 結論與建議 新聞心情 分數 自動分類 方式 圖 1 論文架構5
第二章 文獻探討
本章將介紹與本研究相關的理論與文獻:在2.1節描述文章心情偵測的相關 研究,針對不同的文章類型(部落格文章、新聞文章、影評)採用不同的偵測方法; 2.2節闡述自動分類的理論與常見的自動分類方法;2.3節中更進一步地介紹與本 研究有關的特徵挑選方法與分類器。2.1 文章心情偵測相關研究
「文章心情偵測」是指當人寫作或閱讀一篇文章,大腦思考後產生對文字敘 述的認知,進而產生心理的反應,譬如喜、怒、哀、樂;有些研究著重於寫作者 的心情如何反映在文字上、有些則是著重於閱讀者從文字中感受到的心情。本節 將介紹與文章心情偵測的相關研究:在2.1.1節中概述以部落格文章為資料來 源,以作者心情為偵測目標的研究;在2.1.2節介紹以新聞文章為資料來源,以 讀者心情為偵測目標的研究;2.1.3節介紹採用影評為資料來源,以影迷對電影 的評價為偵測目標的研究。2.1.1 部落格文章
目前線上已有不少提供部落格服務的網站,而在部落格中常見的一項功能為 功能為提供作者在發表文章後,能為自己的文章標記一個心情標籤,讓其它讀者 或往後檢視自己部落格文章時,能知道當時作者的心情(如圖 2 所示),也提供依 心情標籤分類的文章列表供讀者選取(如圖 3 所示),而要如何以文章的文字訊息 就能去預測出作者在寫作時可能的心情狀況,為此類型研究的主要目標。6
圖 2 部落格文章編輯的心情標籤 資料來源:部落格(blog.udn.com)
圖 3 心情標籤文章列表 資料來源:部落格(blog.udn.com)
7
本節將在部落格文章內依詞彙、文章特徵、時間序列三種不同方向的部落格 文章心情偵測研究再作更詳細的說明。
1. 詞彙心情強度:
在Building Emotion Lexicon from Weblog Corpora[6]一文中,以Blog 文章與其心情標籤作為資料,提出要以詞彙與心情計算出詞彙w在心情e中 出現的機會,試圖找出常與某心情一起出現的關鍵字 (1) P(e,w)為詞彙w在e心情裡出現的機率,P(e)為詞彙在e心情裡出現的機率,P(w) 為所有字彙裡出現w字彙的機率,c(e,w)為字彙w在心情e裡出現的次數,co(e,w) 為字彙w在心情e中的心情強度分數。 2. 接下來將所有句子拆解成許多詞彙,由詞彙的co心情強度選擇最強的作為此 詞彙的心情,再將各詞彙心情結果以投票的方式決定此句的心情類型,最後由 Blog的所有句子以投票方式預測出最有可能出現的作者心情。 文章特徵: Gilad Mishne[7]提出以Blog文章為資料,考慮了字彙頻率、文章長度、詞彙 語意特徵(Kim&Hovy[8]及Turney&Littman[9]先前所做的研究結果)、心情的 PMI-IR值、文章強調的詞彙、特別符號等特徵來進行分類預測。PMI(Pointwise Mutual Information)是用來計算兩個詞彙(t1、t2)間的結合程度 (2)
)
(
)
(
)
,
(
log
)
,
(
)
,
(
w
P
e
P
w
e
P
w
e
c
w
e
co
=
×
P(t1)為詞彙t2 出現的機率,P(t2)為詞彙t2 出現的機率,P(t1&t2)為此兩詞彙 共同出現的機率。算出兩個詞彙之間的PMI值後,試圖要找出是否有哪些詞彙傾)
(
)
(
)
&
(
log
)
,
(
2 1 2 1 2 1t
p
t
p
t
t
p
t
t
PMI
=
8
向在同一種心情內一起出現,並將此特徵拿來作為預測心情的依據,而結果可以 提升預測的準確率。後續有Yuchul Jung, Yoonjung Choi和Sung-Hyon Myaeng學者 更深入研究,在Determining Mood for a Blog by Combining Multiple Sources of Evidence一文中[10]提出藉由之前所提的特徵值與PMI-IR值一起放到SVM分類 器進行分類,效果明顯優於其它分類方法。
3. 時間序列分析:
Krisztian Balog ,Maarten de Rijke [11]提出了要以時間序列分析的方法檢視 Blog使用者的心情資料,將大量附有心情標籤的部落格文章作為資料來源,將所 有心情的數量變動趨勢依時間序列分析分成(季節性、有特定的變動趨勢、循環 性、以及不規則性等四類),並討論心情與四類間的關係,例如「酒醉」心情標 籤通常出現在深夜、清晨發表的部落格文章;「寒冷」心情標籤就跟著時間一同 變化,越接近冬天數量呈現成長的趨勢,夏天就很明顯的降低;「睏」心情標籤 就隨著每天的早晨與傍晚呈現循環的變動方式。
Gilad Mishne與Maarten de Rijke[12]將部落格作者所選擇的心情以整體數量 的方式來呈現,描繪出在所有時間點每種心情標籤篇數的曲線表,並且與當時所 發生的新聞事件一起觀察其中是否有關聯。而作者發現當 2005 年七月時英國倫 敦地鐵遭到恐怖份子惡意攻擊時,在生氣、難過等心情分類的曲線圖明顯暴增; 作者認為部落格文章心情標籤篇數會受到社會事件影響。
2.1.2 新聞文章
在Emotion Classification of Online News Articles from the Reader's
Perspective[13]中作者提出拿先前Blog所建出的情緒詞彙庫及Yahoo!奇摩新聞當 作資料,以詞彙的bigram (BI)、詞彙的情緒分數(WE)、詮釋資料(MT)、字綴相似 度(AS)、及字彙本身(WD)作為特徵值,將這些特徵值放入LibSVM軟體[14]並使 用特定的參數做測試,得到0.7688的準確率,實驗結果也顯示了SVM優於Naïve
9
Bayes、及其它兩位學者所提出的Passive-aggressive(PA)[15]與Cui's n-gram features(CN)[16]分類法。
Hsin-Yih Lin在Ranking Reader Emotions Using Pairwise Loss Minimization and Emotional Distribution Regression[17]中認為一般心情偵測研究都只預測單一 作者寫作文章的一個心情類別,但若從眾多讀者看完文章後可能產生的心情,應 該要以排名的方式列出各種可能出現的心情類別名次,才能更符合眾多讀者的需 求,並非像先前預測單一作者寫作心情僅用一種預測結果就可滿足。作者採用 SVM以Pairwise Loss Minimization方式處理心情標籤名次上比對的問題,降低失 誤率,再將Support Vector Regression與情緒分配迴歸結合,描繪出可能的各心情 分類頻率比例,最終合併預測出結果。
Sentiment classification of movie reviews using mutiple perspectives[18]的作者 將影評依整體、導演、卡司等三部分做影迷可能對一部影片的評價預測,作者認 為在預測影迷看完影片的心情是正面或是負面前,需要將影評內容更進一步的分 析,才能得到更佳的預測結果。一部電影有人可能對整體評價是正面的,但討厭 其中某個演員的表現,如果不細分很難得到一個客觀的預測結果。作者認為要很 有效率地分析影評可能要藉由更進步的資訊擷取工具,才能更精確的辨識出影評 內容,否則系統效能將受限於此。此篇研究將SVM與優秀的資訊擷取工具 (GATE-ANNIE)[19]結合,將影評分三部分以不同角度預測皆達到不錯的準確率。
2.1.3 影評
2.2 自動分類
人類有時會希望將資料進一步處理分類,將資料深入分析與應用、加值處 理,依據資料的特性及內容來分到預先設定好的類別,讓資料能更容易管理、更 充份地被利用。10 現代科技越來越發達,網路蓬勃發展造成交換資訊越來越容易與普及,產生 的資料數量大到人類難以有效管理與使用,大量的資料更需要有效的分類方法去 妥善處理,許多自動分類的方法也因應而生。文件的自動分類需要預先定義好分 類的類別,其目標是將具有相同特徵的文件歸屬到同一類別。與人工分類不同之 處在於文件的自動分類處理是採用電腦演算法找出文件特徵,一般的自動分類會 先將資料分為訓練資料與測試資料兩部分(如圖 4 所示):訓練資料係用來找出各 類別的特徵,將這些特徵用來當分類依據;測試資料則用來測試分類依據的分類 準確率。 文件處理 相似度計算 訓練資料 測試資料 特徵資料庫 分類後的文件 分類後的文件 分類後的文件 圖 4 自動分類 資料來源:[20] 在自動分類的過程中,需要分類的資料集可以由一群物件 O 所表示, 1 2 3 { , , ,..., n} O= O O O O 。每一個被分類的物件O ,皆可以用一個集合i S 來表示, i j S 是由一連串的特徵值 F 所組成,可表示成Sj ={ ,F F F1 2, 3,...,Fn} 本節主要介紹幾種自動分類常見的方法,分述如下。
11
2.2.1 K-Nearest-Neighbor (KNN)
K-Nearest-Neighbor 是一種常見的自動分類方法,它的概念係基於物以類聚 的想法,同類通常會聚集在一起,再由最靠近的幾個點(視 K 值而定)的類別去投 票,哪一個類別得到最多票就分到哪一類。 舉例而言,若以頭髮長度和臉面積做為特徵值來分辨人的男女,則可將訓練 資料標示在二維平面上(如圖 5 ,X 軸表示頭髮長度,Y 軸表示臉面積大小,黑 點代表男生,白點代表女生)。 圖 5 KNN 分類示意圖 當有一筆新的資料要用 KNN 演算法做預測時,會先依它的頭髮長度以及臉 面積大小,在此平面上標出此點(灰點),假設是用 K=7 的 KNN 演算法,則由圖 5 所示,最靠近此點的 7 個點裡有 5 個黑點,2 個白點,黑色的點佔了大多數, 故依 KNN 演算法的概念將此點分類到男生的類別。 但仍有幾種狀況是選擇使用 KNN 前需要考慮的。第一個是如何選擇適合的 特徵去表示資料的空間,而前面所用的頭髮長度及臉的面積當特徵,常見的例外 像是玩樂團留長髮的男生,女生臉的面積天生就較大,都會造成分類判斷上的錯 誤。假若改採身高、體重來當作特徵,仍然會出現此問題。另外一個是距離的問 題,若使用頭髮長度及臉部面積來做特徵,一個只是長度另一個卻是面積,在座12 標圖上該以什麼比例取距離來呈現,距離函數該如何設定,這也會影響到分類的 結果。還有許多的特徵無法以距離來量化,像是膚色、髮色這些特徵無法量化。 語義的問題不適用於 KNN 處理,假設有暗紅色、桃紅色、粉紫色,依字面上來 看暗紅色與桃紅色僅差一個字,應該距離會較近些,跟粉紫色會差很遠因為並無 相同的字串出現,但是實際上依鮮豔程度其實桃紅色與粉紫色應該較近些。
2.2.2 決策樹(Decision Tree)
決策樹是一種模擬決策過程可能面臨到的抉擇流程圖,一般來說決策過程 中考量到許多不同的狀況、組合、選擇,依此想法建立成抉擇流程樹狀圖即為決 策樹。在 Kdnuggets[21]所做的票選中,決策樹是在資料探勘領域最常被使用的 一項技術(圖 6)。其核心技術概念是很淺顯易懂,如圖 7 所示,可用來分析複雜 的情況,透過很簡單的概念畫出流程,產生樹狀規則的結構圖,將相同特徵資料 依樹狀圖規則分到同類。一般常見的 Decision Tree 演算法有 ID3,C4,C4.5, C5,CART,CHAID,QUEST。圖 6 最常用的資料探勘技術票選結果 資料來源: [21]
13 1. 定義在達到目標前可能會做出的所有屬性選擇; 2. 選擇屬性的增益比值或是資訊報酬較佳者做為分岔,產生子節點; 3. 根據每個子節點的案例分派狀況設定分類結果; 4. 讓決策樹不斷成長,並在最終結果上採用修剪技術移除不必要的規則; 5. 最後的決策樹結構描述了每種選擇組合的結果,並標示在樹枝的末端 上。 圖 7 決策樹建立過程 要建立優秀的決策樹必須盡可能地找出最佳分隔,最佳分隔指的是當決策樹 分類出來的群組皆屬於同一個類別,這也是在分類過程後最期望達到的結果,要 找出最佳分隔必須先採用最適合的分隔準則,常見的分隔方式有三類[22]: 1. 分隔候選值,當此 X 值(分隔所採用的變數)比常數 N 小時,就會被分配到一 個子節點,但當 X 值等於或是大於 N 時,會分配到另一個子節點 2. 類別分隔:依所採用分隔變數的特性、種類建立類別分支,例如,可以是性 別即可分為男、女兩類別。 3. 面臨遺漏值分隔:將零視為一個合理且具分支的值或將該筆資料取代、丟棄
14 在以數值方式分隔中常用的方式有以下兩種[22]: I. 變異減化(Reduction in variance): 以測量母節點與子節點資料值與平均值的變異情況計算,將結果視為變異 數,以此數值來作為調整的依據。 II. F-test: 計算兩組樣本是從同一母體產生的機率(平均數、變異數、樣本數不一定相 同),當樣本數夠大且為隨機樣本時,樣本的變異數是母體變異數很好的估計值。 以類別方式分隔常見的方式有以下三種 吉尼索引值(Gini index):
I. 當資料為連續屬性資料時經常被採用,Gini 又稱 Population diversity, 計算從同一個母體,隨機選取兩筆資料,此兩筆資料屬於同一種類的機 率。樣本集合 D 中包含 n 類樣本,且每一種預測值在該節點中的出現 頻率為 Pj,則吉尼索引法將該樣本集合 D 的 Gini score 定義為 2 1
(
)
1
n j jGini D
p
== −
∑
(3) 熵亂度(Entropy):II. 源自於 Information Theory ,在 1949 年由 Shannon 與 Weaver 所提出, 在決策樹中,用來定義一個節點的同質性。同質性高者包含較少資訊, 因此熵亂度比較小。若一節點包含 n 種預測值,且每一種預測值在該 節點中的出現頻率為 pi ,則該節點的熵亂度為 1
l
g(
)
n i i ip
o
p
=−
∑
×
(4)15 資訊獲利率(Information Gain Ratio):
III. 以某一屬性作為決策樹節點,由其所產生的子決策樹熵亂度與物件集合 的熵亂度所決定,假設訓練資料中的集合 S 有 n 個類別 Ci,i=1,2,3,…,n,每個類別的資料個數皆可以 freq=(Ci,S)表示,|S| 代表 S 中所有資料個數,則各類別其資料出現的機率為
(
, )
|
|
ifreq C S
S
(5) ,根據資訊增益理論,各類別資訊為 2(
, )
log (
)
|
|
ifreq C S
S
−
(6) 由各類別的資訊量可以計算出訓練集合的平均資訊量(亂度),將所有類別的資訊 量乘上各類別資料的出現機率總合可表示為 2 1( , )
( , )
inf ( )
log (
)
| |
| |
n i i ifreq
C S
freq
C S
o S
S
S
==
=
= −
∑
(7) 據 info(S)的計算方式,當集合的某屬性 A 切割成多個集合時,其分割後所佔的 資訊量與各子集合的資訊量乘上各子集所佔的比例總合兩者相等,如以下所示: 1|
|
inf
( )
inf ( )
|
|
n i A i iS
o S
o S
S
== −
∑
×
(8) 因此集合 S 由屬性 A 分割後所獲得的資訊量則為分割前的資訊量減去分割後的 資訊量,表示為
gain A
( )
=
inf ( ) inf
o S
−
o S
A( )
(9)而決策樹用在統計分析上的優點有[22]: 1. 能清晰地表示出重要欄位;
16 3. 計算次數較少; 4. 輸出即有包含屬性排序的結果。 缺點則有: 1. 不易分析具有連續值特性的屬性; 2. 對於有順序特性的資料,前置處理的負荷(Pre-processing loading)較重; 3. 當類別愈多,誤差愈高; 4. 無法處理含有空值的資料; 5. 不易於分類多個屬性資料。
2.2.3 Support Vector Machine
支援向量機(Support Vector Machine,SVM)-是在 1970 年代,由學者 Vapnik[23]提出,是一種由統計理論發展出來的機器學習技術,1998 年時 Joachims[24]、Taira 與 Haruno[25]等學者在文件分類以及 Kudo 和 Matsumoto 在 名詞組標[26]示(利用 SVM 辨識中文基底名詞組的初步研究)讓它結果更優於其 它方法的準確性,近年來 SVM 也常應用於資料探勘、影像辨識、文字分類等領域, 而在與本研究相關的自然語言處理領域中更涉及了語意分析、詞性標記、未知詞 辨識等,都有相當不錯的準確率。 SVM 通常用來處理兩類別的問題,但亦可處理多類別的問題。在處理兩類別 的問題時先將訓練資料以+1 或是-1 加以標註(代表不同類別),以數學式表示為
{
}
{ }
d i i i i y i l y x R x , , =1 , ∈ 1,−1, ∈ (10) 假設有一個超平面可以將+1 及-1 的資料加以區分,則此超平面就可稱為區分平 面(Separating Hyperplans),若在此超平面上的 x 必須滿足: 0 = + ⋅x b w (11) w 為超平面的法向量。而 SVM 的目標是要在高維度的特徵空間,找出一個具有最17 大邊界(margin)的區分平面來隔開兩類資料,如圖 8。 圖 8 支援向量機 SVM 的優點如下[27] 1. 有較強的泛化能力以及低複雜度 2. 它可使用少量樣本得到最佳解 3. 優越的分類與預測能力 4. 非線性資料的效能優越 缺點則有: 1. 測試的資料數目過大時,需要花比較多的時間; 2. 隨著訓練資料集的數量線性成長,一方面可能造成過度調適 (overfitting)的問題,另一方面則浪費計算時間。 3. 無法得到機率式的預測。一般人會比較偏好機率式的預測,因為機 率式的預測能夠給人確定程度的資訊。 4. SVM 的使用者必須給定一個誤差參數 C,這個參數對結果有很大 的影響。不幸的是,大部分的情況下,使用者都必須猜過各種可 能值,才能找最好的結果 w Margin 0 = + ⋅x b w 圖 8 支援向量機
18 目前 SVM 的工具很多,本研究係採用 LibSVM,因此以下略為介紹 LibSVM: LibSVM[14]: 是台灣大學林智仁(Chih-Jen Lin)博士等開發設計的一個操作簡單、易於使 用、快速有效的通用 SVM 套裝軟件,可以解決分類問題(包括 C- SVC、n - SVC )、回歸問題(包括 e - SVR、n - SVR )以及分佈估計(one-class-SVM ) 等問題,提供了線性、多項式、徑向基和 S 形函數四種常用的核函數供選擇,可 以有效地解決多類問題、交叉驗証選擇參數、對不平衡樣本加權、多類問題的機 率估計等。
LibSVM 結合了 SVM-light 和 Keerthy 改良過的 Sequential Minimal
Optimization[28]的算法,在很多地方考慮的比 Joachims[29]還要仔細。LibSVM 是以 SVM-light 為基礎來發展卻沒有完全承襲 SVM-light 的想法。在不同資料的 分類種兩者分類結果各有優劣。
本論文採用支援多類別分類的 LibSVM,通常 SVM 設定的參數都是以嘗試 錯誤的方式(try and error)去慢慢嘗試盡可能找出適合分類的最佳參數,通常會調 整 SVM 的在分類錯誤時的懲罰參數 C,去加重分類誤差的權重,或是選擇不同的 核心函數,如表 1 所示,而 LibSVM 已有開發不少相關的程式(model selection tool-grid.py)可降低使用者在嘗試參數上所花費的時間。
表 1 LibSVM 核心函數
核心函數 公式
Linear u'*v
Polynomial (gamma*u'*v + coef0)^degree Radial Basis function exp(-gamma*|u-v|^2)
sigmoid tanh(gamma*u'*v + coef0) 參考來源: [14]
19 使用 LibSVM 的流程如下圖 9 所示: 將資料處理成 LibSVM 可接受格式 放入LibSVM(svm-train) 訓練並產生模型 以模型來預測 新資料類別 圖 9 LibSVM 分類流程圖
2.3 特徵值挑選(Feature Selection)
在處理文件分類時,通常會將整篇文章斷詞切字,處理成以詞彙的方式呈 現,再將一些不值得考慮的停用字刪去,但是當資料量大時,會出現數十萬個詞 彙,容易造成分類器在分類過程中採納的特徵數量過於龐大,可能導致分類效果 不佳與執行速度緩慢等問題,因此需要倚靠特徵值挑選過濾出值得考慮的詞彙, 降低資料維度、提升系統效能,接下來將介紹本研究有採用的特徵挑選方法。
2.3.1 TF-IDF
在資訊檢索、資訊探勘的領域中,TF-IDF 常被用來對每個 term 依其重要性 做額外加權的動作。採用統計的概念,用來評估一個 term 在這份文件中與整體 文件間的重要性,TF(Term Frequency): 概念起源於 Luhn[30]在自動索引的實驗 裡發現,term 在經由分析之後可分為高、中、低頻三類 ,而高頻及低頻不具任何 意義,但中頻(middle-frequency)的詞彙大多數都較有意義,Luhn 再進一步提出 Resolving Power of Significant words 的概念[30],如圖 10 所示,在中頻的部分是 作者認為比較具有參考價值的。20
圖 10 詞頻與 Resolving Power of Significant words 關係 參考來源:[31]
IDF(Inverted Document Frequency):由 Spark Jones 於 1972 年所提出來的 [32],是一個詞彙普遍重要性的度量。某一特定詞彙的 IDF,可以由總文件數目 除以包含該詞彙之文件的數目,再將得到的商取對數計算出來。
2.3.2 Log Likelihood Ratio
Likelihood Ratio 指的是在兩個不同的假設下找出它最大機率的比例,通常用 一個希臘字母Λ來表示,而 Likelihood Ratio 檢定是一種以兩個假設為基礎數值 做決定的比例統計方法。也可以說是比較兩種模型的方法,原理是將兩個模型拿 來比較,在同樣的資料集下找出最適合的模型。主要是以 Log likelihood ratio 檢 定統計量在樣本很大時、近似於卡方分配的性質的概念來處理,計算方式為在虛 無假設下找出最大的 likelihood ratio 值
在虛無假設下參數 θ 屬於參數空間θ的特定子集合θ0中,likelihood 公式可 進一步表示成一個參數 θ 與一個實際觀察後擁有固定值的參數 χ[33]
21 0
sup{ ( | ) :
}
( )
sup{ ( | ) :
}
L
x
x
L
x
θ
θ
θ
θ
∈Θ
Λ
=
∈Θ
(12) 這是一個表示資料 χ 在 Likelihood Ratio 函數中的統計量。當這個統計量太 小時 Likelihood Ratio Test 會否定虛無假設。如何衡量這個統計量的多寡標準, 取決於 Type I error 機率[34]的容忍程度。 在 Pearson 檢定拋擲硬幣的例子中[34],他嘗試著比較兩個硬幣同時出現「正 面」的機率。他把硬幣出現的機率情況以表 2 表示,行代表硬幣出現正面及反面 出現的次數,列代表的是硬幣 1 及硬幣 2 出現的次數: 表 2 兩個硬幣投擲結果 正面 反面 硬幣 1 1H k k 1T 硬幣 2 2 H k k2T 這裡的 Θ 包含了下列幾個參數: p 、1H p 、1T p2 H、p ,這四個參數為表2T 2-2 所列情況出現的機率。將這個假設空間定義成一個符合一般分佈限制的 H 空 間:0≤ pij ≤1,且 piH + piT = 。當虛無假設1 H 的0 p1j = p2j時為其子空間。在以 上的條件中 i=1,2 及 j=H,T 在假設 H 與pij的情況下最大的可能性nij可表示成 ij ij iH iTk
n
k
k
=
+
(13) 在假設H 與0 pij的情況下最大的可能性mij可表示成22 1 2 1 2 1 2 j j ij H H T T
k
k
m
k
k
k
k
+
=
+
+
+
(14) 由表 2.2.4 的情況可再將 Log Likelihood ratio 表示成,
2 log
2
ijlog
ij i j ijn
k
m
−
Λ =
∑
(15) 許多特徵挑選都會有存在一個問題,出現在某分類裡頻率高的特徵內容裡, 同時包含了在其它分類裡也很常出現的、在其它分類裡很少出現的等情況,而使 用這種方法概念可以篩選出僅在此分類裡經常出現,在其它分類裡鮮少出現的特 徵內容。將此概念運用至本研究的前置處理過程裡,試圖找出僅在每項心情分類 中出現的特徵詞彙,進一步降低資料維度來增加分類系統效能。本研究考慮前面 章節所提的 LLR(-2logΛ)[33],由於此方法在處理圖書資訊等文件分類情況正 確率高達八、九成,故本研究採用此方法來作為前置處理的特徵挑選。23
第三章 系統設計
本章將闡述本研究中所提出之新聞文章心情分類系統的設計結構與使用的 方法,3.1 節介紹本系統所使用的資料;3.2 節介紹此系統整體結構;3.3 節介 紹系統前置處理;3.4 描述特徵值之挑選方法,用以篩選出特徵詞彙並放入 SVM 分類系統進行訓練與分類;3.5 節將 SVM 分類系統與特徵挑選出的詞彙結合,延 伸開發出關鍵字詞彙系統。3.1 資料收集
本研究收集台灣 Yahoo!奇摩新聞中的部分新聞以及該新聞所附帶的心情標 籤與投票數據為資料集。 在本系統所用來訓練的每一篇新聞文章中,皆附帶一個心情的標籤[35](包 含新奇、溫馨、誇張、難過、實用、高興、無聊、生氣等八類心情),該分類取 決於所有閱讀某篇新聞的讀者依其閱讀感受的心情投票,票數最高的分類,即為 該篇文章的心情分類。當針對一篇文章的投票人數愈多,則該文章所附帶的心情 分類愈能反映大多數讀者閱讀後所呈現之心情寫照。除了心情標籤,每篇新聞文 章依其文章內容也具有一個新聞分類,Yahoo!奇摩新聞有政治、社會、地方、國 際、財經、科技、運動、健康、教育、藝文、影劇、旅遊、生活等十三種新聞分 類。 圖 11 為 Yahoo!奇摩新聞網頁的其中一篇新聞,本研究係以新聞分類、心情 分類標籤、新聞標題、新聞文章內容、新聞日期、八項心情分類投票比例做為資 料的來源,每收集一篇新聞資料,資料庫將記錄所使用的新聞分類(news_cate)、 心情標籤(mood_cate)、新聞標題(news_title)、新聞文章(news_text)、新奇心情 投票比例(mood1) 、溫馨心情投票比例(mood2) 、誇張心情投票比例24 情投票比例(mood6) 、無聊心情投票比例(mood7) 、生氣心情投票比例 (mood8) 、以及投票人數(voters)、新聞日期(news_date)等內容。 圖 11 新聞文章資料 資料來源:[35] 以圖 11 為例,假設要收集一篇以「84 年次出生 確定免當兵」為標題的新聞, 則資料庫會記錄為如表 3。
25
表 3 蒐集新聞實際範例
news_cate mood_cate news_title news_text 11(影劇) 8(生氣) 84 年次出生 確定免 當兵 …國防部已經確定民國八 十四年元旦以後出生的免 當兵,也就是今年國二升 國三的役男不用當兵了…
mood1 mood2 mood3 mood4 mood5 mood6 mood7 mood8 news_date voters
3 0 10 13 2 23 9 40 2009-7-15 125
3.2 系統整體結構
本研究所提出之分類系統採用多元分類器,每篇新聞文章移除停用字與不經 採用的詞性詞彙後,僅採用部分的特徵詞彙做為分類依據,並送到分類器進行處 理。延伸應用部分將特徵詞挑選、分類預測、新聞文章心情分數、時間特性結合, 採納多種特性將結果做不同的呈現與進一步推薦。 前置處理 SVM訓練與分類 系統延伸應用 CKIP系統 斷詞切字 標記詞性 XML格式傳輸 Yahoo新聞文章 匯入資料 圖 12 系統整體架構圖26
3.3 前置處理
當一則新聞要經過分類器預測出其代表的心情前,將經過 斷詞切字,讓文章 改以每個「詞」的方式呈現;但並不是每個詞對分類過程皆有幫助,過多不重要 的詞反而造成分類過程中的誤差,容易誤判結果,所以資料的前置處理是非常重 要的,良好的前置處理可以提升系統效能、降低誤差。本研究將前置處理分成以 下四部分進一步討論:斷詞切字、詞性標記、移除停用字、特徵挑選。(如圖 13 所示)。 前置處理 SVM分類處理 系統延伸應用 TF 斷詞切字 詞性標記 移除停用字 LLR 圖 13 系統架構-前置處理3.3.1 斷詞切字
在文章處理過程中,最常用的基本單位是「詞」,而「詞」所代表的是由語 言學家所定義的「能夠獨立運用,具有完整語意的最小語言成份」[36]。但在不 同語言中,對「詞」的處理方式也不同,例如在英文中每個單字都是具有意義的, 可直接由字與字間的空白將全部的詞輕易斷出,僅有少數的片語需要額外處理;27
但在中文的表達方式中,無法使用空白符號將每個字準確地切割出來,可能一個
字串裡面包含了許多「詞」,不像英文一個字串就代表一個「詞」,所以要處理中
文必須使用一套更精準的斷詞切字方法。
本研究採用中研院中文詞知識庫小組所開發的 CKIP(Chinese Knowledge Information Processing Group)[37]系統來處理斷詞切字的工作。由於中文詞集是 一個隨時都在增加的開放集合,並不存在任何一個辭典能涵蓋所有詞彙,所以在 針對特定領域的研究中,必須進一步地加入該領域特有的詞彙,才能減少錯分的 情況。中研院的 CKIP 系統也有處理此種狀況的機制,可以自動搜集新詞建立該 領域用詞,具有自動擴增新詞與辨別詞彙詞性的功能,本研究使用此系統的線上 斷詞切字服務 API,只需要將檔案以 XML 格式型態建立 SOCKET 傳遞即可迅速 獲得結果。
3.3.2 詞性標記
本研究所使用的 CKIP 斷詞切字系統亦可同時標記詞性,CKIP 採用中央研 究院詞庫小組八萬目辭典中的 178 個詞類經簡化後所得的 43 個標記,另外針對 特殊符號增加三個標記。而本研究只採用其中較具代表性的動詞與名詞,也就是 精簡標記 Vi、Vt、N、Nv 等四類精簡。以下舉一個實際操作的例子。新聞標題為: 「台鐵端午車票熱賣 高鐵宣布開加 58 班列車」,經過中研院 CKIP 斷詞切字處 理系統處理過後,可得到如圖 14。台鐵(Nc) 端午(Nd) 車票(Na) 熱賣(VD) 高鐵(Na) 宣布(VE) 開(VC) 加(VC) 58(Neu) 班(Nf) 列車(Na)
28 但由於詞類細分為太多種類,CKIP 線上服務系統會進一步地處理成精簡的詞彙 標記如圖 15: 台鐵(N) 端午(N) 車票(N) 熱賣(Vi) 高鐵(N) 宣布(Vt) 開加(N) 58(DET) 班(M) 列車(N) 圖 15 前置處理第二階段-精簡詞彙標記 而本研究只採用其中的四種詞性,將 CKIP 系統所回傳的詞彙進一步挑選後僅餘 如圖 16 的結果: 台鐵(N) 端午(N) 車票(N) 熱賣(Vi) 高鐵(N) 宣布(Vt) 開加(N) 列車(N) 圖 16 前置處理第三階段-僅挑選名詞和動詞
3.3.3 刪除停用字
停用字指的是,有些字在文章中會出現很多次,但字的本身卻不任何意思, 往往僅用來修飾語句,平順語意。而在分類的過程中,由於部分停用字出現頻率 很高,容易造成在分類時的雜訊進而影響到分類結果。例如:你、我、他等代名 詞,以及較不重要的介系詞、語助詞。 除了一般常見被許多人所認定的停用字外,在特定領域裡有些字的出現也是 不太具有意義。當新聞文章中一再出現:記者、報導、新聞等字,這些字也屬於 本篇研究所使用的動、名詞類型,但是在此領域中出現這些字是不具有任何意義 的。故本研究整合了中央研究院平衡語料庫詞集及詞頻統計[38]使用頻率最高的 前 100 個詞彙作為停用字,以及 Oracle Text Reference[39]的停用字表,再額外加 入新聞文章類的停用字,期能 提升系統準確率。本研究所用的停用字列表如表 4。29 表 4 停用字列表 你(N),它(N),他(N),我(N),我們(N),你們(N),阿(N),妳(N),妳們(N), 他們(N),自己(N),她(N),人(N),是(Vt),上(N),後(POST),到(Vt),無 (Vt),小(Vi),們(N),今(N),好(Vi),後(POST),者(N),大(Vi),那(ADV), 年(N),時(POST),說(Vt),有(Vt),個(M),這(DET),種(Vt),中(N),讓(Vt), 此(DET),做(Vt),沒有(Vt),位(Vt),想(Vt),其(DET),高(Vi),沒(Vt), 何(N),不同(Vi),一(DET),兩(DET),各(DET),每(DET),次(M),三(DET), 目前(N),希望(Vt),有關(Vt),包括(Vt),最近(N),是(Vt),引起(Vt),最 後(N),加強(Vt),繼續 (Vt),有(Vt),了解 (Vt),過去(N),任(Vt),左右(N), 經過(Vt),使得(Vt),相關(Vi),當時(N),進入(Vt),現在(N),需要(Vt), 原因(N),如此(Vi),什麼(DET),問題(N),學生(N),表示(Vt),公司(N), 大家(N) ,記者 (N) ,新聞 (N) ,媒體 (N) ,採訪 (Vt) ,報導 (N) ,發現 (Vt), 台灣(N)
3.3.4 特徵挑選
本研究嘗試運用詞頻(Term Frequency)與 Log Likelihood Ratio Test 等 二種方式,來選擇對新聞文章心情分類有所助益的特徵,分述如后。 1.詞頻(Term Frequency): 在高中學英文的過程中,許多英文老師都會要求學生去背教育部所統計最常 使用的英文 7000 字、8000 字、甚至到 10000 字。這麼做的用意主要是因為這些 字經常出現,先學會這些常出現的單字對於學習英文的幫助很大,顯見衡量詞的 重要性時經常會考慮到詞頻。在文件分類的過程裡,詞頻高的詞通常會包含一些 人類常用詞以及該類別裡重要的詞,無法光倚靠詞頻就去斷定此詞與該分類間是 否有關係,本研究中以 Yahoo!奇摩新聞的八個心情分類依詞頻最高的前二十名
30 如下表 5 與表 6 所示 表 5 詞頻最高的前二十名詞彙(全詞彙) 詞彙 出現次數 詞彙 出現次數 的 7349 都 4362 在 6488 個 4274 是 6170 人 4138 一 6055 還 4096 有 5634 說 4072 也 5343 上 3711 不 5107 但 3653 這 4696 會 3569 了 4523 到 3560 就 4457 後 3493 由這八個分類所統計的詞頻表 5 與表 6 中可發現,在詞頻前二十名的詞中仍夾雜 許多人類慣用字,必須再藉助其它特徵挑選方法才有辦法找出每個分類中的特徵 詞。
31 表 6 詞頻最高的前二十名詞彙(動詞與名詞) 詞彙 出現次數 詞彙 出現次數 是 6170 大 2632 有 5634 前 2507 人 4138 沒有 2401 說 4072 為 2313 到 3560 報導 2147 要 3439 發現 1942 讓 3360 自己 1941 他 3344 沒 1882 表示 2849 她 1849 記者 2668 得 1740
2.Log Likelihood Ratio Test:
令S 為訓練資料中屬於類別i M 的新聞資料,i S 為訓資料中不屬於類別i M 的i
新聞資料,並針對詞彙tj死類別M 提出下列兩個假設 i
假設 1 P S t( i| )j = =p P S t( i | )j ,文件間是否有關聯與t 無關; i
假設 2 P S t( i| )j = p1≠ p2 =P S t( i| )j ,文件間是否有關聯與t 是否存在,有很大的i
32 仿表 2 列出本研究各種可能的情況表,表 7 中,n 指的是詞彙 i 在心情分類1 j 中的出現次數;n 指的是詞彙 i 在非心情分類 j 出現的次數;2 n 指的是除了詞3 彙 i 以外其它詞彙在心情分類 j 中的出現次數;n 除了詞彙 i 以外其它詞彙在非4 心情分類 j 中的出現次數(採用 Document Frequency 計算)。 表 7 詞彙與心情類別關係 j S S j i t 1 n n 2 i t n 3 n 4 假設機率分佈情況為二項式分佈 ( )
( ; , )
n
k(1
)
n kb k n x
x
x
k
−
=
−
可將H 與1 H 改寫成 2 1 1 1 2 3 3 4(
)
( ;
, ) ( ;
, )
L H
=
b n n
+
n p b n n
+
n p
2 1 1 2 1 3 3 4 2(
)
( ;
,
) ( ;
,
)
L H
=
b n n
+
n p b n n
+
n p
並代入-2logΛ 1 2 1 1 2 3 3 4 1 1 2 1 3 3 4 2 1 3 2 4 1 1 2 1 3 2 4 2 ( ) 2 log ( ) ( ; , ) ( ; , ) 2 log ( ; , ) ( ; , )2(( ) log ( ) log(1 ) ( log log(1 ) log log(1 )))
L H L H b n n n p b n n n p b n n n p b n n n p n n p n n p n p n p n p n p = − + + = − + + = − + + + − − + − + + −
33 其中機率 1 2 1 2 3 4
n
n
p
n
n
n
n
+
=
+
+ +
, 1 1 1 2n
p
n
n
=
+
, 2 3 3 4n
p
n
n
=
+
而本研究所計算出的八種新聞心情 LLR 排名前十的詞彙如表 8、表 9、表 10 所示。在表 8、表 9、表 10 中,可以看出一些很明顯的特徵:實用類別的詞彙大 多跟醫學報導、常識有關係,這些詞彙容易讓人覺得這類型新聞很實用;高興類 別的詞彙跟運動勝利有關係,感覺運動類型報導容易讓人很高興有意願去投票, 但是詞彙比較偏向勝利的運動新聞,也有可能是因為通常落敗的標題讓人點閱意 願或是投票意願低落所造成的;無聊與生氣兩個類別的詞彙都與政治有關係,不 分藍綠政黨都易使人在閱讀時產生負面的情緒。 表 8 新奇、溫馨、誇張三類新聞心情分類 LLR 前十名 新奇 溫馨 誇張 詞彙 LLR 值 詞彙 LLR 值 詞彙 LLR 值 科學家 360.1088 感動 583.7297 警方 447.7907 研究 260.3479 愛心 479.8703 男子 364.9363 人類 210.5044 感謝 288.7076 女子 149.8070 嘖嘖稱奇 196.8792 照顧 273.1356 台灣 147.6521 生物 182.8508 孩子 250.9976 發現 142.1874 牠 161.9498 捐出 227.3476 烏龍 124.7958 研發 160.8925 志工 224.8288 報案 115.2022 廟 158.0893 幫助 195.0384 調查 114.1598 神奇 157.9359 弱勢 194.5427 逮捕 110.8561 地球 151.7349 捐 186.9286 報警 106.844234 表 9 難過、實用、高興三類新聞心情分類 LLR 前十名 難過 實用 高興 詞彙 LLR 值 詞彙 LLR 值 詞彙 LLR 值 不幸 300.1170 醫師 974.2429 投手 546.5510 死亡 282.6576 患者 771.5972 先發 463.3743 不治 256.4122 症狀 747.3640 勝 383.3057 家屬 239.0486 飲食 727.2914 拿下 382.5888 身亡 235.8778 建議 702.2004 比賽 370.3191 自殺 229.5752 容易 628.6636 球員 370.1879 難過 193.8598 治療 598.0166 安打 316.2670 送醫 185.0590 疾病 594.8826 球 308.3993 急救 184.6250 預防 531.6418 擊敗 307.6599 死者 178.7346 避免 520.5768 冠軍 298.8540
35 表 10 無聊、生氣二類新聞心情分類 LLR 前十名 無聊 生氣 詞彙 LLR 值 詞彙 LLR 值 民進黨 401.7913 立委 389.7735 前總統 346.4427 質疑 281.9694 陳水扁 346.0811 立法院 253.6003 蔡英文 274.0449 政府 242.6274 緋聞 266.3180 國民黨 217.6709 馬英九 253.3650 要求 189.2973 總統 214.8017 公務員 167.5531 主席 212.0275 扁家 153.2738 看守所 208.1930 爭議 152.9293 馬 206.7946 痛批 152.0251
3.4 SVM 分類處理
本節將詳細介紹如何將前置處理後的資料,轉換成適合 SVM 處理的向量, 放入 LibSVM 分類器再進一步分類出結果茲將 SVM 向量、利用 LibSVM 分類器 的步驟分述如下(如圖 17 所示)。36 前置處理 系統延伸應用 轉換SVM向量 LibSVM分類器 圖 17 系統架構-SVM 分類處理
3.4.1 轉換 SVM 向量
本研究將前置處理過後的詞,進一步地以二元值(Binary)方式轉換成 LibSVM 可以接受的檔案格式,而二元值所呈現的方式為依詞編號將有出現的詞 標記為 1,沒出現的詞標記為 0,將此二元值依單純的存在與否概念轉換成 SVM 向量處理,實際例子如下。圖 18 為經前置處理後的新聞文章標題範例。 台鐵(N) 端午(N) 車票(N) 熱賣(Vi) 高鐵(N) 宣布(Vt) 開加(N) 列車(N) 圖 18 經前述處理後的詞彙列 而依照上述詞轉換成詞的編號與二元值,依詞編號升冪排列,如圖 19 所示: 10005:1 19982:1 21121:1 39445:1 40124:1 46219:1 51224:1 60231:1 圖 19 LibSVM 向量格式37 由於 LibSVM 會將所有沒輸入的詞彙編號預設成 0,所以只需要列出此筆資料有 出現的詞編號即可。
3.4.2 LibSVM 分類
在嘗試 SVM 最佳參數時參考[13]一文的方法,使用 SVM Linear Kernel 代入 ( 4 2− 、 3 2− 、 2 2− 、 1 2− 、 1 2 、2 、2 2 、3 2 )作為 Cost 與 SVM 的三個 Kernel(linear、4 radial、sigmoid)交叉測試,其正確率普遍不佳(正確率平均約 60%)。因此本實驗 收集自 2008 年 10 月 15 日自 2009 年 2 月 28 日的資料共四千八百篇新聞文章, 每個心情分類各六百篇的資料集,採用 9-fold cross validation 進行參數測試,其 原因是當資料集愈來愈大時,每次測試參數的時間將會愈來愈長,無法在短期間 內找出最佳參數,先以較小的資料集找出較優秀的參數供往後實驗所使用,所得 結果如表 11 所示,可以看出在核心函數為 radial 與 sigmoid、懲罰參數為 500 時 有較佳的表現,下一章將只討論這兩個核心函數的正確率。 表 11 SVM 參數設定與結果 資料集 懲罰參數 C 核心函數 正確率 所有詞彙 100 linear 87.6566% 所有詞彙 100 polynomial 12.8232% 所有詞彙 100 radial 87.8432% 所有詞彙 100 sigmoid 86.5103% 所有詞彙 250 linear 87.6566% 所有詞彙 250 polynomial 12.8232% 所有詞彙 250 radial 88.1898% 所有詞彙 250 sigmoid 87.8966% 所有詞彙 400 linear 87.6566% 所有詞彙 400 polynomial 12.8232%38 資料集 懲罰參數 C 核心函數 正確率 所有詞彙 400 radial 88.1632% 所有詞彙 400 sigmoid 88.1898% 所有詞彙 500 linear 87.6566% 所有詞彙 500 polynomial 12.8232% 所有詞彙 500 radial 88.1632% 所有詞彙 500 sigmoid 88.2165% 所有詞彙 750 linear 87.6566% 所有詞彙 750 polynomial 12.8232% 所有詞彙 750 radial 87.8699% 所有詞彙 750 sigmoid 88.1365% 所有詞彙 1000 linear 87.6566% 所有詞彙 1000 polynomial 12.8232% 所有詞彙 1000 radial 87.7899% 所有詞彙 1000 sigmoid 88.0832% 所有詞彙 5000 linear 87.6566% 所有詞彙 5000 polynomial 21.6206% 所有詞彙 5000 radial 87.55% 所有詞彙 5000 sigmoid 87.63% 所有詞彙 10000 linear 87.6566% 所有詞彙 10000 polynomial 29.3788% 所有詞彙 10000 radial 87.55% 所有詞彙 10000 sigmoid 87.6566%
此外,linear kernel 雖然並不是在所有 cost 參數配合下都有最佳表現,但變動起 伏較小,表現雖然不是最好但也與最佳表現差距不大,而在表 11 中表現最佳的
39 是當懲罰參數設定為 500 與核心函數選擇 sigmoid 時的 88.2165%。
3.5 關鍵詞彙挑選系統
本研究將前面所提的特徵挑選與 LibSVM 分類器進一步應用,構思出關鍵詞 彙挑選系統。 此系統考慮了前面所提的 LLR 與 TF 方法[33],考量到有不少詞彙僅在某一 篇新聞文章僅出現一次,而此篇新聞心情比例卻高達八九成,造成部份詞彙新聞 心情分數偏高但出現次數過少產生誤差。但由於這兩種統計方法只能依各詞彙的 出現分佈情況計算出 LLR 值與 TF 值後進一步評估,依此兩值的權重去挑選出各 類別較具代表性的詞彙,忽略了人類可能對於不同詞彙中有不同的情感差異。本 系統額外考慮奇摩新聞心情投票人數比例,希望能進一步在心情的呈現上表現出 強度強弱差異。例如兩個人名的詞彙,「陳水扁」與「王永慶」,雖然說都是同一 類型的詞彙,而在本系統所使用的資料集出現頻率也不低,但兩個詞彙造成讀者 的心情分佈狀況截然不同。本系統的流程如圖 20。 關鍵詞彙挑選系統 前置處理(Stopwords) 統計分析(LLR,TF,心情分數) 篩選及結合 CKIP系統 斷詞切字 標記詞性 XML格式傳輸 關鍵詞彙 Yahoo新聞文章 匯入資料 輸出結果 圖 20 系統架構圖40 考量到有不少詞彙僅在某一篇新聞文章出現一次,而此篇新聞心情比例卻高 達八九成,造成部份詞彙新聞心情分數偏高但出現次數過少產生誤差,統計分析 的處理流程如圖 21。 計算出每個字 的LLR值 將算好的LLR值 乘上TF取前五十名 依每個字的心情平均 分數重新排序名次只 留下最終前十名 圖 21 統計分析方式 而其中在心情 e 中詞彙 i 平均分數計算方式為: 其中 Fe,詞彙i指的是在心情 e 中詞彙 i 所有新聞裡出現的總次數;n 為新聞編 號;Se,詞彙i n, 在心情 e 中詞彙 u 於編號 n 的新聞中的心情分數,此值為 3.1 節所提 的八項心情投票比例;Fe,詞彙i n, 在心情 e 中詞彙 i 於編號 n 的新聞中出現的總次 數。
3.5.1 系統介面
系統在中間呈現每個月的關鍵詞彙,如圖 22 所示,並以 3.5 節所提之計算 方式找出最具重要性的詞彙,以其為中心,右上方為其相關的新聞標題,下方為 時間捲軸,本系統採用資料自 2008 年 10 月至 2009 年 4 月,將此系統依月份與 心情分類為區間來呈現:41
圖 22 系統介面圖
在詞彙間以圖 22 的計算方式計算出最高分數的詞彙為中心,而球與球之間
的連線為是否有共同出現在同一篇新聞,如圖 23 所示。
42 在網頁底下可以選擇使用者感興趣的月份與心情,選項為本系統所採用的時間 2008 年 10 月、11 月、12 月,2009 年 1 月、2 月、3 月、4 月與新奇、溫馨、誇 張、難過、實用、高興、無聊、生氣等八類心情。如圖 24 所示。 圖 24 詞彙心情月份選擇工具列 而右半部將與詞彙曾出現過的新聞標題列出,能更清楚了解該詞彙曾出現在哪些 類型的新聞中,如圖 25 所示。 圖 25 新聞標題列表 選擇有興趣的標題後進一步呈現該篇新聞完整內容,如圖 26 所示
43
44
四、實驗與分析
本章介紹實驗所使用的資料集特色,以及在不同的資料集與特徵集下 LibSVM 的分類結果,了解改變特徵集種類與數量是否能提升 LibSVM 分類正確 率。本章各節內容如下:4.1 節介紹實驗環境、資料特色、實驗步驟以及評估系 統效能所使用的方法;4.2 節說明三種特徵的實驗結果;4.3 節詳細分析 Cross Validation 的結果;4.4 節介紹實驗產生的分類模型用於預測新資料的結果;4.5 節則是檢視 LLR 值與結合新聞心情分數之後選取的特徵對系統效能的影響;4.6 節討論關鍵詞彙挑選系統的結果。4.1 實驗環境、資料、步驟與評估方法
4.1.1 實驗環境
本實驗在計算 Log Likelihood Ratio 值、應用系統、SVM 訓練與預測、新聞 資料搜集等動作使用電腦來輔助,詳細資料如表 12。 表 12 實驗環境 工作 環境說明 Log Likelihood Ratio 值計算、 應用系統
OS:Microsoft Windows XP Professional Version 2002 Service Pack3
Hardware:Intel(R) Core(TM)2 CPU [email protected] 512ram
SVM 資料建立、 訓練模型、 新聞資料庫
OS: Microsoft Windows XP Professional Version 2002 Service Pack3
Hardware:Intel(R) Pentium(R) 4 CPU 3.0GHz 2.99GHz 512+256 ram
45 SVM cross validation
OS:Microsoft Windows XP Professional Version 2002 Service Pack2
Hardware: Intel(R) Core(TM) 2 CPU T5600 @ 1.83GHz 1.81GHz 3.0GB ram
4.1.2 實驗資料
本研究之實驗資料使用 2008/10/15~2009/4/29 的 Yahoo!奇摩新聞的部分資 料,如 3.1 節所述。心情分類是由讀者在閱讀一篇文章後主動對於該篇新聞給予 符合自己心情的標籤,經由 Yahoo!奇摩新聞系統統計之後,以最高比例的心情 分類訂為該篇新聞的心情分類,心情標籤的投票結果會不斷更新,讓讀者能在 Yahoo!奇摩網站上取得最新的統計結果。本研究每天以各心情分類收錄五篇投票 超過 50 人的新聞為原則,表 13、表 14、表 15 為資料集的統計資料。表中詞彙 總數為不重複採計的詞彙數量(不除去標點符號與停用字)。而本研究所使用的資 料中新聞分類與心情分類的關係如圖 27。 表 13 月份與新聞篇數的統計 年/月份 新聞篇數 詞彙總數 2008/10 583 17286 2008/11 1134 28536 2008/12 1295 32822 2009/1 1165 30833 2009/2 1012 28346 2009/3 1217 32085 2009/4 1209 32625 總計 7615 7631446 表 14 心情分類與新聞篇數統計 心情分類 新聞篇數 詞彙總數 新奇 944 25446 溫馨 942 24992 誇張 944 23129 難過 944 21963 實用 944 23676 高興 942 22542 無聊 943 20501 生氣 942 22904 表 15 新聞分類與新聞篇數的統計 新聞分類 新聞篇數 詞彙總數 政治 483 14186 社會 772 19471 地方 891 22975 國際 575 16956 財經 272 11761 科技 438 15289 運動 448 13112 健康 955 22652 教育 446 16094 藝文 183 10313 影劇 1007 22369 旅遊 101 5900 生活 970 22564
47 生活 地方 社會 政治 科技 旅遊 財金 健康 圖 27 新聞分類與心情分類關係
48
國際 教育
運動 影劇
藝文
49
4.1.3 實驗步驟
本研究將 2008 年 10 月中旬至 2009 年 4 月底所搜集之資料分成兩部分來進 行實驗:
1. 將資料分成九份,進行 9-fold cross validation,重複執行九次,每次以八份 資料做為訓練集,用以建立訓練模型;餘下一份做為測試集,用以驗証分類 模型的效能,最後將九次執行的效能平均。實驗的目的是為了驗証不同特徵 挑選方式(以所有詞彙、動詞與名詞、動詞與名詞中高 Log Likelihood Ratio 值者)對 SVM 效能的影響。 2. 以前述資料做為訓練模型,將 2009 年 5 月之新聞資料做為測試資料。
4.1.4 評估方法
本論文採用 Accuracy 以及 F-measure。計算方式源自資訊擷取理論,以錯差 矩陣(Confusion matrix)四個準則(如表 16)來評估分類效果。 計算前必須定義出何為 relevant 以及 irrelevant,本實驗將系統自動分類的類 別與實際新聞資料心情分類相符為 relevant;不符則為 irrelevant。在 relevant 與 irrelevant 定義完後可以做出具有四元素的錯差矩陣。50 表 16 錯差矩陣 TP precision TP FP = + , TP recall P = TP TN accuracy P N + = + 2 1 1 F measure precision recall − = +