【NER】對命名實體識別(槽位填充)的一些認識


命名實體識別

1. 問題定義

廣義的命名實體識別是指識別出待處理文本中三大類(實體類、時間類和數字類)、七小類(人名、機構名、地名、日期、貨幣和百分比)命名實體。但實際應用中不只是識別上述所說的實體類,還包括其他自定義的實體,如角色、菜名等等。

2. 解決方式

命名實體識別其本質是一個序列標注問題,序列標注就是對給定文本中每一個字符打上標簽。標簽的格式可以分為BO,BIO和BIEO三種形式。對於數據集較少的情況,建議使用BO,如果有大量數據可以選用BIEO格式。
命名實體識別的解決方案有三種:基於詞典規則匹配、基於特征的機器學習方式和基於深度學習的方式。目前基於深度學習的命名實體是主流方式,現在做的實體識別也是基於深度學習方式。
評測指標
識別識別任務中的評測指標是F1,F1 = 2 * (precison + recall) / (precision * recall),precision(精准率)是指在所有預測出的標簽中正確的label個數, 召回是指在真實的標簽中預測正確的label個數,這是整體的准召,如果想細致的分析,可以求每種label的准召及F1

3. 基於深度學習的命名實體識別

3.1 經典結構

Neural Architectures for Named Entity Recognition 經典論文,2016NAACL
該論文主要提出兩種結構,一種是LSTM-CRF,另一種是 Stack-LSTM,該論文中的輸入主要是時word embedding

.

LSTM后面為什么接CRF?
如何理解LSTM后接CRF?簡單說就是LSTM可以學習到上下文特征,CRF可以學習到label的特征,比如狀態轉移矩陣,tensorflow中訓練時也是獲得轉移矩陣。

3.2 字符級別結構

這種是以字符作為基本輸入,在char embedding基礎上經過LSTM得到字符的label

3.3 字符和詞融合的結構

在這種結構中根據對字符的抽取方式可以分為兩種:一是對字符表示層用卷積網絡進行提取特征,從而獲取基於字符的詞語表示,第二種方式是對詞語的字符表示用BiLstm進行學習得到詞語的表示,然后將詞語的embedding與字符學習到的embeddig進行拼接作為詞語的基本表示.

3.4 字符、詞和詞綴融合的結構

Deep Affix Features Improve Neural Named Entity Recognizers

3.5 加入分詞信息

以上四種結構是該論文A Survey on Recent Advances in Named Entity Recognition from DeepLearning models提到的模型結構,自己在做中文任務時又有一些的感受。
針對中文NER,LSTM-CRF也是一個標准的模型結構,根據任務選擇輸入時word embedding還是char embedding,對於中文來說,多數還是以char embdding,因為分詞可能會將一些實體給切分開,后續就是在embedding的基礎上使用BiLSTM進行學習上下文特征,最后接一層CRF。
加入分詞信息
Improving Named Entity Recognition for Chinese Social Mediawith Word Segmentation Representation Learning
思想同上文中提到的字符和詞融合的結構類似,這種方式是使用分詞后,對每一個字符都使用BIES的標記格式進行標記,這就是分詞信息,這種分詞信息使用4*20的矩陣進行初始化,並通過loop-up方式查找每個字符的分詞信息拼接到char embedding后面作為輸入,不論是直接使用lstm還是使用bert,加入分詞信息效果均有提升。

3.6 基於字符的部首來做中文命名實體識別

Character-Based LSTM-CRF with Radical-LevelFeatures for Chinese Named Entity Recognition.
2016年中科院,發布地方不詳。

本文提出了基於字符的部首來做中文命名實體識別,模型結果挺簡單.
第一步獲取字符的embedding,這一步是通過對字符預訓練詞向量和使用bi-lstm對部首學習到的向量拼接得到.
第二步,就是通用的bi-lstm+crf,創新之處就是使用了部首編碼那一步。

3.7 BERT

使用bert的產出的字符序列作為輸入,bert中是直接對每個字符向量進行分類,我使用同上面一樣的模型對字符序列分別經過LSTM和CRF,其實不知道LSTM有沒有用,但是在加了之后好像效果是有點提升,但是不太理解,明明bert已經使用transform將上下文特征學的這么好了,lstm的作用幾乎就不存在了吧?

3.8 ERNIE

其中也嘗試了百度的ernie,但是在預測時很亂,不知道自己哪里改錯了,放棄

4.總結

在意圖識別和槽位填充時,學習了命名識別實體的方式,雖然之前也有了解,沒有具體的寫代碼實現過。這次通過自己的調研與嘗試,了解了深度學習在命名實體識別任務的基本架構: embedding作為輸入,使用LSTM提取上下文特征,使用CRF獲得label的轉移矩陣,即對label的最后輸出做一個限制。可做的優化點有:1、對embedding進行增強特征,比如char embedding與word embedding進行拼接,加入分詞信息,加入部首信息等;2、多任務學習,經試驗對意圖和槽位聯合訓練比兩個任務分別學習效果更明顯。
后續研究內容是調研tensorflow中crf實現過程。

【參考文獻】

[1].Neural Architectures for Named Entity Recognition
[2] Neural Architectures for Named Entity Recognition
[3] A Survey on Recent Advances in Named Entity Recognition from DeepLearning models
[4] Improving Named Entity Recognition for Chinese Social Mediawith Word Segmentation Representation Learning
[5] Character-Based LSTM-CRF with Radical-LevelFeatures for Chinese Named Entity Recognition


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM