歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux下CRF++的使用

Linux下CRF++的使用

日期:2017/2/28 14:22:31   编辑:Linux教程

在之前使用CRF++的過程中一直是再Windows下運行的,由於訓練文本不大,所以很順利,但為提高結果准確率而增加訓練語料內容,隨之也出現問題,因為用自己的機子做會使cpu占用率在訓練迭代時瞬間達到100%而導致crf_learn.exe停止工作,如下圖所以就轉到服務器端訓練了,然而也出現了一個問題,可能由於Windows下文件在Linux中是略有不同,所以運行時報錯,如下:​

encoder.cpp(340) [feature_index.open(templfile, trainfile)]feature_index.cpp(174) [max_size == size] inconsistent column size:3 1 train404pos11.txt

也嘗試將Windows文件中的換行符“\r\n”全部替換為“\r”但仍報錯,嘗試了幾種其他的方法後,仍無結果。突然想起來在CRF++包中有自帶一個example文件夾,就把裡面的示例train.data拷到Windows下與我自己的文件對比一下到底哪裡出了問題,用Notepad++打開這兩個文件,“視圖”-“顯示符號”-“顯示行尾符”,果然問題顯現,如下圖:​

我的訓練語料

CRF++示例文件

如何能將我文檔中的”CRLF“替換為只有”LF“呢?在網上找到了答案:”編輯“-”檔案格式轉換“-”轉為unix格式“,總算跟示例文件格式一致了,又到服務器上測試一下效果如何,果然問題解決了,訓練成功。

小貼士:如果選mac格式就是只有CR,如果是Windows就是都有。新建的文檔默認應該是Windows格式​。

Copyright © Linux教程網 All Rights Reserved