Hanlp天然語言處理中的詞典格式說明

使用過hanlp的都知道hanlp中有許多詞典,它們的格式都是很是類似的,形式都是文本文檔,隨時能夠修改。本篇文章詳細介紹了hanlp中的詞典格式,以知足用戶自定義的須要。數組

基本格式緩存

詞典分爲詞頻詞性詞典和詞頻詞典。數據結構

一、詞頻詞性詞典(如CoreNatureDictionary.txt)編輯器

(1)每一行表明一個單詞,格式聽從[單詞] [詞性A] [A的頻次] [詞性B] [B的頻次] ...。性能

(2)支持省略詞性和頻次,直接一行一個單詞。編碼

(3).txt詞典文件的分隔符爲空格或製表符,因此不支持含有空格的詞語。若是須要支持空格,請使用英文逗號,分割的純文本.csv文件。在使用Excel等富文本編輯器時,則請注意保存爲純文本形式。spa

二、詞頻詞典(如CoreNatureDictionary.ngram.txt)調試

(1)每一行表明一個單詞或條目,格式聽從[單詞] [單詞的頻次]。文檔

(2)每一行的分隔符爲空格或製表符。同步

少數詞典有本身的專用格式,好比同義詞詞典兼容《同義詞詞林擴展版》的文本格式,而轉移矩陣詞典則是一個csv表格。

下文主要介紹通用詞典,如不註明,詞典特指通用詞典。

數據結構

Trie樹(字典樹)是HanLP中使用最多的數據結構,爲此,我實現了通用的Trie樹,支持泛型、遍歷、儲存、載入。

用戶自定義詞典採用AhoCorasickDoubleArrayTrie和二分Trie樹儲存,其餘詞典採用基於雙數組Trie樹(DoubleArrayTrie)實現的AC自動機AhoCorasickDoubleArrayTrie。關於一些經常使用數據結構的性能評估,請參考wiki。

儲存形式

詞典有兩個形態:文本文件(filename.txt)和緩存文件(filename.txt.bin或filename.txt.trie.dat和filename.txt.trie.value)。

一、文本文件

·採用明文儲存,UTF-8編碼,CRLF換行符。

二、緩存文件

(1)就是一些二進制文件,一般在文本文件的文件名後面加上.bin表示。有時候是.trie.dat和.trie.value。後者是歷史遺留產物,分別表明trie樹的數組和值。

(2)若是你修改了任何詞典,只有刪除緩存才能生效。

修改方法

HanLP的核心詞典訓練自人民日報2014語料,語料不是完美的,總會存在一些錯誤。這些錯誤可能會致使分詞出現奇怪的結果,這時請打開調試模式排查問題:

 

HanLP.Config.enableDebug();

 

(1)核心詞性詞頻詞典

a)好比你在data/dictionary/CoreNatureDictionary.txt中發現了一個不是詞的詞,或者詞性標註得明顯不對,那麼你能夠修改它,而後刪除緩存文件使其生效。

B)目前CoreNatureDictionary.ngram.txt的緩存依賴於CoreNatureDictionary.txt的緩存,修改了後者以後必須同步刪除前者的緩存,不然可能出錯

(2)核心二元文法詞典

a) 二元文法詞典data/dictionary/CoreNatureDictionary.ngram.txt儲存的是兩個詞的接續,若是你發現不可能存在這種接續時,刪掉便可。

B)你也能夠添加你認爲合理的接續,可是這兩個詞必須同時在覈心詞典中才會生效。

(3)命名實體識別詞典

a)基於角色標註的命名實體識別比較依賴詞典,因此詞典的質量大幅影響識別質量。

b)這些詞典的格式與原理都是相似的,請閱讀相應的文章或代碼修改它。

相關文章
相關標籤/搜索