CRF技能詞識別過程

最近在用CRF作未登陸技能詞識別,雖然艱難,可是感受很爽,效率很是高。
(1)數據準備:
選取30000行精語料做爲訓練數據。每個br做爲一條數據。使用已有的技能詞典對數據進行無標註分詞。
(2)訓練數據標註:
對分詞後的語料進行標註。若是某分詞結果在技能詞典中,則該詞做爲技能詞進行標註;若是某分詞結果不在詞典中,則該詞做爲與技能無關詞進行標註。標註規則以下:
標註採用3列,4-tag方式標註:B:技能詞開頭字;M:技能詞中間字;E:技能詞結尾字;A:與技能詞無關字。
(3)修改模板:
技能詞查找仍屬分詞系列,故未修改模板。
(4)數據訓練:
使用CRF++工具進行模板+訓練文本的訓練。
(5)測試數據準備:
採用與訓練文本一樣的方式進行標註。使用模板+測試文本進行測試。
(6)測試數據生成結果:
測試生成標註列與經過詞典進行標註的結果進行比較,第一次測試5000條數據共有141471個特徵,標註錯誤數爲3750個,錯誤率爲0.0265。
(7)技能詞識別成果:
將測試數據中生成的B、M、E進行合成,組成技能詞。新技能詞采用人工過濾計算比例。


訓練:
crf_learn -f 3 -c 4.0 template 4train_text.data yuanbin_crf_model
測試:
crf_test -m yuanbin_crf_model 4test_text.data >>yuanbin_crf_final工具

 
實驗結果:

第一次訓練(train:10w;test:all):
100000條數據共迭代826次,耗時885.93s。
標註錯誤率:0.0166197028394
技能詞識別數:11395
字典技能詞識別率:0.32576
新詞數:7683
新詞中技能詞比例:0.522
技能詞總體識別率:((11395 * 0.32576) +(7683 *  0.522))/ 11395 = (3712 + 4011)/11395 =7722/11395 = 0.68

第二次訓練:(train:10w;test:all;英文單獨過濾,不通過CRF;丟棄'能力','及','思惟','我';丟棄'管理','能力','處理','製做';丟掉標點符號,丟掉的部分能夠抑制技能詞的不斷擴展)
100000條數據共迭代852次,耗時1085.97s。
標註錯誤率:0.0258394960395
技能詞識別:7683
字典技能詞識別率:0.848887153456 
新詞中技能詞比例(漢語):306 技能詞比例:0.27
技能詞總體識別率:(7683 * 0.85 + 1152 *  0.31)/ 7683 = (6530.55 + 357.12)/7683 =7722/7683 = 0.90
提升的緣由:第一遍擴展了至關大一部分詞典,因此第二次遍歷詞典詞彙識別率很高,識別的新詞數量減小。新技能詞識別率低可能跟語料有必定關係。
 
第三次訓練:(train:all;test:all)
580000條數據共迭代999次,耗時2932s。
標註錯誤率:0.0137764605234
技能詞識別:7192
字典技能詞識別率:0.790183537264
新詞數(漢語):1114 
新詞中技能詞比例:0.93
技能詞總體識別率:7192* 0.79 + 1114 *  0.93)/ 7192 = (5681.68 + 1037)/7192 =6178.68/7192 = 0.86
降低的緣由:訓練語料增長,字典包含的技能詞的比例會減小,新詞識別增多,且新技能詞識別率較高。
 
第四次實驗:(test:all;key_word_line加入了'熟悉','精通','熟練','瞭解','可以','掌握','創建'  ,'使用','分析','項目','頁面','很是','經過','進行','運用', '負責','設計','組織','知識','深刻','根據','擅長','指導' ,'擁有','懂得')
沒有訓練(爲了保證訓練的精度)
標註錯誤率:0.0232847543088
技能詞識別:14873
字典技能詞識別率:0.46836549452
新詞數(漢語):7040
新詞中技能詞比例:0.914
技能詞總體識別率:14873* 0.47 + 7040*  0.914)/ = (6990.31 + 6432)/14873=13422.31/14873=0.9024615
提高的緣由:相比之下,key_word_line的數量增長了三倍,因此新詞量增長不少,相應字典技能詞的比例就減小。新詞中的真實技能詞的比例依然能達到90%以上,說明標註的效果很是好。
 
總結:
CRF可以有效識別新的技能詞,在通過兩次測試之後,新詞的識別率都在90%以上,說明詞典的擴充提升了數據標註的準確度,從而提升了新詞識別的效率。
最終結果仍是存在不少意義相同但說法不一樣的詞彙。經過詞條過濾有如下兩個問題:(1)詞條量不夠,會把不少很好的詞過濾掉;(2)冗餘太多,佔用系統資源;(3)會存在很大比例的非詞條的技能詞,詞頻依然可觀。
相關文章
相關標籤/搜索