• 沒有找到結果。

第六章 建立實體名詞辨識模型

6.2 特徵擷取

34

擁有了標記語料以及 CRF 建立模型的方法,便可以透過 CRF 去做機器學習產生辨識模 型來自動標記未標記的實驗語料,但為了讓辨識效果更好,利用有標記的資料去做 5-Fold Cross-Validation,後面用 CV 作為代稱,去評估表 6.1 的類別分類效果如何,來調整特 徵的參數以及篩選有用的特徵。

首先定義特徵集,如表 6.1 所示,包含了五種類的特徵,依序對各個特徵做說明:

Group 1:以當前位置文字為特徵。

原始句子:

後漢吳 周瑜[人名] 字公瑾 廬江[地名] 舒城[地名] 人 經過標記後:

後/O 漢/O 吳/O 周/NB 瑜/NE 字/O 公/O 瑾/O 廬/AB 江/AE 舒/AB 城/AE 人/O

轉成訓練資料:

後 O 漢 O 吳 O 周 NB 瑜 NE 字 O 公 O 瑾 O 盧 AB 江 AE

35

Group 2:取字的前後文為特徵,結構為[n 字詞]@[相對位置],例如周@-2,表示文 字周在當前位置往回看距離 2 的地方,若往前為開頭處,則特徵為 START@[相對]位 置,若往後為結尾處,則特徵為 END@[相對位置],而此特徵有兩種變量可以調整;

在此文字以下取 1 字詞(unigram),前後文距離為 3 當作例子。

原始句子:

後漢吳 周瑜[人名]字公瑾 廬江[地名] 舒城[地名] 人 經過標記後:

後/O 漢/O 吳/O 周/NB 瑜/NE 字/O 公/O 瑾/O 廬/AB 江/AE 舒/AB 城/AE 人 /O

轉成訓練資料:

START@-3 START@-2 START@-1 漢@1 吳@2 周@3 O START@-3 START@-2 後@-1 吳@1 周@2 瑜@3 O START@-3 後@-2 漢@-1 周@1 瑜@2 字@3 O 後@-3 漢@-2 吳@-1 瑜@1 字@2 公@3 NB 國@-3 吳@-2 周@-1 字@1 公@2 瑾@3 NE 吳@-3 周@-2 瑜@-1 公@1 瑾@2 廬@3 O 周@-3 瑜@-2 字@-1 瑾@1 廬@2 江@3 O 瑜@-3 字@-2 公@-1 廬@1 江@2 舒@3 O 字@-3 公@-2 瑾@-1 江@1 舒@2 城@3 AB 公@-3 瑾@-2 廬@-1 舒@1 城@2 人@3 AE 瑾@-3 廬@-2 江@-1 城@1 人@2 END@3 AB 江@-3 舒@-2 城@-1 人@1 END@2 END@3 AE

36

Group 3:代入入仕、職官、年號、日期的標記資訊,觀察當前位置前後 30 內字有無這 四種標記,例如特徵為 FE@5,表示句子往前看距離 5 字有入仕名、BNI@3,表示句子 往回看 3 字有年號名,若前方 30 字內皆無入仕名則 FE@-1 表示,對應代號如表 6.2。

表6.2 專有名詞相對位置代號

專有名詞 前方 後方

年號 FNI (Forward NIanhao) BNI (Backward NIanhao) 職官 FO (Forward Office) BO (Backward Office) 入仕 FE (Forward Entry) BE (Backward Entry) 日期 FD (Forward Date) BD (Backward Date)

原始句子

董應昌[人名] 涿州[地名] 人 歲貢[入仕] 縣丞[職官] 嘉靖[年號] 四十 一年[日期]

經過標記後:

董/NB 應/NI 昌/NE 涿/AB 州/AE 人/O 歲/O 貢/O 縣/O 丞/O 嘉/ O 靖/O 四/O 十/O 一/O 年/O

轉成訓練資料:

FNI@9 BNI@-1 FO@7 BO@-1 FE@5 BE@-1 FD@11 BD@-1 NB FNI@8 BNI@-1 FO@6 BO@-1 FE@4 BE@-1 FD@10 BD@-1 NI FNI@7 BNI@-1 FO@5 BO@-1 FE@3 BE@-1 FD@9 BD@-1 NE FNI@6 BNI@-1 FO@4 BO@-1 FE@2 BE@-1 FD@8 BD@-1 AB FNI@5 BNI@-1 FO@3 BO@-1 FE@1 BE@-1 FD@7 BD@-1 AE

37

Group 4:檢驗此字與人地名之間的關聯性,包含兩個部分的特徵,第一部分是計算當 前位置的文字用在人名、地名的機率,如公式(8)(9),C 代表當前文字,再按照機率分成 不同的階層,階層共五階,分別對應 5(0~20%)、4(20%~40%)、3(40%~60%)、2(60%~80%)、

1(80%-100%),越高階數字越小,NameProb 代號為 PN,AddressProb 代號為 PA,例如 江在語料中被用於名字機率是 35%,則為 PN4,用於地名機率為 55%,則為 PA3。

NameProb(C) =C 用於名字次數

C 出現次數 (8)

AddressProb(C) =C 用於地名次數

C 出現次數 (9)

第二部分觀察當前文字是否為中國常見姓氏百家姓中的姓氏,其中包含單姓及複姓,

若為單姓則特徵為 fn1,若為複姓,看當前文字是複姓中第幾個字,若第二個字則為 fn2,

例如歐陽中的陽,便會標記成 fn2。

原始句子

歐陽堃[人名] 江西[地名] 安福[地名] 舉人[入仕] 嘉慶[年號] 九年[日 期] 任

經過標記後:

歐/NB 陽/NI 堃/NE 江/AB 西/AE 安/AB 福/AE 舉/O 人/O 嘉/O 慶/O 九/O 年/O 任/O

轉成訓練資料:

PN1 PA5 fn1 NB PN5 PA2 fn2 NI PN1 PA5 NE

38

Group5:運用 Sequential Learning 的特性,鎖定已知詞彙類別來提供更好的辨識效能,

將專有名詞作為標記類別,在產生訓練語料或實驗語料時,給予特殊的特徵,使得模型 再做辨識時,可以正確的對應到其特定的類別,如此在辨識時,其專有名詞部分的標記 可以固定,如此在人名、地名辨識時,便不會誤判其中的字元為人名、地名的一部分,

減少辨識錯誤的可能,讓模型能更有效的分類其他字元增加辨識效果。此時標記類別變 為表 6.3,專有名詞給予特定特徵,使它不會被誤判成其他類別。

表6.3 加入專有名詞標記類別

類別名稱 類別

其他(Outside) O

人名的開頭(Name Beginning) NB 人名的中段(Name Intermediate) NI

人名的結尾(Name End) NE

地名的開頭(Address Beginning) AB 地名的中段(Address Intermediate) AI

地名的結尾(Address End) AE

年號詞(Reign Period) Nianhao

官職詞(Office) Office

入仕詞(Entry) Entry

日期詞(Date) Date

39

原始句子

董應昌[人名] 涿州[地名] 人 歲貢[入仕] 縣丞[職官] 嘉靖[年號] 四十 一年[日期]

經過標記後:

董/NB 應/NI 昌/NE 涿/AB 州/AE 人/O 歲/Entry 貢/Entry 縣/Office 丞/Office 嘉 /Nianhao 靖/Nianhao 四/Date 十/Date 一/Date 年/Date

轉成訓練資料:(取 Group 1 為特徵) 董 NB

應 NI 昌 NE 涿 AB 州 AE 人 O

<ENTRY> Entry

<ENTRY> Entry

<OFFICE> Office

<OFFICE> Office

<NIANHAO> Nianhao

<NIANHAO> Nianhao

<DATE> Date

<DATE> Date

<DATE> Date

<DATE> Date

40

介紹完所有的特徵,接著要測詴各特徵以及不同特徵組合的特徵集建模效果的比較,

透過 CV 去計算各個模型的精確率(Precision)、召回率(Recall)、F-measure,作為評估標 準,公式定義如(10)-(12)所示,去分析並決定最佳的特徵集。

首先對 Group 2 的特徵做一個變量變化評估,Group 2 在前面提到,是一個可以調整變 量的特徵,其中 n 字詞的 n 可為 1、2、3,甚至更多,而前後文語境寬度也可以調整,

所以在此設計了兩組實驗分別觀察兩種可變量應該如何設定。

本研究先把前後文語境寬度固定為 5,調整 n 字詞為 1 字詞(unigram)、2 字詞(bigram)、

3 字詞(trigram)來訓練模型,其結果如表 6.4,可以看出單字詞的效果會是最好的,原因 出自當 n 變大時,由於詞的數量增加,導致特徵的數量大大增加,使得產生資料稀疏[13]

的狀況,反而使效能降低,而同時也針對前後文語境寬度去評估,設定語境寬度為 3、5、

7,去評估效能差異,結果如表 6.5,結果上看起來差異性不大,所以還是以一開始設計 的,取前後 5 字作為前後文語境的寬度。

接著測詴各種特徵組合,比較不同特徵集得到的效果,接著選擇效果最佳的作為建 模的特徵集。在表 6.6 嘗詴了各種的組合,其結果以 Group 1+2+4+5 的效果最佳。故以 此特徵集來產生訓練語料,之後根據不同的標記方式作為標記,在下一章節比較不同標 記方式的效果,以及自動化標記的應用。

Precision =預測正確為特定標記之數量

預測為特定標記之數量 (10)

Recall =預測正確為特定標記之數量

答案中所有特定標記之數量 (11)

F − measure =2 × Precision × Recall

Precision + Recall (12)

41

表6.4 n 字詞效果評估

unigram bigram trigram

Prec. Rec. F1 Prec. Rec. F1 Prec. Rec. F1 O 0.94 0.97 0.95 0.89 0.97 0.93 0.82 0.97 0.89 NB 0.94 0.85 0.89 0.94 0.73 0.82 0.73 0.53 0.62 NI 0.91 0.86 0.88 0.88 0.76 0.82 0.67 0.56 0.61 NE 0.92 0.82 0.87 0.91 0.71 0.79 0.69 0.50 0.58 AB 0.86 0.85 0.86 0.85 0.78 0.82 0.65 0.57 0.61 AI 0.84 0.71 0.77 0.86 0.52 0.65 0.62 0.22 0.31 AE 0.86 0.85 0.86 0.86 0.79 0.82 0.65 0.58 0.61

表6.5 前後文語境寬度效果評估

Width = 3 Width = 5 Width = 7 Prec. Rec. F1 Prec. Rec. F1 Prec. Rec. F1 O 0.94 0.97 0.95 0.94 0.97 0.95 0.94 0.97 0.95 NB 0.94 0.85 0.89 0.94 0.85 0.89 0.94 0.85 0.90 NI 0.91 0.86 0.88 0.91 0.86 0.88 0.91 0.87 0.89 NE 0.91 0.82 0.87 0.92 0.82 0.87 0.92 0.83 0.87 AB 0.87 0.85 0.86 0.86 0.85 0.86 0.87 0.85 0.86 AI 0.84 0.71 0.77 0.84 0.71 0.77 0.84 0.72 0.77 AE 0.87 0.85 0.86 0.86 0.85 0.86 0.87 0.85 0.86

42

Group 1 Group 1+2 Group 1+3 Prec. Rec. F1 Prec. Rec. F1 Prec. Rec. F1 O 0.90 0.96 0.93 0.94 0.97 0.95 0.82 0.96 0.88 NB 0.91 0.75 0.82 0.94 0.85 0.89 0.87 0.51 0.65 NI 0.85 0.78 0.82 0.91 0.86 0.89 0.74 0.55 0.63 NE 0.87 0.72 0.79 0.92 0.82 0.87 0.82 0.49 0.61 AB 0.83 0.78 0.80 0.86 0.85 0.86 0.78 0.59 0.67 AI 0.73 0.48 0.57 0.84 0.71 0.77 0.68 0.02 0.03 AE 0.83 0.79 0.81 0.86 0.85 0.86 0.79 0.60 0.68

Group 1+4 Group 1+2+4 Group 1+2+4+5 Prec. Rec. F1 Prec. Rec. F1 Prec. Rec. F1 O 0.94 0.95 0.95 0.96 0.97 0.96 0.97 0.97 0.97 NB 0.89 0.84 0.86 0.94 0.91 0.92 0.94 0.93 0.94 NI 0.83 0.84 0.84 0.92 0.91 0.91 0.93 0.93 0.93 NE 0.85 0.80 0.83 0.92 0.89 0.90 0.93 0.91 0.92 AB 0.84 0.84 0.84 0.88 0.89 0.88 0.89 0.91 0.90 AI 0.81 0.66 0.73 0.86 0.80 0.83 0.89 0.83 0.86 AE 0.84 0.84 0.84 0.88 0.89 0.88 0.88 0.91 0.90

表6.6 不同特徵集組合效果

43