第四章 系統實作
4.1. 各資料來源前處理
國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
33
第四章
系統實作
在本章中說明系統實作時的細部內容共分為四個部分,第一部分為個資料來源的 資料前處理實作方法,第二部分說明資料內容處理的經過和方法,第三部分為專 家分類的介面設計,第四部分為機器學習使用的工具,第五部分為分類器的驗證 方法。
4.1. 各資料來源前處理
由於研究使用的資料,來自於不同檔案格式和網路平台,最後儲存於資料庫中做 為分析用。在開始分析前,我們先進行資料的資料前處理,將不同的檔案格式、
編碼內容整合為一,並移除不相關的干擾因素。資料內容的處理流程如下圖 5 所示:
4.1.1. Twitter 資料轉換
Twitter API 的回傳資料型態在 2010 年 12 月開始,已經不提供 XML 格式的內容,
編碼轉換 移除干擾值 中文斷詞處理 專家內容分類
資料前處理
圖 5、資料處理流程
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
34
只提供 JSON(Javascript Object Notation)格式回傳資料,JSON 雖然是 Javascript 這個語言中的一的子集,但是是一個獨立於語言之外輕量級的資料交換文字格式,
而且易於讓人閱讀和撰寫。因獨立於語言之外,可以使用任何的程式語言來解讀 其內容。
JSON 是一個簡單的結構,主要有兩個結構所構成:
物件(Object):每一個物件由一對大括號所構成({ }),一個 Object 包含 一個以上非排序成對的名稱/值(name/value),每個成對之間以「,」分隔。每個 成對裡的名稱和值之間使用「:」隔開。其結構如下圖 7 所示:
圖 7、JSON Object 結構圖
其中值(Value)的形態可以是 string、number、object、array、boolean、null,
如下圖 8 所示:
We will end support for XML on all Streaming APIs on Dec 6th, 2010, after encouraging developers to use JSON-based output formats for some time now. This deprecation does not apply to the REST or Search APIs, but all clients requesting XML from stream.twitter.com, regardless of role and method
(sample, filter, follow, etc) will be affected.
圖 6、Twitter’s Taylor Singletary 宣布結束支援 XML
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
35
圖 8、JSON value 型態
Twitter 回傳的 JSON 資料內容包含了 20 項內容物件,其結構如下圖 9 所示:
圖 9、Twitter Response JSON format data
其中,大部份的資料都不是這一次研究主題裡會用到的核心內容,因此在這 裡我們只擷取圖 9 中箭頭所指部分,如下述所列六點:
‧
5. retweet_count:推文的數量 6. source:資料來自什麼程式(CEntOS Linux 6+ Apache + MySQL + PHP 5.2)架構平台上進行開發,主要以 PHP 語言來實作轉換時的過濾與內容處理,轉換處理後的資料直接存放至 MySQL 資料庫系統中,根據 Twitter Developer 官方網站的物件欄位型態說明,
MySQL 的資料表 Schema 設計如下表 1 內容:
表 1、MySQL Table Schema
Filed name Type Collation Attributes
TweetId
bigint UNSIGNEDTweetContent
Text utf8_general_ciCreatedTime
datetimeSourceFrom
varchar(50) utf8_general_ciReTweetCount
smallint UNSIGNED‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
37
TwitterUserId
bigint UNSIGNED4.1.2. 文字辨識與檔案格式轉換
在資料集中的 Ricks 內容為災難發生時,透過使用者由螢幕擷取所保留的畫面資 料,我們先以文字辨識(Optical Character Recognition, OCR)將圖檔中的文字辨 識為文字檔,透過人力做文字的校稿確認和修正,再以程式整理為可以匯入資料 庫的內容格式。
屏東及台南兩個縣市的消防隊 119 報案電話記錄,是使用 Microsoft Excel 檔案格式儲存其內容,我們先依檔案中的欄位格式和內容特性,制定出資料庫中 的資料表結構(Table Schema),在完成轉換文字編碼後,即以程式匯入資料庫 中儲存。
4.1.3. 編碼轉換
文字編碼(Text Encoding)是一個複雜的議題,由於各國依據自己的語言特性,
訂立了不同的文字編碼系統,即使我們在網頁中顯示中文文字,其背後可能為大 五碼編碼(Big5)、萬國碼(Unicode)、簡字碼(GB2312)甚至有可能是日文編 碼(Shift-JIS)。為了減少分析發生問題,將收集的內容都轉換為相同的文字編碼 再進一步處理。另外也為了避免轉換過程中,因轉換的字集大小不同的問題而遺 失部分文字,我們選擇目前網頁上常見的 UTF-8(8-bit Unicode Transformation Format)編碼,UTF-8 可以用來表示 Unicode 標準中的任何字元,其編碼的第一 個位元組仍與 ASCII 相容。目前 UTF-8 已逐漸成為電子郵件、網頁及其他儲存 或傳送文字的應用中,優先採用的編碼。
編碼轉換實作在 Linux 環境中進行,主要以 Linux 中的 iconv 指令轉換編碼,
最後導出成為指定編碼的文字檔案。於終端機環境中輸入下面指令:
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
38
$ iconv -f old-encoding -t utf8 file.txt -o newfile_utf8.txt
-f:from,來源編碼,原本的編碼格式
-t:to,轉換後的新編碼格式,這裡我們使用 utf8
-o:如果需要保留原檔案,使用 -o 新檔名,可以建立新編碼檔案。
4.1.4. 移除干擾雜訊
為了豐富文字中的情緒和趣味化,許多使用者會在文字段落中加入顏文字(表情 符號),表情符號原先只是一種網上次文化,隨著網際網路的普及和行動電話簡 訊普及,漸漸受到接受與使用。本研究所使用的資料內容部分來自於網路,內容 包含如Σ( ° △ °|||)︴、( ̄. ̄)+、(= ̄ω ̄=)等等的顏文字,為了避免這些符號對 分析的干擾,在文字前處理時我們將此類符號先由內容中移除。
4.2. 中文斷詞處理
常見的中文斷詞工具有中央研究院 CKIP 中文斷詞與剖析系統、Yahoo 的斷章取 義、MMSeg4j 等。其中 CKIP 系統使用的語料庫主要為新聞資料內容,對於網路 上的文章,大都是未經過撰文訓練的內容,斷詞效果有限。Yahoo 的斷章取義雖 然使用搜尋引擎詞庫,使用時需要經過網路送至 Yahoo 主機,每日使用上限為 2000 筆。考慮未來若發展為即時監測,需注意斷詞速度、使用的數量和具有擴 充性,因此在本研究中選擇了 mmseg4j 做為我們的斷詞工具。
中文斷詞工具 mmseg4j 為 Google Code 上的一個 Open Source 專案,目前版 本已經發展到 mmeeg4j-1.8.5。mmseg4j 是採用蔡志浩老師於 2000 年發表的一個 中文斷詞演算法 MMSeg[24],這個工具使用了兩套演算法和四個模糊解析規則,
在該文章末驗證了這個工具可以達到 98.41%的中文斷詞準確率。
Mmseg4j 這個工具是由中國大陸的 Bory.Chan 以 Java 語言實做出來的函式庫 套件,主要是用來替簡體中文斷詞,不過因為它的詞庫強制使用了 UTF-8 編碼
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
39
且可以自行建立詞庫,所以我們在替換詞庫後,就可以使用 mmseg4j 來替正體 中 文 進 行 斷 詞 處 理 。 mmseg4j 預 設 使 用 的 詞 庫 來 源 為 大 陸 搜 狗 搜 尋 引 擎
(http://www.sogou.com)的詞庫,合併 Ruby 的中文斷詞套件詞庫而成。雖然我 們可以將詞庫檔由套件中取出,重新將簡體中文轉為繁體中文後儲存成新的詞庫 檔,但是,原來的詞庫主體為大陸地區的搜尋引擎,詞庫內容用語比較貼近大陸 地區的使用方式,並不適合用來做為台灣地區的中文文本斷詞使用。因此,我們 以國內教育部於 1997 年發行的「國語辭典簡編本編輯資料字詞頻統計報告」[25]
網路版中的〝字頻總表〞與〝詞頻總表〞,重新建立 mmseg4j 中的單一字對應頻 率詞庫檔(chars.dic)和核心詞庫檔(words.dic)。
中文斷詞的原則需要依賴詞庫,斷詞系統除了基本詞庫之外,使用者必須附 加專屬領域詞庫。在災難發生的情境下,網路使用者在網路上發布的訊息文本,
可能會異於平常使用的詞彙用語,也會包含大量的地點資訊內容。截至目前國內 尚無針對災難發展相關領域的詞庫資料可直接運用,因此我們進行中文斷詞時需 自行建立災難相關的詞庫。
4.2.1.
建立災難詞庫此次研究的內容是針對災難發生狀況下的文本內容分析,災難詞庫建立之初將以 選取災難新聞內容關鍵字,進行莫拉克八八風災收集的資料內容斷詞。在過程中,
透過不斷的隨機抽取斷詞後內容,挑出有意義的詞彙加入詞庫再斷詞,直至隨機 抽取的內容詞彙穩定。為了能更容易的挑選這些有意義的詞彙,在設計上,我們 撰寫詞彙收集的網路應用程式,以簡單的使用者介面設計,讓專家更容易的瀏覽 斷詞結果與挑選儲存,如下圖 10。
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
40
圖 10、挑選災難詞彙應用程式介面
4.2.2.
地理位置詞庫災難事件發生時,災難相關的傳播訊息的最重要因素為事件的地理位置資訊,因 此在斷詞過程中,地理位置資訊是需要重視和關注的內容。本研究中,斷詞使用 的地理位置詞庫為自行建置,內容主體來自於我國「中華郵政有限公司」維護的 郵遞區號檔[26],抽取其中的縣市鄉鎮里鄰及街道等資訊,重新依字詞筆劃排序 而成。
4.3. 移除停用字
中文檢索方面目前仍缺少標準的停用字詞表,在本研究中所使用的停用字集合是 參考「中央研究院平衡語料庫詞集及詞頻統計」(Word List with Accumulated
Word Frequency in Sinica Corpus 3.0)資料。此統計是根據帶有標記的中央研
‧
使用者介面(User Interface)是使用者與系統間進行互動和資訊交換的一個媒介,
可以說是硬體與使用者間的一個軟體設計思維,好的使用者介面設計,目的是在 讓使用者能夠方便、有效率地去操作硬體來達成雙向的互動,所以這個領域中關 注的是創新性(Innovation)、易用性(Usability)和互動性(Interaction)。
反觀傳統在文本分類設計,大都使用的工具程式為 Microsoft Office 系列中 的 Excel 應用程式。運用 Excel 的優點是此軟體教育單位容易取得,使用者也已