第五章 系統與感測器實作
5.4. 語系感測器
國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
36
圖 17、原始資料表 DDL
5.4. 語系感測器
在感測器(Sensor)的設計上,可拆解為資料預處理、資料分析、資料視覺化三 個階段,當分析運算啟動時,程式主體結構上會依序進行這三個階段的運算。以 下將依此三階段來分別進行語系感測器的實作說明。
5.4.1 資料預處理
當一個觀測個案啟動分析運算時,會分別進行各個感測器的分析運算,而在一個 感測器中,第一個進入的階段就是「資料預處理」。以語系感測器為例,其設計 在感測器設定的參數中,須擇定檢測方法,檢測方法將決定分析的方法與資料預 處理中所需進行何種的前置處理,檢測方法可分為四類:
(1) 來源資料:該檢定方式為直接使用資料集中的使用語系(iso_language_code)
欄位資料,該欄位資料可由以官方 API 進行資料收集時提供或是由研究人員 自行處理過而匯入該欄位內取得,選擇該項目時,即不使用感測器內所設計 之檢定方法,而是將選定之資料集,裡面每筆資料中的使用語系欄位抓出後,
送至資料分析階段。
(2) 整段推文檢測:該檢定方式為將選定之資料集中的推文內容(data_text)欄位 資料,裡面的每一筆資料取出,僅將推文內容為 null 或是空字串進行註記後,
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
37
針對推文內容不多作處理,便將整段推文內容送至資料分析階段進行檢測分 析。
(3) 推文者留言檢測:該檢定方式為將選定之資料集中的推文內容欄位資料,裡 面的每一筆資料取出後,僅保留推文者實際留言的部分,將推文者以 RT@
(retweet)或是@(mention)留言的部分去除掉後,再將處理過後的推文內 容送至資料分析階段進行檢測分析。另外推文內容若為 null 或是空字串的話,
依然會對其先行註記,以節省運算資源。
(4) @RT/@mention 的原文檢測:該檢定方式為將選定之資料集中的推文內容欄 位資料,裡面的每一筆資料取出後,僅保留推文者使用 RT@(retweet)或是
@(mention)留言的部分,並去除掉推文者實際打字留言的部分後,再將處 理過後的推文內容送至資料分析階段進行檢測分析。另外推文內容若為 null 或是空字串的話,一樣對其先行註記,以節省運算資源。
5.4.2 資料分析
在資料分析階段,語系分析將先依據觀測個案所擇定的檢測方式來進行,如選擇 以「來源資料」方法進行,則直接以資料集中的使用語系欄位資料進行各語系類 別統計;而如果使用「整段推文檢測」、「推文者留言檢測」、「@RT/@mention 的 原文檢測」等方法,則以本研究開發之語系檢測方法進行。
在語系檢測方法中,其檢測方法使用 Unicode 轉碼查表方式來進行檢定。
Unicode 是電腦科學領域裡的一項業界標準,它對世界上大部分的文字系統進行 了整理、編碼,使得電腦可以用更為簡單的方式來呈現和處理文字。資料分析階 段則將資料預處理時所送進來的每一則推文內容,將該則推文裡面的每一個字元 符號轉碼為 Unicode 的字元編碼,再透過 Unicode 編碼表的各個語系區間來做為 對照,找出該字元編碼座落的區間位置,此語系區間即為該字元的實際語系。如 表 2 所示,以繁體中文(zh-TW)、簡體中文(zh)、日文(ja)來說,我們把一 個名詞拆解成每一個字元符號,如:馬英九拆解為馬、英、九,以及马英九拆解 為马、英、九。
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
38
表 2、Unicode 繁簡日字元符號與字元編碼範例 繁體中文(zh-TW) 簡體中文(zh) 日文(ja)
字元符號 字元編碼 字元符號 字元編碼 字元符號 字元編碼 馬 \u99ac 马 \u9a6c 馬 \u99ac 英 \u82f1 英 \u82f1 英 \u82f1 九 \u4e5d 九 \u4e5d 九 \u4e5d
當進行一個字元的判斷的時候,會先將字元符號轉置為 16 進位的 Unicode 編碼,如「馬」之 Unicode 的字元編碼為\u99ac,而「马」之 Unicode 的字元編 碼則為\u9a6c。先進行中文字碼判斷,如座落在中文字碼區間則為中文字,此時 再判斷簡體字,如果在簡體字區段內,則為簡體中文,如「马」(\u9a6c);如不 在簡體字區段內,則為繁體中文,如「馬」(\u99ac)。而如不為中文字,則再進 行日文字的判斷,在此範例中「馬」的日文字為「馬」,其編碼與繁體中文(\u99ac)
相同,故將視為繁體中文進行解讀。再來將每一個判斷結果儲存至語系矩陣中,
而後將語系矩陣轉換為各語系的機率值,語系矩陣資料設計結構以及其與觀測個 案、資料集的對應如圖 18。最後透過參數權重的分配調整來做整段文字的判定,
並儲存於使用語系(main_lang_detection)欄位,參數權重則是依據不同語系的特 性來進行設定。其中因在使用習慣上,簡體中文包含廣東話,若簡體中文與廣東 話其判定機率相同時,以廣東話作為主要判定語系。現語系分析支持了繁體中文
(zh-TW)、簡體中文(zh)、廣東話(gh)、英文(en)、日文(ja)、韓文(kr)、 符號(symbol)等語系。其中會將無法處理(如空字串、符號等)之檢定結果置 於符號(symbol),並將現無支援檢定之語系併入其他語系(others)中。
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
39
圖 18、語系分析資料設計結構 ER Model
5.4.3 資料視覺化
資料視覺化上,則依據分析需求進行語系分析結果顯示設計,在語系感測器中提 供了三種分析結果顯示與查詢的功能。而其顯示之語系結果,將根據語系感測器 參數設定中選定的檢測方式(testId)參數,在分析運算後所儲存之數據資料,以 及欲選擇語系(addLang)參數來進行運算與顯示。欲選擇語系參數以多選方式 進行,可選擇繁體中文(zh-TW)、簡體中文(zh)、廣東話(gh)、英文(en)、
日文(ja)、韓文(kr)、其他語系(other)等項目。
三類分析結果,其畫面如圖 19 所示,提供之功能分為別:(1) 各語系類型 分析:該功能顯示所有推文內容中,各語系所佔的數量以及百分比數,以表格與 圓餅圖方式呈現。(2) 時間序列分析:以時間週期變化作為其顯示目的,該功 能可透過調整時間參數以及欲查詢的語系項目來做互動式的顯示查詢。並且顯示 各語系在不同時間的推文量變化,以及各語系參與討論人數的變化。(3) 各語 系社群人數比例:在視覺化顯示上,以表格和分群圖形進行該功能之顯示;資料 面上,則以使用者作為出發點,統計每一使用者最多使用的語系,進行加總後,
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
40
統計出各語系的使用者人數。
圖 19、語系感測器互動式查詢與視覺化設計畫面
而在互動式查詢與視覺化設計的實作上,在圖形上使用了 Highcharts16與 D3.js17來進行實作,在互動式查詢上則大量地使用了 JQuery 與 JavaScript 來進行 前端互動控制與 AJAX 至服務器端進行即時運算。Highcharts 為一功能强大、美 觀、豐富的 JavaScript 圖表庫,以 JavaScript 實作,並可使用 JavaScript Array 物 件以及 JSON 資料格式進行資料介接,可使用其作為基本圖表顯示。進階圖表顯 示則以 d3.js 來進行實作,d3.js 是一個用於可操縱數據資料與圖形顯示的 JavaScript 函式庫,它允許綁定任意數據到文本對象模型(Document Object Model,
DOM),即 DOM 物件。然後將數據進行運算轉換後,應用至文檔(Document)
中,運用 CSS3、HTML 以及 SVG 來實現視覺化展示。d3.js 始於 2011 年,而起 源則來自於 2009 年史丹福大學研究計畫[26]。
語系感測器其檢測語系之分析方法為本研究自行提出的,並獨立實作之。在 準確率的檢定上,本研究以兩個資料集,共 400 則推文內容,由三位專家編碼員 進行人工檢定,並依據 Holsti(1969)提出的內容分析相互同意度及複合信度公 式,以及王石番(1991)傳播內容分析法中公式計算語系感測器分析方法之準確 率。檢定結果,其平均相互同意度,如表 3 所示,在整段推文檢測項目為 0.96,
16 “HIGHCHARTS” in http://www.highcharts.com/demo/
17 “D3.js” in http://d3js.org/
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
41
推文者留言檢測項目為 0.91,RT/@mention 的原文檢測項目為 0.95,整體平均則 為 0.94。複合信度方面,如表 4 所示,整段推文檢測項目達到 0.99,推文者留言 檢測為 0.97,RT/@mention 的原文檢測為 0.98,整體信度更達到了 0.98,顯示本 研究所提出之語系檢測分析方法確實相當準確。
表 3、語系感測器分析方法準確率之平均相互同意度 平均相互同意度(Average Intercoder Agreement)
整段推文檢測 0.96
推文者留言檢測 0.91
RT/@mention 的原文檢測 0.95
整體平均
0.94
表 4、語系感測器分析方法準確率之複合信度 複合信度(Composite Reliability)
整段推文檢測 0.99
推文者留言檢測 0.97
RT/@mention 的原文檢測 0.98
整體信度