• 沒有找到結果。

前置處理

在文檔中 部落格文章寫作輔助系統 (頁 24-27)

第三章、 系統設計

3.2 前置處理

為達到提供使用者常用字詞與提示句子的目的,我們分別收集 Libtabe[18]

與新浪部落[19]中的資訊作為建構資料庫的基本數據。Libtabe,為 Linux Xcin 軟體輸入法底下的中文處理函式庫,主要提供軟體開發者處理中文字、詞、句等 資料處理功能的整合性開發函式庫。目前的常用詞彙共有約 13 萬筆,其檔案中 的每一行為一筆紀錄資料,格式如下:

17

(Pharse) (Frequency) (Notional Phonetic Alphabet) Pharse:中文詞彙。

Frequency:經統計文章後所得到的詞頻數目。

Notional Phonetic Alphabet:詞彙的注音符號組成。

下列為兩筆範例資料:

地底 100 ㄉㄧ 4 ㄉㄧ 3 天氣 1700 ㄊㄧㄢ ㄑㄧ 4

上述例子中,第一筆資料的中文詞彙為「地底」,詞彙的頻率為 100。詞頻 大小與詞彙統計上的機率成正比關係;例如,上述第二筆資料「天氣」於一般性 的中文文章中,出現的頻率約是第一筆資料的 17 倍。於本系統中,將利用該詞 庫所提供的資訊,查詢常用辭彙;我們將根據每筆中文詞彙與詞頻,在資料庫中 建立一筆對應資料,詞彙的注音符號序列則捨棄不用。

當使用者寫下文字時,系統將自動以此文字為詞的起始字查詢資料庫,取得 相關聯的候選詞,並按照詞頻的高低作排序,意思即為擁有越高詞頻的中文詞彙 將會被排序至越前方,提供使用者快速選取。在選取候選詞完畢後,系統會自動 更新該詞於資料庫中的詞頻,因此,經過一段時間的操作後,越常被使用者利用 的詞彙越容易被排在越前面,亦達到選詞個人化的效果。

在使用者寫完整句後,系統必須提供不同類別的撰寫方向,讓使用者有更多 彈性的參考選擇。然而,為降低花費於文章歸類處理的時間,我們利用支援向量 機 (Support Vector Machine) 作為分類的演算法;透過事先訓練好類別預測 的模型,提供系統即時分類的需求。

18

圖3-2:Training SVM Model。

上圖 3-2 為訓練模型的流程,首先,我們透過程式至新浪部落蒐集文章,全

CategorySet = { Sport, Mind, Travel, Movie, Food } Output: Set of FeatureList for Support Vector Machine Training

Extract-FeatureList(Percent, CategorySet)

1. foreach Categoryi ∈ CategorySet do

2. Count the frequency of each Wordi in Categoryi 3. Sort word list by frequency

4. Extract the top Percent frequency words to KeywordListi 5. end

6. FeatureList = Union set of each KeywordList Blog Articles

from Sina

Features Selection

Support Vector Machine Training SVM

Predict Model

Pre-Process

19

上述參數中,Percent 為限制變數,表示對每類別取前幾百分比高的詞頻當 作該類別的代表詞彙串列,根據需求可作數值的微調,在此我們取 1.5%為系統 計算時使用的參數。當取得特徵集合後,將每篇文章以特章向量表示之,並且根 據類別給予對應的標籤,舉例說明:

FeatureList = � 天氣、美景、感動、旅遊、攝影 � Article = � 今天天氣真好,非常適合全家出門旅遊。 � Vector = �1天氣 0美景 0感動 1旅遊 0攝影

支援向量機的資料格式:

Labeli 1:1天氣 2:0美景 3:0感動 4:1旅遊 5:0攝影

Label = � 1運動類, 2心情類, 3旅遊類, 4電影類, 5美食類

在文檔中 部落格文章寫作輔助系統 (頁 24-27)

相關文件