搭建NER(命名實(shí)體識(shí)別)分類器

Methods for NER

  • 利用規(guī)則(比如正則)
  • 投票模型 (Majority Voting) baseline
  • 利用分類模型
    • 非時(shí)序模型 邏輯回歸 SVM
    • 時(shí)序模型 :HMM ,CRF ,LSTM-CRF

1、基于規(guī)則的方法
規(guī)則其實(shí)就是根據(jù)一定的正則提取或者利用已經(jīng)定義好的詞典或者詞庫(kù),比如

  • if token.contains(word) and word in xxx(詞庫(kù))

2、基于投票模型(Majority Voting)

  • 統(tǒng)計(jì)每個(gè)單詞的實(shí)體類型,記錄針對(duì)每個(gè)單詞,概率最大的實(shí)體類型。

3、特征工程與特征表示(分類模型主要是針對(duì)特征進(jìn)行分類)
分類模型的最重要的點(diǎn)在于特征,特征就是模型的核心,所以要了解特征有哪些表示形式
關(guān)于特征工程的講解文章,我認(rèn)為不錯(cuò)的https://blog.csdn.net/m0_38024592/article/details/80836217?utm_source=blogxgwz4
后續(xù)希望自己也寫一個(gè)
那么特征工程在NER表示中,如何選擇這個(gè)詞的特征呢?
1、bag of word 特征

  • 當(dāng)前詞
  • 前后詞
  • 前前后后詞
  • bi-gram

2、詞性

  • 當(dāng)前詞 名詞
  • 前后詞 名,動(dòng)
  • 前前后后詞 冠,名等
  • bi-gram

3、前綴和后綴等
4、當(dāng)前詞的特性

  • 詞長(zhǎng),含有多少個(gè)大寫字母、是否大寫字母開(kāi)頭、是否包含“-”、后面詞是否包含大寫、是否包含數(shù)字、等
特征編碼(特征表示也可以叫做特征提取)

常見(jiàn)的特征種類:分類型特征、連續(xù)型特征、Ordinal 特征(排序特征)
1、 分類型特征

  • 男女(0,1)
  • 姓名(0,1,0)ont - hot encoding

2、連續(xù)型特征(continous)

  • 身高 167,187 每個(gè)區(qū)間用一個(gè)特征表示,比如1,2,3,。。。
  • 溫度 35.2,35.8
    連續(xù)型的要變成離散型才可以用one-hot表示

3、Ordinal 型特征
這個(gè)真的就是表示A,B,C,D,E,可以直接到one-hot型 A=(1,0,0,0,0)

信息抽取介紹
image.png

信息抽取是實(shí)現(xiàn)文本的關(guān)系圖譜展現(xiàn)出來(lái)

信息抽取

信息抽取可以展示以下幾種形式
1、tuple關(guān)系圖
把重要的信息形成一個(gè)tuple的形式,比如上圖信息抽取只要是三元組,(人物,組織,地點(diǎn))
2、ACE(Automatic Content Extraction)關(guān)系圖
根據(jù)ACE中的定義,事件由事件觸發(fā)詞(Trigger)和描述事件結(jié)構(gòu)的元素(Argument)構(gòu)成,元素和事件之間的關(guān)系定義為角色(Argument role)。

image.png

所以根據(jù)圖可知根節(jié)點(diǎn)root是觸發(fā)詞也就是類別label,子節(jié)點(diǎn)是該類別下的元素,也可以理解為信息抽取后的關(guān)系圖譜。
主要用途:

在我們?cè)嫉拇蟛糠株P(guān)系里,也就是本體論關(guān)系

  • IS-A 草莓是水果,屬于關(guān)系
  • Instance of 我在廣州等
    這些都是存在關(guān)系的關(guān)系圖譜
    那么接下來(lái)就看看關(guān)系抽取 ,我的理解,信息抽取也主要是關(guān)系的抽取

關(guān)系抽取

關(guān)系抽取的方法介紹
  • 基于規(guī)則
  • 監(jiān)督學(xué)習(xí)
  • 半監(jiān)督&無(wú)監(jiān)督學(xué)習(xí)
    • Boostrap
    • Distant Supervision
    • 無(wú)監(jiān)督學(xué)習(xí)
  1. 基于規(guī)則的方法
    現(xiàn)在大部分的關(guān)系抽取還是基于規(guī)則的方法去實(shí)現(xiàn)的,人工預(yù)先定義好的規(guī)則,根據(jù)規(guī)則判斷,然后歸并數(shù)據(jù)
    例如IS-A關(guān)系的規(guī)則:


    image.png

根據(jù)規(guī)則集,判斷文章是否有相關(guān)規(guī)則匹配的關(guān)系,有,則把關(guān)系數(shù)據(jù)存入數(shù)據(jù)庫(kù)。
但是直接單純的這樣子的關(guān)系,不能區(qū)分類別的關(guān)系,不一樣的類別也會(huì)分到一起,會(huì)存在很大的誤差值。
那么則需要對(duì)實(shí)體加限制,比如水果類的實(shí)體,汽車類的實(shí)體分開(kāi)判斷


image.png

加實(shí)體限制的規(guī)則集的優(yōu)點(diǎn):

  • 提升挖掘出的結(jié)果的準(zhǔn)確性
  • 只返回想要的結(jié)果

基于規(guī)則的方法的優(yōu)點(diǎn)和缺點(diǎn)
優(yōu)點(diǎn):

  • 比較準(zhǔn)確
  • 不需要訓(xùn)練數(shù)據(jù)

缺點(diǎn):

  • low recall rate (覆蓋率較低,也就是召回率低,因?yàn)槿斯ぶ荒芏x一些類別的,但是大量的數(shù)據(jù)里面,有存在各種各樣的數(shù)據(jù)類別,所以回報(bào)率比較低)
  • 成本人力
  • 規(guī)則本身難估計(jì)
    那么如何解決這個(gè)問(wèn)題呢?那就是要用監(jiān)督學(xué)習(xí)方法

2.基于監(jiān)督學(xué)習(xí)的方法
1、運(yùn)用監(jiān)督學(xué)習(xí)實(shí)現(xiàn)關(guān)系抽取首先要做好以下幾個(gè)準(zhǔn)備條件。

  • 定義關(guān)系類型(IS-A還是Instance of)
  • 定義實(shí)體類型(要抽取什么類型的實(shí)體)
  • 訓(xùn)練數(shù)據(jù)準(zhǔn)備
    實(shí)體標(biāo)記好(類型,就是類別,label)
    實(shí)體之間的關(guān)系 (類別和實(shí)體對(duì)應(yīng)關(guān)系)
    2、特征工程
    有了數(shù)據(jù),就要進(jìn)行特征工程操作,選取特征,作為分類算法的輸入?yún)?shù)
    特征工程選擇特征主要有以下幾點(diǎn)操作
  • bag of feature (把所有單詞列出來(lái))
  • pos feature (單詞對(duì)應(yīng)的詞性列出來(lái))
  • 實(shí)體類別 (每個(gè)單詞的實(shí)體類別分別是什么)
  • stemming (把單詞進(jìn)行詞干還原,英文才需要,中文不需要)
  • 位置相關(guān)信息 (兩個(gè)實(shí)體之間包含了多少個(gè)單詞?這句話在本文的位置)
  • 句法分析相關(guān)特征(兩個(gè)節(jié)點(diǎn)之間的最短路徑)
  • 依存文法相關(guān) 也是最短路徑方法

3、根據(jù)特征工程提前的特征,輸入分類算法,得出分類結(jié)果
主要表現(xiàn)形式為:分類算法(SVM,GBDT) f(特征)->分類1,分類2,分類3,無(wú)分類
對(duì)于二分類問(wèn)題,一般的操作如下:


image.png
實(shí)體消岐

在關(guān)系抽取中,設(shè)計(jì)到實(shí)體之間的關(guān)系,但是一個(gè)實(shí)體可能會(huì)有多層的表示形式,不一樣的意思。
實(shí)體消岐的本質(zhì)在于一個(gè)詞很有可可能多個(gè)意思,也就是在不同的上下文所表達(dá)的含義不一樣。
比如我們生活中常見(jiàn)的實(shí)體:小米和蘋果就是存在多個(gè)意思。
問(wèn)題:給出一段話,如何判斷該實(shí)體是屬于哪個(gè)含義?
在實(shí)體庫(kù)中:含有該實(shí)體對(duì)應(yīng)的文章,如何通過(guò)實(shí)體庫(kù)的數(shù)據(jù)判斷問(wèn)題中的實(shí)體是哪個(gè)類型的呢
比如例子:?jiǎn)栴}定義:今天蘋果發(fā)布了新手機(jī)
實(shí)體庫(kù)中有兩個(gè)不同類型的數(shù)據(jù)

  • 蘋果:水果中的一種,一般產(chǎn)自于。。。。。。。
  • 蘋果:美國(guó)一家高科技公司,經(jīng)典的產(chǎn)品有iphone手機(jī)

那么實(shí)體消岐要如何實(shí)現(xiàn)呢?運(yùn)用什么算法呢?

實(shí)體消岐算法

1、TF-IDF
抽取實(shí)體前后的20個(gè)或者40個(gè)等n個(gè)詞,進(jìn)行分詞,詞庫(kù)的句子進(jìn)行分詞,得到V,進(jìn)行TF-IDF計(jì)算
計(jì)算cosine(q,實(shí)體1),cosine(q,實(shí)體2),以此類推,選擇值最大的就行分類
2、詞向量
通過(guò)詞向量的形式計(jì)算每個(gè)詞的詞向量,然后通過(guò)詞向量計(jì)算兩個(gè)句子的相似度,取值最高的相似度
具體做法可以參考問(wèn)答系統(tǒng)的具體解決辦法。
因?yàn)槭褂迷~向量,維度是一樣的,問(wèn)答系統(tǒng)用的就是100維的,所以直接矩陣相乘就是計(jì)算兩個(gè)句子之間的相似度。

實(shí)體統(tǒng)一

問(wèn)題定義:給定兩個(gè)實(shí)體,判斷是否指向同一個(gè)實(shí)體?
第一種方法:通過(guò)計(jì)算兩個(gè)實(shí)體設(shè)計(jì)的字符串的編輯距離判斷是否是指向同一個(gè)實(shí)體
第二種方法:基于規(guī)則,把字符串還原到原型,判斷是否是一個(gè)實(shí)體,也類型英文的stemming操作,進(jìn)行還原。
第三種方法:指代消解
第四種方法:基于圖的實(shí)體統(tǒng)一

指代消解

指代作為一種常見(jiàn)的語(yǔ)言現(xiàn)象,廣泛存在于自然語(yǔ)言的各種表達(dá)中(下面的他指的是張三還是李四呢?)
張三沒(méi)有去上班,因?yàn)樯×?,昨天,李四陪他去了醫(yī)院,好消息是他已經(jīng)好了
那么如何去解決,判斷這個(gè)他是指的是誰(shuí)呢?
1、最簡(jiǎn)單的方法,就是收集數(shù)據(jù)樣本,通過(guò)規(guī)則的形式去判斷
2、監(jiān)督學(xué)習(xí)的方法 通過(guò)計(jì)算文本的編輯距離去得出結(jié)果
指代消解后也可判斷兩個(gè)實(shí)體是否是一個(gè)?歸根結(jié)底指代消解也是解決實(shí)體統(tǒng)一的一個(gè)方法。
基于圖的實(shí)體統(tǒng)一,下圖所示,如何判斷圖的實(shí)體統(tǒng)一。
圖譜如何判斷兩個(gè)實(shí)體是否為一個(gè)實(shí)體,下圖所示計(jì)算兩個(gè)實(shí)體的關(guān)系特征和個(gè)體特征的編輯距離判斷是否是一個(gè)實(shí)體

image.png

要想理解一個(gè)句子,需要主謂賓(句法分析),第二就是憑感覺(jué),語(yǔ)言模型,但是機(jī)器是不能靠感覺(jué),需要知道主謂賓去實(shí)現(xiàn)的。
所以下面看看句法分析是如何實(shí)現(xiàn)的呢?
image.png

給定一個(gè)句子和語(yǔ)法,如何生成一個(gè)最好的語(yǔ)法樹(shù)呢?
input 中文句子 -》句法分析 -》語(yǔ)法樹(shù)
中文跟英文的實(shí)現(xiàn),不用分開(kāi)了,只需要有對(duì)應(yīng)的中文和英文句子就可以實(shí)現(xiàn)端到端的句法分析
CFG content free grammars
PCFG probalities content free grammars 加入了概率的元素
FROM CFG TO PCFG 語(yǔ)法樹(shù)選擇是哪種情況,加入概率的元素 概率是從訓(xùn)練集里面計(jì)算的

評(píng)估語(yǔ)法樹(shù)

所以要給定PCFG ,給一個(gè)句子,構(gòu)建多棵樹(shù),就根據(jù)每一個(gè)分支的概率乘起來(lái),得到結(jié)果就是分?jǐn)?shù)
如何轉(zhuǎn)換成最合適的語(yǔ)法樹(shù)?哪個(gè)樹(shù)是最優(yōu)的
那就需要有一個(gè)評(píng)判標(biāo)準(zhǔn),那就是每棵樹(shù)給一個(gè)分?jǐn)?shù),設(shè)計(jì)分?jǐn)?shù)


image.png

PCFG如何獲得?
我在訓(xùn)練集里面統(tǒng)計(jì)每個(gè)規(guī)則的概率多少


image.png

尋找最好的語(yǔ)法樹(shù)

上面所講的是用枚舉法,但是時(shí)間復(fù)雜度太高,時(shí)間復(fù)雜度是指數(shù)級(jí)的增長(zhǎng),所以不是最合理的。
那么引用另外一個(gè)算法,CKY算法,這個(gè)算法用的是動(dòng)態(tài)規(guī)劃的算法。

那么接下來(lái)如何用CKY算法尋找語(yǔ)法樹(shù)?

CKY的核心思想?
主要是運(yùn)用了DP算法的核心,把大問(wèn)題拆分成若干個(gè)子問(wèn)題,再把子問(wèn)題的答案變成大問(wèn)題的答案。

Binrazation 是把規(guī)則的右邊只出現(xiàn)兩個(gè)不同的語(yǔ)法符號(hào)

Transforming to CNF (Chomsky Normal Form)
CNF是啥規(guī)則呢,比B更嚴(yán)格
1、不允許出現(xiàn)出現(xiàn)e空的
2、不允許出現(xiàn)一個(gè)符號(hào)
3、不允許出現(xiàn)超過(guò)2個(gè)


image.png

image.png

image.png
image.png

如果去除一個(gè)規(guī)則后,就要重新計(jì)算規(guī)則集,所謂的去除就是把該規(guī)則進(jìn)行全部的替換掉,重新計(jì)算替換
CKY算法必須滿足Binrazation 其他的不是一定要滿足,就是右邊一定不能超過(guò)兩個(gè)規(guī)則


image.png

總結(jié):所以句法分析只要的流程是CKY算法結(jié)合PCFG去獲取最優(yōu)的語(yǔ)法樹(shù)

時(shí)序模型 HMM CRF等

深度學(xué)習(xí)里面的時(shí)序模型有RNN LSTM
非時(shí)序數(shù)據(jù):圖片,一個(gè)人的特征,這些維度是固定的
時(shí)序數(shù)據(jù):股票價(jià)格(不斷的變動(dòng))語(yǔ)音的波形 也是變化的 ,文本(所以文本挖掘大部分都是用時(shí)序模型),天氣的變化或者溫度的變化等

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容