天天看點

基于CRF++0.54搭建中文分詞系統

1 資源下載下傳

 CRF源碼:點選下載下傳  語料:點選下載下傳

2 準備工作

2.1  CRF 

依次執行以下指令安裝CRF:(1) ./configure --prefix=$目前目錄(2)make(3) make install

2.2 語料

語料是網上流傳的北京大學标注的1981年1月人民日報的語料,自己處理成了crf要求的訓練格式如下:

基于CRF++0.54搭建中文分詞系統

其中,句子與句子之間以空行分隔。第一列為字,第二列為字類型(具體含義點這裡),第三列為字标記(B表示詞首、M表示詞中、E表示詞尾、S表示單獨的詞)。

3 訓練模型

訓練模型的指令為:crf_learn template_file train_file model_file (具體含義點這裡)(不特别設定的情況下,參數c的預設值為1.0,參數f的預設值為1)。

把上面下載下傳到的語料中的前70%作為訓練語料,後30%作為測試語料。采用預設參數進行訓練,準确率達到了0.958817,效果如下:

基于CRF++0.54搭建中文分詞系統

4 模型優化

4.1 調整參數

4.1.1 第一版

設定f值為2,重新訓練,測試得到準确率為0.960549。

4.1.2 第二版

設定f值為3,重新訓練,測試得到準确率為0.958712。

4.1.3 第三版

設定c值為2.0,重新訓練,測試得到準确率為0.959942。

4.1.4 第四版

設定c值為3.0,重新訓練,測試得到準确率為0.960141。

4.1.5 第五版

設定c值為4.0,重新訓練,測試得到準确率為0.960610。

4.1.6 第六版

設定c值為10.0,重新訓練,測試得到準确率為0.961243。

4.1.7 第七版

設定c值為20.0,重新訓練,測試得到準确率為0.961616。

4.1.8 第八版

設定c值為30.0,重新訓練,測試得到準确率為0.961861。

4.1.9 第九版

設定c值為50.0,重新訓練,測試得到準确率為0.962019。

4.1.10 第十版

設定c值為80.0,重新訓練,測試得到準确率為0.962130。

4.1.11 第十一版

設定c值為100.0,f值為2,重新訓練,測試得到準确率為0.958970。

4.1.12 第十二版

設定c值為80.0,f值為2,重新訓練,測試得到準确率為0.959123。

4.1.13 第十三版

設定c值為50.0,f值為2,重新訓練,測試得到準确率為0.959328。

4.2 調整模闆

原模闆如下所示:

基于CRF++0.54搭建中文分詞系統

4.2.1 第十四版

調整模闆如下:

基于CRF++0.54搭建中文分詞系統

設定參數c為80.0,f為1,得到準确率為0.961369。

設定參數c為1.0,f為2,得到準确率為0.959576。

4.2.2 第十五版

調整模闆如下:

基于CRF++0.54搭建中文分詞系統

設定參數c為80.0,f為1,得到準确率為0.9600。

繼續閱讀