**
介紹——在命名實體識別任務中,bilstm模型中crf層的通用思想
詳細的例項——通過例項來一步步展示crf的工作原理
實現——crf層的一步步實現過程
1.介紹
基於神經網路的方法,在命名實體識別任務中非常流行和普遍。在文獻中,作者提出了bi-lstm模型用於實體識別任務中,在模型中用到了字嵌入和詞嵌入。本文將向你展示crf層是如何工作的。
如果你不知道bi-lstm和crf是什麼,你只需要記住他們分別是命名實體識別模型中的兩個層。
1.1開始之前
我們假設我們的資料集中有兩類實體——人名和地名,與之相對應在我們的訓練資料集中,有五類標籤:
b-person, i- person,b-organization,i-organization, o
假設句子x由五個字元w1,w2,w3,w4,w5組成,其中【w1,w2】為人名類實體,【w3】為地名類實體,其他字元標籤為「o」。
1.2bilstm-crf模型
以下將給出模型的結構:
第一,句子x中的每乙個單元都代表著由字嵌入或詞嵌入構成的向量。其中,字嵌入是隨機初始化的,詞嵌入是通過資料訓練得到的。所有的嵌入在訓練過程中都會調整到最優。
第二,這些字或詞嵌入為bilstm-crf模型的輸入,輸出的是句子x中每個單元的標籤。
圖1. bi-lstm結構圖
儘管一般不需要詳細了解bilstm層的原理,但是為了更容易知道crf層的執行原理,我們需要知道bilstm的輸出層。
圖2.bi-lstm標籤**原理圖
如上圖所示,bilstm層的輸出為每乙個標籤的**分值,例如,對於單元w0,bilstm層輸出的是1.5 (b-person), 0.9 (i-person), 0.1 (b-organization), 0.08 (i-organization) and 0.05 (o). 這些分值將作為crf的輸入。
1.3 如果沒有crf層會怎樣
你也許已經發現了,即使沒有crf層,我們也可以訓練乙個bilstm命名實體識別模型,如圖3.所示:
圖3.去除crf的bilstm命名實體識別模型
由於bilstm的輸出為單元的每乙個標籤分值,我們可以挑選分值最高的乙個作為該單元的標籤。例如,對於單元w0,「b-person」有最高分值—— 1.5,因此我們可以挑選「b-person」作為w0的**標籤。同理,我們可以得到w1——「i-person」,w2—— 「o」 ,w3——「b-organization」,w4——「o」。
雖然我們可以得到句子x中每個單元的正確標籤,但是我們不能保證標籤每次都是**正確的。例如,圖4.中的例子,標籤序列是「i-organization i-person」 and 「b-organization i-person」,很顯然這是錯誤的。
圖4. 去除crf層的bilstm模型
1.4crf層能從訓練資料中獲得約束性的規則
crf層可以為最後**的標籤新增一些約束來保證**的標籤是合法的。在訓練資料訓練過程中,這些約束可以通過crf層自動學習到。
這些約束可以是:
i:句子中第乙個詞總是以標籤「b-「 或 「o」開始,而不是「i-」
ii:標籤「b-label1 i-label2 i-label3 i-…」,label1, label2, label3應該屬於同一類實體。例如,「b-person i-person」 是合法的序列, 但是「b-person i-organization」 是非法標籤序列.
iii:標籤序列「o i-label」 is 非法的.實體標籤的首個標籤應該是 「b-「 ,而非 「i-「, 換句話說,有效的標籤序列應該是「o b-label」。
有了這些約束,標籤序列**中非法序列出現的概率將會大大降低。
條件隨機場實現命名實體識別
nlp 被很多人稱為人工智慧皇冠上的明珠,可見其在 ai 領域的重要性,而命名實體識別 ner 又一直是 nlp 領域的研究熱點,所以這塊任務是 nlp 必談的。ner 早期的實現主要是基於詞典和規則,然後是基於傳統的機器學習,比如 hmm memm 和 crf。隨後深度學習崛起則很多用 crf 結...
ai命名實體識別模型 命名實體識別
crf中有兩類特徵函式,分別是狀態特徵和轉移特徵,狀態特徵用當前節點 某個輸出位置可能的狀態中的某個狀態稱為乙個節點 的狀態分數表示,轉移特徵用上乙個節點到當前節點的轉移分數表示。其損失函式定義如下 crf損失函式的計算,需要用到真實路徑分數 包括狀態分數和轉移分數 其他所有可能的路徑的分數 包括狀...
命名實體識別
簡單的分詞器 如二元分詞器 無法識別oov,所以需要運用一些規定的規則來輔助識別 如 在識別音譯人名時,可以設定規則 一旦發現某詞是人名,而該詞後面跟隨人名詞時,將他們合併 針對不同情況,需要設計相應的標註集 拿人名識別舉例 輸入資料集進行訓練後,會將人名拆分為碎片,模擬人名的錯誤切分.接著,檢查拆...