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