標注訓練——crfsuite(附代碼)

一、背景

最近在做一個簡歷語料的訓練,對簡歷中的關(guān)鍵信息進行標注(標注出應聘者的技能、專業(yè)等內(nèi)容),已經(jīng)有了大量的已經(jīng)標注好的語料,之前是用crf++進行訓練,后來遷移到crfsuite上,但是我在網(wǎng)上找不到太多的關(guān)于crfsuite教程,有些安裝配置還特別麻煩,在找了其他人的代碼以及看教程的基礎(chǔ)上,終于訓練出了一版,因此這里提供詳細的教程,供大家參考

二、安裝

安裝非常簡單,假設你已經(jīng)配好 python 環(huán)境,并配好相關(guān)的安裝工具 pip,easy_instal..直接在python中導入pycrfsuite、sklearn-crfsuite包

1)pip install python-crfsuite

2)pip install sklearn-crfsuite

三、數(shù)據(jù)準備

1)訓練集數(shù)據(jù):我使用的是IOB格式標注體系(采用了四個符號:B、I、E、O),使用txt文件(excel也可以),文件格式不是特別重要。我的txt文件里面是這個格式,不同的句子之間用一個空行隔開。(備注:我這里的ZY表示‘專業(yè)’、XL表示‘學歷’),詞與標注之間用tab鍵隔開。

標注好的數(shù)據(jù)格式

2)數(shù)據(jù)讀入后,將數(shù)據(jù)放于一個列表(list),列表的樣式為:

四、訓練

1)特征定義

為每一個詞(字)定義一些特征,可以理解為我們想要考察字的哪些特征,比如它是否為大小寫、數(shù)字、以及它前后的字有哪些。

2)獲取每個詞、詞的標簽以及特征

3)訓練

調(diào)用上面2)的函數(shù),將訓練集數(shù)據(jù)分成兩個列表:X_train和Y_train,里面分別存放特征和標簽(對訓練集也作同樣的處理)

設置訓練模型參數(shù)并開始訓練,這里的model.train(crfsuite_model)里的crfsuite_model你應當之前定義好,它是一個模型文件,“crfsuite_model = (os.path.join(model_path, 'cv.crfsuite'))? ”,即你訓練出來的模型會存放在文件cv.crfsuite中。

五、測試

打開模型文件,對測試集數(shù)據(jù)進行預測

六、評估

最后你可能需要去計算accuracy、precision、recall、f1-score。但這里要注意的是,這里還少了幾行代碼,前面的y_true和y_pred的形式是列表的列表,這樣計算會報錯,你需要把y_true里的元素都放一個列表里,不要有列表的嵌套的形式。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容