文字探勘的快思慢想與遐想_Text Mining_Text Analytics_TF-IDF

文字探勘(text mining)是大數據領域的文本分析(text analytics),用來處理這世間最大量的非結構化資料–文字。您可以想像:我們每天不斷透過網路接觸到大量的文字、圖片、影音…Facebook的近況更新、留言、Twitter的推文、轉推,文字不像數字,它多半是自然語言,是非結構化、沒有固定欄位的。處理如此巨量的文字資料,首先必須考慮,我們如何把文字【量化】?接著,量化文字以後,又該如何將數字變得有意義?

如果要我試著用比較生動的方式來形容文字探勘,就是把文字抓進【表格】裡面,有如Excel的欄列表格,再去計算特定的文字出現在單篇文章的頻率(term frequency, TF),以及在所有的文章中,有幾篇文章提及這些特定的文字(inverse document frequency, IDF)。如果想進一步了解運用Python進行文本分析,可參考Mark Chang這篇自然語言的文章,淺顯易懂又有範例。

因此,爬文很重要:先觀察網頁結構(有些網頁資料還不讓人抓~XD),再使用自製或應用程式的【爬蟲】(crawler)捕捉文本。當然,網路文本大多數是複雜且凌亂的,特別是文字,爬下來的文本還必須經過清整才能使用,除了過濾【贅字】以外,將文本轉換到符合自然語言的結構,例如【中文斷詞系統】,就是透過它使得文本合乎日常使用的形式。目前各方積極大量且廣泛的進行語料庫建立,連ptt鄉民常用語彙也視為重要的語料之一,文字探勘功能強大與否,乃直接影響大數據分析成敗的關鍵因素,可見一斑。

NodeXL也有內建的「文字探勘」功能,可針對貼文與網友留言的文字或圖形,擷取至資料欄位,並可進一步統計「字詞」(words)、「成對字詞(字詞對)」(word pairs)在欄位中出現(共現)的次數,以及「字詞特徵值」(Salience)的計算。「字詞特徵值」是「詞頻-逆向文件頻率」(term frequency-inverse document frequency, TF-IDF)統計的改進形式,主要用來測量字或詞,在整個文本列當中的重要性,值的大小與字詞在文本列當中的重要性成正比。計算公式如下:

 

字詞特徵值=〔(出現次數)÷(文本列去除雜字後總字詞數)〕× Log10〔(文本列非空格格數)÷(字詞顯示格數)〕

 

此外,「相互訊息值」(Mutual Information)是文字探勘另一個重點,它在於衡量一個字詞對的互相依賴和關聯性;也就是說:某些字比較容易一起出現,當這些字一起出現時,可能帶有某種訊息。此處所說的關聯性,與統計上的相關係數不一樣,相互訊息值在於衡量x和y彼此【共享訊息的程度】;例如,若計算出x和 y相互獨立(值為0),則可推得x對y不提供任何訊息,反之亦然。NodeXL內建字詞對的相互訊息值計算公式如下:

 

相互訊息值 = Log10{ P(x,y) / 〔 P(x,*) × P(*,y) 〕 }

P(x,y)=某字詞對出現的機率=(某字詞對的次數)/(總字詞對次數)。

P(x,*)=共享某字詞對第一個字的字詞對次數。

P(*,y)=共享某字詞對第二個字的字詞對次數。

 

就方法論的層面,把文字量化,並非大數據領域所獨有,至少,廣為社會科學界應用的量化【內容分析法】(Content Analysis),在還沒有電腦輔助之前,就是以人工(評分員)的方式執行文本的統計(請參閱陳世榮【社會科學中的文字探勘應用】)。其他如【書目計量學】,透過共現分析(co-occurrence analysis),亦可了解文獻在共同引用、共同作者、作者共引、期刊共引等數值與關係(請參閱陳良駒等人【以特徵詞共現特性探討知識管理研究議題相關性】)。

但是,【文本多義性】告訴我們,意義的產生沒那麼簡單,可以是基於歷史、文化、語境的因素,也可能涉及字詞前後連結的關係,甚至相同的文本,每個人的解讀不見得都一樣。關於【意義】的探討,「質化」或「量化」方法各有擅場,流於誰比較好之爭,沒甚麼實質意義。眼下,大數據的宗旨與核心概念,在於【快思慢想】。當我們看報時,應該很少人從左上角第一個字開始讀到右下角最後一個字,很可能是目光把標題掃過一遍,有興趣的才會細看,相信大家滑手機看新聞也是這樣,如果有懶人包、一張圖讓你了解xxx,才會繼續點閱。很明顯地,網路時代的大量數位文本訊息,成就了大數據分析的先天條件;然而,在快速有效率的文字探勘過程中,除了【快思】:大量的蒐集文本、找出關鍵字詞;那麼,後續的【慢想】呢?

或許,荷蘭語言學家van Dijk的批判論述分析(Critical Discourse Analysis,請參閱倪炎元【初探論述分析與傳播研究】)當中「鉅觀結構分析」(Macro-structure Analysis)的概念,可為這【慢想】帶來些啟示。 van Dijk的文本分析策略,所要嘗試處理的問題,就是如何從文本當中,識讀隱藏在其中的意識形態(請參閱倪炎元【從語言中搜尋意識形態】)。van Dijk提出的「鉅觀結構法則」(Macro-rules)建構了一種文本階層關係,亦即:「鉅觀結構」(Macro-structure)是由一系列的「鉅觀命題」(Macro-propositions propositions)所組成;而「鉅觀命題」則由「命題」(Propositions)所組成,這些「命題」是由一大段落的語句所融匯而成的語義命題。van Dijk亦認為,這些命題也可能同時包含了文本所沒有明示出現的「隱喻世界」(請參閱van Dijk, T. A. (1988). News as discourse. Hillsdale, NJ: Erlbaum.)。van Dijk的「鉅觀結構法則」示意圖如下:

van dijk_Macro-rules

P:命題(Proposition),M:鉅觀命題(Marcoproposition)。

 

最後,除了遐想,我還幻想:我們能不能試著結合van Dijk的鉅觀結構法則,設計成一套輔助我們理解、詮釋的應用程式;至於歷史、文化、社會、語境等層面的問題,也要思考一下有無開發外掛的可能?

在〈文字探勘的快思慢想與遐想_Text Mining_Text Analytics_TF-IDF〉中有 0 則留言

發表迴響