命名實體識別總結

1、什麼是命名實體識別

   命名實體識別(NER)是指在文本中識別出特殊對象,這些對象的語義類別一般在識別前被預約義好,預約義類別如人、地址、組織等。命名實體識別不只僅是獨立的信息抽取任務,它在許多大型nlp應用系統如信息檢索、自動文本摘要、問答系統、機器翻譯以及知識建庫(知識圖譜)中也扮演了關鍵的角色。web

1. 命名實體分類

2. 方法分類

傳統:網絡

  • 基於規則的方法
  • 無監督方法
  • 基於特徵的監督學習方法

當今:dom

  • 深度學習方法

3. 形式化定義

  給定標識符集合s=<w1,w2,...,wN>,NER輸出一個三元組<Is,Ie,t>的列表,列表中的每一個三元組表明s中的一個命名實體。分佈式

  • Is屬於[1,N],爲命名實體的起始索引
  • Ie屬於[1,N],爲命名實體的結束索引
  • t指代從預約義類別中選擇的實體類型

例:工具

4. NER任務分類

2、背景

1. 數據集

  有監督方法的NER任務依賴標註數據集。2005 年以前,數據集主要經過標註新聞文章獲得而且預約義的實體種類少,這些數據集適合用於粗粒度的NER任務; 2005 年以後,數據集來源愈來愈多,包括但不限於維基百科文章、對話、用戶生成語料(如推特等社區的用戶留言)等,而且預約義的實體類別也多了許多,以數據集 OneNotes 爲例,其預約義的實體類別達到了89種之多。性能

  全部數據集中,最多見的數據集爲 CoNLL03 和 OneNotes,分別常見於粗粒度的NER任務和細粒度的NER任務。學習

  常見的數據集列舉以下:ui

2. 工具

  現成的NER工具來源於學界、工業界以及開源項目。列舉以下:編碼

3、評估標準

1. 精確匹配評估

  NER任務須要同時肯定實體邊界以及實體類別。在精確匹配評估中,只有當實體邊界以及實體類別同時被精確標出時,實體識別任務才能被認定爲成功。基於數據的TP、FP以及FN,能夠計算NER任務的準確率,召回率以及F-score用於評估任務優劣。spa

  

準確率 

Precision=\frac{TP}{TP+FP}
召回率 Recall = \frac{TP}{TP+FN}

F-score:F-score 是精確率和召回率的調和平均,最經常使用的 F-score :

2\times\frac{Precision\times Recall}{Precision+Recall}

 

  絕大多數的NER任務須要識別多種實體類別,須要對全部的實體類別評估NER的效果。基於這個思路,有兩類評估指標:

2. 寬鬆匹配評估

4、傳統的NER方法

1. 基於規則的方法

2. 無監督學習方法

3. 基於特徵的有監督學習方法

5、深度學習方法

1. 爲何使用深度學習方法

2. 模型分類法

  一個深度NER系統的結構示例:

 

6、輸入的分佈式表示

  分佈式語義表示:一個單詞的含義是由這個單詞常出現的語境(上下文)所決定的.

  一種直接粗暴的單詞表示方法爲 one-hot 向量表示。這種方法一般向量的維度太大,極度稀疏,且任何兩個向量都是正交的,沒法用於計算單詞類似度(見 CS224N lecture1筆記)。分佈式表示使用低維度稠密實值向量表示單詞,其中每一個維度表示一個隱特徵(此類特徵由模型自動學習獲得,而非人爲明確指定,研究者每每不知道這些維度到底表明的是什麼具體的特徵)。這些分佈式表示能夠自動地從輸入文本中學習獲得重要的信息。深度NER模型主要用到了三類分佈式表示:

  • 單詞級別表示
  • 字符級別表示
  • 混合表示

1. 單詞級別的分佈式表示

做爲後續階段的輸入,這些詞嵌入向量既能夠在預訓練以後就固定,也能夠根據具體應用場景進行調整。

  典型的應用:

2. 字符級別的表示

  典型例子:

3. 混合表示

典型例子以下:

7、語義編碼結構

  基於深度學習的NER系統的第二步時利用輸入表示學習語義編碼。常見的語義編碼結構有:

  • 卷積神經網絡(convolutional neural network)
  • 循環神經網絡(recurrent neural network)
  • 遞歸神經網絡(recursive neural network)
  • 神經語言模型
  • transformer

  如無特殊說明,文中的 RNN 通常指循環(recurrent)神經網絡。

1. 卷積神經網絡(CNN)

  如圖是一個經典的基於 CNN 的句子處理方法:

  輸入表示階段,輸入序列中的每個詞都被嵌入一個 N 維的向量。在這以後,系統利用卷積神經網絡來產生詞間的局部特徵,而且此時卷積神經網絡的輸出大小還與輸入句子的大小有關。隨後,經過對該局部特徵施加極大池化(max pooling)或者平均池化(average pooling)操做,咱們能獲得大小固定且與輸入相互獨立的全局特徵向量。這些長度大小固定的全局特徵向量以後將會被導入標籤解碼結構中,分別對全部可能的標籤計算相應的置信分數,完成對標籤的預測。

2. 循環神經網絡(Recurrent NN)

循環神經網絡在處理序列輸入時效果優秀,它有兩個最多見的變種:

  • GRU(gated recurrent unit)
  • LSTM(long-short term memory)

特別的,雙向循環神經網絡(bidirectional RNNs)能同時有效地利用過去的信息和將來的信息,便可以有效利用全局信息。所以,雙向循環神經網絡逐漸成爲解決 NER 這類序列標註任務的標準解法。

  典型例子:

3. 遞歸神經網絡(Recursive NN)

  遞歸神經網絡是一種非線性自適應的模型,它能夠學習獲得輸入的深度結構化信息。命名實體與某些語言成分聯繫十分緊密,如名詞詞組。傳統的序列標註方法幾乎忽略了句子的結構信息(成分間的結構),而遞歸神經網絡能有效的利用這樣的結構信息,從而得出更好的預測結果。

  典型例子:

  • Leveraging linguistic structures for named entity recognition with bidirectional recursive neural networks

 

4. 神經語言模型

  語言模型是一類描述序列生成的模型。給定符號序列 (t_1,t_2,...,t_N) ,且已知符號 t_k 以前的符號爲 (t_1,...,t_{k-1}) ,前向語言模型經過對符號 t_k 的機率進行建模來計算整個序列的機率:

  相似的,反向語言模型對整個序列的計算以下:

  而雙向語言模型(結合了前向和反向語言模型)同時利用了過去和將來的詞的信息來計算當前符號的機率,於是能夠很好的利用語境的語義與句法信息

  典型例子:

  • Semisupervised sequence tagging with bidirectional language models 文章認爲,利用單詞級別表示做爲輸入來產生上下文表示的循環神經網絡每每是在相對較小的標註數據集上訓練的。而神經語言模型能夠在大型的無標註數據集上訓練。文中模型同時使用詞嵌入模型與神經語言模型對無監督的語料進行訓練,獲得兩種單詞表示;以後模型中省去了將輸入向量轉化爲上下文相關向量的操做,直接結合前面獲得的兩類單詞表示並用於有監督的序列標註任務,簡化了模型的結構。示例圖以下:

5. transforer

  典型例子:

 

8、標籤解碼結構

  標籤解碼是NER模型中的最後一個階段。在獲得了單詞的向量表示並將它們轉化爲上下文相關的表示以後,標籤解碼模塊以它們做爲輸入並對整個模型的輸入預測相應的標籤序列。主流的標籤解碼結構分爲四類:

  • 多層感知器+Softmax
  • 條件隨機場
  • 循環神經網絡
  • pointer networks

1. 多層感知器+softmax

  利用這個結構能夠將NER這類序列標註模型視爲多類型分類問題。基於該階段輸入的上下文語義表示,每一個單詞的標籤被獨立地預測,與其鄰居無關。

  例子以下:

2. 條件隨機場

  條件隨機場(conditional random fields)是一類機率圖模型,在基於特徵的有監督方法中應用普遍,近來的許多深度學習方法也使用條件隨機場做爲最後的標籤標註結構。其缺點爲: 沒法充分利用段級信息,由於段的內部屬性沒法使用字級表示進行徹底編碼。

  例子以下:

3. 循環神經網絡

  一些研究使用 RNN 來預測標籤。

  例子以下:

4. pointer networks

 

 

 參考文獻:

【1】【綜述筆記】命名實體識別中的深度學習方法

【2】A survey on deep learning for named entity recognition

相關文章
相關標籤/搜索