關系抽取需要從文本中抽取兩個或多個實體之間的語義關系,主要方法有下面幾類:
基于模板的方法(hand-written patterns)
基于觸發(fā)詞/字符串
基于依存句法
監(jiān)督學習(supervised machine learning)
機器學習
深度學習(Pipeline vs Joint Model)
半監(jiān)督/無監(jiān)督學習(semi-supervised and unsupervised)
Bootstrapping
Distant supervision
Unsupervised learning from the web
規(guī)則抽取
目的:找出盡可能多的擁有"is - a"關系的實體對(實體1秦忿,is - a麦射,實體2) 比如我們有一些文章:
" .... apple is a fruit ..... "
" .... fruit such as apple .... "
" .... fruit including apple , banala .... "
拿到上述文章時,我們要先設計一些規(guī)則灯谣,例如:
X is a Y
Y such as X
Y including X
然后通過這些規(guī)則我們可以對上述文章進行關系抽取潜秋,建立以下關系:
方法優(yōu)點
比較準確
對于垂直場景,比較適合(具有針對性)
方法缺點
信息缺乏覆蓋率(low recall rate)
人力成本較高
很難設計(規(guī)則沖突胎许、重疊)
PCNN
下圖清晰了顯示了PCNN的整個網(wǎng)絡架構峻呛,原文鏈接在這里,下面我對著下圖介紹一下PCNN的實現(xiàn)過程:
數(shù)據(jù)預處理:首先對數(shù)據(jù)進行位置編碼辜窑,按句子中各個詞離entity的距離進行編碼钩述。
例如:“As we known,Steve Jobswas the co-founder ofApple Incwhich is a great company in America.”
由于句子中有兩個entity穆碎,所以這條句子就會產(chǎn)生兩個和句子長度相同的編碼牙勘。
pos_1:[-4,-3,-2,-1,0,1,2,3......] ,其中0就是Steve Jobs的位置。
pos_2:[-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3......] 其中0就是Apple Inc的位置所禀。
切分句子:其中最主要的就是將一條文本數(shù)據(jù)在兩個entity處各切一刀將文本且成了3段方面。
比如 As we known,Steve Jobswas the co-founder ofApple Incwhich is a great company in America北秽,將被切成:
As we known,Steve Jobs
Steve Jobswas the co-founder ofApple Inc
Apple Incwhich is a great company in America.
注意最筒,位置向量也同樣進行了切分操作贺氓。
特征提取:將位置特征和文本特征拼接之后,然后將上面三個數(shù)據(jù)分別通過CNN 提取特征,
關系分類:提取出來的特征通過maxpooling層之后進行拼接后送入softmax層辙培,最終得到relation的分類蔑水。
pcnn.png
從上面PCNN的流程我們可以發(fā)現(xiàn),這個網(wǎng)絡結(jié)構很注重entitiy之間的距離信息扬蕊,位置信息搀别,以及entitiy之間或者左右的信息。其實這些都是是關系抽取中最重要的特征尾抑。
一般來說兩個entitiy之間距離越近歇父,則他們有關系的可能性越大。
而透露出entities之間有關系的詞一般會出現(xiàn)在兩個entity之間再愈,左側(cè)榜苫,或者右側(cè)。
例如:Steve Jobswas the co-founder ofApple Inc翎冲, 關系詞 co-founder就在兩個entity之間