1. 程式人生 > >【NLP】基於自然語言處理角度談談CRF(二)

【NLP】基於自然語言處理角度談談CRF(二)

作者:白寧超

2016年8月2日21:25:35

【摘要】:條件隨機場用於序列標註,資料分割等自然語言處理中,表現出很好的效果。在中文分詞、中文人名識別和歧義消解等任務中都有應用。本文源於筆者做語句識別序列標註過程中,對條件隨機場的瞭解,逐步研究基於自然語言處理方面的應用。成文主要源於自然語言處理、機器學習、統計學習方法和部分網上資料對CRF介紹的相關的相關,最後進行大量研究整理彙總成體系知識。文章佈局如下:第一節介紹CRF相關的基礎統計知識;第二節介紹基於自然語言角度的CRF介紹;第三節基於機器學習角度對CRF介紹,第四節基於統計學習角度對相關知識介紹;第五節對統計學習深度介紹CRF,可以作為了解內容。(本文原創,轉載請註明出處

基於自然語言處理角度談談CRF。)

目錄

【自然語言處理:漫步條件隨機場系列文章(一)】:

【自然語言處理:漫步條件隨機場系列文章(二)】:

【自然語言處理:漫步條件隨機場系列文章(三)】:

【自然語言處理:漫步條件隨機場系列文章(四)】:

【自然語言處理:漫步條件隨機場系列文章(五)】:

1 條件隨機場(Condition Random Fields),簡稱CRFs

條件隨機場概念條件隨機場就是對給定的輸出標識序列Y和觀察序列X,條件隨機場通過定義條件概率P(X|Y),而不是聯合概率分佈P(X,Y)來描述模型。

概念解析:

標註一篇文章中的句子,即語句標註,使用標註方法BIO標註,B代表句子的開始,I代表句子中間,O代表句子結束。則觀察序列X就是一個語料庫(此處假設一篇文章,x代表文章中的每一句,X是x的集合),標識序列Y是BIO,即對應X序列的識別,從而可以根據條件概率P(標註|句子),推測出正確的句子標註,顯然,這裡針對的是序列狀態,即CRF是用來標註或劃分序列結構資料的概率化結構模型,其在自然語言處理和影象處理領域得到廣泛的應用,CRF可以看作無向圖模型或者馬爾科夫隨機場。

2 條件隨機場的形式化表示

 設G=(V,E)為一個無向圖,V為結點的集合,E為無向邊的集合,即V中的每個結點對應一個隨機變數Yv,其取值範圍為可能的標記集合{Y}.如果觀察序列X為條件,每一個隨機變數 都滿足以下馬爾科夫特性:,其中,w – v表示兩個結點在圖G中是鄰近結點,那麼,(X,Y)為條件隨機變數。

以語句識別的案例理解條件隨機場的形式化表示。

 G=(V,E表示識別語句:【我愛中國】的標註是一個無向圖,X我觀察序列,Y為標註序列,V是每個標註狀態的結點,E的無向邊,邊上的權值為概率值。表示每個X的Y的標註,如:X1:我,y1:O,y2:I,y3:B;取值範圍,而

中w—v表示我與愛是相鄰的結點,這樣的(X,Y)為一個條件隨機場,真正的標註再採用Viterbi演算法,如:

尋求最大概率即,記錄下我的標註路徑,同理可知:

 

如上便是對條件隨機場與Viterbi演算法的綜合運用,其中Viterbi標註問題本質是隱馬爾科夫模型三大問題之解碼問題演算法模型,具體參考(揭祕馬爾科夫模型系列文章)

3 深度理解條件隨機場

理論上標記序列描述一定條件的獨立性,G圖結構任意的,對序列進行建模可形成最簡單,最普通的鏈式結構圖,結點對應標記序列X中元素,CRF鏈式圖如下:

 

如上圖兩種表示是一致的,其中圖鏈式句子標註是圖鏈式2的例項化,讀者可能問為什麼上面圖是這種而不是廣義的圖,這是因為觀察序列X的元素之間並不存在圖結構,沒有做獨立性假設,這點也非常容易理解,諸如圖中,我愛中國,其中b表示反射概率而t是轉移概率,線上的數值表示權值即概率值。如圖3,我的發射概率0.7,我到愛的轉移概率0.5,通俗講,我和愛兩個字是有關聯的,並非獨立的。

4 公式化表示條件隨機場

在給定的觀察序列X時,某個待定標記序列Y的概率可以定義為

其中是轉移概率,是狀態函式,表示觀察序列X其中i的位置的標記概率,分別是t和s的權重,需要從訓練樣本中估計出來。

例項解析

我愛中國,其中x2是愛字,表示在觀察狀態2中,我到愛的轉移概率,其中j∈{B,I,O},可知的生成概率或者發射概率的特徵函式.觀察序列{0,1}二值特徵b(x,i)來表示訓練樣本中某些分佈特徵,其中採用{0,1}二值特徵即符合條件標為1,反之為0;

為了便於描述,可以將狀態函式書寫以下形式:

 
特徵函式:

 

其中每個區域性特徵表示狀態特徵,或者專業函式,由此條件隨機場的定義條件概率如下:

其中分母為歸一化因子:

 

5 本節總結

條件隨機場模型也需要解決三個基本問題:特徵的選擇,引數訓練和解碼。其中引數訓練過程在訓練資料集上基於對數似然函式最大化進行。

CRF優點:相對於HMM,CRF主要優點是它的條件隨機性,只需要考慮當前出現的觀察狀態的特性,沒有獨立性嚴格要求,CRF具有MEMM一切優點。

CRF與MEMM區別:

MEMM:使用每一個狀態的指數模型來計算給定前一個狀態下當前狀態的條件概率。

CRF:用單個指數模型計算給定觀察序列與整個標記序列聯合概率。

《統計自然語言處理》P128頁有關於隨機場模型的實現工具。

6 參考文獻

【1】 數學之美 吳軍 著

【2】 機器學習  周志華 著

【3】 統計自然語言處理 宗成慶 著(第二版)

【4】 統計學習方法(191---208) 李航

【5】 知乎 網路資源

7 自然語言相關係列文章

宣告:關於此文各個篇章,本人採取梳理扼要,順暢通明的寫作手法。系統閱讀相關書目和資料總結梳理而成,旨在技術分享,知識沉澱。在此感謝原著無私的將其匯聚成書,才得以引薦學習之用。其次,本人水平有限,權作知識理解積累之用,難免主觀理解不當,造成讀者不便,基於此類情況,望讀者留言反饋,便於及時更正。本文原創,轉載請註明出處基於自然語言處理角度談談CRF。

相關推薦

NLP基於自然語言處理角度談談CRF()

作者:白寧超 2016年8月2日21:25:35 【摘要】:條件隨機場用於序列標註,資料分割等自然語言處理中,表現出很好的效果。在中文分詞、中文人名識別和歧義消解等任務中都有應用。本文源於筆者做語句識別序列標註過程中,對條件隨機場的瞭解,逐步研究基於自然語言處理方面的應用。成文主要源於自然語言處理

NLP基於統計學習方法角度談談CRF(四)

作者:白寧超 2016年8月2日13:59:46 【摘要】:條件隨機場用於序列標註,資料分割等自然語言處理中,表現出很好的效果。在中文分詞、中文人名識別和歧義消解等任務中都有應用。本文源於筆者做語句識別序列標註過程中,對條件隨機場的瞭解,逐步研究基於自然語言處理方面的應用。成文主要源於自然語言處理

python 走進NLPpyhanlp 自然語言處理

安裝: pip install pyhanlp 若安裝失敗: 從這裡下載JPype allows full access to Java class libraries. https://www.lfd.uci.edu/~gohlke/pythonlibs/#jpype 開

自然語言處理論述自然語言處理的技術範疇

文章目錄 論述自然語言處理的技術範疇 一、前言 二、主要技術範疇 1、語音合成(Speech Synthesis) 2、語音識別(Speech Recognition) 3、中

NLP基於機器學習角度談談CRF(三)

作者:白寧超 2016年8月3日08:39:14 【摘要】:條件隨機場用於序列標註,資料分割等自然語言處理中,表現出很好的效果。在中文分詞、中文人名識別和歧義消解等任務中都有應用。本文源於筆者做語句識別序列標註過程中,對條件隨機場的瞭解,逐步研究基於自然語言處理方面的應用。成文主要源於自然語言處理

跳躍NLP曲線:自然語言處理研究綜述(三)(翻譯)

3. 重疊NLP曲線 隨著網際網路時代的到來,文明經歷了深刻的影響,我們現在比以往任何時候都經歷的快很多。即使是適應、發展和創新技術,也會讓人感到恍惚,即淘汰就在眼前。特別是NLP研究在過去15年中並沒有像其它技術那樣發展。 雖然NLP研究在執行人工智慧行為

跳躍NLP曲線:自然語言處理研究綜述(五)(翻譯)

6. 展望語義曲線 敘事理解和生成是推理,決策和“意識形成”的核心。除了作為人與人交流的關鍵部分之外,敘事也是構建現實和進行規劃的手段。解讀人類大腦如何生成和處理敘事可能最終導致我們真正理解和解釋人類的智慧和意識。計算機建模是研究敘事理解的有效方法。在知識表達

NLPTika 文字預處理:抽取各種格式檔案內容

作者 白寧超 2016年3月30日18:57:08 摘要:本文主要針對自然語言處理(NLP)過程中,重要基礎部分抽取文字內容的預處理。首先我們要意識到預處理的重要性。在大資料的背景下,越來越多的非結構化半結構化文字。如何從海量文字中抽取我們需要的有價值的知識顯得尤為重要。另外文字格式常常不一,諸

NLP基於CRF條件隨機場的命名實體識別原理詳解

1. 命名實體用來做什麼? 在自然語言處理應用領域中,命名實體識別是資訊檢索、知識圖譜、機器翻譯、情感分析、問答系統等多項自然語言處理應用的基礎任務,例如,我們需要利用命名實體識別技術自動識別使用者的查詢,然後將查詢中的實體連結到知識圖譜對應的結點上其識別的準確率將會直接影

自然語言處理 學習筆記(

個人學習nlp筆記:學習材料CS124、COSC572和《Speech and Language Processing》第三版 自然語言處理 學習筆記(二) 1.語言模型(language modeling) 1.1.概率語言模型(N-gram

python自然語言處理-學習筆記(

     在第二章中,主要介紹了各個預料庫的使用,這裡不再贅述,對於預料庫的操作,之前書中都提到過。這裡只說一下一個問題,在inaugural預料庫中,測試輸出條件分佈圖的時候,他的程式碼裡有個問題,我按照書中寫的方法,得到的結果如下: >>> cfd

Docker基於例項專案的叢集部署()部署專案例項介紹與搭建

部署專案簡介 我們要部署的專案是人人網的一個基於前後端分離的專案:renren-fast。 你可以在這裡對該專案進行下載,並對相關介紹文件進行了解: https://www.renren.io/community/project https://www.renren.io/guide

git基於github開源平臺的專案進行次開發

1.安裝git服務: https://blog.csdn.net/oqqHun123/article/details/85791425   2.開啟github官網: https://github.com/   3.輸入自己需要檢索的關鍵字 注:adm

NLP漢語自然語言處理與實踐分詞_筆記

統計 The 計算 分詞 其余 雙向 name -c max 一、兩種分詞標準: 1. 粗粒度。 將詞作為最小基本單位。比如:浙江大學。 主要用於自然語言處理的各種應用。 2. 細粒度。 不僅對詞匯繼續切分,也對詞匯內部的語素進行切分。比如:浙江/大學。 主要用於搜索

自然語言處理句法分析 (syntactic parsing) 在 NLP 領域的應用是怎樣的?

文章整理自郭江師兄問題回答(被收錄於知乎編輯推薦)!已取得師兄授權!@jiangfeng 原問題如下: opinion extraction system,information retrieval system是如何通過syntactic parsing實現的? 解答如下:這裡面有兩個問題:1.

NLP十分鐘快覽自然語言處理學習總結

作者:白寧超 2016年9月23日00:24:12 摘要:近來自然語言處理行業發展朝氣蓬勃,市場應用廣泛。筆者學習以來寫了不少文章,文章深度層次不一,今天因為某種需要,將文章全部看了一遍做個整理,也可以稱之為概述。關於這些問題,部落格裡面都有詳細的文章去介紹,本文只是對其各個部分高度概括梳理。

NLP百度AI平臺自然語言處理API呼叫(情感分析案例)

首先先註冊登入百度AI平臺,自然語言處理是免費的,有5 QPS,夠用了,不夠用可以申請增加。 我申請增加至10 QPS,通過得很快。 相關配置準備 找到百度AI平臺的NLP入口: 看到自然語言處理 點選進入 進入之後跳轉到自然語言處理產品頁 點選

NLP老司機帶你入門自然語言處理

自然語言處理是一門用於理解人類語言、情感和思想的技術,被稱為是人工智慧皇冠上的明珠。   隨著深度學習發展,自然語言處理技術近年來發展迅速,在技術上表現為BERT、GPT等表現極佳的模型;在應用中表現為chatbot、知識圖譜、輿情監控等基於NLP技術的產品在市場上的大規模出現。   基於

數學之美筆記自然語言處理部分(一).md

strip BE 模擬 ges arr 實驗 語句 次數 而不是 文字、數字、語言 、信息 數字、文字和自然語言一樣,都是信息的載體,他們的產生都是為了記錄和傳播信息。 但是貌似數學與語言學的關系不大,在很長一段時間內,數學主要用於天文學、力學。 本章,我們將回顧一下信息時