知识图谱入门 (三) 知识抽取
歡迎大家關(guān)注我的博客 http://pelhans.com/ ,所有文章都會第一時間發(fā)布在那里哦~
本節(jié)介紹了針對結(jié)構(gòu)化數(shù)據(jù)、非結(jié)構(gòu)化數(shù)據(jù)、半結(jié)構(gòu)化數(shù)據(jù)的知識抽取方法。
知識抽取的概念
知識抽取,即從不同來源、不同結(jié)構(gòu)的數(shù)據(jù)中進(jìn)行知識提取,形成知識(結(jié)構(gòu)化數(shù)據(jù))存入到知識圖譜。大體的任務(wù)分類與對應(yīng)技術(shù)如下圖所示:
知識抽取的子任務(wù)
- 命名實體識別
- 檢測: 北京是忙碌的城市。 [北京]: 實體
- 分類:北京是忙碌的城市。 [北京]: 地名
- 術(shù)語抽取
從語料中發(fā)現(xiàn)多個單詞組成的相關(guān)術(shù)語。 - 關(guān)系抽取
王思聰是萬達(dá)集團(tuán)董事長王健林的獨(dú)子。 →? → [王健林] <父子關(guān)系> [王思聰] - 事件抽取
例如從一篇新聞報道中抽取出事件發(fā)生是觸發(fā)詞、時間、地點等信息,如圖二所示。 - 共指消解
弄清楚在一句話中的代詞的指代對象。例子如圖三所示。
面向非結(jié)構(gòu)化數(shù)據(jù)的知識抽取
實體抽取
實體抽取抽取文本中的原子信息元素,通常包含任命、組織/機(jī)構(gòu)名、地理位置、時間/日期、字符值等標(biāo)簽,具體的標(biāo)簽定義可根據(jù)任務(wù)不同而調(diào)整。如:
單純的實體抽取可作為一個序列標(biāo)注問題,因此可以使用機(jī)器學(xué)習(xí)中的HMM、CRF、神經(jīng)網(wǎng)絡(luò)等方法解決。
實體識別與鏈接
實體識別即識別出句子或文本中的實體,鏈接就是將該實體與知識庫中的對應(yīng)實體進(jìn)行鏈接。其中涉及到了實體的識別與消岐技術(shù)。實體識別技術(shù)剛剛介紹過,下面把重點放在實體鏈接部分。
實體鏈接的流程如下圖所示:
文字表述為,首先輸入的是非結(jié)構(gòu)化的文本數(shù)據(jù),經(jīng)由命名實體識別或詞典匹配技術(shù)進(jìn)行實體的指稱識別。由于剛剛識別出來的實體可能是實體的部分表示或另類表示,因此需要結(jié)束表層名字?jǐn)U展、搜索引擎、構(gòu)建查詢實體引用表等技術(shù)來對候選實體進(jìn)行生成。經(jīng)過該步驟生成的實體可能有多個候選項,因此需要對候選實體進(jìn)行消岐,此處可使用基于圖的方法、基于概率生成模型、基于主題模型或基于深度學(xué)習(xí)的方法。經(jīng)過實體消岐后得到的唯一實體候選后就可以與知識庫中的實體進(jìn)行連接了。
舉個例子:
關(guān)系抽取
關(guān)系抽取是從文本中抽取出兩個或多個實體之間的語義關(guān)系。它是信息抽取研究領(lǐng)域的任務(wù)之一。如:
- 王健林談兒子王思聰:我期望他穩(wěn)重一點。
- 父子 (王健林, 王思聰)
根據(jù)關(guān)系抽取方法的不同,可以將其分為:基于模板的方法(觸發(fā)詞的Pattern, 依存句法分析的Pattern)、基于監(jiān)督學(xué)習(xí)的方法(機(jī)器學(xué)習(xí)方法)、弱監(jiān)督學(xué)習(xí)的方法(遠(yuǎn)程監(jiān)督、Bootstrapping)。
基于模板的方法
基于模板的方法在小規(guī)模數(shù)據(jù)集上容易實現(xiàn)且構(gòu)建簡單,缺點為難以維護(hù)、可移植性差、模板有可能需要專家構(gòu)建。
基于觸發(fā)詞的Pattern
首先定義一套種子模板,如:
其中的觸發(fā)詞為老婆、妻子、配偶等。根據(jù)這些觸發(fā)詞找出夫妻關(guān)系這種關(guān)系,同時通過命名實體識別給出關(guān)系的參與方。
基于依存分析的Pattern
以動詞為起點,構(gòu)建規(guī)則,對節(jié)點上的詞性和邊上的依存關(guān)系進(jìn)行限定。一般情況下是形容詞+名字或動賓短語等情況,因此相當(dāng)于以動詞為中心結(jié)構(gòu)做的Pattern。其執(zhí)行流程為:
監(jiān)督學(xué)習(xí)
在給定實體對的情況下,根據(jù)句子上下文對實體關(guān)系進(jìn)行預(yù)測,執(zhí)行流程為:
- 預(yù)先定義好關(guān)系的類別。
- 人工標(biāo)注一些數(shù)據(jù)。
- 設(shè)計特征表示。
- 選擇一個分類方法。(SVM、NN、樸素貝葉斯)
- 評估方法。
其優(yōu)點為準(zhǔn)確率高,標(biāo)注的數(shù)據(jù)越多越準(zhǔn)確。缺點為標(biāo)注數(shù)據(jù)的成本太高,不能擴(kuò)展新的關(guān)系。
Pipeline訓(xùn)練
即識別實體和關(guān)系分類是完全分離的兩個過程,不會相互影響,關(guān)系的識別依賴于實體識別的效果,這樣的好處的各模型相互獨(dú)立,設(shè)計上較為容易,但誤差會逐層傳遞,步驟太多有可能導(dǎo)致后續(xù)不可用。
聯(lián)合模型
將實體識別和關(guān)系分類一起做,在一個模型中完成。
半監(jiān)督學(xué)習(xí)方法
前面的監(jiān)督學(xué)習(xí)效果雖好,但有標(biāo)注數(shù)據(jù)集的獲取困難。因此可以借助半監(jiān)督學(xué)習(xí)的方法,此處又分為遠(yuǎn)程監(jiān)督學(xué)習(xí)和Bootstrapping方法兩種。
所謂遠(yuǎn)程監(jiān)督方法就是知識庫與非結(jié)構(gòu)化文本對齊來自動構(gòu)建大量訓(xùn)練數(shù)據(jù),減少模型對人工標(biāo)注數(shù)據(jù)的依賴,增強(qiáng)模型跨領(lǐng)域適應(yīng)能力。Bootstrapping是通過在文本中匹配實體對和表達(dá)關(guān)系短語模式,尋找和發(fā)現(xiàn)新的潛在關(guān)系三元組。
遠(yuǎn)程監(jiān)督
該方法認(rèn)為若兩個實體如果在知識庫中存在某種關(guān)系,則包含該兩個實體的非結(jié)構(gòu)化句子均能表示出這種關(guān)系。如在某知識庫中存在“創(chuàng)始人(喬布斯,蘋果公司)”。那么就認(rèn)為出現(xiàn)喬布斯和蘋果公司的句子就是表述創(chuàng)始人這項關(guān)系。因此可構(gòu)建訓(xùn)練正例:喬布斯是蘋果公司的聯(lián)合創(chuàng)始人和CEO。
遠(yuǎn)程監(jiān)督流程為:
- 從知識庫中抽取存在關(guān)系的實體對。
- 從非結(jié)構(gòu)化文本中抽取含有實體對的句子作為訓(xùn)練樣例。
遠(yuǎn)程監(jiān)督可以利用豐富的知識庫信息,減少一定的人工標(biāo)注,但它的假設(shè)過于肯定,如喬布斯被趕出蘋果公司。這句話表達(dá)的就不是創(chuàng)始人的例子,因此會引入大量的噪聲,存在語義漂移現(xiàn)象。同時由于是在知識庫中抽取存在的實體關(guān)系對,因此很難發(fā)現(xiàn)新的關(guān)系。
Bootstrapping
這個方法在很多任務(wù)中都有提到,其執(zhí)行流程為:
- 從文檔中抽取出包含種子實體的新聞,如:
- 姚明老婆 葉莉 簡歷身高曝光
X 老婆 Y 簡歷身高曝光 - 姚明 與妻子 葉莉 外出赴約
X 與妻子 Y 外出赴約
- 姚明老婆 葉莉 簡歷身高曝光
- 將抽取出的Pattern去文檔集中匹配
- 小豬 與妻子 伊萬 外出赴約
- 根據(jù)Pattern抽取出的新文檔如種子庫,迭代多輪直到不符合條件
該方法的優(yōu)點為構(gòu)建成本低,適合大規(guī)模的構(gòu)建,同時還可以發(fā)現(xiàn)新的(隱含的)關(guān)系。缺點為對初始給定的種子集敏感,存在語義漂移現(xiàn)象,結(jié)果的準(zhǔn)確率較低等。
事件抽取
從自然語言中抽取出用戶感興趣的事件信息,并以結(jié)構(gòu)化的形式呈現(xiàn)出來,例如事件發(fā)生的時間、地點、發(fā)生原因、參與者等。如:
時間抽取任務(wù)最基礎(chǔ)的部分包括:
- 識別事件觸發(fā)詞及事件類型
- 抽取事件元素同時判斷其角色
- 抽出描述事件的詞組或句子
此外,事件抽取任務(wù)還包括:
- 事件屬性標(biāo)注
- 事件共指消解
對于事件抽取,也可分為Pipeline方法和聯(lián)合訓(xùn)練的方法。
事件抽取的pipeline方法
有監(jiān)督的事件抽取方法的標(biāo)準(zhǔn)流程一種pipeline的方法,將事件抽取任務(wù)轉(zhuǎn)化為多階段的分類問題,需要的分類器包括:
- 事件觸發(fā)次分類器(Trigger Classifier)
- 用于判斷詞匯是否是是事件觸發(fā)詞,以及事件的類別
- 元素分類器(Argument Classifier)
- 判別詞組是否是事件的元素
- 元素角色分類器(Role Classifier)
- 判定元素的角色類別
- 屬性分類器(attribute classifier)
- 判定事件的屬性
- 可報告性分類器(Reportable-Event Classifier)
- 判定是否存在值得報告的事件實例
可以看到,這個流程還是蠻長的,因此Pipeline存在的誤差傳遞問題在這里格外嚴(yán)重,因此我們需要聯(lián)合訓(xùn)練:
聯(lián)合訓(xùn)練
基于深度學(xué)習(xí)的事件抽取方法
傳統(tǒng)的方法需要借助外部NLP工具,還需要人工設(shè)計特征,但深度學(xué)習(xí)可以自動提取句子特征,減少對外部NLP工具的依賴。
下圖給出一個典型的基于動態(tài)多池化卷積神經(jīng)網(wǎng)絡(luò)的事件抽取方法:
面向結(jié)構(gòu)化數(shù)據(jù)的知識抽取
所謂結(jié)構(gòu)化數(shù)據(jù)就是指類似于關(guān)系庫中表格那種形式的數(shù)據(jù),他們往往各項之間存在明確的關(guān)系名稱和對應(yīng)關(guān)系。因此我們可以簡單的將其轉(zhuǎn)化為RDF或其他形式的知識庫內(nèi)容。一種常用的W3C推薦的映射語言是R2RML(RDB2RDF)。一種映射結(jié)果如下圖所示:
現(xiàn)有的工具免費(fèi)的有D2R,Virtuoso、MOrph等。
面向半結(jié)構(gòu)化數(shù)據(jù)的知識抽取
半結(jié)構(gòu)化數(shù)據(jù)是指類似于百科、商品列表等那種本身存在一定結(jié)構(gòu)但需要進(jìn)一步提取整理的數(shù)據(jù)。
百科類知識抽取
對于百科類數(shù)據(jù)我們都較為熟悉,下面著重介紹怎么從百科里抽取知識:
上圖給出從百科里抽取知識的流程介紹。(待補(bǔ))
Web網(wǎng)頁數(shù)據(jù)抽取:包裝器生成
現(xiàn)在我們的目標(biāo)網(wǎng)站是部分結(jié)構(gòu)化的,如:
包裝器是一個能夠?qū)?shù)據(jù)從HTML網(wǎng)頁中抽取出來,并且將它們還原為結(jié)構(gòu)化的數(shù)據(jù)的軟件程序。使用它提取信息流程為:
包裝器歸納
對于一般的有規(guī)律的頁面,我們可以使用正則表達(dá)式的方式寫出XPath和CSS選擇器表達(dá)式來提取網(wǎng)頁中的元素。但這樣的通用性很差,因此也可以通過包裝器歸納這種基于有監(jiān)督學(xué)習(xí)的方法,自動的從標(biāo)注好的訓(xùn)練樣例集合中學(xué)習(xí)數(shù)據(jù)抽取規(guī)則,用于從其他相同標(biāo)記或相同網(wǎng)頁模板抽取目標(biāo)數(shù)據(jù)。其運(yùn)行流程為:
自動抽取
對于監(jiān)督學(xué)習(xí)我們知道標(biāo)注數(shù)據(jù)是它的短板,因此我們想到自動抽取的方法。網(wǎng)站中的數(shù)據(jù)通常是用很少的一些模板來編碼的,通過挖掘多個數(shù)據(jù)記錄中的重復(fù)模式來尋找這些模板是可能的。自動抽取的流程如圖所示:
Cite
王昊奮知識圖譜教程
總結(jié)
以上是生活随笔為你收集整理的知识图谱入门 (三) 知识抽取的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言实现“人工智障”三子棋
- 下一篇: chorme插件与视频下载