本發(fā)明涉及一種知識圖譜構(gòu)建方法,具體涉及一種基于規(guī)則模型的實(shí)體提取與關(guān)系挖掘構(gòu)建知識圖譜的方法,屬于自然語言處理中的數(shù)據(jù)挖掘的技術(shù)領(lǐng)域。
背景技術(shù):
近兩年來,隨著Linking Open Data1等項(xiàng)目的全面展開,語義Web數(shù)據(jù)源的數(shù)量激增,大量RDF數(shù)據(jù)被發(fā)布?;ヂ?lián)網(wǎng)正從僅包含網(wǎng)頁和網(wǎng)頁之間超鏈接的文檔萬維網(wǎng)(Document Web)轉(zhuǎn)變成包含大量描述各種實(shí)體和實(shí)體之間豐富關(guān)系的數(shù)據(jù)萬維網(wǎng)(Data Web)。
在這個背景下,Google、百度和搜狗等搜索引擎公司紛紛以此為基礎(chǔ)構(gòu)建知識圖譜,分別為Knowledge Graph、知心和知立方,來改進(jìn)搜索質(zhì)量,從而拉開了語義搜索的序幕。知識圖譜旨在描述真實(shí)世界中存在的各種實(shí)體或概念。
其中,每個實(shí)體或概念用一個全局唯一確定的ID來標(biāo)識,稱為它們的標(biāo)識符(identifier)。每個屬性-值對(attribute-value pair,又稱AVP)用來刻畫實(shí)體的內(nèi)在特性,而關(guān)系(relation)用來連接兩個實(shí)體,刻畫它們之間的關(guān)聯(lián)。知識圖譜亦可被看作是一張巨大的圖,圖中的節(jié)點(diǎn)表示實(shí)體或概念,而圖中的邊則由屬性或關(guān)系構(gòu)成。
正是由于巨大的數(shù)據(jù)量,無法知道這些數(shù)據(jù)之間的關(guān)系,以及主要是做什么的,知識圖譜得以快速發(fā)展,最主要的是簡化搜索問答,領(lǐng)域知識圖譜能夠快速帶入你了解該領(lǐng)域,知識圖譜上的推理,預(yù)測等,可以挖掘出潛在的信息價值。
現(xiàn)有技術(shù)的實(shí)體識別以及關(guān)系抽取主要針對時間、地點(diǎn)、人物、機(jī)構(gòu)等七大類抽取效果較好,準(zhǔn)確率不是很高,構(gòu)建圖譜周期較長。對特定領(lǐng)域的實(shí)體抽取與關(guān)系挖掘起不到好的效果,本發(fā)明為了解決現(xiàn)有技術(shù)缺陷提出了基于規(guī)則模型的實(shí)體抽取與關(guān)系挖掘構(gòu)建知識圖譜的方法。能夠快速構(gòu)建特定領(lǐng)域的知識圖譜,準(zhǔn)確率高。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明目的是提供一種基于規(guī)則模型的實(shí)體抽取與關(guān)系挖掘構(gòu)建知識圖譜的方法,在擁有大量的文本信息后,通過構(gòu)建一定規(guī)則能夠快速、有效地建立該領(lǐng)域的知識圖譜,進(jìn)而有助于其它部門的下一步工作,如在圖譜上的潛在信息挖掘。
本發(fā)明的原理:構(gòu)建知識圖譜的過程分為四個階段:
第一個階段:目標(biāo)領(lǐng)域知識庫獲取。
第二個階段:對目標(biāo)領(lǐng)域的實(shí)體進(jìn)行定義,實(shí)體識別,實(shí)體抽取。具體步驟包括:對于第一階段的知識庫,進(jìn)行實(shí)體識別,具體就是定義幾種實(shí)體,目前大眾的實(shí)體識別都是識別出文本的人名、地名、機(jī)構(gòu)名等,本發(fā)明采用自定義字典規(guī)則的方法進(jìn)行實(shí)體識別,并獲取相應(yīng)詞向量,效果明顯。
第三個階段:實(shí)體事件的獲取,實(shí)體事件獲取難度大,采用實(shí)體關(guān)系詞對相關(guān)新聞進(jìn)行抽取,進(jìn)而提取事件名稱,對識別出的實(shí)體進(jìn)行特定關(guān)系的抽取,需要結(jié)合領(lǐng)域知識。對實(shí)體的屬性打標(biāo)簽,進(jìn)而獲取目標(biāo)實(shí)體的屬性,目的是構(gòu)建實(shí)體之間的關(guān)系網(wǎng)絡(luò)形成圖譜。
第四步:實(shí)體融合主要就是簡稱與全稱的融合,以及知識圖譜的融合。
本發(fā)明的一種基于規(guī)則模型的實(shí)體抽取與關(guān)系挖掘構(gòu)建知識圖譜的方法,如圖1所示,包括下列步驟:
步驟一:爬取目標(biāo)領(lǐng)域的百科知識庫數(shù)據(jù),并定義食品類、農(nóng)藥類、營養(yǎng)類、病蟲害類等字典,便于規(guī)則挖掘;
步驟二:對百科類數(shù)據(jù)進(jìn)行去HTML標(biāo)簽化,獲取中文文本并獲取URL鏈接,便于后續(xù)處理。
具體步驟如下:
2.1.將文檔轉(zhuǎn)化成UTF-8編碼;
2.2.去除文檔中的標(biāo)點(diǎn)符號并正則解析,記錄URL數(shù);
2.3.對文檔進(jìn)行分詞處理;
2.4.獲得文檔詞的詞向量;
2.5.對獲取的詞向量進(jìn)行相似計(jì)算,并綁定對應(yīng)文檔的URL集合、后續(xù)關(guān)系融合以及關(guān)系獲取提供權(quán)值,取TOP3在通過word2vec的向量運(yùn)算后,得到向量E1(w1,w2,w3,w4,…,wn),E2(w1,w2,w3,w4,…,wn),…,En(w1,w2,w3,w4,…,wn),其中Ei表示文檔實(shí)體,wi表示向量所在維數(shù)的值,進(jìn)而計(jì)算目標(biāo)詞與目標(biāo)詞文檔中的其他詞的相似度,該相似度用來表示目標(biāo)詞與目標(biāo)詞文檔中的其他詞具有相關(guān)性,并作為圖譜中的連接關(guān)系,取TOP3,其中相似度的計(jì)算采用常用的N維向量相似度計(jì)算:
公式說明:
Distance(A,B):表示函數(shù)處理A,B兩者之間的余弦夾角,返回夾角值,便于排序;
A:表示當(dāng)前文檔的實(shí)體名,如處理西瓜文檔時,當(dāng)前A就表示西瓜的詞向量;
B:表示當(dāng)前文檔的其他詞向量;
Ai,Bi:表示對應(yīng)詞的詞向量;
步驟三:通過加入人工標(biāo)注的關(guān)系屬性信息,來獲取更全的實(shí)體屬性信息,具體步驟如下:
3.1.定義可能的關(guān)系信息,可能的關(guān)系信息越多則獲取的屬性信息有可能更多;
3.2.關(guān)聯(lián)過后進(jìn)行部分人工較對;
步驟四:對事件的獲取以及圖譜關(guān)系建立,具體步驟如下:
4.1.假設(shè)實(shí)體詞有{E1,E2,...,En},接下來進(jìn)行相關(guān)事件的爬取工作,采用關(guān)鍵詞爬取相關(guān)事件HTML,進(jìn)行解析,獲取事件。
4.2對于實(shí)體屬性圖譜獲取,以及事件獲取,需要實(shí)體間的消岐以及融合,說明如下:
4.2.1目前所做的是簡稱以及全稱的實(shí)體融合(即實(shí)體名稱的簡稱與全稱建立映射關(guān)系)。在圖譜中只存在一種實(shí)體名稱(簡稱或全稱),根據(jù)映射關(guān)系對圖譜數(shù)據(jù)融合時,進(jìn)行實(shí)體的消岐(即圖譜中實(shí)體名稱的統(tǒng)一)。外部訪問時,通過關(guān)系映射,獲取實(shí)體的圖譜信息(意思就是外部不論輸入簡稱還是全稱,其返回的圖譜是不變的,因?yàn)橛杏成潢P(guān)系的存在)例如:如西瓜的噴灑農(nóng)藥有:甲草胺,滅草胺,拉索,通過百科數(shù)據(jù)可知,滅草胺,拉索也是甲草胺,只是存在名稱不一樣;建立滅草胺,拉索、甲草胺的映射關(guān)系,圖譜中只存在甲草胺,但外部即使訪問到滅草胺,也能獲得甲草胺的圖譜信息。
本發(fā)明的一種基于規(guī)則模型的實(shí)體抽取與關(guān)系挖掘構(gòu)建知識圖譜的方法,其優(yōu)點(diǎn)及功效在于:本發(fā)明旨在構(gòu)造特定領(lǐng)域的知識圖譜,將文本信息轉(zhuǎn)換成詞向量數(shù)學(xué)信息,然后進(jìn)行向量相似度比較,并根據(jù)數(shù)字間的關(guān)系,來標(biāo)注實(shí)體間的關(guān)系,為用戶展現(xiàn)出該領(lǐng)域的核心知識庫,并提高優(yōu)化搜索質(zhì)量,實(shí)現(xiàn)了從簡單字符串到實(shí)體理解的過程。
附圖說明
圖1所示為本發(fā)明方法的整體流程圖。
圖2所示為本發(fā)明實(shí)施例步驟2.2中網(wǎng)頁的文本信息存入到指定文檔中的示意圖。
圖3所示為本發(fā)明實(shí)施例步驟2.3中文檔分詞結(jié)果示意圖。
圖4所示為本發(fā)明實(shí)施例步驟2.4中將訓(xùn)練文檔中詞的詞向量保存成文本文件的示意圖。
圖5所示為本發(fā)明實(shí)施例步驟2.5計(jì)算與西瓜實(shí)體詞向量最相似的詞作為西瓜的外鏈接的計(jì)算結(jié)果。
圖6所示為本發(fā)明實(shí)施例步驟三處理結(jié)果。
圖7所示為本發(fā)明實(shí)施例步驟4.1對進(jìn)行實(shí)體與事件的抽取結(jié)果。
圖8所示為本發(fā)明實(shí)施例步驟4.2對獲取與目標(biāo)實(shí)體更近的實(shí)體的處理結(jié)果。
圖9所示為本發(fā)明實(shí)施例步驟4.3對實(shí)體的簡稱與全稱的映射關(guān)系抽取結(jié)果。
具體實(shí)施方式
下面結(jié)合附圖和具體實(shí)施例,對本發(fā)明的技術(shù)方案做進(jìn)一步的說明。
本發(fā)明一種基于規(guī)則模型的實(shí)體抽取與關(guān)系挖掘構(gòu)建知識圖譜的方法,具體實(shí)施步驟如下(以食品安全知識圖譜構(gòu)建為例):
步驟一:爬取目標(biāo)領(lǐng)域的百科知識庫數(shù)據(jù),并定義食品類、農(nóng)藥類、營養(yǎng)類、病蟲害類等字典,便于規(guī)則挖掘:
(1)根據(jù)國家食品標(biāo)準(zhǔn)分類,農(nóng)藥分類、以及營養(yǎng)物質(zhì)、果蔬所可能的病蟲害,爬取相關(guān)百科數(shù)據(jù)以及人工參與來構(gòu)建字典,并建立部分簡稱與全稱的映射關(guān)系。
(2)根據(jù)目標(biāo)字典,定向爬取食品的實(shí)體百科數(shù)據(jù),提供知識圖譜數(shù)據(jù)支撐。
步驟二:對百科類數(shù)據(jù)處理,獲取中文文本信息并計(jì)算URL的個數(shù),便于后續(xù)處理。具體步驟如下:
2.1對選取的網(wǎng)頁進(jìn)行URL個數(shù)統(tǒng)計(jì),采用正則表達(dá)式進(jìn)行匹配URL,并寫入到文本中,旨在展示該實(shí)體的外鏈接數(shù),建立更多鏈接信息;
2.2統(tǒng)計(jì)完URL后,對網(wǎng)頁源代碼標(biāo)簽進(jìn)行過濾,即網(wǎng)頁的文本信息保留下來,就像我們?yōu)g覽網(wǎng)頁時看到的網(wǎng)頁信息,存入到指定文檔中,如圖2所示;
2.3對文檔采用分詞工具進(jìn)行分詞,分詞工具采用開源的解霸工具以及加入特定領(lǐng)域字典(食品、農(nóng)藥、營養(yǎng)、病蟲害)的方式進(jìn)行分詞,文檔分詞結(jié)果如圖3所示;
2.4對于分好詞的文檔,采用word2vec詞向量訓(xùn)練工具,訓(xùn)練文檔中詞的詞向量,并保存成文本文件,結(jié)果如圖4所示;
2.5根據(jù)所訓(xùn)練出來的詞向量,計(jì)算與西瓜實(shí)體詞向量最相似的詞作為西瓜的外鏈接,以豐富知識圖譜,計(jì)算結(jié)果如圖5所示;
步驟三:通過加入人工標(biāo)注的關(guān)系屬性信息,來獲取更全的實(shí)體屬性信息,本發(fā)明主要考慮食品安全問題,故對食品(主要指植物如:水果、蔬菜)所存在的病蟲害、食品(主要指植物如:水果、蔬菜)所噴灑的農(nóng)藥、食品中含有的營養(yǎng)物質(zhì),進(jìn)行人工加入字典,便于分詞以及正則匹配,以獲取更多的實(shí)體間屬性關(guān)系。
處理后結(jié)果如圖6所示;
步驟四:對事件的獲取以及圖譜關(guān)系建立:
4.1對于食品事件的獲取采用爬取最近食品安全新聞,結(jié)合步驟一的食品字典,進(jìn)行實(shí)體與事件的抽取,抽取結(jié)果如圖7所示;
4.2對于前期獲取的URL數(shù)據(jù),進(jìn)行處理,獲取與目標(biāo)實(shí)體更近的實(shí)體,處理結(jié)果如圖8所示;
說明:對于每個事物只提取排序后的前三個按從大到小,舉例說明:西瓜(143)表示西瓜網(wǎng)頁中有143個鏈接,木瓜(105)表示木瓜網(wǎng)頁中有105個鏈接,而15表示西瓜與木瓜共有15個鏈接相同的URL。
4.3根據(jù)定義的關(guān)系進(jìn)行實(shí)體與屬性的關(guān)聯(lián),實(shí)體的簡稱與全稱的映射關(guān)系抽取結(jié)果如圖9所示:
實(shí)體之間的聯(lián)系是通過屬性進(jìn)行相關(guān)的,通過以上步驟的處理,即可構(gòu)建知識圖譜,本發(fā)明所定義:食品與食品之間有營養(yǎng)物質(zhì)屬性,以及所發(fā)生病蟲害屬性,食品與安全事件之間是發(fā)生關(guān)系,食品與農(nóng)藥之間是噴灑關(guān)系。具體三元組關(guān)系(實(shí)體,關(guān)系,實(shí)體)定義如下:
(食品,營養(yǎng),營養(yǎng)元素)
(食品,病蟲害,病蟲害)
(食品,安全事件,事件)
(食品(部分食品),噴灑,農(nóng)藥)
(食品,所屬,食品分類)
(農(nóng)藥,所屬,農(nóng)藥分類)
本發(fā)明的優(yōu)點(diǎn)是算法具有高效性,計(jì)算成本相對較低,準(zhǔn)確性非常高,并且能夠提高使用者快速了解特定領(lǐng)域的知識庫,減少用戶的信息負(fù)擔(dān),在知識圖譜建立的基礎(chǔ)上進(jìn)行相關(guān)信息的挖掘,將有助于我們對事件的發(fā)生進(jìn)行相關(guān)控制,也更容易獲取知識(通過問答)。