• 沒有找到結果。

第四章 系統概念與設計

4.8. 參數預設樣板

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

30

4.8. 參數預設樣板

在觀測個案與感測器皆參數化之後,在研究的過程中,相同的個案由不同的研究 人員來進行,就會有不同的分析方法,而即便是相同的分析方法,其在研究過程 的參數設定上,也會因觀測個案的特性或是研究人員的差異而有所不同。在本研 究中,希望能夠保留這些參數設定,來快速複製前案的專家經驗,並且能夠重複 的來使用,以降低重啟分析時的門檻以及加速分析的過程。在設計上面,如前面 圖 12 所示,觀測個案 p 所帶有的參數,將可透過建立的方式來成為一個觀測個 案的參數預設樣板,此觀測個案參數預設樣板包括了觀測個案 p 中的:資料來源 𝑑𝑠、資料集𝑑、分析開始時間𝑇𝑆、分析結束時間𝑇𝑒、感測器群{𝑠1, 𝑠2, ⋯ , 𝑠𝑛−1, 𝑠𝑛}的 設定參數,以及個別感測器 s 下面的設定參數。此外,也可針對觀測個案 p 下面 的個別感測器 s 來建立為感測器的參數預設樣板,如前面圖 13 所示,此參數預 設樣板將保留感測器所有的參數設定。

在社群感測器平台中,可對參數預設樣板進行發布權限的設定,包含了觀測 個案的參數預設樣板以及感測器的參數預設樣板,新建立之參數預設樣板,其發 布狀態為私人,代表僅有自己可使用,而當發布狀態變更為公開後,則可以提供 其他研究人員進行經驗參數的快速套入使用。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

31

第五章

系統與感測器實作

在本章節中,承接上一章節,本研究將細述觀測個案在介面上的實作、資料集的 設計、如何設計和實作感測器,包含語系感測器與文本感測器,以及參數預設樣 板之實作模式。

5.1. 系統技術架構

在本研究中的感測器平台實作的主體架構為 Java,Java 是一種「物件導向程式語 言」,開發者可以在設計軟體的時候以物件的形式,使用自訂的型別和關聯操作,

透過此設計可讓大型軟體工程的計劃和設計變得更容易管理,能增強工程的健康 度,也減少失敗工程的數量。另一個特點為跨平台性,也就是說使用 Java 語言 編寫的程式可以在編譯後不用經過任何更改,就能在任何硬體裝置條件下執行。

這個特性經常被稱為「一次編譯,到處執行」。另外也支援自動垃圾收集功能,

對象的建立和放置都是在記憶體堆疊上面進行的,當一個物件沒有任何參照的時 候,Java 的自動垃圾收集機制就發揮作用,自動刪除這個物件所佔用的空間,釋 放記憶體以避免記憶體洩漏。

除此之外,亦採用了軟體工程中的 MVC 架構模式(Model-View-Controller), 來實現整體結構設計,強化各元件之設計結構與元件間溝通的方式。MVC 模式 是軟體工程中的一種軟體架構模式,把軟體系統分為三個基本部分:模型(Model)

層、檢視(View)層和控制器(Controller)層。其目的是實作一種動態的程式設 計,使後續對程式的修改和擴充功能簡化,並且使程式某一部分的重複利用成為 可能。除此之外,此模式透過對複雜度的簡化,使程式結構更加直覺。軟體系統 透過對自身基本部分分離的同時也賦予了各個基本部分應有的功能。模型層主要 用於封裝與應用程式的業務邏輯相關的資料以及對資料的處理方法;檢視層能夠 實作資料有目的的顯示,在檢視中一般沒有程式上的邏輯,為了實作檢視上的所 需要的程式邏輯,檢視則會需要存取它監視的資料模型;控制器層用於控制應用 程式的流程。它處理事件並作出響應,包括了使用者的行為和資料模型上的改變。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

32

本研究中使用 Java MVC 中業界主流之 SSH,即 Spring、Struts2、Hibernate 的 Framework 組合而成之 MVC 結構,以及研究者本身多年來在 SSH 的經驗中所進 行的改良、構合強化的設計與適性化的整合來實現。MVC 結構的好壞將影響一 套系統在開發階段時的穩定度以及後續維護難易度或是擴展時系統延展的彈性 等等,在業界之專案通常不會是一人之專案,而是由數人、數十人甚至數百人,

不同技術專長的專業人員來進行,故 MVC 結構設計在專案流程發展中系統設計 階段與實作階段是相當被重視的。

在底層資料的儲存上,使用了 MySQL 資料庫以及檔案系統的方式儲存。

MySQL 在過去是一開放原始碼的關聯式資料庫管理系統,雖 2013 年甲骨文公司 修改 MySQL 授權協定,移除了 GPL 許可,但 MySQL 以效能高、成本低、可靠 性好著稱,依然廣泛的在學術界以及中小型網站使用,也不乏大型網站與應用來 使用,如:Google、Facebook 等等。而在前端的部分,則以 Web 的形式,以及 Struts2 的結構進行開發,並且大量地使用 JavaScript、JQuery 等前端語言進行互 動設計,以及使用 AJAX 技術來實現動態串連使用者端與伺服器端的溝通。最後 在介面的呈現上,則採用了 Bootstrap、JQuery UI 與研究者自身從業多年來的設 計版型與 CSS,來進行版型設計的呈現。

5.2. 觀測個案介面設計

在觀測個案介面的設計上,為了使觀測個案管理,包含了建立與調整,在操作與 使用上更為簡便和直覺化,如圖 14 所示,我們在介面上實現了感測器池的長相,

在感測器池中,即圖中所示的 Social Sensors 區塊,將顯示與擺放可使用之感測 器,而透過 JQuery 的 Drag 以及 Drop 事件驅動設計來操作被設計為 HTML Dom 物件的感測器,進行拖拉或按鈕選取的方式將感測器加入至觀測個案中或從觀測 個案中將感測器移除。數據資料類型可選擇社群媒體環境中的資料來源與其下已 定義的環境數據,在介面上設計上,選取不同之數據資料類型將以 JavaScript 事 件偵測,並以 AJAX 方式詢問服務器端取得對應之數據內容來源,並於前端動態 改變數據內容來源之可選資料集。而數據內容來源之可選資料集除對應至數據資 料類型外,可選擇上傳新建資料集,也可以選擇既有之資料集,選取既有之資料 集時,也將以 JavaScript 事件偵測,並以 AJAX 方式詢問伺服器端取得該資料集 的可分析時間起迄,並於前端動態帶入分析起迄的時間。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

33

在套用參數預設樣板方面,可以將先前專家所設計好的參數預設樣板進行參 數的快速套用,觀測個案可套用自己設定好或是已公開的參數預設樣板,參數預 設樣板以 JSON 方式儲存與顯示,選取參數預設樣板時,將以 JavaScript 事件偵 測改變與選取項,並以 AJAX 方式詢問服務器端以取得對應之參數設定,於前端 動態套入所有已設定之參數,以此設計達到即時且快速地重用個案經驗。如圖 15 所示,在個別感測器之設定上,如同觀測個案的參數預設樣板套用實作方式,也 可以透過感測器的參數預設樣板快速套用個別感測器參數。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

34

圖 14、觀測個案設計界面

圖 15、感測器參數預設樣板套用

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

35

5.3. 資料集

本研究以關聯式資料結構來設計資料來源、資料集池與資料集的關係,如所圖 16 示,資料來源表(ss_data_Source)中記述了資料來源主鍵值與資料來源類型說明。

而在資料集池表(ss_data_set_pool)中,則儲存了各資料集設定,但不實際儲存 資料內容,資料集池表設定包含了資料集主鍵值、資料來源名稱、資料開始時間、

資料結束時間,以及對應資料來源主鍵值。資料來源與資料集為一對多的關係。

而原始資料表(ss_row_data)儲存了資料集中真實收集的資料,並以資料集主鍵 值來對應資料集池表。

圖 16、資料集設計 ER Model

在原始資料表中,本研究使用了 Twitter 資料作為社群感測器的資料分析範例,

其原始資料表(ss_row_data)儲存欄位項目,如圖 17 所示,DDL 的設計依序為:

資料流水號(id)、資料集主鍵值(data_set_id)、資料來源主鍵值(data_source_id)、 推文編號(tweet_id)、推文內容(data_text)、來源使用者編號(to_user_id)、推 文使用者編號(from_user_id)、推文使用者帳號(from_user)、推文使用者名稱

(from_user_name)、推文來源(source)、照片連結網址(profile_image_url)、使 用語系(iso_language_code)、地理位置緯度(geo_coordinates_Lat)、地理位置經 度(geo_coordinates_Lng)、台灣時間(TWTime)欄位,以上資料收集項目為本 研究經歸納整理後,找出 Twitter 社群媒體環境中可收集之環境數據,感測器將 使用資料集中所儲存的原始資料欄項內容來進行後續的分析處理。

‧ 國

立 政 治 大 學

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

針對推文內容不多作處理,便將整段推文內容送至資料分析階段進行檢測分 析。

針對推文內容不多作處理,便將整段推文內容送至資料分析階段進行檢測分 析。