什麼是命名實體識別:命名實體識別(named entity recognition,ner)就是從一段自然語言文字中找出相關實體,並標註出其位置以及型別。是資訊提取, 問答系統, 句法分析, 機器翻譯等應用領域的重要基礎工具, 在自然語言處理技術走向實用化的過程中占有重要地位. 包含行業, 領域專有名詞, 如人名, 地名, 公司名, 機構名, 日期, 時間, 疾病名, 症狀名, 手術名稱, 軟體名稱等
方法:
基於模型: 從模型的角度來看, 命名實體識別問題實際上是序列標註問題. 序列標註問題指的是模型的輸入是乙個序列, 包括文字, 時間等, 輸出也是乙個序列. 針對輸入序列的每乙個單元, 輸出乙個特定的標籤. 以中文分詞任務進行舉例, 例如輸入序列是一串文字: 「我是中國人」, 輸出序列是一串標籤: 「oobii」, 其中"bio"組成了一種中文分詞的標籤體系: b表示這個字是詞的開始, i表示詞的中間到結尾, o表示其他型別詞. 因此我們可以根據輸出序列"oobii"進行解碼,得到分詞結果"我\是\中國人".
模型架構選擇
為什麼選擇bilstm後接乙個crf
因為bilstm輸出的乙個序列的**分數概率最大的值,作為輸出結果,每乙個輸出之間是沒有任何聯絡的,這樣導致**的實體名出錯的概率增加,例如:實體命名識別識別北京真好,要識別出北京這個城市名,北後邊不應該再出現北的,但是只用bilstm就有可能出現這種情況,bilstm後接crf可以解決這樣的問題,crf的的轉移概率會增加乙個約束,使得北轉移到北的概率為0,最終crf會選擇乙個概率最大的的作為輸出,再通過維特比演算法解碼輸出具體的實體名
不接crf bilstm的輸出是輸入序列每乙個標籤類別的分數,如下輸入w0,輸出分數[1.5,0.9,0.1,0.08,0.05]分別代表的標籤是b-person,i-person,b-orgnization,i-organization,o,顯然分值1.5最大,那麼輸出**的就為b-person
在沒有crf層的條件下我們也可以得到x中每個單元的**標籤, 但是不能保證標籤的**每次都是正確的. 如果出現下圖的bilstm層輸出結果, 則明顯**是錯誤的,i-organization的前邊不應該是o
crf作用:(全稱conditional random fields), 條件隨機場. 是給定輸入序列的條件下, 求解輸出序列的條件概率分布模型
發射概率矩陣, 是指已知當前標籤的情況下, 對應所出現字元的概率. 通俗理解就是當前標籤比較可能出現的文字有哪些, 及其對應出現的概率,如下結構圖bilstm輸出的發射矩陣,將該發射矩陣輸入到crf層,得到轉移概率矩陣**移概率矩陣:有類別數n決定,矩陣大小為nxn)
crf的作用
crf層能從訓練資料中獲得約束性的規則.
crf層可以為最後**的標籤新增一些約束來保證**的標籤是合法的. 在訓練資料訓練的過程中, 這些約束可以通過crf層自動學習到.
例如:1: 句子中的第乙個詞總是以標籤"b-「或者"o"開始, 而不是"i-「開始.
2: 標籤"b-label1 i-label2 i-label3 …」, 其中的label1, label2, label3應該屬於同一類實體.
比如, 「b-person i-person"是合法的序列, 但是"b-person i-organization"是非法的序列.
3: 標籤序列"o i-label"是非法序列, 任意實體標籤的首個標籤應該是"b-」, 而不是"i-」.
比如, "o b-label"才是合法的序列
損失函式
整個標籤序列的得分等於各個位置的得分之和,而每個位置的得分包括兩部分,一部分直接有lstm輸出決定,另一部分由crf的轉移矩陣決定,最後利用softmax來得到歸一化概率
模型訓練最大化對數似然函式log(p(y|x)
模型**使用viterbi演算法來求解最優路徑
命名實體識別 NER
一 任務 named entity recognition,簡稱ner。主要用於提取時間 地點 人物 組織機構名。二 應用 知識圖譜 情感分析 機器翻譯 對話問答系統都有應用。比如,需要利用命名實體識別技術自動識別使用者的查詢,然後將查詢中的實體鏈結到知識圖譜對應的結點上,其識別的準確率將會直接影響...
電子病歷命名實體識別NER
醫生給的標籤格式 將命名實體和標籤當成jieba分詞中的分詞和詞性,更新到jieba詞典中,然後對病歷文件進行分詞,按照bio標註每個字,每句話結束用空格分開。按照1 2 12的比例將病歷資料儲存到dev test train三個檔案中 1 將資料轉換成bioes標註,增加了es,因為標註資訊變多了...
中文命名實體識別NER詳解
中文命名實體識別是在自然語言處理領域有著具足輕重的地位,因為在很多應用中,我們一定要提取出我們話術中的實體,所以說命名實體識別是非常重要的。一般來說,現在網上有很多ner的開源庫,我們通過呼叫api就可以進行人名 地名 時間 機構名等實體的識別,效果也非常不錯。但是這僅僅是限於某一些領域的命名實體識...