1. 程式人生 > ><知識庫的構建> 3-1 被命名的實體識別分類 NERC

<知識庫的構建> 3-1 被命名的實體識別分類 NERC

定義 splay tis 意思 隨機 ron upper net 最大的

引自Fabian Suchanek的講義。

總結:主要講了NERC的四種方式, NERC Feature,NERC rules, NERC ML和statistical NERC。NERC Feature主要講在一個窗口中,其他token可以根據三種不同的features定下自己是什麽分類,從而定義主token是什麽分類。NERC rules主要講述一種建立rules來判斷token分類的方法,若某個句子或某個部分中的詞滿足該rule中的特征,那麽就可以知道主token是哪一類,當然在面對非常大型的語料庫也應該有自動建立rules的算法,本文中也有提到;NERC ML講述的是使用機器學習做NERC,主要講述了KNN對NERC的應用,即找到該token附近的token的分類,定義好K的值,看K個最近鄰居主要在哪一類則該token就在哪一類;statistical NERC主要要知道如何找到使語料庫權重最大的Y向量,若面對大型語料庫時,我們無法手動定義權重,則需要有算法去計算權重,主要講述了兩個步驟,如何根據給定的語料庫向量X和分類向量Y來計算W,計算了W的概率分布,用到了梯度上升,即計算使該概率分布最大的W,然後根據W的值在去判斷新的語料庫的標簽,也是機器學習的過程,學習+測試。

NERC:找到語料庫中entity名字並把它們分類

例如:在tsv中,41,tower,Other

41是句子號碼,tower是單詞,Other是類

做NERC遇到的困難:

- 同一個詞有不同的意思

n 例如:MTV可以使音樂電視,也可以是大屏幕

- 二義性

文章中講了四種NERC的方式:

1 - NERC Feature

代幣Token:一系列字母組成的一個個體

窗口Window:寬度為a,代表在此窗口裏,主代幣前有a個單詞,後面有a個單詞,則整個窗口寬度2*a+1

例如:主token的前一個單詞位置為-1

NERC特征NERC Feature:一個代幣的屬性可以指出窗口內主token的類

主要有這麽幾種Feature:

- 句法特征Syntactic Feature:例如大小寫,數字,空格,正則

- 字典特征Dictionary Feature:例如城市,國家

- 形態特征Morphological Features:例如:-ist,-isme,……

n POS:part of speech,代表有相同語法角色的詞

2 - NERC by rules

規定Rules:f1……fn=>c , f是指定特征designated feature

若一個window中的token們可以滿足rule裏的feature,那麽主token就會被分到c類

小練習:自己建立rules來找到文章中的planet

Lamuella is the nice planet where Arthur Dent lives. Santraginus V is a planet with marble-sanded beaches. Magrathea is an ancient planet in Nebula. The fifty-armed Jatravartids live on Viltvodle VI.

[CapWord] is the nice planet

[CapWord] is a planet

[[CapWord]] is an ancient planet

The fifty-armed Jatravartids live on [CapWord RomanNumeral]

若兩個rule都找到了對應的字符串,該如何選擇:

- 使用較長匹配的規則

- 手動定義順序

如何寫NERC rules:

- 比較難編程的rules

- 用正則

NERC rules一般是手動定義,但是也是可以學習的

- 有一個已被註釋的訓練語料庫

- 對於裏面的每一個註釋都建立一個rule

- 把rules合並,用一個更泛化的特征來代替

n 例如: [Author]… [Ford]… => [Capword]…

- 把rules合並並刪掉一個feature

n 例如:[Capword] says Hello ; [Capword] says bye

n => [Capword] says

- 刪掉重復的rules

- 重復這個過程

NERC rules要實現起來還是很困難的,因為句子成分很復雜

NERC rules的目標:

- 學習所有已註釋的規則

- 忽略未註釋的規則

- 不需要太多rules,因為並不需要一個註釋一個rules

3 - NERC by ML

NERC可以被機器學習實現:

- 給出訓練實例,即一個已經被備註好的語料庫

- 給語料庫中未註釋的單詞預測tag

KNN:根據該詞的最近鄰居決定該詞屬於哪一類

K是被固定的,為了減小噪聲;一般為奇數odd

原始距離函數Na?ve distance function:說明第i個feature應用於第j個位置上的與住token相關的token

例如: = upper case

Everyone loves <per> Fenchurch </per> because

= 1; = 0

附近K個鄰居屬於哪一類那此token屬於哪一類

使用歐幾裏得距離Euclidien distance

4 - NERC by statistical methods

統計NERC語料庫NERC by statistical corpus:是一個token構成向量,輸出是一個class向量,分別對應之前向量中的tokens

特征Feature:是一個函數,長這樣:f(X,i ,y)

X是token向量,i是在向量中的位置,y為class向量

例如:f1(X,i,y) := 1if xi?1 is title∧y=“pers”

f1(<Mr., Arthur>,1,pers) = 0 f1(<Mr., Arthur>,2,pers) = 1 f1(<Mr., Arthur>,1,loc) = 0

統計NERC的目標是根據給出的tokens向量X,給出的Features向量,權重向量,來計算分類向量Y=[y1,y2,…],盡可能使,即對於每個位置i,每個feature j,我們計算權重乘以1/0.

小練習1:計算每個Y向量所能得到的權重

X = <Dr. Dent>

F1(X,i,y) = 1 if xi = upcased word and y = loc w1 = 2

F2(X,i,y) = 1 if xi-1 is title and y = pers w2 = 5

Y1 = [oth, loc] 2 * 0 + 5 * 0 (Dr.) + 2 * 1 + 5 * 0 (Dent) = 0

Y2 = [oth, pers] 2 * 0 + 5 * 0 (Dr.) + 2 * 0 + 5 * 1 (Dent) = 5

所以Y2更好

小練習2:計算出大於權重3的Y

X = <in London>

F1(X,i,y) = 1 if xi = upcased and y = pers w1 = 2

F2(X,i,y) = 1 if xi-1 = “in”and y = loc w2 = 5

F3(X,i,y) = 1 if y = oth w3 = 1

Y1 = [oth, pers] 2 * 0 + 5 * 0 + 1 * 1 + 2 * 1 + 5 * 0 + 1 * 0 = 3

Y2 = [oth, loc] 2 * 0 + 5 * 0 + 1 * 1 + 2 * 0 + 5 * 1 + 1 * 0 = 5

Etc……

我們現在的算法是,根據給定的corpus向量X,每個單詞在向量中的位置i,和權重向量W來計算分類向量Y,當需要計算的分了向量Y比較復雜時我們該如何做?每條rule的權重該如何得到?

建立NERC模型:

1 - 定義Features向量F = <f1,……,fn>

2 - 生成訓練集,由corpus向量X和分類向量Y構成

X = <x1,……,xm>, Y = <y1,…… ,ym>

3 - 根據X,Y,找到每條rule的權重w,使X和Y能夠很好的對應

例如好的Features權重高,不好的權重低

根據計算出的w,我們可以算關於w的概率分布,公式如下:

技術分享圖片

技術分享圖片

所以Pr的上方是計算每個位置上的feature的權重之和,為了使概率分布在[0,1],下方是除以其他所有註釋Y,即在上方裏沒有用到的Y向量的可能世界。

我們最大化這個概率分布Pr:

因為ln是單調函數,所以我們可以直接在左右兩邊都套上ln:

技術分享圖片

所以我們可以看出在這個式子中,除了w,其余都為constant。所以我們使用梯度上升法使該等式最大化,算法為:

1 - 隨機定義一個W

2 - 計算該式子關於W的偏導

3 - 使W在導數方向進行梯度上升,即

4 - 直至該式子達到最大

所以關於statistical NERC,我們給出的變量有:corpus向量X,位置i,用於訓練的分類向量Y,特征向量F,我們首先要得到能使概率分布最大的權重向量w (學習):

技術分享圖片

之後我們給出新的語料庫,我們根據計算出的W,來計算它的分類向量Y:

技術分享圖片

<知識庫的構建> 3-1 被命名的實體識別分類 NERC