CRF做命名實體識別

2021-10-05 04:48:15 字數 1507 閱讀 5591

crf_learn.exe crf++的訓練程式

crf_test.exe crf++的**程式

libcrfpp.dll 訓練程式和**程式需要使用的靜態鏈結庫

cd c:\users\dell\desktop\crf實體識別
crf_learn template labeled_train_data model >>train_output.txt
-a crf-l2 or crf-l1

規範化演算法選擇。預設是crf-l2.一般來說l2演算法效果要比l1演算法稍微好一點,雖然l1演算法中非零特徵的數值要比l2中大幅度的小。

-c float

這個引數設定crf的hyper-parameter。c的數值越大,crf擬合訓練資料的程度越高。這個引數可以調整過度擬合和不擬合之間的平衡度。這個引數可以通過交叉驗證等方法尋找較優的引數。

-f num

這個引數設定特徵的cut-off threshold。crf++使用訓練資料中至少num次出現的特徵。預設值為1.當使用crf++到大規模資料時,只出現一次的特徵可能會有幾百萬,這個選項就會在這樣的情況下起到作用。

-p num

如果電腦有多個cpu,那麼可以通過多執行緒提公升訓練速度。num是執行緒數量。

帶兩個引數的命令列例子:

% crf_learn –f 3 –c 1.5 template_filetrain_file model_file

語料的訓練可以使用命令(在終端或dos命令列中):crf_learn 《模板》 《訓練語料》 《模板檔案》

其中模板和訓練語料是需要事先準備好的,模板檔案在訓練完成後生成。

注意:①如果提示語料格式錯誤,則注意檢查語料的儲存編碼,有些編碼crf++是會讀取錯誤的;

②檔案路徑要正確,如果檔案沒在當前目錄,那麼要使用絕對路徑。

訓練中一些引數的說明:

iter: 迭代次數

terr:標記錯誤率

serr:句字錯誤率

obj:當前物件的值。當這個值收斂到乙個確定值的時候,訓練完成

diff:與上乙個物件值之間的相對差

crf_test –m model labeled_test_data >>test_output.txt
有兩個引數-v和-n都是顯示資訊的,-v可以顯示**標籤的概率值,-n可以顯示不同可能序列的概率值

perl conlleval.pl

ai命名實體識別模型 命名實體識別

crf中有兩類特徵函式,分別是狀態特徵和轉移特徵,狀態特徵用當前節點 某個輸出位置可能的狀態中的某個狀態稱為乙個節點 的狀態分數表示,轉移特徵用上乙個節點到當前節點的轉移分數表示。其損失函式定義如下 crf損失函式的計算,需要用到真實路徑分數 包括狀態分數和轉移分數 其他所有可能的路徑的分數 包括狀...

命名實體識別

簡單的分詞器 如二元分詞器 無法識別oov,所以需要運用一些規定的規則來輔助識別 如 在識別音譯人名時,可以設定規則 一旦發現某詞是人名,而該詞後面跟隨人名詞時,將他們合併 針對不同情況,需要設計相應的標註集 拿人名識別舉例 輸入資料集進行訓練後,會將人名拆分為碎片,模擬人名的錯誤切分.接著,檢查拆...

命名實體 中文命名實體識別簡介

一切具有特定屬性集合的物體都可以稱為實體。一般包括三大類 實體類 時間類 數字類 七小類 人名 機構名 地名 時間 日期 貨幣和百分比 1 確定實體的邊界,即確定哪些詞屬於實體。2 確定實體的類別,即確定實體屬於人名或者機構名等。1 各類命名實體沒有嚴格的命名規範 2 中文命名實體沒有類似英文明確的...