• 沒有找到結果。

論文方法

本章節將說明本論文自動探勘出主題面向及文章面向選定的方法:3-1 節先 簡介系統架構,3-2 節介紹本研究所使用之資料及資料的前處理方法,3-3 節詳述 產生各主題的面向集及調整之步驟,3-4 則說明如何為每一篇文章挑選相關面向。

3-1 系統簡介

圖 3.1 系統流程

選定文章的面向 1.擴展面向的相關字詞集合 2.計算面向與文章之相關度

產生主題面向 1.產生候選面向集合

2.調整面向 3.建立面向之階層架構

資料蒐集與前處理 1.蒐集資料 2.取出文章標題及內文

3.斷句 4.斷詞

本論文的系統流程如圖 3.1 所示分為三大部份:

1. 資料蒐集及資料前處理:本論文所採用的資料來源為 YAHOO!奇摩新聞-

全民話頭條(http://tw.forum.news.yahoo.com/);資料前處理包括斷句、斷詞處理 及候選面向集合的產生。

2. 產生各主題的面向:這一個步驟先是從候選面向集合中選出每一個主題相 關的面向,接著調整面向集合並建立面向的階層架構。

3. 每篇文章的面向選定:先探勘出每一個面向的擴展相關字詞集合,接著計 算面向與文章的相關性,以此相關性決定文章內容所包含的面向。

3-2 資料蒐集及資料前處理

3-2.1 資料集

本論文研究所使用之新聞討論文章資料來源為 Yahoo!奇摩新聞全民話頭條

(http://tw.forum.news.yahoo.com/),我們從論壇中取得的資料有:話題標題及話 題中所有討論的文章。Yahoo!奇摩新聞全民話頭條之首頁頁面如圖 3.2 所示。

圖 3.2 Yahoo!奇摩新聞全民話頭條首頁

3-2.2 資料前處理

我們蒐集到的資料,每一篇文章由許多部分所組成,如圖 3.3 所示,在本研 究中只需使用到文章標題及內文的部分,因此我們必須進行前處理分別取出文章 標題和內文的部分,取出的文章標題和內文如圖 3.4 和圖 3.5 所示。

圖 3.3 資料文章範例

圖 3.4 取出的文章標題

文章標題

文章內文部分

將文章標題和文章內文分別取出之後,針對文章內文部分我們還必須進行兩 個步驟的處理,第一步是將文章斷句,因為在之後計算文章與面向的相關性的時 候也需要計算句子和面向之相關性,所以在前處理的部分要先將文章內容依照句 子一句一句斷好。

由於文章來源檔案為 HTML 格式的檔案,因此除了文字、標點符號之外還包 含有 HTML 標籤,如圖 3.5 所示,因此我們利用標點符號(,.?!~;,。〜;!?等)、

html 標籤(<br>、<p>、<div>等)及空格來將文章內容進行斷句。斷句結果如圖 3.6 所示。

圖 3.6 文章內文斷句結果

斷句完之後的文章內容,我們再利用事先建立好的約包含五萬兩千多字的字 典及斷詞程式來進行斷詞處理。在此後的處理皆是以此斷句且斷詞完之後的檔案 內容來做為比對、計算的依據。經過斷詞處理若存在字典中的字詞即會被保留並 以空格分隔出來,若字典中沒有的字詞則會被刪去,斷詞完的結果如圖 3.7 所示。

圖 3.7 文章內文斷詞結果

3-3 建立各主題之面向

3-3.1 建立候選面向集合

本研究的目標是要找出隱藏在文章內容中的面向,因此可以代表話題的面向 關鍵字必須出現在文章內容中。因此,一開始我們取全部話題主題的文章所形成 的文章集合 C,從經過斷句及斷詞處理後的文章內容中計算各字詞 cw 的整體文 件出現頻率gdfC(cw),並刪除gdfC(cw)值太高或太低的字詞。gdfC(cw)值太高表 示是太廣泛不具有代表性的字詞,例如:『這個』、『那個』等使用者很常使用 的字詞,這一類指示代名詞或是一些疑問語氣詞出現地很頻繁,且不具有明確的 概念含義,因此不能夠用來當做代表一個面向的字詞,本論文方法訂定gdfC(cw) 值若超過 400 即表示這個字詞的頻率太高,需被刪去。至於字詞出現頻率太低的 字詞也不能夠被當成候選面向,因為這一類的字詞只有很少數的使用者會使用,

若使用這一類的字詞來當成面向,也無法找出與該面向相關的文章,因此我們也 會刪去gdfC(cw)值太低的字詞。例:『鷸蚌相爭』、『蜚短流長』等較不常見的 成語或一些太專業艱深的詞彙等,本論文方法訂定gdfC(cw)值若低於 5 即表示這 個字詞的頻率太低,會被刪除。

另外有一些字詞在集合 C 中雖然整體文件出現頻率gdfC(cw)不算太高也不會 太低,但是這些字詞卻同樣地無法表現出特定主題的概念,例如:『台灣』、『台 灣人』這一些不管在哪一個文章主題中都很常出現的字詞,我們也會將這些字詞 以人為設定排除在候選面向集合之外。

3.3-2 建立各主題之候選面向

我們在上一個步驟刪除掉不適合被當作候選面向的字詞後,就要從剩下的字 詞集合中取出每一個主題的候選面向集合。我們認為使用者在文章標題中採用到 的字詞最能夠表現出該篇文章的重點主題,或者該使用者想表達的意見觀點。因 此我們對每一主題 ti的文章集合 D(ti),從每一篇文章的標題中,找出可以代表主 題 ti的重要關鍵字。

我們先計算一個字詞 tw 在主題 ti 的文章標題集合中的標題之出現頻率

title_freq(tw,ti)。由於在前一個步驟已經全面性地刪除太廣泛不具有代表性之字

詞,在這一個步驟中,因計算 title_freq(tw,ti)的範圍縮小為一個主題的文章集合,

若有一個字詞的 title_freq(tw,ti)很高,表示很多使用者認為這一個字對此一主題來 說是很重要的,所以才會經常在標題中用到這個字詞,換言之,這一個字詞可以 表現出此主題的重要觀點,可以做為這個主題的一個代表面向。但為避免選出的 面向過多,因此在這一個步驟,我們會對 tw 依 title_freq(tw,ti)由高而低排序,選 出其中前 k%的面向關鍵字,其中 k 為可調整之參數值。例如在『菸害防制法新 制上路』這個主題中,『吸煙』及『人權』這兩個字詞的 title_freq(tw,ti)都很高,

表示皆是很重要且可以代表這個主題的面向。

在上述步驟處理後,針對每一個主題 ti,可以建立出它特有的候選面向集合,

這個候選面向集合中的字詞都是這個主題中很重要的一些字詞,我們將這個候選

立主題 ti的候選面向集合 F(ti)的虛擬程式碼。

圖 3.8 建立各主題之候選面向之程式碼

3-3.3 調整各主題之候選面向

經過前一步驟挑選出來每個主題 ti的候選面向列表集合 F(ti)後,經觀察發現 有些面向在特定主題中其實是在討論同樣的主題,因此可以將這些合併為一個面 向來表示。

[定義 3.1] 面向相關文章集合

為了進一步探勘這些候選面向關鍵字出現的關聯以及相關擴展字詞,本論文 以文章 d 之標題 d.title 所包含面向關鍵字來決定該篇文章與哪一個面向相關,定 義出面向相關文章集合如下。

for dC for cwd count gdfC(cw)

delete cw if gdfC(cw)≧maxf or gdfC(cw)≦minf

for dj.titleDT(ti) , tiT for twdj.title

count tf(tw,dj.title)

add tw into F(ti),F(ti)={f1,f2,f3,…,fg} , tiT

在一主題 ti的文章集合中,若一篇文章 dj的標題 dj.title 包含有 fg這個面向字

第一種情況是面向 fA為面向 fB的子字串,或是面向 fB為面向 fA的子字串,這

3.9 所示為本論文調整一主題 ti的候選面向集合 F(ti)之虛擬程式碼。

實際文章內容中能夠合併並產生新的字詞情況有限,其問題是因為許多字詞 和字詞中間會有“stop words”已被前處理刪除,例如『胡錦濤的「六點主張」』這 個主題中,『六點主張』和『胡錦濤』這兩個字詞的共同相關文章數目超過各自 的相關文章數目的一半以上,且這兩個字詞也沒有共同的子字串,所以我們會試 著將這兩個字詞合併成『六點主張胡錦濤』或『胡錦濤六點主張』,但是在文章 標題集合中都無法找到這兩個詞,因為標題中同時包含這兩個字詞為:『胡錦濤 的六點主張』,如果我們在兩個字詞中加上『的』就可以比對到。因此有許多新

組成較長的字詞會因為此情況而無法產生。在此情況下則會仍各保留原先的兩個 面向關鍵字。

圖 3.9 調整候選面向集合之程式碼

向;『健康』這個面向為一上層面向,底下又可以細分出『吸煙』、『健康捐』、

例如:在『菸害防制法新制上路』這個主題挑選出來的面向中,我們計算出:

P (吸菸|人權) > P (人權|吸菸),因此可以推出『吸菸』為一個上層的面向,這個

面向底下可以再細分出『人權』這個子面向。也就是表示說『吸菸』這個面向具 有較大範圍的概念,計算出全部的面向兩兩之間的關係後,就可以架構出如圖 3.10 所示之面向階層架構。建立面向的階層架構的虛擬程式碼如圖 3.11 所示。

圖 3.11 建立面向的階層架構之程式碼

3-4 選定面向

3-4.1 面向的擴展字詞集合

我們在計算一篇文章或一個句子與面向的相關程度時,若只以面向這個字詞 為依據時,只能以文章或句子中是否出現面向這一個字詞來決定,這樣子計算出 來的相關度不是 1 就是 0,只要沒出現該面向關鍵字便被判定與面向不相關。然

for fAF(ti) and fBF(ti) , fA≠fB

compute conf(fAàfB) and conf(fBàfA) if ( conf(fAàfB) > conf(fBàfA) ) add fB to Fh

delete fB

else if (conf(fBàfA) > conf(fAàfB) ) add fA to Fh

delete fA

Fh為上層面向集合

而有一些與某一面向關聯性很高的字詞,如果有出現在文章裡面,就算沒有出現

(2)

dRigd.content.length:面向 fg的相關文章集合 Rig中各文章長度的總和。

程度的時候,若句子或文章中有出現擴展字詞集合 Eig 中的字詞,就可以視為該

如圖 3.12 所示,『二手菸』與『權利』這兩個字詞為『人權』這個面向的擴 展字詞,在計算這篇文章與『人權』的相關程度時,會因為這兩個字詞使得這篇 文章和『人權』的相關程度更大。而且如果在某一篇文章中沒有出現『人權』這 個詞,我們也可以因為文章中有出現『人權』的擴展字詞,而找出與『人權』有 相關的文章。

3-4.2 選定文章的面向

本研究採用文章和一個面向 fg之間的相似程度來評估一篇文章是否包含面向

fg 的觀點;我們除了以整篇文章的字詞來計算和各面向的相似度之外,也會以文

fg 的觀點;我們除了以整篇文章的字詞來計算和各面向的相似度之外,也會以文

相關文件