在NLP的基礎任務中,NER無疑很難做,但是做好了,會提升下游的很多效果。那么如何提升NER的效果呢?數據增強無疑是一種簡單粗暴的方式。船長這次帶著大家簡單過一下,本文無公式!
首先我們的著重考慮對象是有詞庫的,在工業界詞庫是必備的,沒有標注詞庫,這個NER的任務可能會做的很不好。我們從以下的三種數據增強trick來逐步介紹。
實體替換
如果我們有一個訓練數據集,比方說一個case:“海底撈的主要食物是火鍋”,在NER的任務中,標注成為“{海底撈^飯店}的主要食物是{火鍋^食物}”,其中海底撈的實體為飯店,而火鍋的為食物。
那么為了擴大我們的訓練數據集,我們會隨機的對同類型的實體進行替換,例如“海底撈”替換成為“肯德基”,也即“肯德基的主要食物是火鍋”。有意思的地方來了,很明顯我們都知道肯德基是沒有火鍋的,那么這樣造的case會有問題嗎?答案是從常識的角度是有問題的,所以我們盡量要挑出和火鍋相關的實體,利用知識圖譜的方式,搭建出更合理的訓練集。
邊界噪聲
比方說文本“這家飯店的爆品是火鍋啦”,結果模型把火鍋啦整體識別成為食物實體,那就很不對勁了。在這種情況下,屬于NER的一個悠久遺留問題,邊界預測問題,NER很難識別到實體的真正邊界,解決這種的方法也是利用人工造的一些噪聲。
比較簡單的方式,是可以從字表里面隨機的抽樣字,再隨機的加到邊界處。變成,讓模型自主的去學習到實體的邊界,這種方式簡單但是效果一般,為什么這么講?因為這種隨機的采樣對于模型來說,很好學習,我們應該嘗試去構造再難一點的數據。
這家飯店的爆品是火鍋嘿
比較可行的方式,是在模版數據中利用N-Gram挖掘到噪聲詞語/字,再利用頻率的高低構建出現的概率,以這種概率進行替換,舉例來說,飯店類的模版有很多是圍繞著詞語“食物”展開,那么這時候我們可以把“食物”插入到實體的邊界,成為:
這家飯店的爆品是火鍋食物
對于模型來講,再難一點的方式,可以從訓練數據中,挖掘到和火鍋相關的噪聲,再把它插入進去。例如,根據詞語火鍋進行展開,利用5-Gram搜索到附近的詞語,找到一些和火鍋相關,但是不是強相關的詞語,比方說辣椒,那這時候就會形成:
這家飯店的爆品是火鍋辣椒
不得不說,這種文本對于機器來講已經很難識別了,但是這種方式的時間開銷很大,需要提前離線找到和每個實體相關的詞語,再進行噪聲的插入。
模版構造樣本
什么意思呢?我們先利用實體,在線上的日志中挖掘到很多模版,再利用這批模版隨機的進行填充,形成最后的訓練數據,這批訓練的數據量會很大,但是樣本的質量是一般的。例如我們可以對模版“這家飯店的爆品是{食物}”進行隨機的食物實體填充,成為:
這家飯店的爆品是榴蓮
但是當一個模版有多個實體槽位的時候,隨機的進行實體填充往往有很大的問題,比方說模版“這家{飯店}的爆品是{食物}”,如果我們填充成為“這家海底撈的爆品是榴蓮”,雖然對于NER的任務來講沒有太大的問題,但是從常識角度來說,未免也太差了些。
這種情況下,我們需要批判性的思考,這種數據是否有利于提升我線上的效果,如果線上的要求并不包含常識,那這就是個好模型,反之亦然。我們也可以根據知識圖譜來進行填充,增加常識信息。
這次船長主要帶大家過了一些簡單高效的NER數據增強Trick,有什么問題就寫下你的疑惑,我們討論一下~
審核編輯 :李倩
-
數據集
+關注
關注
4文章
1205瀏覽量
24644 -
NER
+關注
關注
0文章
7瀏覽量
6205 -
nlp
+關注
關注
1文章
487瀏覽量
22012
原文標題:如何簡單粗暴的提升NER效果?一文告訴你如何用詞庫來做NER數據增強
文章出處:【微信號:zenRRan,微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論