日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【详解】BiLSTM+CRF模型

發布時間:2023/12/31 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【详解】BiLSTM+CRF模型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

        • 1 BiLSTM-CRF模型用途
        • 2 BiLSTM-CRF模型介紹
          • 2.1 數據標簽及模型架構
            • 2.1.1 數據標簽
            • 2.1.2 模型架構
          • 2.2 BiLSTM模型
            • 2.2.1 BiLSTM模型介紹及聯系
            • 2.2.2 代碼實現細節
          • 2.3 CRF模型
            • 2.3.1 CRF模型定義及聯系
            • 2.3.2 CRF作用
            • 2.3.3 CRF層的損失函數
          • 2.4 BiLSTM-CRF模型代碼實現
            • 2.4.1 BiLSTM+CRF模型的實現
            • 2.4.2 模型訓練的流程

1 BiLSTM-CRF模型用途

  • 命名實體識別(Named Entity Recognition,NER)

    • 定義

      • 從一段自然語言文本中找出相關實體,并標注出其位置以及類型。
      • 是信息提取, 問答系統, 句法分析, 機器翻譯等應用領域的重要基礎工具。
      • 在自然語言處理技術走向實用化的過程中占有重要地位. 包含行業, 領域專有名詞, 如人名, 地名, 公司名, 機構名, 日期, 時間, 疾病名, 癥狀名, 手術名稱, 軟件名稱等。
    • 命名實體識別問題實際上是序列標注問題

    序列標注問題指的是模型的輸入是一個序列, 包括文字, 時間等, 輸出也是一個序列. 針對輸入序列的每一個單元, 輸出一個特定的標簽.

    以中文分詞任務進行舉例, 例如輸入序列是一串文字: “我是中國人”, 輸出序列是一串標簽: “OOBII”, 其中"BIO"組成了一種中文分詞的標簽體系: B表示這個字是詞的開始, I表示詞的中間到結尾, O表示其他類型詞. 因此我們可以根據輸出序列"OOBII"進行解碼, 得到分詞結果"我\是\中國人"。

    • 序列標注問題涵蓋了自然語言處理中的很多任務, 包括語音識別, 中文分詞, 機器翻譯, 命名實體識別等, 而常見的序列標注模型包括HMM, CRF, RNN, LSTM, GRU等模型。
    • 其中在命名實體識別技術上, 目前主流的技術是通過BiLSTM+CRF模型進行序列標注。

2 BiLSTM-CRF模型介紹

2.1 數據標簽及模型架構
2.1.1 數據標簽
B-Person (人名的開始部分)I- Person (人名的中間部分)B-Organization (組織機構的開始部分)I-Organization (組織機構的中間部分)O (非實體信息)
2.1.2 模型架構

x 是包含了5個單詞的一句話(W0,W1,W2,W3,W4)。還有,在句子x中[W0,W1]是人名,[W3]是組織機構名稱,其他都是“O”。

  • 句中的每個單詞是一條包含詞嵌入和字嵌入的詞向量,詞嵌入通常是事先訓練好的,字嵌入則是隨機初始化的。所有的嵌入都會隨著訓練的迭代過程被調整。
  • BiLSTM-CRF的輸入是詞嵌入向量,輸出是每個單詞對應的預測標簽。

  • BiLSTM層的輸入表示該單詞對應各個類別的分數。如W0,BiLSTM節點的輸出是1.5 (B-Person), 0.9 (I-Person), 0.1 (B-Organization), 0.08 (I-Organization) and 0.05 (O)。這些分數將會是CRF層的輸入
  • 所有的經BiLSTM層輸出的分數將作為CRF層的輸入,類別序列中分數最高的類別就是我們預測的最終結果。
2.2 BiLSTM模型
2.2.1 BiLSTM模型介紹及聯系
  • 所謂的BiLSTM,就是(Bidirectional LSTM)雙向LSTM. 單向的LSTM模型只能捕捉到從前向后傳遞的信息, 而雙向的網絡可以同時捕捉正向信息和反向信息, 使得對文本信息的利用更全面, 效果也更好.
  • 在BiLSTM網絡最終的輸出層后面增加了一個線性層, 用來將BiLSTM產生的隱藏層輸出結果投射到具有某種表達標簽特征意義的區間, 具體如下圖所示:

2.2.2 代碼實現細節
  • BiLSTM網絡結構
    • 設置隱藏層維度的時候, 需要將hidden_size // 2
    • 總共有3層需要構建, 分別是詞嵌入層, 雙向LSTM層, 全連接線性層
    • 在代碼層面, 雙向LSTM就是將nn.LSTM()中的參數bidirectional設置為True
  • BiLSTM網絡的代碼實現
    • 構建類BiLSTM的初始化函數
    • 添加文本向量化的輔助函數, 注意padding填充為相同長度的Tensor
    • 要注意forward函數中不同張量的形狀約定
2.3 CRF模型
2.3.1 CRF模型定義及聯系
  • CRF(全稱Conditional Random Fields), 條件隨機場. 是給定輸入序列的條件下, 求解輸出序列的條件概率分布模型.

  • 即使沒有CRF層,我們照樣可以訓練一個基于BiLSTM的命名實體識別模型(因為BiLSTM模型的結果是單詞對應各類別的分數,我們可以選擇分數最高的類別作為預測結果。)

    例如W0,“B-Person”的分數最高(1.5),那么我們可以選定“B-Person”作為預測結果。同樣的,W1是“I-Person”, W2是“O”,W3是 “B-Organization” ,W4是 “O”。

  • 但實際情況可能出現下列預測結果

2.3.2 CRF作用

CRF層可以加入一些約束來保證最終預測結果是有效的(CRF層可以學習到句子的約束條件)。這些約束可以在訓練數據時被CRF層自動學習得到。

可能的約束條件有:

  • 句子的開頭應該是“B-”或“O”,而不是“I-”。
  • “B-label1 I-label2 I-label3…”,在該模式中,類別1,2,3應該是同一種實體類別。比如,“B-Person I-Person” 是正確的,而“B-Person I-Organization”則是錯誤的。
  • “O I-label”是錯誤的,命名實體的開頭應該是“B-”而不是“I-”。

有了這些有用的約束,錯誤的預測序列將會大大減少。

2.3.3 CRF層的損失函數

1 Emission Score(發射分數/狀態分數)

發射概率, 是指已知當前標簽的情況下, 對應所出現字符的概率. 通俗理解就是當前標簽比較可能出現的文字有哪些, 及其對應出現的概率.

Xi,yj代表狀態分數,i是單詞的位置索引,yj是類別的索引。根據上表,

  • 表示單詞W1被預測為B?Organization的分數是0.1。

2 Transition Score (轉移分數)

我們用t(yi,yj)來表示轉移分數。例如,t(B?Person,I?Person)=0.9表示從類別B?Person→I?Person的分數是0.9。因此,我們有一個所有類別間的轉移分數矩陣。

為了使轉移分數矩陣更具魯棒性,我們加上START 和 END兩類標簽。START代表一個句子的開始(不是句子的第一個單詞),END代表一個句子的結束。

下表是加上START和END標簽的轉移分數矩陣。

如上表格所示,轉移矩陣已經學習到一些有用的約束條件:

  • 句子的第一個單詞應該是“B-” 或 “O”,而不是“I”。(從“START”->“I-Person 或 I-Organization”的轉移分數很低)
  • “B-label1 I-label2 I-label3…”,在該模式中,類別1,2,3應該是同一種實體類別。比如,“B-Person I-Person” 是正確的,而“B-Person I-Organization”則是錯誤的。(“B-Organization” -> “I-Person”的分數很低)
  • “O I-label”是錯誤的,命名實體的開頭應該是“B-”而不是“I-”。

要怎樣得到這個轉移矩陣呢?

實際上,轉移矩陣是BiLSTM-CRF模型的一個參數。在訓練模型之前,你可以隨機初始化轉移矩陣的分數。這些分數將隨著訓練的迭代過程被更新,換句話說,CRF層可以自己學到這些約束條件。

3 CRF損失函數

CRF損失函數由兩部分組成,真實路徑的分數 和 所有路徑的總分數。真實路徑的分數應該是所有路徑中分數最高的。

例如,我們的數據集中有如下幾種類別:

一個包含5個單詞的句子,可能的類別序列如下:

  • \1. START B-Person B-Person B-Person B-Person B-Person END
  • \2. START B-Person I-Person B-Person B-Person B-Person END
  • ……
  • 10. START B-Person I-Person O B-Organization O END
  • N. O O O O O O O

每種可能的路徑的分數為Pi,共有N條路徑,則路徑的總分是

,e是常數e。

如果第十條路徑是真實路徑,也就是說第十條是正確預測結果,那么第十條路徑的分數應該是所有可能路徑里得分最高的。

根據如下損失函數,在訓練過程中,BiLSTM-CRF模型的參數值將隨著訓練過程的迭代不斷更新,使得真實路徑所占的比值越來越大。

2.4 BiLSTM-CRF模型代碼實現
2.4.1 BiLSTM+CRF模型的實現
  • 第一步: 導入工具包并完成輔助函數
  • 第二步: 文本信息張量化
  • 第三步: 創建類的初始化函數
  • 第四步: 創建獲取發射矩陣張量的函數
  • 第五步: 計算前向傳播分值的函數
  • 第六步: 計算句子真實分值的函數
  • 第七步: 維特比算法的實現
  • 第八步: 完善BiLSTM_CRF類的全部功能
2.4.2 模型訓練的流程
  • 第一步: 熟悉字符到數字編碼的碼表
  • 第二步: 熟悉訓練數據集的樣式和含義解釋
  • 第三步: 完成字符到id的映射函數
  • 第四步: 獲取訓練數據和驗證數據的函數
  • 第五步: 完成準確率和召回率的評估代碼
  • 第六步: 繪制損失曲線和評估曲線圖
  • 第七步: 完成訓練模型的完整代碼
  • 第八步: 訓練集和驗證集損失曲線和指標數據曲線的分析

總結

以上是生活随笔為你收集整理的【详解】BiLSTM+CRF模型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日本极品丰满ⅹxxxhd | 国产精品九九九 | 免费视频色 | jlzzjlzz亚洲日本少妇 | 国产欧美日韩精品一区二区三区 | 2019中文字幕在线免费观看 | 性猛交富婆╳xxx乱大交天津 | 在线国产黄色 | 国模无码大尺度一区二区三区 | 日韩资源在线观看 | 中文字幕无码日韩专区免费 | 黄色网av | 亚洲高清在线免费观看 | 在线观看黄网址 | 精品人妻无码专区视频 | 国产精品女同一区二区 | 日本久久久久久久久久 | 青草福利视频 | 色哟哟免费观看 | 欧美激情在线观看视频 | 中文字幕一区二区三区四区欧美 | 97碰碰视频| 天堂资源av | 国产日产亚洲精品 | 欧美专区 日韩专区 | 四季av一区二区凹凸精品 | 一级特黄bbbbb免费观看 | 男人都懂的网站 | 日韩一级在线观看 | 色秀av| 免费在线观看成年人视频 | 欧美日韩国产精品成人 | 久久99久 | 西西大胆午夜视频 | 打开每日更新在线观看 | 在线看片网址 | 免费国产在线视频 | 三区在线视频 | 美女又爽又黄免费视频 | 一区视频网站 | 国产精品宾馆在线精品酒店 | 91av国产在线 | 蜜臀av在线播放 | 久久99精品久久久久久国产越南 | 大牛影视剧免费播放在线 | 91九色蝌蚪| av我不卡 | 情五月| 日本女人hd | 九九一级片 | 午夜精品久久久久久久无码 | 亚洲综合久久av一区二区三区 | 国产日韩欧美综合 | 三级麻豆 | 免费看久久 | 自拍视频啪 | 日本在线观看免费 | 成人综合在线观看 | 国产精品无码一区二区三区三 | 色偷偷av男人的天堂 | 欧美色图激情小说 | 国产福利不卡视频 | 极品91 | 夜夜摸夜夜爽 | av色区| 欧美精品999 | 中国女人内谢69xxxx免费视频 | 一级久久久 | 国产免费一区,二区 | 午夜免费激情视频 | 人人爱超碰| 91在线色 | 男女做爰猛烈高潮描写 | 久久久视频6r | 国产乱大交 | 亚洲精品二三区 | 亚洲一级影片 | 欧美丰满熟妇xxxx | 农村妇女精品一区二区 | 国产一区激情 | 成人www. | www精品一区二区三区 | 波多野结av衣东京热无码专区 | 一级美女黄色片 | 黑森林福利视频导航 | 日韩黄色影院 | 午夜成人影片 | 人人干人人澡 | 日本高清免费视频 | 国产色频| 国产精品香蕉在线观看 | 国产视频导航 | 百合sm惩罚室羞辱调教 | 欧美日韩123区 | 在线免费观看av不卡 | 交做爰xxxⅹ性爽 | 偷偷色噜狠狠狠狠的777米奇 | 日日噜噜噜噜人人爽亚洲精品 | 国产精品精品 |