本文主要記錄下自己這兩個月參加比賽的過程和經驗
-
賽題描述
達觀信息抽取比賽提供了一個脫敏數據集,訓練集有17000條,測試集為3000條,此外還有一個一百萬條的未標注語料可用于訓練預訓練模型。任務為在3個字段(a, b, c)上進行識別,o為非實體標簽舉個栗子:給定一行文本1_2_3_4_5_6_7_8_9,通過模型算法后輸出1_2_3_4/o 5_6_7_8/c 9/o
-
思路
實體識別可以當作是序列標注問題,因而所有的序列標注模型都可以應用到這個任務上
首先要把原始數據轉化為BIO或BIOE格式(我的模型用的是BIOE)
如5_6_7_8/c轉化為
5 B-c
6 I-c
7 I-c
8 E-c
(B代表實體的開始 I為實體中間 E結束)
-
基本模型
預訓練模型: word2vec elmo
基本模型使用了實體識別最流行的bilstm + crf
-
比賽過程中不同模型的線上結果記錄
50維word2vec + bilstmcrf 0.85
300維word2vec + bilstmcrf 0.87
1024維elmo + bilstm 0.89
1024維elmo + bilstm + 數據增強 0.90
1024維elmo + bilstm + 數據增強 + 簡單集成 0.91
-
經驗總結
就是。。。一定要用預訓練模型,整個比賽過程對效果幫助最大的是elmo的使用,基于word2vec + bilstmcrf 調參往死里調也超不過0.87,一引入elmo直接到0.89