應用序列標記技術於地方志的實體名詞辨識 - 政大學術集成

全文

(1)國立政治大學資訊科學系 Department of Computer Science National Chengchi University 碩士論文 Master’s Thesis. 應用序列標記技術於地方志的實體名詞辨識 Named Entity Recognition in Difangzhi Using Sequential Labeling Techniques. 研 究 生:黃致凱 指導教授:劉昭麟. 中華民國一百零五年六月 June2016.

(2)

(3) 應用序列標記技術於地方志的實體名詞辨識 Named Entity Recognition in Difangzhi Using Sequential Labeling Techniques. 研 究 生:黃致凱. Student:Chih-Kai Huang. 指導教授:劉昭麟. Advisor:Chao-Lin Liu. 國立政治大學 資訊科學系 碩士論文. A Thesis submitted to Department of Computer Science National Chengchi University in partial fulfillment of the requirements for the degree of Master in Computer Science. 中華民國一百零五年六月 June2016.

(4)

(5)

(6)

(7)

(8)

(9) 致謝 在碩士的這段期間,學到了很多在過去中不了解的事情,也了解到如何去做研究, 首先要感謝我的指導教授. 劉昭麟 老師,在碩士期間提供讓我去研討會學習、報告,. 了解到目前最前端的技術、研究的方法、該如何報告等知識,給予我許多學習的機會。 在研究的路程中,老師也給予我相當大的自由度,讓我自行嘗詴許多方法及作法,並與 我討論這些做法的可行性與改進方向,讓我在研究上可以多方嘗詴還能始終抓住正確的 方向。同時在學業及處事上,都給予相當多的指導,讓我從老師身上學到不少的東西。 在論文指導方面,感謝 項潔. 老師、. 洪振州. 老師、. 鄭文惠. 老師在口詴時. 的指導。感謝項老師指正本論文內容上的一些漏洞,以及給我更好的觀點去詮釋學生自 己的研究。也感謝洪老師提出了許多寶貴意見,點出我論文上描述不足之處,讓我能夠 改進描述,使論文內容更為完整,還有鄭老師以人文學者的觀點,提出過去尚未處理的 有趣研究議題,讓本研究在未來可以有更多元的研究方向及發展。 在 MIG 實驗室中,我也接受到各位學長學弟的幫助,感謝建良、柏辰、孫暐學長 在學習及研究上提供我許多寶貴意見,也感謝同屆的許多同學,書佑、聖傑、植坤、建 雄、裕閔、言翰等,還有許多同學不管在生活或學習上,都對我有相當大的幫助。也感 謝諸位學弟,張逸、育增、子皓在論文實驗上,幫助我完成許多需要人工處理的工作。 最後,感謝家人可以協助讓我能順利在碩士班畢業,接下來會更努力讓自己能在未 來的路程中表現更好,不要辜負家裡人的期待。. 資科碩三 致凱 MIG 實驗室. i.

(10) 摘要 地方志是中國過去由官方編輯的地方記事的資料,其內容包含廣泛,包含 人物傳記、地理環境、任官紀錄等等,從中包含了很多現在還沒被整理出 的人、事、物,由於地方志文本使用的詞彙、語法架構與現今的中文有相 當大的差異,且文本中大多數沒有標點符號,所以面對的是沒有經過斷詞、 斷句、斷段落的序列文字資料,所以並不適用現有的自然語言處理工具來 做處理分析。因此,本研究針對地方志類型的資料去建立對應的實體名詞 辨識模型,以序列標記方式標記出人名與地名的資訊,以及加入官職、入 仕、年號以及日期等標記資訊,透過標記資料去從中找出更多中國古代人 物的資料。 本研究透過監督式學習的方式去做機器學習來產生序列標記模型,首先 從過去整理好的地方志中的人物資訊,抽取人、地名的資訊,並配合已知 的名詞表來標記過去曾處理過的地方志語料,即使透過人工整理,過去所 整理的資料還是有不正確的地方,這裡先經由前處理對資料都進一步的整 理,然後標記時會產生歧義性的問題,我們提出了三種方法來進行標記, 來解決歧義問題,並透過條件隨機場作為序列標記模型,同時配合名詞表、 規則去做預先標記。透過實驗,去對未處理過的地方志語料做實體名詞辨. ii.

(11) 識,辨識人名準確率皆可達到 80%以上,另外再地名辨識部分可達到 86%, 能有如此好的辨識效果主因在於整理好的 地方志語料與實驗語料之間敘述 及記錄方式相似度是相當高的。運用標記的結果,詴著用簡易的方法來做 連結人名與地名資訊的實驗,找出語料中的人地名關聯資料,取樣作人工 驗證,取樣結果說明我們的方法能有效的連結特定語法下的人名與地名; 為了在未來的研究中,能夠做更深入的研究,嘗詴從文本中切割出人物條 目,運用地方志已知的特性,配合有限狀態機模型來判斷是否為條目開頭, 雖能找出部分開頭,但會有許多遺漏狀況。 在未來的研究中,詴著加入更多類型的標記,並做更完善的標記設計, 讓辨識效果能有更多的提升,同時為了抓出更精確的人物資訊,除了嘗詴 段落切割、斷句之外,將詴著做地方志的語法分析,確實的抓出語法結構 來做人物與其他實體名詞的連結,自動化去整理出更完善的人物資訊。. iii.

(12) Abstract. Difangzhi is the local gazetteers compiled by local government of China. Its content is plenty and extensive. It’s including many undetected information, like biographical information, geographical information, and officer record information and so on. Because of the difference between Difangzhi corpus and modern Chinese language, we should not use current natural language processing tools directly. In order to extract biographical information, we construct our model to recognize the named entity and use the noun list to assist our annotation method in Difangzhi corpus. In this study, we use supervised learning to construct our model. At first, we need to generate our training data. According to the personal information list with manual verification and noun lists, we have reliable information to annotate words in Difangzhi corpus. However, they still have some noise in those lists. As a result, we must do the preprocessing to those lists for cleaning. After, the ambiguity problem will happen when we trying to annotate our corpus. Here we provide three methods to annotate our corpus with disambiguation. Using the annotated corpus to generate training data and built the condition random fields models. In our experiment, we use our models generated by three different annotate methods to predict the character label in testing Difangzhi corpus. According to the labeled result, we extract the person name and address name to evaluate. The result shows the precision of person name recognition is over 80%, and precision of address name recognition is about 86%. Because of the training. iv.

(13) corpus and test corpus is quite similar, the performances of our model is pretty well. Therefore, we use labeled result to find correlation of person name and address name. Using a simple way to connect person name and address name and sampling the result to evaluate. The sample result shows we could connect person name and address name correctly in some specific grammars. In order to analyze more deeply, we attempt to split clauses in Difangzhi corpus. Use finite state machine model to recognize the beginning of clauses. Although the result shows we could find some beginning of clauses, but our method still lose many beginning of clauses. In the future work, we attempt to add more information to annotate Difangzhi corpus and modify our disambiguated methods to make the recognition result better. In order to get more information about the person in the corpus, we will try to split paragraphs or sentences more precisely. Besides, we also try to analyze grammar in the corpus. Finding useful pattern to connect person name and other entities, like address name, officer name and so on. Generating the information about people appears in the corpus automatically.. v.

(14) 目錄. 第一章 緒論 ............................................................................................................................ 1 1.1. 研究背景與動機 ........................................................................................................ 1. 1.2. 研究方法 .................................................................................................................... 2. 1.3 1.4. 主要貢獻 .................................................................................................................... 3 論文架構 .................................................................................................................... 3. 第二章 文獻探討 .................................................................................................................... 4 2.1 2.2. 數位人文之相關研究 ................................................................................................ 4 實體名詞辨識之相關研究 ........................................................................................ 5. 第三章 地方志文本 ................................................................................................................ 7 3.1 3.2 3.3. 地方志書影 ................................................................................................................ 7 地方志數位化 ............................................................................................................ 8 地方志史料數量與問題定義 .................................................................................... 9. 第四章 系統架構 .................................................................................................................. 11 4.1 4.2. 系統流程 .................................................................................................................. 11 實體名詞辨識模型訓練工具 .................................................................................. 13. 第五章 產生標記語料 .......................................................................................................... 14 5.1 IOB format 結合 BIES 標記類別 .......................................................................... 14 5.2 資料前處理 .............................................................................................................. 16 5.2.1 刪除地方志未用標記 .......................................................................................... 16 5.2.2 卷分割地方志語料 .............................................................................................. 16 5.2.3 異體字補充 .......................................................................................................... 16 5.2.4 原始名詞表內容比對及分析 .............................................................................. 18 5.2.5 標記規則 .............................................................................................................. 19 5.3 解歧標記方法 .......................................................................................................... 21 5.3.1 順序標記法 .......................................................................................................... 21 5.3.2 列舉式標記法 ...................................................................................................... 23 5.3.3 列舉式標記法加入朝代資訊 .............................................................................. 27 vi.

(15) 第六章 建立實體名詞辨識模型 .......................................................................................... 31 6.1. 隨機條件場 .............................................................................................................. 31. 6.2. 特徵擷取 .................................................................................................................. 33. 第七章 實驗結果與分析 ...................................................................................................... 43 7.1. 評估實體名詞辨識模型實驗 .................................................................................. 43. 7.1.1 人名擷取實驗 ...................................................................................................... 43 7.1.2 地名擷取實驗 ...................................................................................................... 47 7.2 辨識結果應用之實驗 .............................................................................................. 50 7.2.1 人名與地名連結 .................................................................................................. 50 7.2.2 人物條目切割 ...................................................................................................... 55 第八章 結論與未來展望 ...................................................................................................... 59 7.1 7.2. 結論 .......................................................................................................................... 59 未來展望 .................................................................................................................. 60. 參考文獻 .................................................................................................................................. 62 附錄 I. 論文口詴相關討論................................................................................................ 65. vii.

(16) 圖目錄. 圖 3.1. 地方志書影 ................................................................................................................ 7. 圖 3.2. 地方志電子檔 ............................................................................................................ 8. 圖 3.3. 地方志書影與地方志電子檔對應 ............................................................................ 8. 圖 4.1. 系統流程圖(a) .......................................................................................................... 12. 圖 4.2. 系統流程圖(b) ......................................................................................................... 13. 圖 4.3. 系統流程圖(c) .......................................................................................................... 13. 圖 5.1. 地方志卷開頭結構 .................................................................................................. 16. 圖 5.2. 語境分析範例 .......................................................................................................... 19. 圖 5.3. 日期標記方法 .......................................................................................................... 20. 圖 5.4. 順序標記法標記流程 .............................................................................................. 22. 圖 5.5. 列舉式標記法流程 .................................................................................................. 23. 圖 5.6. 擷取待標記句子範例 .............................................................................................. 24. 圖 5.7. 產生所有標記組合步驟 .......................................................................................... 25. 圖 5.8. 產生所有標記組合範例 .......................................................................................... 25. 圖 5.9. 標記組合篩選方法步驟 .......................................................................................... 26. 圖 5.10 標記組合篩選範例 .................................................................................................. 26 圖 5.11. 加入朝代資訊標記法流程 ...................................................................................... 27. 圖 5.12 朝代資訊標記更正範例 .......................................................................................... 28 圖 5.13 一致化初步標記語料中的年號資訊 ...................................................................... 29 圖 5.14 年號朝代一致化範例 .............................................................................................. 29 圖 5.15. 官職朝代一致化範例 .............................................................................................. 30. 圖 5.16 補充標記流程 .......................................................................................................... 30 圖 7.1. 福山縣志原始片段內容 .......................................................................................... 46. 圖 7.2. 實體名詞辨識後結果 .............................................................................................. 47 viii.

(17) 圖 7.3. 再續華州志原始片段內容 ...................................................................................... 47. 圖 7.4. 實體名詞辨識後結果 .............................................................................................. 47. 圖 7.5. 瀏陽縣志擷取未知地名範例 .................................................................................. 49. 圖 7.6. 義寧州志擷取未知地名範例 .................................................................................. 49. 圖 7.7. 饒州府志擷取未知地名範例 .................................................................................. 49. 圖 7.8. 標記結果範例 .......................................................................................................... 50. 圖 7.9. 轉換物件序列格式 .................................................................................................. 51. 圖 7.10 人地名關聯推論步驟 .............................................................................................. 51 圖 7.11. 人名地名關聯擷取數量 .......................................................................................... 52. 圖 7.12 寧夏府志人名對應地名錯誤範例 .......................................................................... 54 圖 7.13 長沙府志人名對應地名錯誤範例 .......................................................................... 54 圖 7.14 亳州志人名對應地名錯誤範例 .............................................................................. 54 圖 7.15 狀態轉換圖 .............................................................................................................. 56. ix.

(18) 表目錄. 表 3.1. 人物資訊表部分內容 .............................................................................................. 10. 表 3.2. 地方志史料資訊 ...................................................................................................... 10. 表 5.1. 標記類別 .................................................................................................................. 15. 表 5.2. 異體字部分範例 ...................................................................................................... 17. 表 5.3. 名詞表重複詞彙統計 .............................................................................................. 17. 表 6.1. 特徵集 ...................................................................................................................... 33. 表 6.2. 專有名詞相對位置代號 .......................................................................................... 36. 表 6.3. 加入專有名詞標記類別 .......................................................................................... 38. 表 6.4. n 字詞效果評估 ....................................................................................................... 41. 表 6.5. 前後文語境寬度效果評估 ...................................................................................... 41. 表 6.6. 不同特徵集組合效果 .............................................................................................. 42. 表 7.1. 人名判斷評估標準 .................................................................................................. 44. 表 7.2. NER 模型擷取人名數量 ......................................................................................... 45. 表 7.3. 人名抽樣檢驗結果 .................................................................................................. 46. 表 7.4. 地名判斷評估標準 .................................................................................................. 48. 表 7.5. 地名擷取結果 .......................................................................................................... 48. 表 7.6. 人地名關聯結果 ...................................................................................................... 53. 表 7.7. 人物條目切割結果 .................................................................................................. 57. 表 7.8. 基於 P1、P2 皆正確情況下檢驗連續人物條目結果 ............................................ 58. x.

(19) 第一章 1.1. 緒論. 研究背景與動機. 現今資訊科技迅速進步以及快速普及,隨著電腦硬體設備效能大幅的提升,連同數位化 科技的發展,資訊技術逐漸被廣泛的應用到各種不同的領域之中;數位人文尌是其中一 部分;數位人文是近年來數位科技應用的重要趨勢,所謂的數位人文指得尌是透過資訊 科學的技術並結合大量的人文數位資料,對於這些資料作各種要素的分析,如時間、空 間、詞頻統計、共現詞彙等,讓研究者能進一步從事人文研究,彌補並獲得在數位化之 前無法用人工逐一比對所觀察到的現象或新趨勢。數位人文的發展並不只侷限於某個國 家或地區,目前全球不同國家對於數位人文皆有其重視的研究面向。 在人文研究方面由於大量的資料都是屬於文字的資料,是屬於非結構化的資料,無 法直接拿來做分析,因此要透過量化統計的方法,抑或是機器學習的方法來去找出所想 要的關鍵詞出來,再透過這些關鍵詞,便可以幫助各領域的學者做更進一步的分析;例 如對於人文學者而言,可以透過標記人名,來做人與人之間的社群網路分析、或是人物 在不同時期思想上的變化的時序分析等等。 中國歷代人物傳記資料庫(China Biographical Database, CBDB)[1]是一個線上開放的 關聯型資料庫,其主要目標在於有系統地收入中國歷史上所有重要的傳記資料,並無保 留地公開給大眾來進行學術的研究,像是提供用於人物傳記的參考資料,或者統計、空 間分析等用途。截至 2013 年,資料庫內總共收錄約三十餘萬人的傳記資料,主要包含 中國隋唐至民國初期(七世紀至十九世紀)的人物,至今還在不斷增加更多的資訊。 在過去的研究中,人文學者需要運用的大量的人力資源去做資料的標記,再利用資 料庫的方式去進一步的研究,可是透過人力標記這方法除了人力成本高,時間代價也是 1.

(20) 很高的,所以本研究希望透過資訊科學的技術去做第一步的檢驗及判斷,將需要人工閱 讀的部分降到最低,詴著自動化去找出地方志中人物資訊,使學者的研究更加有效率。. 1.2. 研究方法. 本論文詴圖從透過地方志(Difangzhi)語料中補充更多人物資訊於中國歷代人物傳記資料 庫, 地方志 是屬於中國地區古時候官方在各地方上撰寫的地方傳記、記事等。過去 Pang[19]透過學者們花費大量時間透過用人工辨識並輔以正規表示式去擷取含有資訊的 區段,再透過人工驗證後建立的人物資訊表。本研究以人物資料表的資訊與 CBDB 中專 有名詞表做為研究中去產生對應語料的標記,之後透過統計分析的方式挑出重要的特徵, 再透過機器學習的方式產生一個辨識模型來自動化標記出研究者想要的名詞資訊以及 透過標記結果去做人物條目擷取以及人物關係分析等後續的應用。 首先本研究先以哈佛團隊已建立人物資訊表[19]的地方志作為語料,將資訊表中的 人名、地名等資訊,以及 CBDB[1]所提供的專有名詞表,如年號、官職等,透過詞表去 對應到原本的地方志文本中的詞彙,當標記時有歧義狀況,也尌是句子可以有多種標記 組合時,例如江東鳴是一個人名,江東是一個地名,此時江東鳴的江東可以是人名的一 部分也可能是地名,對於這類型的問題,透過統計分析方法以及產生所有的標記組合、 依靠歧義詞周圍的語境以制定標記順序、加入朝代資訊等方法來提升訓練語料標記的品 質。之後將每一個字的位置對應一筆資料,根據周圍的語境、字本身用於各種實體名詞 的可能性以及與特殊專有名詞的間距等資訊做為其特徵。得到訓練語料後,本研究利用 Mallet[18]自然語言工具包提供的條件隨機場(Condition Random Fields, CRF)[20]方法來 訓練實體名詞辨識(Named Entity Recognition, NER)模型。為了提升模型效能,使用交叉 驗證來挑選適當的特徵產生模型,透過召回率、精確率、F-measure 三個評估指標進行 模型效能評估,找出最適合的模型去進行更進一步的應用。 透過最佳的模型預測未標記的語料來自動化取得標記資料,比較我們所提出的三種. 2.

(21) 方法和根據人物資訊表標記產生的模型,一起做比較,利用系統抽樣[11]的方法,再透 過人工驗證,來評估實體名詞辨識模型的好壞。之後再利用標記資訊去做更深入的應用, 例如人、地名的關聯連結以及人物條目切割,利用各類型名詞標記之間的距離、周遭語 境去產生相應的規則去產生人、地名連結的資訊以及條目區分的結果。. 1.3. 主要貢獻. 本研究主要提供了一個可以對地方志文獻中部分實體名詞的自動化辨識方法,並透過實 驗來證明其辨識的效果,目的在於給未來相關研究者有一個有效的實體名詞標記工具, 能讓研究者在研究初期能快速的標記出有用的資訊,以便進行更深入的研究。同時透過 對未整理的地方志去做實體名詞辨識,透過產生的標記語料進行相關的應用及分析,本 研究詴著從標記語料中,連結出現的實體名詞,目前方法上只能有效的連結人名與地名; 同時本研究也詴著從地方志語料中分割出人物條目,由於條目內的資訊通常在敘述條目 主角相關的事物,因此透過條目切割能更精確的去連結出現人物的資訊。 根據本研究的目的,是從地方志語料中,擷取出現人物的相關資訊並做有效的連結, 根據目前提供的實體名詞辨識方法和標記結果應用方法,已能夠有效的連結人名與地名, 在條目切割部分,雖無法正確切割出所有的條目,但對特定形式的人物條目已經可以做 有效的分割。. 1.4. 論文架構. 在第一章介紹研究背景與動機、研究方法。第二章回顧文獻探討數位人文相關研究,與 實體名詞辨識之相關研究。第三章介紹何謂地方志,說明本研究所使用的地方志內容數 量與地方志研究上的困難。第四章說明系統的架構與介紹訓練模型的工具。第五章會說 明如何去產生標記語料。第六章介紹隨機條件場以及本研究使用的特徵集。第七章為實 驗部分,先對人、地名做辨識效果的驗證,再將其做延伸應用,例如將辨識出來的人、 地名去做連結;以及人物條目切割的工作。第八章為結論以及未來展望。 3.

(22) 第二章. 文獻探討. 本章分為以下兩小節。在 2.1 節回顧數位人文之相關研究;2.2 節介紹中文實體名詞辨識 之相關研究。. 數位人文之相關研究. 2.1. 所謂的數位人文,指的是需要借助數位科技才能進行的人文研究。也尌是說它所想嘗詴 的研究是過去非數位時代時無法觀察的現象所產生的議題;所以它所討論的是很大量的 人文資料。從大量的資料中,研究者可能可以得到過去無法想像的研究方向。 Wang 和 Inaba[21]對 2005 至 2008 年與數位人文研究相關的期刊論文及研討會論文 分別做了不同年代的關鍵詞的共現分析,從結果顯示出數位人文(Digital Humanities)的 命名是從過去的人文電算(Humanities Computing)轉變而來,且發現「數位人文」這個詞 彙的使用頻率逐年持續增加。陳叔倬[8]利用清朝刑科登載命案的文本,其中包含死亡者 的與凶手基本資訊,也是亞洲區最早擁有的身高紀錄,透過這些資料研究中國一般民眾 的身高分布、各省區域差異分,進而了解當時中國民眾身高與當時經濟環境有顯著的關 聯性。劉吉軒[10]則透過對海外台灣人民所發表的刊物,透過人工選定關鍵詞以及斷詞 器篩選關鍵詞,對當時人工關鍵詞使用變化作比較分析以及各種刊物的關鍵詞的群聚關 係。 從以上研究可以了解到數位人文擁有各式各樣的研究方向,但是研究中通常都需要 有關鍵詞的協助,而上述研究中關鍵詞都需要閱讀以及足夠的背景知識去人工選定,所 以也有人提出關於文本內容分析相關的一些研究,對於尋找關鍵詞有相當的幫助。金觀 濤[4]在對華人觀念起源研究中透過不同詞彙共同出現的現象做定量分析,而難處在於如 何選擇待觀測的關鍵詞彙,此處他們運用了齊夫定律(Zipf’s Law)中的偏離率去分析文本 4.

(23) 內容中的詞彙來挑選可能是關鍵詞的候選詞彙,當作關鍵詞叢來去建立詞彙共現分析方 法。 而在地方志的研究中,人名、地名便是極具研究價值的關鍵詞彙,所以本研究希望 透過實體名詞辨識方法去自動化擷取候選人名、地名的工作,以方便學者更深入的深 究。. 2.2. 實體名詞辨識之相關研究. 實體名詞(Named Entity)這個詞,是從 Sixth Message Understanding Conference (MUC-6) 所提出[15],指的是文本中具有特定意義的實體,主要包括人名、地名、機構名、專有 名詞等。實體名詞辨識(Name Entity Recognition, NER)是資訊擷取、句法分析、機器翻 譯等自然語言處理相關的重要基本工具。目前有許多中文名稱辨識的研究,而以序列標 記(Sequential Labeling)結合機率統計模型為主要的辨識方法 在中文的實體名詞辨識,相對英文更加的複雜,由於中文的詞是由單字或多字的組 合而成,但字本身通常並非只有單一定義,所以在中文的實體名詞辨識中,分成兩個工 作,一個部分是將字組成詞,再對詞彙去做實體名詞的分類。Zhang[24]對人名、地名、 組織名辨識運用中文詞語粗分模型[23]去做斷詞,產生 top N 個結果;再對於訓練資料 中的字去產生角色模型(Role Model),透過每一個字在不同實體名詞下作為不同的角色 的這種特徵來幫助辨識產生候選詞彙,例如林可以是一個人名的字首,也可能是一個地 名的結尾;再透過條件機率去計算詞彙可能性判斷是否為實體名詞。而 Wu[22]將人名 更細分成中文、日本、俄國、歐洲人名以及人名縮寫,地名細分成一般人名與縮寫,提 出基於詞模型(Word Model)與詞性模型(POS Model)的特徵組合產生混合式模型,同時加 入經驗法則(Heuristic)得到的知識,來因應各種類型的名詞辨識,尤其特別處理了外國 人名以及人名縮寫這部分,透過人民日報的資料來訓練模型及測詴說明混合式模型可以 突破個別模型的缺點。. 5.

(24) 不過上述處理的語料屬於現代白話文,擁有較大量的語料可以去產生效果較佳的斷 詞、詞性標記工具,實際應用在中國古代文學資料上時,並無法得到與處理白話文時同 等的效果,目前並沒有可普遍應用於地方志文獻的斷詞和詞性標記方法的工具。因此, 過去研究中也提出了可以使用於中國古代文獻資料的辨識方法,張尚斌[7]提出詞夾子演 算法做專有名詞的辨識,詞夾子是使用“前文”、“詞首”、“詞尾”、“後文”的組合。主要 概念是利用人在文章寫作上的習慣與字詞之間的耦合關係,來找出專有名詞。透過先給 予樣本詞,然後找出和樣本詞的前後文,也尌是出現在樣本詞前後幾個字,詞首尾則表 示樣本詞的字首以及字尾,並利用這些作為詞夾子再找出與樣本詞相似的候選詞,過迭 代方式不斷產生更多的詞夾子與候選詞;之後透過杜協昌[3]建立了使用者介面,讓人文 學者可以在研究上廣泛地應用詞夾子方法。彭維謙[9]提出一個自動擷取中文人名的演算 法,先透過標點符合切割句子;下一步透過 PMI(Point-wise Mutual Information)公式去計 算字與字之間的相依關係,來決定兩字可否接續在一起成為詞彙,再透過正規化進一步 去區分常用詞與專有名詞;而後透過 PMI分數將字合併成詞,再挑選出候選的人名詞彙; 最後透過候選詞前、後文用詞統計以及人名本身用字統計去產生一個分數來驗證是否為 人名。 在過去古文內實體名詞辨識的研究中,由於語料的缺乏,以及並無適當的已標記資 料,所以難以採用機器學習的方式,而本研究透過 CBDB 內透過人工整理的人物資訊和 地名、官名等專有名詞表以及對應的地方志語料,去詴著標記語料產生訓練資料,嘗詴 使用機器學習方式來做地方志文獻相關的實體名詞辨識。. 6.

(25) 地方志文本. 第三章. 本章說介紹研究中所使用的地方志文本,首先說明文本的紙本內容,與轉換過後的數位 化資料,以及語料的相關資訊和研究所面臨的問題。. 3.1. 地方志書影. 圖3.1. 地方志書影. 地方志是一種有特定的記載格式,由官方編輯全面記載某一時期及某一地域的自然、社 會、政治、經濟、文化等方面情況或特定事項的書籍文獻。內容包含記載地方的地理環 境、官員任職紀錄、記事、人物傳記等等。由於地方志的記載包含甚廣,所以也可被視 為地方上的百科全書[2]。地方志的紀載紀錄直到現今,目前所發現的部分以明清時期的 文獻存量最為豐富。地方志書本內容如圖 3.1 中所示。. 7.

(26) 圖3.2. 3.2. 地方志電子檔. 地方志數位化. 過去透過大量人工的方式將地方志文本內容輸入製作成電子檔案,如圖 3.2 所示,才能 利用電腦來輔助去做分析及處理,在數位化的動作中,記錄了文本對應的地區,並記錄 其書目及頁數,以方便以後的查找,此外文本內容留有空白處會依當時設計的數位化方 式插入對應數量的○。雖然這些○含有某些資訊,但由於我們並不能了解○數量完整的定 義,且○實際會發生在詞彙中間,導致人名被切割開來,在研究處理上會產生分析或標 記上的錯誤,所以在本研究中,會先將○消除,來解決這個問題。也尌是說本研究所面 對的資料尌如同圖 3.3 中的右圖,是一個無符號、句子、段落的無結構化文字資料。. 圖3.3. 地方志書影與地方志電子檔對應 8.

(27) 3.3. 地方志史料數量與問題定義. 本論文使用了 226 本 地方志 的部分內容,過去哈佛大學研究團隊透過人工觀察配合 RegEx[19]以動態調整正規表示式去擷取地方志內容中的人物資訊,針對地方志中屬於 職官志形式的內容,去對 143 本地方志中的職官志內容做擷取驗證建立了人物資訊表, 如表 3.1。而本研究也透過了那 143 本書的職官志片段內容做額外的還原標記,作為我 們的訓練語料標記;另外 83 本書則是未經分析過的地方志語料,其內容包含職官志、 秩官傳、官師傳等等形式。在此本研究將語料分成兩個部分,首先是過去整理好的地方 志中職官志語料,也尌是屬於有人物資訊的部分;第二個部分是將過去未分析過的地方 志語料,也尌是無人物資訊的部分,如表 3.2 所示,有人物資訊的部分作為訓練語料以 及無人物資訊部分作為實驗語料。 本論文將人物資訊表的資訊還原標記回史料中,同時使用 CBDB 所提供的名詞表, 包含地名表、年號表、官職表、入仕表來增加更多額外的標記,也加入依照格式固定的 日期標籤,再透過機器學習的方式產生一個針對地方志類型語料能自動化的史料標記人 名、地名等資訊的模型;表 3.1 為人物資訊表中的部分內容,從表中可以得知,人物資 訊表中的資訊並不完整,即使透過人工的檢驗,也無法保證其絕對的正確,所以本研究 選擇利用人物資訊表去標記資料的時候,同時也透過 CBDB 所整理出的歷代的地名表、 職官名表、入仕方法表、年號表等專有名詞來協助標記,使標記結果能更精準及多元, 其中年號表從漢代開始、地名表由唐代開始、而職官表由唐代開始。 因此,從前面所敘述的部分,實際上面臨的問題可以分成三個部分:(1)地方志語料 及名詞表的前處理,前面提到地方志語料中,擁有許多含有特殊意義的標記符號,但在 本研究中並無使用到,所以在目前的處理上,會先將這些未用標記刪除;另外人物資訊 表中的資訊即使透過人工檢驗,大部分的資訊是正確的,但還是無法保證其絕對正確, 所以本研究中,配合與 CBDB 的專有名詞表作比對檢驗,詴著篩選掉其中的錯誤。(2). 9.

(28) 標記訓練語料,本研究中,希望能從語料中標記出盡量多的資訊,所以要如何運人名資 訊表與 CBDB 名詞表來做到正確有效的標記是關鍵的問題,本研究提出了三種方法去處 理標記問題。(3)實驗語料的辨識及評估,透過標記完訓練語料後,透過機器學習產生了 辨識模型後,需要經由額外的測詴資料去做檢驗,此處稱作實驗語料,本研究會透過對 實驗語料做初步標記,再透過辨識模型產生標記語料,分別去評估人名以及地名辨識的 效果。 表3.1 朝代 入仕地點 明. 人物資訊表部分內容. 入仕方法. 籍貫. 官職. 人名. 任官地點. 任職時間. 進士. 南昌. 知縣. 周季邦. 松陽縣. 宏治. 明. 高安. 舉人. 知縣. 文似韓. 松陽縣. 萬歷. 清. 安徽休甯. 監生. 典史. 余啟鼇. 景甯縣. 乾隆. 清. 嘉慶. 拔貢. 海鹽. 教諭. 朱葵之. 景甯縣. 道光. 潮州. 城守. 林鳳翔. 表3.2. 總字數. 地方志史料資訊 有人物資訊. 無人物資訊. 1507529. 900771. 10.

(29) 第四章. 系統架構. 本章節會先在 4.1 節介紹本研究中完整流程的系統架構,在 4.2 節會說明研究中所使用 的模型訓練方法以及所使用的工具介紹。. 4.1. 系統流程. 本論文研究的整體架構如圖 4.1、圖 4.2、圖 4.3 所示,其流程各個步驟會在後續的章節 做更詳細的說明,在此先做初步的介紹。 首先介紹(a)部分,對地方志資料透過 CBDB 提供的名詞表以及人物資料表上的資 料做初步的分析,可以發現標記中含有錯誤資料、異體字和多義詞的狀況,因此本研究 去分析名詞表中詞彙有重疊的部分是在那些情況並對錯誤的部分做刪除,補充異體字資 訊以及根據觀察發現的常見的語法組合轉換成對應的規則,來處理多義詞問題,之後便 可以產生屬於處理過後的人、地、官職、入仕、年號表以及包含常見語法規則的標記模 組;再來便透過消除歧義的程序後,得到相對應的標記語料,之後在做特徵擷取時,利 用 5-Fold Cross-Validation[14]去比較不同特徵下訓練出的模型效果,挑選適當的特徵, 將標記語料轉換成訓練資料的格式,最後透過機器學習方法訓練出 NER 模型。 在(b)部分是對於無人物資料表等相關資訊的地方志語料,也尌是未經過整理的語料, 首先對其做初步標記,並做與(a)部分相應的特徵擷取,同時轉換資料時,將初步標記時 的標籤丟棄,只留下特徵轉換成測詴資料的格式,讓 NER 模型去進行標記辨識,在將 預測結果結合原本語料得到標記語料。 而(c)部分說明評估的方式,本論文分別對標記語料中被標記為人名部分擷取出來, 同時根據名詞對應的條件隨機場給予的權重分數做排序,並透過系統取樣來做人工檢驗, 來計算人名期望精準度;擷取地名部分則運用地名表比對的方式做驗證。運用標記語料, 11.

(30) 透過人地名關聯方法與人物條目切割方法去產生結果再以系統抽樣後人工檢驗其效 果。. 圖4.1. 系統流程圖(a). 12.

(31) 4.2. 圖4.2. 系統流程圖(b). 圖4.3. 系統流程圖(c). 實體名詞辨識模型訓練工具. 本研究使用 Mallet[18]作為機器學習的工具,根據其提供的方法,產生針對地方志資料 的條件隨機場模型來做實體名詞辨識。 Mallet 是馬薩諸塞大學所開發的自然語言處理工具,是以 Java 為基礎的工具,主要 是為了針對文字處理,其中包含了做分類、分群、主題建模、資料擷取以及其他機器學 習方法;本研究使用了 Sequential Learning 中常見的隨機條件場作為機器學習的方法。. 13.

(32) 第五章. 產生標記語料. 本章分成三個小節,目的在說明本研究中如何去生成訓練語料,以及產生的初步標記的 測詴語料,本研究透過先行將特定類型的專有名詞先行標記,讓模型在做人名及地名辨 識時,杜絕專有名詞被誤判的機會,同時也利用專有名詞的資訊去提供模型更多的資訊 去做辨識。5.1 節會說明如何處理同時實體名詞的斷詞及辨識而設計的標記類別、5.2 節 會說明如何對地方志文本以及名詞表作資料的前處理、5.3 節會介紹產生標記語料時如 何對有人物資訊的地方志語料做標記。. 5.1. IOB format 結合 BIES 標記類別. 在本研究中,需要同時去做實體名詞的斷詞及辨識,利用機器學習來處理斷詞、名詞辨 識問題時,名詞辨識作法通常是將問題轉換成詞分類的問題,而斷詞最常使用的方法尌 是將問題轉換成字元分類的問題,每一個字各別對應到某一類別,透過字元類別來做分 類,這些字元的類別由其出現的特定位置以及相關資訊去判定。 在實體名詞辨識領域,通常都利用 IOB format 去做標記,概念是將字分為 I(Inside)、 O(Outside)、B(Beginning),三種類別,I 表示實體名詞非開頭的部分、O 表示非實體名 詞、B 表示實體名詞的開頭,如以下例子: 原始句子: Barack Hussein Obama is the 44th and current President of the United States. 經過標記後: Barack/NAME-B Hussein/NAME-I Obama/NAME-I is/O the/O 44th/O and/O current/O President/O of/O the/O United/LOCATION-B States/LOCATION-I ./O 由於這個設計是針對英文,英文的字其實對應到中文尌變成詞,所以在中文語料中, 14.

(33) 需要再經過斷詞,這裡加入了 BIES 分類的概念,一個字的字元尌可以是詞的開始 (Beginning)、中間(Intermediate)、結尾(End)、單字詞(Single)四種可能。透過將兩者結合 便可以在標記中文資料時同時做到斷詞以及實體名詞辨識的效果。以下為例句: 原始句子: 後漢吳周瑜字公瑾廬江舒城人 經過標記後: 後/O 漢/O 吳 /O 周/NAME-B 瑜 /NAME-E 字/O 公/O 瑾/O 盧/LOCATION-B 江 /LOCATION-E 舒/LOCATION-B 城/LOCATION-E 人/O 本研究使用標記: 後/O 漢/O 吳/O 周/NB 瑜/NE 字/O 公/O 瑾/O 盧/AB 江/AE 舒/AB 城/AE 人/O 因此本研究針對人名、地名的分類標記對語料中出現的每個字元,給予一個標記類 別,標記類別同時包含斷詞及辨識的資訊。如表 5.1 所示,透過這樣的標記類別,在分 類完後可以輕易的把人名、地名的詞彙斷開來,同時保留它是屬於人名或地名的資訊。 表5.1. 標記類別. 類別名稱. 類別. 其他(Outside). O. 人名的開頭(Name Beginning). NB. 人名的中段(Name Intermediate). NI. 人名的結尾(Name End). NE. 地名的開頭(Address Beginning). AB. 地名的中段(Address Intermediate). AI. 地名的結尾(Address End). AE. 15.

(34) 5.2. 資料前處理. 語料本身會因為數位化當時的數位化規則設計、輸入者的誤判等狀況,會與研究者所期 望處理的格式有差異,導致數位化內容與研究需要不一致,會使得最後的效果降低,以 下針對發現的狀況各別去處理,將資料調整成適合本研究的形式。本節介紹在標記前對 資料所做的處理工作,分成五個小節:(1)刪除地方志雜訊。(2)卷分割地方志語料 。(3) 異體字補充。(4)原始名詞表內容比對及分析。(5)標記規則。. 5.2.1. 刪除地方志未用標記. 首先,根據圖 3.2 所示,語料中有許多○的標記,代表文本中文字與文字間空格的距離, 但我們無法辨別○標記數量的實際意義。為了去解決此問題,一種是將空白全部刪除, 會導致缺少了一些斷句的依據;另一種是保留一個空白,保留一些斷句的資訊,但會失 去空格距離的意義,同時造成部分斷詞錯誤,本研究中採取全部刪除的方式;另外還有 幾種標籤,分別是頁碼的標籤、圖檔的標籤、[T4]標籤,這些標籤可能是學者當初數位 化時所設計的特殊標籤,而本論文中並不會使用到,所以會將全部的特殊標籤刪除。. [地名]+志卷(之)+[數字] 圖5.1. 5.2.2. ()內詞彙表示可有可無。. 地方志卷開頭結構. 卷分割地方志語料. 一本地方志之中,其中可能包含了數卷的資料,而開頭架構皆如圖 5.1 所示,例如歸善 縣志卷之九、淅川廳志卷三等。透過正規擷取出卷開頭,如此便能從語料以本為單位轉 換成以卷為單位。. 5.2.3. 異體字補充. 異體字,又稱為又體、重文,意思尌是不同的字卻擁有相同的發音及意義。其中又分為 16.

(35) 完全異體字與部分異體字,差別在於部分異體字只在部分情況下意義才相通[5],表 5.2 為異體字的例子。 由於地方志的語料跨越了數個朝代而且具有地域性,根據不同地區,所使用的文字 會有些許變化,抑或是不同的時期的字體也會有差異,例如「康熙」、「康熈」,進而導 致有些詞彙再標記過程時因字體不同而沒有被標記,所以本論文利用了異體字整理表[6] 去挑出常見的語料中異體字來補充至名詞表內,讓標記的效果更好。. 表5.2. 異體字部分範例. 強. 强. 乾. 幹. 冊. 册. 熙. 熈. 啟. 啓. 曆. 歷. 表5.3. 厯. 名詞表重複詞彙統計. 人名資訊表. 地名表. 年號表. 官職表. 入仕表. 人名資訊表. ×. ×. ×. ×. ×. 地名表. 185. ×. ×. ×. ×. 年號表. 42. 118. ×. ×. ×. 官職表. 10. 0. 0. ×. ×. 入仕表. 0. 0. 0. 0. ×. 17.

(36) 5.2.4. 原始名詞表內容比對及分析. 由於擁有多組名詞表,各組名詞表間可能會有相同的詞,本論文稱為多義詞,將人物資 料表與其他名詞表做交叉比對,發現其中人物資訊表與其他表格中有共同出現的如表 5.3。 在人名資訊表中,與年號表、官職表重複數量不多,透過簡易的檢查,發現是人名 資訊表中錯誤資訊的部分,故刪除人名資料表中與官職表重複的部分。透過刪除人名資 訊表與官職表之間的重複詞,問題尌變成是人名與地名、地名與年號之間的多義問題, 透過語境分析[17],將多義詞視為中心詞彙,觀察其前後的語境,進一步瞭解到其前後 出現過那些文字,在透過觀察分析,可以找出常見的語言架構,如圖 5.2 所示,如此發 現到當多義詞在特定語法結構下,會表示特定意義,在此根據經驗法則將常見的結構結 合成標記規則,在下一節中拿來應用。 金城: 立萬户府所屬山陰馬邑 金城[地名] 等凡七屯地里志明洪武 人物傳趙應祥長沙衛人 金城[人名] 字邦衛厯城人通志府傳 … 安福: 熙正白旗光緒十五年任 安福[人名] 鑲黃旗人光緒十八年任 門者迄今思之王弁江西 安福[地名] 人歲貢苟完四川西充人 人萬歴十九年任王廷俊 安福[地名] 舉人萬歴二十二年任汪 …. 18.

(37) 紹興: 年分無考章汝楫尉劉貢 紹興[年號] 十七年任韓彦端二十年 五年任嘉慶孫廷臣浙江 紹興[地名] 人吏目元年任朱濤二年 … 太康: 進士詳宦績柳國勲河南 太康[地名] 監生詳宦績趙煌陝西乾 年以上皆稱太守晉丁義 太康[年號] 二年國相張景永康二年 生康熙五十一年任傅弼 太康[地名] 人貢生康熙五十八年任 … 圖5.2. 5.2.5. 語境分析範例. 標記規則. 根據圖 5.2 中的範例所示,顯示透過語境分析所找出的多義詞,多為地名、人名、年號 間的衝突。根據分析的結果,利用規則增加了一種標記類別,日期型標記;並透過常見 的書寫架構去對部分標記作判斷。 首先介紹日期標記,首先找出文本中的「年」 、 「月」的位置,再根據當前位置往前 觀察是否是數字或是天干地支,透過此方式辨別是否為日期標記,如圖 5.3 所示。 增加了日期標記後,在標記的過程中,若發現多義詞出現在下列幾種狀況時,會給 予相對應的標記: 1.. 若多義詞+「人」,則多義詞為地名。 嘉慶孫廷臣浙江 紹興[地名]人 吏目元年任朱濤二年. 2.. 若多義詞+「縣」,則多義詞為地名。 陳順鑲四川 金堂[地名] 縣 進士宣統二年署. 19.

(38) 3.. 若多義詞+[職官],則多義詞為地名。 進士詳宦績柳國勲河南 太康[地名]監生[職官] 詳宦績趙煌陝西乾. 4.. 若多義詞+[入仕],則多義詞為地名。 萬歴十九年任王廷俊安福[地名]舉人[入仕]萬歴二十二年任. 5.. 若[人名]+多義詞+[地名],則多義詞為地名。 嘉慶 孫廷臣[人名]浙江[地名]紹興[地名]人吏目元年任朱濤二年. 6.. 若多義詞+[日期],則多義詞為年號。 年分無考章汝楫尉劉貢 紹興[年號] 十七年[日期]任韓彦端二十年. 這裡定義了常見的六種多義詞判別的方式,在後面的標記方法中,也會運用這類書寫架 構的特徵,來使研究時的標記判斷更為準確。. 日期標記[日期]: [天干]={甲乙丙丁戊己庚辛壬癸} [地支]={子丑寅卯辰巳午未申酉戌亥} [數字]={一二三四五六七八九十} [年月]={年月} 若符合以下格式: [天干]+[地支]+「年」 [數字]+([數字]+([數字]))+[年月] 「元」+「年」 則標為[日期] 圖5.3. 日期標記方法. 20.

(39) 解歧標記方法. 5.3. 在上一節中,我們討論了多義詞的問題,但在實際上標記的時候,仍然會有標記選擇的 問題,也尌是句子當中可以有不同的標記組合,在此本研究稱這種狀況為歧義問題。舉 例來說: 董應昌涿州人歲貢縣丞嘉靖四十一年 標記 1 董應昌[人名] 涿州[地名] 人 歲貢[入仕] 縣丞[官職] 嘉靖[年號]四十一 年[日期] 標記 2 董應昌[人名] 涿州[地名] 人歲 貢縣[地名] 丞 嘉靖[年號] 四十一年[日 期] 從前面的例子中,可以發現這段文字可以有兩種標記的方式,基於要從中挑選出最佳的 標記,以下本研究提出了三種作法來解決標記歧義的問題。 本節將分成三個小節來介紹本研究所提出的三種詴圖解決標記歧義問題的方式:(1) 順序標記法、(2)列舉式標記法、(3)列舉式標記法加入朝代資訊。. 5.3.1. 順序標記法. 順序標記法是透過給予各類名詞表不同的優先順序,依照優先順序標記來避免歧義發生 以達到消除歧義的方式。 此方法基於名詞表內的名詞擁有獨特性,當文本中出現符合名詞表內字串時,有極 高的可能為有意義的名詞。同時中文標記時產生的歧義,在標記時選擇較高可信度的詞 彙作為標記,可有效降低標記錯誤,在此本研究假設詞彙若頻繁出現則表示其作為一個 詞彙有較高的可信度,將此觀點代入各類名詞表中,去計算個別名詞表中的詞彙平均出 現數量作為一個優先權,如公式(1)所示,若名詞表中詞彙平均對文本標記數量越多,表 21.

(40) 圖5.4. 順序標記法標記流程. 示對應的字串做為使名詞表的詞彙可信度較高,可以推估出此名詞表先標記會造成的錯 誤標記的情況較少以解決多義詞問題,例如安福在訓練語料中有 231 個,其中只有發現 1 個人名,其餘大部分皆屬於地名,因此若標記安福為地名,雖然會產生錯誤,但錯誤 的比例是相對較小的;另外根據表 5.3 可以將名詞表分成有多義詞與無多義詞兩種類, 本方法中先標記無多義詞的名詞表部分;接著再標記有多義詞的名詞表,在標記時加入 5.2.5 節的標記規則,如此標記流程便如圖 5.4 所示,在相同名詞表下,採取長詞優先法 [12]標記。. 優先權分數(S) =. 名詞表內詞彙對文本標記數量 名詞表內詞彙數量. 22. (1).

(41) 5.3.2. 列舉式標記法. 圖5.5. 列舉式標記法流程. 在 5.3.1 節時,歧義發生時會因為優先權的關係選擇高優先權的名詞類別標記,只能保 證大部分的標記是對的,只是相對好的標記選擇,所以本研究提出另一種方法,詴圖在 標記過程中,產生所有可能的標記從中挑選最佳的標記,用來解決歧義問題。 由於本研究的輸入可以是一個句子,也可以是為一卷的內容,因此有可能是數萬字 的連續字串,若是直接將所有歧義的標記組合列舉出來,數量是非常多的,會嚴重影響 到初步標記時的效率,所以先將會被標記的區段擷取出來成為較短的子字串作為待標記 句子,之後再去對句子產生所有標記組合,透過篩選方式產生子字串對應的最佳標記, 最後再結合所有子字串的標記結果去產生整體最佳的標記結果,整體流程如圖 5.5 所 示。 23.

(42) 圖5.6. 擷取待標記句子範例. 首先初次標記時,不管歧義的問題,紀錄文本中的字是否可以被標記,透過擷取標 記結果中兩個未被標記的字中間的部分設為待標記的區間,當作所謂的待標記句子,如 同圖 5.6 的範例所示,對此範例句尌可以抽出四個子字串作為待標記句子,到下一個步 驟再給予適當的標記,而未被標記的文字,在此處尌直接給予無標記的標籤 O。 下一步,對每一個待標記句子產生所有可能的標記組合,步驟如圖 5.7 所示,開始 的時候,會先產生一個動態陣列去存放所有可能標記組合,將初始無標記的標記序列放 入陣列中,接著去檢查詞表中的詞彙是否出現在待標記語句中,詞彙出現時,則將陣列 中的標記序列全部提出,並詴著標記詞彙,產生新的標記序列放入陣列中,若原本的標 記序列中此詞彙已被部分或完全標記,則刪除過去的標記,補上新的標記後,產生新的 標記序列放回陣列中,直到迭代完所有名詞表,便可以產生所有可能的標記狀況,如圖 5.8 的範例所示。 得到了所有可能的標記序列後,再透過圖 5.9 的方法去篩選最佳的標記序列,因為 本研究希望得到盡量多的標記資訊,所以第一步會保留句子中文字被標記數量最大的標 記序列,例如待標記句子有 10 個字,標記序列 A 標記 8 個字,標記序列 B 標記 9 個字, 如此狀況會保留標記序列 B 的狀況。第二步根據 5.2.5 節中的標記規則,只要符合當中 的架構便會給予此標記序列加分,保留其符合數目最多的標記序列。第三步會保留長詞 24.

(43) 圖5.7. 產生所有標記組合步驟. 例句:劉士達奉化 初始 Output: 劉/O 士/O 達/O 奉/O 化/O 結果 Output:(檢查完所有名詞表) 劉/O 士/O 達/O 奉/O 化/O 劉/NB 士/NI 達/NE 奉/O 化/O 劉/O 士/O 達/O 奉/AB 化/AE 劉/NB 士/NI 達/NE 奉/AB 化/AE 圖5.8. 產生所有標記組合範例. 數量最多的,例如待標記句子中有「觀察推官」 ,而此詞彙可以被標記成一個職官名, 「觀 察」 、 「推官」也可以分別被標記成職官名,如此情況會保留標記「觀察推官」這一個職 官名的標記序列。最後在沒有其他判斷依據的情況下,便會選擇前詞優先,例如待標記 句子為「長寧州」 , 「長寧」與「寧州」皆可為地名,無其他可幫助判斷的資訊時,便會 選擇長寧為地名的標記序列。最後產生個別待標記句子的最佳標記序列後,整合所有子 序列產生整體最佳的標記作為輸出的標記序列,圖 5.10 根據各種篩選方式分別舉例。 25.

(44) 圖5.9. 標記組合篩選方法步驟. 保留 Input 中被標記字數最多的標記序列:(選擇粗體字部分) 0 字:劉/O 士/O 達/O 奉/O 化/O 3 字:劉/NB 士/NI 達/NE 奉/O 化/O 2 字:劉/O 士/O 達/O 奉/AB 化/AE 5 字:劉/NB 士/NI 達/NE 奉/AB 化/AE 保留 Input 中符合最多標記規則的標記序列:(選擇粗體字部分) 符合數 2:訓/EB 導/EE 方/NB 杲/NE 湖/AB 廣/AE 咸/AB 寧/AE 人/O 符合數 0:訓/EB 導/EE 方/NB 杲/NE 湖/AB 廣/AE 咸/O 寧/AB 人/AE 符合數 0:訓/EB 導/EE 方/NB 杲/NE 湖/AB 廣/AE 咸/NIB 寧/NIE 人/O 長詞優先:(選擇粗體字部分) 觀/OB 察/OE 推/OB 官/OE 觀/OB 察/OI 推/OI 官/OE 前詞優先:(選擇粗體字部分) 長/AB 寧/AE 州/O 長/O 寧/AB 州/AE 圖5.10. 標記組合篩選範例. 26.

(45) 5.3.3. 列舉式標記法加入朝代資訊. 圖5.11. 加入朝代資訊標記法流程. 在 5.3.2 的方法中,再選擇最佳標記時,選擇了從先前處理做資料分析時所得到的直覺 判斷,但這並無法表示在所有情況都是正確的,所以本研究對上一個方法做了一些改進, 代入部分種類名詞的朝代資訊,在不同的朝代時期,有其特定的年號以及當時的官職名 稱,這假設所擁有的年號朝代與官職朝代是完整的,便可以檢驗上個方法中標記為職官、 年號時,其朝代是否是一致的,以下提出一個朝代資訊一致化的方法,如圖 5.11 所示。 將 5.3.2 節的標記結果做為初步標記語料,去觀察年號、職官的朝代,從圖 5.12 了 解到當標記的時候,不同朝代的職官名若出現在同一區段,有很大的可能是錯誤的標記, 所以在這裡加入朝代因素來修正得到的標記結果使得結果更為可信。對於目前的名詞表 中,官職名與年號有比較確實的時間資訊中,地名表中雖然有朝代資訊但地名跨朝代延 續使用的比例相當高,所以若以地名去比對一致性,會刪去許多正確的標記。因此,這 裡只選用職官以及年號的朝代資訊來輔助判斷,而當中官職只有朝代,而年號有精確的 年份區間及朝代。 27.

(46) 代入朝代資訊: 高縣志卷…職官/[職官]{宋}志…與民最親而 學官/[職官]{唐,宋,元}專司教/[ 職官]{宋}鐸…沿革 中官/[職官]{唐,宋}斯土者…知州/[職官]{唐,宋,元,明,清} 張景良…得明 知縣/[職官]{唐,宋,元,明,清}二十人…至 典史/[職官]{元,明,清} 之可據者…教職/[職官]{清}…明 知縣/[職官]{唐,宋,元,明,清}王旭 洪武/[年 號]{明}初年任…越彥 宣德/[年號]{明}年任… 若時間為明朝 高縣志卷…職官志…與民最親而學官專司教鐸…沿革中官斯土者…知州/[職官]{明} 張景良…得明 知縣/[職官]{明}二十人…至 典史/[職官]{明 }之可據者…教職… 明 知縣/[職官]{明}王旭 洪武/[年號]{明}初年任…越彥 宣德/[年號]{明}年 任… 圖5.12. 朝代資訊標記更正範例. 產生初步標記語料後,對語料中標記的年號、官職名補上對應的朝代資訊,雖然年 號類別的詞彙擁有明確時間區間的資訊,雖然從地方志傳記記事的特性,有從古至今這 種時續推移的形式書寫,但是有可能在同一朝代時,根據記事改變時,產生時序上的回 溯,因此在這裡年號及官職都只取其對應的朝代;由於年號中的詞彙絕大多數都只對應 到一個朝代,是比較容易辨識的,所以會先針對年號的部分去做修正,先抽出初步標記 語料中的所有年號,每一個年號去與前後三個出現的年號做比對,透過此種方式,去判 定是否為年號及對應的朝代,如同圖 5.13 所示;之後對抽取出的官職資訊,去檢驗當前 位置前一個以及後一個出現的年號是否與官職朝代一致,若有一致的,則保留此年號並 給予對應年號,若無則刪除;經過這兩步驟,已經將初步標記語料中的年號、官職的朝 代一致化,如圖 5.14、圖 5.15 所示。 28.

(47) 圖5.13. 一致化初步標記語料中的年號資訊. 年號朝代一致化: 成化{明} 成化{明} 嘉靖{明} 正德{西夏,明} 康熙{清} 康熙{清} 雍正{清} 嘉靖{明} 雍正{清} 雍正{清} 雍正{清} 圖5.14. 西德{西夏: 0,明: 3}. 正德{明}. 嘉靖{明: 0}. 嘉靖{無標記}. 年號朝代一致化範例 29.

(48) 官職朝代一致化: 知州{唐,宋,元,明,清} 知縣{唐,宋,元,明,清} 洪武{明} 典史{元,明,清} 知縣{唐,宋,元,明,清} 洪武{明} 雍正{清} 中官{唐,宋}. 洪武{明} 典史{元,明,清} 洪武{明} 雍正{清} 中官{唐,宋}. 知州{唐,宋,元,明,清} 雍正{清} 雍正{清} 雍正{清}. 典史{明}. 中官{無標記}. 雍正{清}. 圖5.15. 官職朝代一致化範例. 由於前面過程使得一些錯誤朝代的標記已被刪除,故需要詴著對那些更改過的部分 去標記,首先會對年號、官職擁有朝代資訊的名詞表去做標記補充,根據前後出現的年 號、官職的朝代來判斷是否可以標記,接著再去對入仕名、地名、人名無朝代資訊的名 詞表去做標記補充,其標記流程如圖 5.16 所示,最後以此標記結果作為最終的標記語 料。. 圖5.16. 補充標記流程. 30.

(49) 第六章. 建立實體名詞辨識模型. 本章將介紹本研究使用基於隨機條件場所建立的模型去做標記的識別,以及去挑選有用 的特徵值去提升模型辨識的效果。在 6.1 節中,介紹本研究所使用的隨機條件場;6.2 節介紹本研究所使用的各種特徵,以及如何透過評估挑選有效特徵集。. 6.1. 隨機條件場. 隨機條件場(Condition Random Fields, CRF)是一種鑑別式機率模型(discriminative model), 是馬可夫隨機場(Markov Random Fields, MRF)的一種型式,因此 CRF 同樣符合馬克夫性 質(Markov Property),所以經常用於處理序列型資料的分類問題,例如應用於自然語言 處理、影像處理、生物序列分析等領域。在本章接續的內容中,會去介紹 CRF 以及使 用本研究的語料作為說明的範例。 根據 Lafferty[16]所提出的定義,設G(V, E)為一個無向圖,Y = *Yv |v ∈ V+是圖中各個 頂點 v 的隨機變量的集合。在給定觀察序列X條件之下,且每一個Yv 皆符合馬克夫性質, 也尌是p(Yv |X, Yu , u ≠ v) = p(Yv |X, Yu , u~v),其中u~v表示 u 與 v 之間相鄰,則(X, Y)適 合用 CRF 來表示。以本研究為例,觀察序列X尌是地方志中的文字位置序列,而狀態序 列Y尌對應到每個文字的標記類別,也尌是說,在已知文字序列X下,可以運用 CRF 去 預測每個文字所對應到的標記類別Y。 本研究所使用的是 linear-chain CRF,定義觀察序列X = *x1 , x2 , x3 , … , xn +,狀態序列 Y = *y1 , y2 , y3 , … , yn +,再給定序列狀態X,狀態序列 Y 的 CRF 機率分布為公式(2)所示: p(Y|X) =. 1 ∏ exp ((∑ αj t j (yi−1 , yi , x. i)) + (∑ βk sk (yi , x. i))) Z(x) i. j. (2). k. 其中t j (yi−1 , yi , x. i)為轉移特徵函數,指的是同時考慮前一個狀態yi−1與當前狀態yi 的 31.

(50) 特徵,而sk (yi , x. i)為狀態特徵函數,指的是只考慮當前狀態的特徵,αj 、βk 則為對應特 徵的權重,由於考慮的參數差別只在於是否考慮前一個狀態,所以可以將兩者整合成一 個特徵函數fj (yi−1 , yi , x. i),如公式(3)所示: p(Y|X) =. 1 ∏ exp (∑ ωj fj (yi−1 , yi , X. i)) Z(X) i. (3). j. 其中Z(X)為正規化係數,為所有狀態序列的機率總和,如公式(4)。. Z(X) = ∑ ∏ exp (∑ ωj fj (yi−1 , yi , X. i)) y. i. (4). j. ωj 為特徵函數fj (yi−1 , yi , x. i)的對應權重,為了最佳化模型的權重,需要訓練資料, 也 尌 是包 含文 字序 列 X, 以 及其 對應 標記 類別 Y , 找出 最大 對數 似然 值 (maximum log-likelihood) 來 最 大 化 p(Y|X) 來 調 整 各 個 特 徵 權 重 ωj , 也 尌 是 說 max L(ω; Y|X) ∝ max p(Y|X; ω),先著對p(Y|X)取 log,如公式(5):. log p(Y|X; ω) = ∑ (∑ ωj fj (yi−1 , yi , X. i)) − log Z(x) i. (5). j. 接著對個別ωj 作偏微分,找出每一個權重的極值,如公式(6) ∂ ∂ log p(Y|X; ω) = ∑ ωj fj (yi−1 , yi , X. i) − log Z(x) = 0 ∂ωj ∂ωj. (6). i. 將其對應到訓練資料,便可以計運用訓練資料以迭代方式去調整權重ω使得 CRF 辨 識效果最佳化。 接著,得到了適當的權重ω後,便可以將 CRF 去對未知語料作推論,如公式 Y ∗ = arg maxY p(Y|X; ω). (7). 透過最大化p(Y|X; ω)來得到預測序列Y ∗,從公式(3)推導,其中的Z(x)為定值,也尌 是說實際上尌是去計算argmax ∑i ∑j ωj fj (yi−1 , yi , X. i) ,將其中的∑j ωj fj (yi−1 , yi , X. i) 化為. 32.

(51) g i (yi , yi−1 )也尌變成arg max ∑i g i (yi , yi−1 )。其中g i (yi , yi−1 )是一個m × m的矩陣,m 為yi 的 所有可能,以本研究為例子, 「周瑜字公瑾」中的「瑜」字可以被標為 O、NB、NI、NE、 AB、AI、AE 共 7 種可能,而同時當前標記會考慮先前標記,而前一個字也才 7 種可能, 所以可算出7 × 7的矩陣。設U(k, v)為從第一個位置到第 k 個位置的最佳標記序列,其中 位置 k 的標記為 v,接著可以進行以下推論: k−1. U(k, v) = max,∑ g i (yi , yi−1 ) + g k (v, yk−1 )1. = max,U(k − 1, yk−1 ) + g k (v, yk−1 )如此發現其中的遞迴關係,可利用 Dynamic Programming 的方式去運算其最佳標記 序列,這裡本研究使用的是 Viterbi[20]演算法去尋找最佳標記序列。. 6.2. 特徵擷取 表6.1. 編號. 特徵種類. 特徵集. 特徵描述. Group 1 字. 字本身. Group 2. 字前後的語境. Group 3 專有名詞位置. 職官詞出現的相對位置 入仕詞出現的相對位置 年號詞出現的相對位置 日期詞出現的相對位置. Group 4 人名地名的用字. 字用於人地名機率 字是否屬於姓氏. Group 5 增加專有名詞類別. 將專有名詞標記位置給予特殊對應標籤. 33.

(52) 擁有了標記語料以及 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 …. 34.

(53) 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 …. 35.

(54) 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 …. 36.

(55) 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 用於名字次數. AddressProb(C) =. C 出現次數 C 用於地名次數 C 出現次數. (8). (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 …. 37.

(56) 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. 38.

(57) 原始句子 董應昌[人名] 涿州[地名] 人 歲貢[入仕] 縣丞[職官] 嘉靖[年號] 四十 一年[日期] 經過標記後: 董/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. 39.

數據

Updating...

參考文獻

Updating...