產(chǎn)品經(jīng)理的知識圖譜入門實操

8 評論 35074 瀏覽 234 收藏 62 分鐘

知識圖譜概述知識圖譜的構(gòu)建,用戶可以使用自然語言來查詢相關(guān)的信息,更加符合人的思維方式,從而更快速的幫助用戶找到所需的信息。目前除了搜索引擎之外,知識圖譜還廣泛應(yīng)用于社交、金融、教育、醫(yī)療等多個領(lǐng)域。接下來,我們分別詳細介紹一下知識圖譜的技術(shù)要點。

1. 知識圖譜概述

1.1 什么是知識圖譜

人工智能的終極目標(biāo),是讓計算機可以使用人類思考問題的方式來解決問題,達到智能化從而解放人類的腦力,讓人們的生活更加便捷,更加有效率。雖然自90年代以來互聯(lián)網(wǎng)技術(shù)已經(jīng)蓬勃發(fā)展了30年,但是計算機的能力還遠遠達不到人們期望的智能化水平,根本的原因在于目前計算機對于數(shù)據(jù)的存儲和使用方式,與人腦思考問題的方式還有著本質(zhì)上的區(qū)別。

目前以網(wǎng)頁為主要載體的互聯(lián)網(wǎng)信息,都是以字符串、數(shù)組等半結(jié)構(gòu)化的數(shù)據(jù)類型組合而成的超文本鏈接。對于計算機而言,任何一個以文字來表示的信息都是0和1組成的二進制字符串,其中的差異只是文本存儲空間所占大小的不同,文字所表示的語義信息并不能被計算機所理解。

而人卻可以從不同的文字中解讀不同的信息,這是因為人可以理解不同的文字所指代的不同含義,并且可以根據(jù)一些規(guī)則,對文字之間的關(guān)系進行推理。

舉個簡單的例子來說,當(dāng)看到“他兒子今年出生了”這段文字時,我們可以推斷出文中的“他”應(yīng)該有個妻子,也就是“兒子”的母親,并且兒子的年齡是現(xiàn)在是0歲。雖然文字中并沒有明確的表達這些信息,但可以根據(jù)常識推斷出這些信息,這些常識或者規(guī)則我們稱之為“知識”。

那么,有沒有可能讓計算機可以理解這些文字所代表的真實含義,做到像人一樣通過知識對這些信息進行理解和推理呢?

萬維網(wǎng)之父蒂姆·伯納斯·李(Tim Berners-Lee)曾說過:“我有兩個夢想:第一個是連接世界上的每個人,現(xiàn)在這個夢想已經(jīng)通過互聯(lián)網(wǎng)實現(xiàn)了,第二個夢想是連接世界上的每個事物,這個光榮的使命交給了語義網(wǎng)?!?/p>

時至今日,這項技術(shù)已經(jīng)經(jīng)歷了語義網(wǎng)絡(luò)、本體論、語義網(wǎng)、鏈接數(shù)據(jù)、知識圖譜幾個階段。

在2012年,谷歌首次將知識圖譜技術(shù)應(yīng)用在搜索引擎中,以提升搜索的能力。在過去沒有使用知識圖譜技術(shù)時,用戶搜索某些信息,搜索引擎會將搜索的關(guān)鍵詞與網(wǎng)站的文本做匹配,根據(jù)匹配度來展示對應(yīng)的網(wǎng)頁信息,所以如果用戶想知道一個問題的答案,但卻不知道答案的關(guān)鍵詞應(yīng)該搜什么的時候,往往會搜不到自己想要的結(jié)果。

但引入知識圖譜之后,引擎會根據(jù)知識圖譜來展示相關(guān)信息,用戶可以使用自然語言來進行搜索,搜索引擎分析用戶的問題之后根據(jù)知識圖譜來查詢對應(yīng)的結(jié)果,自此正式開始了知識圖譜在產(chǎn)品中的應(yīng)用。

現(xiàn)在各大搜索引擎也都會根據(jù)知識圖譜來展示搜索的內(nèi)容,例如在百度中搜索“中國的首都”,搜索的結(jié)果會直接顯示“北京市”相關(guān)的百度百科信息,如圖所示。

通過知識圖譜的構(gòu)建,用戶可以使用自然語言來查詢相關(guān)的信息,更加符合人的思維方式,從而更快速的幫助用戶找到所需的信息。目前除了搜索引擎之外,知識圖譜還廣泛應(yīng)用于社交、金融、教育、醫(yī)療等多個領(lǐng)域。接下來,我們分別詳細介紹一下知識圖譜的技術(shù)要點。

1.2 對象、實例與RDF知識表示

首先,我們需要了解一下如何描述一個“知識”。在之前的章節(jié),我們提到過數(shù)據(jù)分為三種類型,分別是名義數(shù)據(jù)、登記數(shù)據(jù)和連續(xù)數(shù)據(jù)。但是日常生活中不是所有的事物都可以用這三個數(shù)據(jù)類型來被描述,比如一個人、一張圖片、一段視頻,這些東西應(yīng)該怎么描述呢?這里要用到面向?qū)ο蟮母拍睢?/p>

什么是對象呢?我們剛說的一個人、一張照片、一段視頻,都可以稱之為一個對象,對象中包含了各種各樣的屬性,例如人有名字,年齡,身高這些屬性,每個人都會有這些屬性,但屬性的值可能不一樣,當(dāng)我們把屬性的值具象化之后,就可以定義到一個具體的人,例如張三,那么張三就稱之為人這個對象的實例。

如圖所示:

對于對象而言,如果互相之間存在包含關(guān)系,則稱之為父類對象和子類對象。例如把人作為一個對象,這個對象其實可以進一步細分為男人和女人,那么人就是男人的父類對象,男人是人的子類對象,張三則是男人這個子類對象的實例。如圖所示:

了解了對象、類與實例之間的關(guān)系之后,我們就可以進入到知識圖譜的正題——知識表示了。根據(jù)Web技術(shù)領(lǐng)域權(quán)威標(biāo)準(zhǔn)機構(gòu)W3C指定的知識圖譜描述標(biāo)準(zhǔn),所有的知識應(yīng)該用資源描述框架(Resource Description Framework,RDF)進行描述,并對其他與知識圖譜相關(guān)的技術(shù)進行了定義,如圖所示:

RDF中的R表示頁面、圖片、視頻等任何具有統(tǒng)一資源標(biāo)識符(Uniform Resource Identifier,URI)的資源,D表示屬性,即特征和資源之間的關(guān)系,F(xiàn)表示模型以及描述的語法。簡單來說,每一條RDF知識表述都可以以一個主謂賓的語句形式出現(xiàn),例如{中國,首都是,北京},其中“中國”“北京”是兩個實體,而“首都是”則表示兩個實體之間的關(guān)系。

在RDF中總是兩個實體,以及兩個實體之間的關(guān)系三者構(gòu)成,所以RDF又簡稱三元組,如圖所示:

需要注意的是,每個RDF的實體都要有一個唯一的URI進行標(biāo)識,但RDF也是允許空白節(jié)點存在的,同時實體資源也可以允許匿名資源的存在,即不標(biāo)識具體的資源,只標(biāo)識資源的類型,作為連接別的實體的橋梁。

雖然RDF是知識圖譜的基石,但其本身對于事物的描述能力非常有限,根據(jù)RDF的定義我們可以發(fā)現(xiàn),組成RDF的三元組中,兩個實體都具有唯一標(biāo)識,因此缺乏泛化抽象的能力,無法對同一個類別的事物進行定義和描述。舉個例子來說,我們可以通過RDF來描述中國的首都是北京,但如果希望歸納出所有國家與首都之間的關(guān)系以及他們的屬性,僅僅用一條實例的RDF是無法實現(xiàn)的。

知識的泛化能力對于知識圖譜實現(xiàn)智能化而言非常重要,只有具備歸納出抽象知識的能力,才能覆蓋更廣泛的知識。那么要如何做才能解決RDF的這個問題呢?

我們在之前講解了父類、子類與實例之間的關(guān)系,對于RDF而言也可以通過類似的結(jié)構(gòu)來對知識進行泛化的描述,這就是我們接下來要講到的本體語言——RDFS和OWL。

1.3 RDFS與OWL本體語言

RDFS是最基礎(chǔ)的本體語言,其中的S表示Schema,可以表示某些實例的抽象屬性。具體而言,包括的核心詞匯如表所示:

舉例來說,我們可以通過<rdfs:subClassOf>來表示父類與子類之間從屬的關(guān)系。如圖所示,中國是國家這個類的實例,北京是城市這個類的實例,而城市和國家又都是地區(qū)這個父類的子類,通過RDFS可以清晰的劃分出類與實例之間的層次關(guān)系,并通過類之間的關(guān)系連接來推理出更多的知識。

在本例中我們可以推斷一個國家的首都是某一個城市這樣的知識,這樣就可以泛化的涵蓋所有國家與首都城市之間的關(guān)系連接,這種對于知識的泛化在語音智能問答產(chǎn)品中是非常重要的技術(shù),我們會在后續(xù)的文章中對智能問答產(chǎn)品做詳細講解。

雖然通過RDFS可以表示一些簡單的語義,但在更復(fù)雜的場景下,RDFS語義表達能力顯得太弱,在表達知識的能力上依然存在缺陷,缺少諸多常用的特征。

例如對于局部值域的屬性定義:RDFS中通過rdfs:range定義了屬性的值域,該值域是全局性的,但無法表示該屬性應(yīng)用于某些具體的類時具有的特殊值域限制;無法表示多個類、實例和屬性之間是等價還是不等價;無法表示多個類之間是相交關(guān)系還是互斥關(guān)系;無法對某些屬性值的取值范圍進行約束;無法表示某些屬性具有傳遞性、函數(shù)性等特性等。

因為RDFS無法很好的滿足知識的表示需求,W3C在2002年發(fā)布了OWL本體語言(OWL,Web Ontology Language)作為RDFS的擴展,并將其作為語義網(wǎng)中表示本體的推薦語言,目前OWL已經(jīng)迭代至OWL2版本,最初的OWL又稱之為OWL1。

相較于RDFS,OWL擴充了非常多的描述屬性,彌補了RDFS的不足之處,例如增加了等價性聲明、傳遞關(guān)系聲明、對稱性、數(shù)值約束等。以下為主要的核心描述詞匯:

除了以上列舉的幾種之外,OWL還有非常多的屬性描述詞匯,在構(gòu)建知識圖譜時需要了解這些屬性詞匯,并具備相關(guān)領(lǐng)域的專業(yè)知識才能正確的描述出知識的特征,如果需要了解更多的OWL相關(guān)描述,可以通過W3C的官方文檔查看。

2. 知識圖譜構(gòu)建流程

2.1 知識建模

知識圖譜從覆蓋的知識面來分,可以分為通用知識圖譜(General-purpose Knowledge Graph,GKG)和行業(yè)知識圖譜(Domain-specific Knowledge Graph,DKG)兩種類型,行業(yè)知識圖譜因使用的場景是面相特定的領(lǐng)域,故又稱領(lǐng)域知識圖譜。雖然他們都是知識圖譜,但在知識表示、知識獲取和知識應(yīng)用層面來看,兩者又有很大的區(qū)別,如表所示。

第一是從知識廣度來看,通用知識圖譜覆蓋的知識面較寬,主要涵蓋的是日常生活中的常識性問題,例如Google搜索引擎的知識圖譜就是面相全領(lǐng)域的通用知識圖譜,在2012年發(fā)布時就包含了5億多個的實體,10億多條的關(guān)系,中文的典型通用知識圖譜有復(fù)旦大學(xué)知識工場實驗室研發(fā)并維護的大規(guī)模通用領(lǐng)域中文百科知識圖譜(CN-Dbpedia),該項目包含900多萬的實體信息以及6700多萬的三元組關(guān)系,已在問答機器人、智能玩具、智慧醫(yī)療、智慧軟件等領(lǐng)域產(chǎn)生了3.5億次API調(diào)用量。

行業(yè)知識圖譜的廣度通常較窄,一般只涵蓋某一個專業(yè)領(lǐng)域的相關(guān)知識,目前除搜索引擎和語音助手使用的知識圖譜外,大多數(shù)的知識圖譜項目都是行業(yè)知識圖譜。典型的應(yīng)用例如美國帕蘭提爾(Palantir)公司的政務(wù)領(lǐng)域知識圖譜, GeoNames的全球地理知識圖譜(該數(shù)據(jù)庫包含了近200種語言的1100萬個地名和200萬種別名),以及國內(nèi)包含了中醫(yī)養(yǎng)生、中醫(yī)美容等內(nèi)容的中醫(yī)藥知識服務(wù)系統(tǒng)(TCM knowledge service system)等,如圖所示。

第二是從知識深度來看,通用知識圖譜的層級體系一般較淺,對于知識的泛化而言通常沒有太多的歸納,這與通用知識圖譜獲取知識的方式有關(guān),也跟通用知識圖譜的使用場景有關(guān),對于通用知識圖譜而言多數(shù)的使用場景都是基于某個具體的實體。而行業(yè)知識圖譜的層級體系一般較深,例如在電商領(lǐng)域的商品分類中,關(guān)于服裝的分類就不僅僅只是上衣和下裝這么簡單,各種風(fēng)格、時尚元素、款式、材質(zhì)都有可能構(gòu)成不同的類。

第三是從知識顆粒度來看,通用知識圖譜的顆粒度一般比較粗,而行業(yè)知識圖譜一般顆粒度較細。在通用知識圖譜中,組成知識的基本單元一般是一個完整的文檔或者資源,例如一篇文章,一首歌,一個視頻等。但是對于行業(yè)知識圖譜而言,需要的顆粒度根據(jù)業(yè)務(wù)的不同要劃分為更細的顆粒度,以教育領(lǐng)域的知識圖譜為例,一個數(shù)學(xué)公式、一篇語文課文中的一句話、一個英文單詞都有可能構(gòu)成獨立的知識實體,才能滿足學(xué)生對于個性化學(xué)習(xí)的需求。

正因為通用知識圖譜和行業(yè)知識圖譜的應(yīng)用場景有很大的不同,讓這兩種知識圖譜的知識獲取方式有著顯著的區(qū)別,對于知識獲取方式而言可以根據(jù)人工參與度的不同劃分為自頂向下和自底向上兩種方法。

具體來說,行業(yè)知識圖譜大多采用自頂向下的知識獲取方法,這種方法是通過領(lǐng)域?qū)<沂止⒅R進行整理和歸納,編輯為知識圖譜的數(shù)據(jù)結(jié)構(gòu)。

該方法的優(yōu)點在于可以滿足產(chǎn)品對于知識專業(yè)性的及權(quán)威性的要求,例如醫(yī)療領(lǐng)域的知識圖譜對于知識的專業(yè)性就有著嚴格的要求,必須由具備相關(guān)能力的專家來進行編輯。同時,手工編輯也可以將知識圖譜設(shè)計的概念和范圍限定在可控的范圍內(nèi)。

例如“古龍”這個實體如果是在文學(xué)知識圖譜上,代表的是一個作家,但如果放在美妝知識圖譜中,代表的則是一款香水,如果不對知識圖譜的應(yīng)用范圍進行限定則很有可能出現(xiàn)歧義。

專家參與編輯讓行業(yè)知識圖譜具有相對較高的準(zhǔn)確性,但同時也帶來了很多的弊端,首先是高昂的人力成本,通常編輯一個知識圖譜需要成立一個專家團隊,團隊中的成員需要同時具備領(lǐng)域知識以及計算機知識,人力市場上能滿足條件的人非常稀少,人工成本居高不下。

根據(jù)相關(guān)資料,Google編輯一條RDF三元組的人工成本平均需要0.8美金。如何能做到項目兼顧成本與效果是每個做知識圖譜的產(chǎn)品經(jīng)理要思考的問題。

另外一個不足之處是行業(yè)知識圖譜可能有多個數(shù)據(jù)編輯者或數(shù)據(jù)來源,導(dǎo)致數(shù)據(jù)的格式不統(tǒng)一,這種數(shù)據(jù)術(shù)語稱之為多源異構(gòu)數(shù)據(jù),如何制訂相關(guān)的規(guī)則,將不同格式的數(shù)據(jù)轉(zhuǎn)化為統(tǒng)一的格式也是產(chǎn)品經(jīng)理在定義數(shù)據(jù)處理規(guī)則時需要考慮的問題。

通用知識圖譜多采用自底向上的方法獲取知識,這種方法是基于行業(yè)現(xiàn)有的標(biāo)準(zhǔn)數(shù)據(jù)庫進行轉(zhuǎn)換,或從現(xiàn)有的高質(zhì)量數(shù)據(jù)源中提取知識本體以及本體之間的關(guān)系,主要應(yīng)用于搜索、推薦、問答等業(yè)務(wù)場景。

因其強調(diào)知識的廣度,數(shù)據(jù)主要來自于互聯(lián)網(wǎng)上的公開信息,所以很難生成完整的全局性的本體層進行統(tǒng)一的管理。但因為知識獲取的自動化程度較高,所以對于一些新的概念和新的關(guān)系可以很好的涵蓋。

從知識的應(yīng)用層面來看,通用知識圖譜的知識相對稀疏,所以知識推理鏈條較短,通常來講推理操作都是基于上下文的一到兩步的推理,如果超出這個很容易出現(xiàn)語義漂移(semantic drift)現(xiàn)象,讓推理的結(jié)果答非所問,人工智能秒變?nèi)斯ぶ钦?。而行業(yè)知識圖譜的推理鏈條可以較長,更適合需要進行復(fù)雜推理和計算的場景。

2.2 結(jié)構(gòu)化與半結(jié)構(gòu)化知識獲取

從不同的來源、不同結(jié)構(gòu)的數(shù)據(jù)中進行知識提取存入到知識圖譜,這一過程我們稱之為知識獲取。從知識的來源大致可以分為三類,分別是結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)換、半結(jié)構(gòu)化數(shù)據(jù)提取和非結(jié)構(gòu)化文本數(shù)據(jù)提取。

(1)結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)換

語義網(wǎng)的目標(biāo)是建議以RDF為標(biāo)準(zhǔn)數(shù)據(jù)模型的數(shù)據(jù)網(wǎng),但當(dāng)前大多數(shù)Web數(shù)據(jù)源是由關(guān)系型數(shù)據(jù)庫(RDB)驅(qū)動的,因此如何將RDB數(shù)據(jù)集向RDF數(shù)據(jù)集進行映射一直是語義網(wǎng)領(lǐng)域的研究熱點。

結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)換就是指將關(guān)系型數(shù)據(jù)庫數(shù)據(jù),轉(zhuǎn)換為RDF結(jié)構(gòu)知識圖譜的知識獲取方式。W3C在2012年專門為此制定了一個標(biāo)準(zhǔn)R2RML(Relational database to RDF Mapping Language)。這是一種可以用于表示從關(guān)系型數(shù)據(jù)庫到RDF數(shù)據(jù)集的自定義映射的語言,通過這種映射關(guān)系,我們可以將關(guān)系型數(shù)據(jù)庫中的數(shù)據(jù)轉(zhuǎn)換為自定義的知識圖譜結(jié)構(gòu)。

雖然這種轉(zhuǎn)換并沒有直接生成真正的RDF數(shù)據(jù)集,僅僅只是在數(shù)據(jù)庫和知識圖譜的本體中間做了一重映射關(guān)系,但是通過表示映射關(guān)系的mapping文件,系統(tǒng)可以將對RDF三元組的查詢等操作翻譯成對應(yīng)的SQL語句,快速將企業(yè)過去積累的數(shù)據(jù)轉(zhuǎn)化為知識圖譜,這種轉(zhuǎn)化后的數(shù)據(jù)本身以及數(shù)據(jù)之間的關(guān)系都符合業(yè)務(wù)的需要,可以讓產(chǎn)品快速落地進行迭代。

(2)半結(jié)構(gòu)化數(shù)據(jù)

半結(jié)構(gòu)化的數(shù)據(jù)是指沒有按照RDF格式,但是卻有著一定規(guī)律的網(wǎng)絡(luò)數(shù)據(jù),通過網(wǎng)絡(luò)爬蟲爬取完整的網(wǎng)頁信息之后,再通過包裝器(wrapper)將其轉(zhuǎn)換成知識圖譜數(shù)據(jù)。

半結(jié)構(gòu)化的數(shù)據(jù)來源主要有兩個,一是維基百科、百度百科這類百科網(wǎng)站的信息表格(infobox),另外則是來源于各類網(wǎng)頁中的文本、列表數(shù)據(jù),如圖所示。

在百度百科中搜索喬布斯的相關(guān)詞條會發(fā)現(xiàn)這樣一個表格,表格中詳細記錄了喬布斯與其他實體之間的關(guān)系,與搜索的詞條之間形成了一個完整的 RDF三元組,例如喬布斯的國籍是美國。通過對百科網(wǎng)站的infobox進行信息抽取,可以快速獲得高質(zhì)量的知識實體。但是,通過infobox只能抽取到實例層數(shù)據(jù),對于類層面的關(guān)系還需要通過別的方式來進行構(gòu)建,例如自頂向下由領(lǐng)域?qū)<覙?gòu)建。

對于其他的網(wǎng)頁信息而言,抽取數(shù)據(jù)時需要過濾掉網(wǎng)頁中含有的廣告、外鏈等冗余信息,只保留有實際需要的知識信息,這需要根據(jù)網(wǎng)頁的HTML代碼標(biāo)簽構(gòu)建專用的網(wǎng)頁包裝器。

如果給每一個網(wǎng)頁都開發(fā)一個專門的包裝器,不僅需要投入大量的開發(fā)人力,而且通用性會比較差,為了解決這個問題,可以先對需要爬取的網(wǎng)頁進行聚類,針對聚類來設(shè)計包裝器會大幅提高知識獲取的速度。

通過爬蟲和包裝器抽取互聯(lián)網(wǎng)的公開信息會面臨一個問題,就是隨著網(wǎng)站的更新迭代,網(wǎng)頁的信息結(jié)構(gòu)可能會發(fā)生改變,既是一個微小的變動也可能會導(dǎo)致原本構(gòu)建的包裝器失效無法再繼續(xù)工作。對于這個問題最簡單的辦法是重新創(chuàng)建一個新的包裝器以適應(yīng)網(wǎng)站的升級,但是如果爬取的網(wǎng)站數(shù)量非常多,這種做法不但效率很低而且會給開發(fā)人員帶來很重的工作負擔(dān)。

為了能維持包裝器的正常工作,我們可以對需要采集的數(shù)據(jù)進行數(shù)據(jù)標(biāo)注,用機器學(xué)習(xí)的方法對數(shù)據(jù)的特征進行學(xué)習(xí)并構(gòu)建出模型,進而在整個網(wǎng)頁站點下使用模型自動生成新的包裝器進行數(shù)據(jù)的抽取。

2.3 非結(jié)構(gòu)化知識獲取

與整個互聯(lián)網(wǎng)的數(shù)據(jù)相比,百科類網(wǎng)站的知識庫只是滄海一粟,除了網(wǎng)頁中半結(jié)構(gòu)化的數(shù)據(jù)之外,還存在著海量的無結(jié)構(gòu)網(wǎng)頁文本數(shù)據(jù)。如何將這些文本數(shù)據(jù)中的知識抽取出來是很多計算機科學(xué)家的研究方向。

例如華盛頓大學(xué)Oren Etzioni教授主導(dǎo)的開放信息抽?。╫pen information extraction,OpenIE)項目,該項目從1億個網(wǎng)頁中抽取了5億條數(shù)據(jù),如圖所示。還有卡耐基梅隆大學(xué)Tom Mitchell教授主導(dǎo)的永不停止的語言學(xué)習(xí)(never ending language learning,NELL)項目,這個項目從公開網(wǎng)頁中抽取了5千萬條數(shù)據(jù)。

(1)實體抽取

從無結(jié)構(gòu)的文本中抽取知識,首先需要識別文本中的實體,這個過程稱之為做命名實體識別(Named Entity Recognition,NER),命名實體識別屬于自然語言處理中的一項基礎(chǔ)任務(wù),同時也是關(guān)系抽取、事件抽取、機器翻譯、問答系統(tǒng)等多個NLP任務(wù)的基礎(chǔ)工作,其目標(biāo)是從文本中抽取出具有特定意義的實體,一般包括實體類、實踐類、數(shù)字類三個大的類別,以及人名、地名、組織機構(gòu)、時間、日期、貨幣、百分比。

除此之外,也可以根據(jù)項目的需要指定特定領(lǐng)域內(nèi)的實體,例如書名、疾病名、事件名等,只要是業(yè)務(wù)目標(biāo)需要的實體,都可以做為實體抽取對象。

在中文文本數(shù)據(jù)中進行實體抽取相比英文文本數(shù)據(jù)而言難度更大,首先是因為英語中的實體命名有非常明顯的形式標(biāo)志,每個單詞之間用空格隔開,并且實體的每個詞第一個字母是大寫,所以識別的難度相對容易。而中文沒有類似英文文本中空格之類的邊界標(biāo)識符,所以要做命名實體第一步是要確定詞與詞之間的邊界,將詞與詞之間間隔開來,這個過程稱之為分詞。

第二點是命名實體本身的構(gòu)成比較復(fù)雜,不斷會有新的實體名稱出現(xiàn),例如新的人名,地名,物品名等,而且命名實體的長度也沒有限制,不同的實體可能會有不同的結(jié)構(gòu),例如少數(shù)民族人名或者翻譯的外國人名,難以建立大而全的實體數(shù)據(jù)庫,分詞技術(shù)對于這部分的實體識別相對來說難度會高很多。

第三點是在不同的文本資料中,命名實體之間可能會出現(xiàn)嵌套的情況,互相交叉以及相互包含,需要根據(jù)上下文才能推斷出命名實體真實的意思。例如“北京大學(xué)的學(xué)生參加了運動會”,可以劃分為“北京大學(xué)/的/學(xué)生/參加/了/運動/會/”,也可以劃分為“北京/大學(xué)/的/學(xué)生/參加/了/運動會”,不同的劃分方法會造成實體識別的不同。

關(guān)于分詞,我們會在后續(xù)的自然語言處理章節(jié)詳細講解。這里僅對命名實體的常用技術(shù)方法做一個概述。目前對于命名實識別的主要方法分為三種:基于規(guī)則和詞典的方法、基于統(tǒng)計和機器學(xué)習(xí)的方法以及前兩者混合使用的方法。

基于規(guī)則和詞典的方法是由語言學(xué)家或業(yè)務(wù)專家手工構(gòu)造規(guī)則模板,定義好需要抽取的命名實體,以字符串的匹配作為主要的手段,這是命名實體抽取最早使用的方法,提取的結(jié)果非常精準(zhǔn),但是這類系統(tǒng)大多依賴于知識庫和詞典,系統(tǒng)的泛化性不高,對于不同的系統(tǒng)需要重新編寫規(guī)則,而且人力投入過大,建設(shè)的時間周期也較長,只適合于那些不會有太多新實體的領(lǐng)域知識圖譜構(gòu)建。

基于統(tǒng)計和機器學(xué)習(xí)的方法主要包括隱馬爾可夫模型(HMM)、條件隨機場(CRF)、長短期記憶網(wǎng)絡(luò)(LSTM)、最大熵模型(MaxEnt)等方法。這類實體抽取的方法對于特征的選擇要求較高,需要從文本中選擇對該項任務(wù)有影響的各種特征,并將這些特征加入到特征向量中。

依據(jù)特定命名實體識別的特征,考慮選擇能有效反映該類實體特性的特征集合。主要做法是通過對訓(xùn)練預(yù)料所包含的語言信息進行統(tǒng)計和分析,從訓(xùn)練預(yù)料中挖掘出特征。有關(guān)特征可以分為具體的單詞特征、上下文特征、詞典及詞性特征、停用詞特征、核心詞特征以及語義特征等。

基于統(tǒng)計的方法對語料庫依賴比較大,但可以用來建設(shè)和評估命名實體識別系統(tǒng)的大規(guī)模通用語料庫又比較少,一般是使用維基百科或主流紙媒的標(biāo)注作為基礎(chǔ)訓(xùn)練語料,這類語料庫雖然在權(quán)威性和正確性上有保障,但是在時效性上交叉,對于新詞的識別能力較差。

實體識別技術(shù)經(jīng)歷了多次迭代,從早期的基于規(guī)則和字典的方法,到傳統(tǒng)的機器學(xué)習(xí)方法,再到深度學(xué)習(xí)方法,以及近期的遷移學(xué)習(xí)和半監(jiān)督學(xué)習(xí)方法。

目前,將神經(jīng)網(wǎng)絡(luò)與CRF模型結(jié)合的CNN/RNN-CRF是實體識別的主流模型,基于神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的實體識別方法,繼承了深度學(xué)習(xí)方法的優(yōu)點,無需大量人工特征,只需詞向量和字向量就能達到主流水平,加入高質(zhì)量的詞典特征能夠進一步提升效果,而在未來,遷移學(xué)習(xí)和半監(jiān)督學(xué)習(xí)進行實體識別技術(shù)方向研究的重點。

(2)實體消歧

不論是英語還是漢語,構(gòu)成文本的基本單位都是詞,但是同一個詞在不同的上下文中可能代表不同的含義,例如英語的“play”就有玩、扮演、播放、比賽等含義,而漢語的“打”字除了用作介詞和量詞之外,用作動詞時就有25個不同的意思。實體消歧就是明確多義詞在文中具體指代意思的技術(shù),通過實體消歧,就可以根據(jù)當(dāng)前的語境,準(zhǔn)確建立實體鏈接。

實體消歧可以看做是基于上下文的分類問題,同其他自然語言處理的任務(wù)一樣,早起的實體消歧也是采用基于規(guī)則和詞典的方法。但這種方法的局限性太大,后續(xù)逐漸被機器學(xué)習(xí)的方法取代。我們知道機器學(xué)習(xí)分為有監(jiān)督學(xué)習(xí)和無監(jiān)督學(xué)習(xí),應(yīng)用在實體消歧上也分為有監(jiān)督的實體消歧方法和無監(jiān)督的實體消歧方法。

基于有監(jiān)督的學(xué)習(xí)實質(zhì)上是通過建立分類器,通過劃分多義詞的上下文類別的方法來區(qū)分多義詞的詞義,常見的方法有基于互信息的消歧方法,基于貝葉斯分類器的消歧方法以及基于最大熵的消歧方法。

舉例來說,“蘋果”一詞有時指水果,有時指科技公司,但如果與“吃”組成上下文,那么就可以根據(jù)貝葉斯概率計算出這個詞應(yīng)該是指水果而不是科技公司。

無監(jiān)督的實體消歧主要采用聚類算法進行,先對每個實體不同的意思抽取其上下文的特征組成特征向量并進行聚類,當(dāng)遇到需要進行實體消除的文本時,讓文本與之前構(gòu)建好的特征向量聚類之間的相似度計算來辨別實體的意思。

在一項測試實驗中,采用KNN(k=1)方法進行實體消歧的相似度計算,最終取得了平均正確率83.13%的結(jié)果。這種方法本質(zhì)上還是基于詞袋模型(bag of words),并沒有考慮上下文之間的聯(lián)系,所以對于一些復(fù)雜的實體辨別上效果不佳。

不論是采用有監(jiān)督的學(xué)習(xí)還是無監(jiān)督的學(xué)習(xí),實體消歧最終的結(jié)果都依賴于訓(xùn)練集數(shù)據(jù)的完整性和準(zhǔn)確性,所以目前在這一領(lǐng)域還未形成非常完善的解決方案,如何能夠提高實體消歧的準(zhǔn)確度有待專家學(xué)者的進一步研究。

(3)指代消解

在我們?nèi)粘S谜Z中大量的存在指代詞,用來簡化語言增加溝通的效率。例如有這樣一段文本:“喬布斯在2007年發(fā)布了第一代iPhone,他表示這款手機領(lǐng)先其他手機五年”,在這句話中的“他”指代的是“喬布斯”,而“這款手機”指代的是“第一代iPhone”。

明確這些代詞所指代的具體含義,將這些指代項關(guān)聯(lián)到正確的實體對象中的技術(shù)過程就是指代消解,又稱共指消解或參照消解。為了讓知識抽取更加準(zhǔn)確且不遺漏文本中的相關(guān)信息,必須對文本中的指代詞進行指代消解。代消解不僅在知識抽取中起著重要的作用,而且在機器翻譯,文本摘要等自然語言應(yīng)用中最基礎(chǔ)的一項技術(shù)。

根據(jù)北京大學(xué)的王厚峰教授的研究,指代一般分成兩種回指(Anaphora,也成指示性指代)和共指(Coreference,也成同指)兩種情況,回指是表示當(dāng)前的指示代詞與上文出現(xiàn)過的詞存在語義關(guān)聯(lián)性,而共指則是兩個實體名字指向的真是世界中的同一實體,可以獨立于上下文存在。例如“阿里巴巴集團首任董事長”和“馬云”就是共指。

在漢語中的指代主要有一下三種典型的形式:

人稱代詞(Pronoun)

例如:【李明】怕高媽媽一個人待在家里寂寞,【他】便將家里的電視搬了過來。

指示代詞(Demonstrative)

例如:【很多人都想創(chuàng)造一個美好的世界留給孩子】,【這】可以理解,但不完全正確。

有定描述(Definite Description)。

例如:【貿(mào)易制裁】仿佛成了美國政府在對華關(guān)系中慣用的大棒,然而,【這根大棒】果真如美國政府所希望的那樣靈驗嗎?

指代消解的基本原理是先構(gòu)造一個先行語候選集,然后再從候選集中做多選一的選擇。代表的方法是1998年Hobbs提出的樸素Hobbs算法,這是一種基于句法分析樹的搜索,通過遍歷桔子的語法數(shù)來判斷詞語詞之間是否可以互相替換,另一種指代消解方法是1983年Grose和Sidner提出的中心理論(Center Theory)。

這種方法認為文本中的描述是應(yīng)該是連貫的,而通過語義的連貫性就可以找到文本中受關(guān)注的實體。但這種兩種方法只適用于指代詞與被指代詞距離較近的回指情境,在實際應(yīng)用上有一定的局限性。

目前指代消解最新的研究成果是2017年的端到端神經(jīng)共指消解算法(End-to-end Neural Coreference Resolution),其基本原理是找到一個句子中所有出現(xiàn)過的命名實體和代詞,并對他們所在的句子進行特征向量構(gòu)造,計算詞與詞之間的特征向量,然后將代詞和實體進行兩兩匹配計算共指匹配得分,以此來實現(xiàn)指代消解。

雖然指代消解問題已經(jīng)經(jīng)歷了多年的研究和發(fā)展,但到目前為止,多數(shù)的研究成果還是在回指的研究上,對于共指還沒有較好的全自動指代消解技術(shù)和方法,有待專家學(xué)者的進一步研究。

(4)關(guān)系抽取

識別實體與實體之間的語義關(guān)系是知識抽取中的一項核心任務(wù),只有將實體之間通過關(guān)系聯(lián)系起來構(gòu)建成RDF三元組,才能形成知識網(wǎng)絡(luò)。例如:王思聰是萬達集團董事長王健林的獨子,可以抽取出(王思聰,父子關(guān)系,王健林)、(萬達集團、董事長、王健林)兩組三元組實例。

最早的關(guān)系抽取任務(wù)可以追溯至1998年,當(dāng)時是根據(jù)觸發(fā)詞作為關(guān)系識別的依據(jù),然后填充關(guān)系模板槽抽取文本中特定的關(guān)系,例如“董事長”這個關(guān)鍵詞構(gòu)造為X的董事長是Y這樣的模板,而隨著機器學(xué)習(xí)算法和深度神經(jīng)網(wǎng)絡(luò)算法的發(fā)展越來越多的研究把關(guān)系抽取做成分類任務(wù)處理。

例如采用半監(jiān)督學(xué)習(xí)的bootstrapping方法,按照“模板生成→實例抽取”的流程反復(fù)迭代,先給定一個種子實體的文本集合,例如<中國,北京>,接著從文本中抽取出包含種子實體的文本,例如<中國的首都是北京>,從而將<首都>這個關(guān)系抽取出來,然后用新發(fā)現(xiàn)的關(guān)系模板抽取更多新的三元組實例,匹配出所有X的首都是Y這樣的格式。在這個過程中會發(fā)現(xiàn)X與Y除了首都這個關(guān)系實體之外,還有可能出現(xiàn)其他的關(guān)系,通過反復(fù)迭代不斷抽取新的實例和模板直至無法再發(fā)現(xiàn)符合條件的關(guān)系位置。

這種方法的優(yōu)點是構(gòu)建成本較低,適合大規(guī)模的知識庫構(gòu)建,同時可以發(fā)現(xiàn)一些未經(jīng)人工定義的隱含關(guān)系。但在實際使用中也面臨著很多的問題,最常見的問題是在迭代的過程中容易出現(xiàn)噪聲實例和模板,出現(xiàn)語義漂移的現(xiàn)象,結(jié)果的準(zhǔn)確率較低。

另外一點是因為沒有經(jīng)過人工定義關(guān)系,導(dǎo)致關(guān)系語義沒有歸一化,同一種關(guān)系可能會有多種不同的表達方式,例如“首都是”也可以表達為“首都位于”、“設(shè)為首都”等,這些表述實際上是同一種關(guān)系,如何將這些自動發(fā)現(xiàn)的關(guān)系進行聚類規(guī)約是目前還未解決的問題。

關(guān)系抽取的好壞決定了知識圖譜中知識的規(guī)模和質(zhì)量,除了上述的基于模板匹配和半監(jiān)督學(xué)習(xí)的方法之外,采用監(jiān)督學(xué)習(xí)的Pipeline、LSTM-RNN的算法也是比較熱門的方案。

(5)事件抽取

事件抽取可以視為關(guān)系抽取的強化版,是將文本中的事件以結(jié)構(gòu)化的形式呈現(xiàn)出來。事件抽取的第一步是識別事件及其類型,其次要識別出事件所涉及的屬性,最后需要確定每個元素在事件中與事件本身的關(guān)系。

以金融領(lǐng)域構(gòu)建投融資的領(lǐng)域知識圖譜為例,實踐抽取的流程是先定義事件的觸發(fā)詞,即一個事件指稱中最能代表事件發(fā)生的詞,一般是動詞或名詞。然后定義事件的主體元素及其對應(yīng)的屬性。再根據(jù)屬性找到對應(yīng)的值。如圖所示。事件的觸發(fā)詞是“融資”,事件的主體是“自如”,與事件相關(guān)的屬性融資輪數(shù)、募集資金、領(lǐng)投方、跟投方和投前估值。

事件的主體和其他的屬性之間其實可以構(gòu)建出一對多的多元關(guān)系,如上圖的自如與其他屬性構(gòu)成的多元,其本質(zhì)是6個三元組,每個三元組的主語都是觸發(fā)詞這個事件,謂語分別是融資事件的屬性,而賓語分別是抽取出來的值。

我們知道知識圖譜分為通用知識圖譜和領(lǐng)域知識圖譜,事件抽取也可以分為適用于通用知識圖譜的開放域事件抽取,以及適用于領(lǐng)域知識圖譜的限定域事件抽取。上文例舉的金融領(lǐng)域融資事件抽取就是一個限定域的事件抽取。

對于限定域的事件抽取,因為目標(biāo)明確,所以通常都是預(yù)先定義好目標(biāo)事件的類型以及每種類型包含的具體事件元素,并給出一定數(shù)量的人工標(biāo)注數(shù)據(jù)作為訓(xùn)練集特征,后續(xù)采用模式匹配的方法或采用機器學(xué)習(xí)的方法進行事件抽取。

開放域的事件抽取因為在事件識別之前對于可能的事件類型和事件結(jié)構(gòu)都是未知的,所以這類事件抽取主要是基于無監(jiān)督的方法和分布假設(shè)理論。即如果候選事件觸發(fā)詞或者候選事件元素具有相似的語境,那么這些候選事件觸發(fā)詞傾向于觸發(fā)相同類型的事件。

總之,對于無結(jié)構(gòu)的文本數(shù)據(jù)進行知識抽取雖然已經(jīng)經(jīng)歷了多年的發(fā)展,但目在各個子任務(wù)中依然存在很多未解決的問題有待專家學(xué)者的進一步研究。

小提示:在部分自然語言處理的研究報告中,實體抽取和實體消歧會合并稱之為實體鏈接(Entity Linking),或稱實體鏈指任務(wù)。

2.4 知識融合

我們在上文介紹了知識圖譜的多種數(shù)據(jù)來源,但是這些數(shù)據(jù)源中抽取的知識來源廣泛,知識的質(zhì)量可能良莠不齊,也可能存在數(shù)據(jù)重合的部分,所以需要對知識進行融合,將不同數(shù)據(jù)源的知識統(tǒng)一規(guī)范,形成高質(zhì)量的知識庫。在不同的文獻中,知識融合可能有不同的叫法,如本體對齊,本體匹配,實體對齊等,本文統(tǒng)一稱之為知識融合。

知識融合主要包含有三種類型:

  • 第一種是同一個實體有多種不同的表達方式,例如魯迅原名是周樹人,字豫才,對于這些不同的名稱都需要規(guī)約到同一個實體下。另
  • 一種是同一種表達在不同的語境下可能指代的是不同的實體,即一詞多義,例如“蘋果”有可能是指美國蘋果公司,也有可能是指水果。
  • 第三種是跨語言的知識融合,同一個實體在不同的語言或地區(qū)可能有不同的命名,例如騰訊公司的英文是Tencent。

在實際工作中,知識融合是數(shù)據(jù)預(yù)處理不可或缺的一部分,知識融合的好壞直接決定了知識庫的質(zhì)量,也決定了知識圖譜項目的成功與否。

最基本的知識融合方法是知識卡片融合,即上文提到的百科類網(wǎng)站infobox信息,不同的百科網(wǎng)站對于同一個實體的描述可能有差異,所以可以將同一個實體在不同的百科類網(wǎng)站中進行搜索查詢,將查詢信息合并成為一個歸一化之后的知識卡片,即可完成知識融合。

但是對于絕大多數(shù)的知識融合而言并不會像知識卡片的融合這樣簡單,我們知道不同的本體實例是由他們所擁有的屬性決定的,如果兩個不同的實體,屬性都是相同或者近似的,那么我們就可以根據(jù)一定的規(guī)則將實體進行融合。所以要判斷實體是否是同一個實體,是實體的屬性是否相似來判斷,屬性的相似度決定了實體的相似度。

知識融合的流程通常分為四步,分別是數(shù)據(jù)預(yù)處理、數(shù)據(jù)預(yù)分組、屬性相似度計算和實體相似度計算。

  • 數(shù)據(jù)預(yù)處理

將不同數(shù)據(jù)源的數(shù)據(jù)統(tǒng)一格式,例如去除標(biāo)點符號,洗掉臟數(shù)據(jù)等,這一步通常需要人工進行,相關(guān)的方法可以參考前面章節(jié)的數(shù)據(jù)預(yù)處理部分。

  • 數(shù)據(jù)預(yù)分組

這一步主要是為了加快知識融合的效率,降低計算的難度。如果不進行分組的話,那么后續(xù)的實體比較過程就需要龐大的計算量。常用的數(shù)據(jù)分類方法可以采用產(chǎn)品經(jīng)理指定類型進行分組,也可以使用機器學(xué)習(xí)的方法進行無監(jiān)督聚類分組或有監(jiān)督的分類進行分組。

  • 屬性相似度計算

根據(jù)不同的數(shù)據(jù)類型,需要采用不同的方法。如果融合的數(shù)據(jù)對象是純字符串類型的數(shù)據(jù),可以使用編輯距離(levenshtein distance),這是一個度量兩個字符串之間相似度的算法,指兩個字符串之間,由字符串A轉(zhuǎn)換到另一個字符串B所需要最少的插入、刪除、替換等操作的次數(shù),操作次數(shù)越少意味著兩個詞越相似。

如果要融合的是集合類型的數(shù)據(jù),可以通過jaccard相似系數(shù)進行計算,公式如下:

當(dāng)兩個集合A和B交集元素的個數(shù)在A與B的并集中所占比例,稱之為jaccard系數(shù),jaccard值越大說明相似度越高,如果完全一致的兩個集合則相似度為1。類似的余弦相似度也可以用來計算集合類型的數(shù)據(jù)。

如果是整篇文檔類型的數(shù)據(jù),可以線通過TF-IDF算法找出文檔的關(guān)鍵詞,再通過余弦相似度計算關(guān)鍵詞集合的相似度,以此判斷文檔的相似度。另外,使用詞袋模型也可以用來計算文檔的相似度,這兩個方法我們會在后續(xù)章節(jié)詳細講解。

  • 實體相似度計算

這是知識融合的第四步也是最后一步,常用的方法是聚類和聚合兩種。聚類算法在之前的章節(jié)詳細講過K-means聚類,在計算實體相似度的時候,K-means聚類常常和Canopy聚類配合使用,Canpy聚類最大的特點是不需要事先指定K值。除了這兩種聚類方法外,層次聚類和相關(guān)性聚類也可以用于實體相似度的計算。

另一種計算實體相似度的方法是采用聚合算法,根據(jù)屬性相似度的結(jié)果計算出相似度的得分向量,然后根據(jù)機器學(xué)習(xí)的分類算法,例如邏輯回歸、決策樹以及支持向量機等。

3. 實操案例:Protégé構(gòu)建漫威英雄關(guān)系圖譜

知識圖譜技術(shù)剛剛處于起步階段,目前業(yè)內(nèi)并沒有一款通用的本體編輯工具,多數(shù)要進行知識圖譜構(gòu)建的項目,需要先開發(fā)一套知識圖譜本體輯軟件工具,然后再在這基礎(chǔ)之上進行圖譜的構(gòu)建工作。

本章節(jié)的實操案例,我們將使用Protégé來進行,這是一款由斯坦福大學(xué)醫(yī)學(xué)院生物信息研究中心基于Java語言開發(fā)的本體編輯和知識獲取軟件,主要用于語義網(wǎng)中本體的構(gòu)建,雖然不支持多人協(xié)同編輯,但已經(jīng)是目前比較成熟的開源知識圖譜編輯工具,包含了整個圖譜生成、可視化展現(xiàn)以及知識推理的過程。而且軟件本身是開源的,所以可以基于源碼對軟件進行適當(dāng)?shù)母脑?,以符合公司項目需要。非常適合產(chǎn)品經(jīng)理理解知識圖譜的相關(guān)技術(shù)原理。Protégé的主界面如圖所示。

3.1 構(gòu)建本體

首先,我們需要構(gòu)建本體,當(dāng)打開Protégé軟件時會默認打開“Active Ontology”菜單欄,在該菜單下的“Ontology IRI”輸入項中,會有一個默認的本體前綴名,我們可以把它改為自定義的名稱,就像給變量設(shè)置變量名一樣,這里我將其設(shè)置為“http://www.KnowledgeGraph.com”,如圖所示。

如果想要新建一個本體,點擊File菜單欄下的New選項即可。

3.2 構(gòu)建類

當(dāng)我們構(gòu)件好本體之后,點擊“Entities”選項卡進行本體編輯,首先選擇該選項卡下的“Classes”標(biāo)簽創(chuàng)建新的類。如圖所示,在這個頁面中,左側(cè)是所有的類,用樹形結(jié)構(gòu)展示了類之間的對應(yīng)關(guān)系,如果選中左側(cè)的某個類,可以在右側(cè)設(shè)置這個類的相關(guān)描述。我們會看到已經(jīng)有了一個owl:Thing的類存在,這是系統(tǒng)默認的所有類的父類。

單擊選中Thing,在其左上角點擊圖標(biāo)可以創(chuàng)建子類,在彈出的菜單中的Name輸入項中設(shè)置子類的名稱,這里我們輸入“電影”,然后點擊確定。接著選中新創(chuàng)建的電影類,并點擊中間的圖標(biāo)創(chuàng)建創(chuàng)建兄弟類,兄弟類的名稱我們設(shè)置為“人物”,并在人物類下再構(gòu)建兩個子類,分別命名為“男人”和“女人”這樣就完成了類的創(chuàng)建。

當(dāng)然,也可以在相關(guān)的類上單擊鼠標(biāo)右鍵,在彈出的菜單中選擇“Add subclass”以及“Add sibling class”來創(chuàng)建子類和兄弟類,效果和點擊按鈕是一樣的。

如果想要刪除某個類,只需要選中類之后點擊最右側(cè)的圖標(biāo)即可刪除。

3.3 設(shè)置類之間的關(guān)系

我們創(chuàng)建四個類,現(xiàn)在可以對這4個類設(shè)置一些屬性了,在本例中,男人與女人是互斥關(guān)系,一個人的實例只能是男人或女人中的某一個,所以我們可以使用“Disjoint With”屬性來進行描述。

選中女人類,然后點擊右側(cè)的“Disjoint With”屬性右側(cè)的加號按鈕,在彈出的菜單中選擇男人類,然后點擊確定即可完成一個關(guān)系的創(chuàng)建。同樣的操作我們可以設(shè)置人物和電影也為互斥的類,如圖所示。

3.4 構(gòu)建對象屬性

選擇“Object properties”標(biāo)簽進入對象屬性編輯的頁面,與“Classes”頁面非常類似,只是用主題顏色的不同加以區(qū)分。左側(cè)已經(jīng)有了一個系統(tǒng)默認的“owl:topObjectProperty”屬性,點擊左上角的按鈕或者鼠標(biāo)右鍵點擊可以創(chuàng)建一個子屬性,并在彈出的輸入框中輸入屬性的名稱。

我們可以創(chuàng)建一個“主演”的屬性,創(chuàng)建完畢后,在右側(cè)的“Description”中點擊“Domains”選項右側(cè)的加號按鈕,在彈出的菜單中左側(cè)是選擇“主演”,右側(cè)是屬性對應(yīng)的類,選擇“人物”,然后點擊確定按鈕將主演和人物關(guān)聯(lián)起來,表示主演的主語一定是某個人物,如圖所示。

接下來設(shè)置屬性的取值范圍,點擊“Ranges”選項右側(cè)的加號按鈕,將“主演”的取值范圍設(shè)置為“電影”,點擊確定即可。

這樣我們就完成了一個對象屬性的構(gòu)建,在后續(xù)的知識推理中會用到這個屬性,如圖所示。

3.5 構(gòu)建數(shù)據(jù)屬性

選擇“Data properties”標(biāo)簽進入數(shù)據(jù)屬性編輯的頁面,在左側(cè)已經(jīng)有了一個系統(tǒng)默認的“owl:topDataProperty”屬性,點擊左上角的按鈕或者鼠標(biāo)右鍵點擊可以創(chuàng)建一個子屬性,并在彈出的輸入框中輸入屬性的名稱。

我們可以創(chuàng)建一個“英雄名”的屬性,來表示超級英雄的稱呼,創(chuàng)建完畢后,在右側(cè)的“Description”中點擊“Range”右側(cè)的加號,并選擇“Built in dataypes”選項卡,選擇“xsd:string”然后點擊確定,將這個數(shù)據(jù)屬性的取值范圍限定為字符串,設(shè)置完畢之后如圖所示。

3.6 構(gòu)建實例

點擊“Individuals”選項卡進入實例編輯頁面,點擊左上角的圖標(biāo)創(chuàng)建一個新的實例,在彈出的菜單中輸入實例名稱“小羅伯特·唐尼”,點擊確定即可完成實例的創(chuàng)建,我們用同樣的方法繼續(xù)創(chuàng)建“斯嘉麗·約翰遜”、“鋼鐵俠1”、“復(fù)仇者聯(lián)盟1”三個實例。

選中“小羅伯特·唐尼”的實例,在右側(cè)窗口中點擊“Types”的加號按鈕,在彈出的界面中選擇“Class Hierarchy”標(biāo)簽,然后從類中選擇“男人”,表示這個實例是屬于男人這個類的。

接著,在右側(cè)的“Property assertions”設(shè)置窗口下,點擊“Object property assertions”右側(cè)的加號按鈕,在彈出的菜單中會有兩個輸入框,左側(cè)需要輸入對象屬性,右側(cè)輸入另外的實體,我們在左側(cè)輸入“主演”,右側(cè)輸入“鋼鐵俠1”,點擊確定按鈕即完成了一個三元組的創(chuàng)建。

之后需要設(shè)置實例的數(shù)據(jù)屬性,點擊“Data property assertions”右側(cè)的加號界面,在彈出的菜單左側(cè)選擇英雄名的屬性,然后在右側(cè)填寫具體的屬性值,表示該人物在電影中的英雄名叫什么,這里我們填入“鋼鐵俠”并點擊確定,最終的設(shè)置結(jié)果如圖所示。

依照同樣的操作流程將“斯嘉麗·約翰遜”的屬性也設(shè)置完成,將“鋼鐵俠1”的Types設(shè)置為“電影”,但是先保留“復(fù)仇者聯(lián)盟1”的type為空狀態(tài),看看如何讓Protégé對這個實例的所屬類進行自動判斷,實現(xiàn)知識推理。

3.7 知識推理

在頂部菜單中點擊“Reasoner”菜單并選擇“HermiT”選項,將其變?yōu)檫x中狀態(tài),然后再次點擊“Reasoner”菜單,會發(fā)現(xiàn)“Stare Reasoner”變?yōu)榱丝蛇x擇狀態(tài),點擊該按鈕,系統(tǒng)會對知識進行自動推理計算,待計算結(jié)束之后,我們選中“復(fù)仇者聯(lián)盟1”的實體,會發(fā)現(xiàn)它的Types已經(jīng)設(shè)置為“電影”了,點擊右側(cè)的問號圖標(biāo)可以查看到推理的邏輯依據(jù)。

如圖所示,之前我們定義了小羅伯特·唐尼和斯嘉麗·約翰遜主演了復(fù)仇者聯(lián)盟1,而主演的Range取值范圍是電影,所以可以就此推斷出復(fù)仇者聯(lián)盟1是一部電影。

3.8 圖譜可視化

在頂部的“Windows”菜單下選擇“Tabs”下的OntoGraf選項,頂部會增加“OntoGraf”菜單,切換到該菜單并點擊左側(cè)的類名稱,即可在畫布中顯示類的圖標(biāo),如果類有子類或者實例,則會在圖標(biāo)上出現(xiàn)一個加號,雙擊帶加號的圖標(biāo)可以下鉆展開查看所有的類和實例。鼠標(biāo)移動到線上,就可以顯示這條線代表的關(guān)系名稱。通過鼠標(biāo)拖動圖標(biāo)可以很直觀的查看到本體之間的關(guān)系

 

本文由 @黃瀚星 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載

題圖來自Unsplash,基于CC0協(xié)議

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 請問,做一個AI產(chǎn)品經(jīng)理,需要對技術(shù)這么了解的嗎?還是說要對業(yè)務(wù)了解夠深就好?

    來自北京 回復(fù)
    1. 至少要知道技術(shù)的實現(xiàn)原理,能做什么以及不能做什么

      來自廣東 回復(fù)
  2. 即使是一個微小的改動

    回復(fù)
    1. 感謝指正,已修改

      來自廣東 回復(fù)
  3. 錯別字 目前以網(wǎng)頁為主要載體

    回復(fù)
  4. 我現(xiàn)也是智慧城市項目,想向您學(xué)習(xí),方便留下聯(lián)系方式嗎?謝謝!

    來自江西 回復(fù)
    1. 13077313888

      來自廣東 回復(fù)
    2. 嗯,已加您,麻煩您通過下,感謝

      來自江西 回復(fù)