一、背景
最近在做一個簡歷語料的訓練,對簡歷中的關(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鍵隔開。

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里的元素都放一個列表里,不要有列表的嵌套的形式。
