楊 澤 ,顧 磊
(南京郵電大學(xué) 計(jì)算機(jī)學(xué)院,江蘇 南京 210023)
自從2012年谷歌提出知識(shí)圖譜(Knowledge Graph)[1]的概念后,越來越多的研究圍繞知識(shí)圖譜構(gòu)建展開。目前對(duì)知識(shí)圖譜的研究應(yīng)用主要包含通用知識(shí)圖譜和垂直領(lǐng)域知識(shí)圖譜。典型的通用知識(shí)圖譜包括用于研究領(lǐng)域的DBpedia[2]、YAGO[3]、Freebase[4]等以及用于工程領(lǐng)域的谷歌“Knowledge Graph”、百度“知心”、搜狗“知立方”等。典型的領(lǐng)域知識(shí)圖譜包括醫(yī)學(xué)病理領(lǐng)域知識(shí)圖譜CMeKG[5]、地理信息領(lǐng)域知識(shí)圖譜Geonames、企業(yè)領(lǐng)域知識(shí)圖譜“天眼查”等。知識(shí)圖譜構(gòu)建的首要關(guān)鍵步驟就是知識(shí)抽取,根據(jù)數(shù)據(jù)來源包含非結(jié)構(gòu)化、半結(jié)構(gòu)化以及結(jié)構(gòu)化數(shù)據(jù)。通常非結(jié)構(gòu)化數(shù)據(jù)的處理是難點(diǎn),以文本為代表的非結(jié)構(gòu)化數(shù)據(jù)需要進(jìn)行預(yù)處理,如先進(jìn)行分詞與詞性標(biāo)注[6]。古典文學(xué)文本的圖譜構(gòu)建就屬于非結(jié)構(gòu)化的,由于中古典文學(xué)的知識(shí)圖譜相關(guān)研究較少,通常需要大量的人工標(biāo)注工作。特別是以中國(guó)古典文學(xué)為代表的古文面臨更多的困難,因?yàn)楣盼淖⒅氐涔?、駢驪對(duì)仗、音律工整,語(yǔ)法和用詞方面相對(duì)于現(xiàn)代文更加復(fù)雜和講究,使得計(jì)算機(jī)很難識(shí)別有意義的詞語(yǔ)的邊界。
通常已有的古文方面的知識(shí)圖譜構(gòu)建大都基于規(guī)則抽取。文獻(xiàn)[7]以農(nóng)業(yè)古籍本體的構(gòu)建為例,從專業(yè)文本及專業(yè)詞典中抽取關(guān)鍵詞,得到本體概念集合,利用軟件工具Protégé進(jìn)行本體構(gòu)建,并采用Jena實(shí)現(xiàn)了對(duì)該本體的可視化瀏覽及檢索。文獻(xiàn)[8]以《二十四史》為資源基礎(chǔ),利用基于詞典的技術(shù)和規(guī)則模式匹配技術(shù)來標(biāo)注與獲取文本中的命名實(shí)體及關(guān)系,并開發(fā)“中華基本史籍分析系統(tǒng)”提供檢索。也有少量將規(guī)則抽取與機(jī)器學(xué)習(xí)相結(jié)合的方式。文獻(xiàn)[9]以《左傳》語(yǔ)料為基礎(chǔ)(該語(yǔ)料進(jìn)行了人工分詞與詞性標(biāo)注),利用條件隨機(jī)場(chǎng)進(jìn)行BIO角色標(biāo)注,并在BIO識(shí)別的基礎(chǔ)上,根據(jù)規(guī)則,利用觸發(fā)詞獲取屬性關(guān)系,從先秦典籍中抽取本體實(shí)例??傮w而言,想要利用自然語(yǔ)言處理技術(shù)進(jìn)行自動(dòng)抽取需要一些預(yù)處理工作,其中一個(gè)必要的步驟是對(duì)古文進(jìn)行分詞與詞性標(biāo)注。文獻(xiàn)[10]利用條件隨機(jī)場(chǎng)模型,主要對(duì)詞性、語(yǔ)音特征構(gòu)建模板,對(duì)《詩(shī)經(jīng)》進(jìn)行分詞。文獻(xiàn)[11]利用條件隨機(jī)場(chǎng)模型,通過字詞結(jié)構(gòu)、詞語(yǔ)拼音和字詞長(zhǎng)度等特征信息構(gòu)建組合特征模板,對(duì)先秦典籍進(jìn)行詞性標(biāo)注。條件隨機(jī)場(chǎng)模型依賴于根據(jù)語(yǔ)言特點(diǎn)所人工編寫的特征模板,雖然也取得了較好的結(jié)果,但是結(jié)果性能過于依賴特征模板的簡(jiǎn)單或復(fù)雜程度。
該文提出了針對(duì)中國(guó)古典文學(xué)文本的知識(shí)圖譜構(gòu)建方法。與傳統(tǒng)的方法相比,其主要特點(diǎn)在于:一是利用聯(lián)合模型對(duì)古文進(jìn)行分詞與詞性標(biāo)注,并在此基礎(chǔ)上進(jìn)行知識(shí)圖譜構(gòu)建。利用深度學(xué)習(xí)方法對(duì)古文進(jìn)行分詞與詞性標(biāo)注[12]的研究相對(duì)較少,該文采用深度神經(jīng)網(wǎng)絡(luò)模型進(jìn)行聯(lián)合分詞與詞性標(biāo)注,來獲得更長(zhǎng)距離的上下文關(guān)系進(jìn)行分詞與詞性標(biāo)注。二是根據(jù)詞性標(biāo)簽進(jìn)行實(shí)體抽取,根據(jù)豐富的詞性標(biāo)簽抽取相應(yīng)實(shí)體。該文主要介紹以《三國(guó)演義》為例的中國(guó)古典文學(xué)文本知識(shí)圖譜構(gòu)建的流程步驟,首先根據(jù)語(yǔ)料庫(kù)的網(wǎng)頁(yè)標(biāo)簽匹配整理生成分詞與詞性標(biāo)注數(shù)據(jù)集,其次訓(xùn)練出更加適用于古典文學(xué)文本的聯(lián)合分詞與詞性標(biāo)注模型,并將最佳模型應(yīng)用于《三國(guó)演義》。最終,在分詞與詞性標(biāo)注結(jié)果的基礎(chǔ)上進(jìn)行實(shí)體與關(guān)系抽取,并以圖數(shù)據(jù)庫(kù)作為知識(shí)存儲(chǔ),進(jìn)行《三國(guó)演義》知識(shí)圖譜可視化查詢。
為了從非結(jié)構(gòu)化的中國(guó)古典文學(xué)文本中構(gòu)建知識(shí)圖譜,定義了圖1所示的構(gòu)建步驟。主要分為三個(gè)部分:文本及語(yǔ)料庫(kù)的加工整理、聯(lián)合分詞與詞性標(biāo)注、圖譜及可視化查詢系統(tǒng)的構(gòu)建。
圖1 知識(shí)圖譜構(gòu)建步驟
(1)文本及語(yǔ)料庫(kù)的加工整理。
首先,從網(wǎng)上獲得公開的Sheffield Corpus of Chinese (SCC)語(yǔ)料庫(kù)[13],進(jìn)行加工整理后,生成分詞與詞性標(biāo)注數(shù)據(jù)集。關(guān)于SCC的介紹放在3.1節(jié)。
其次,從網(wǎng)上獲得古典文學(xué)的電子文本,例如整本《三國(guó)演義》,并對(duì)其加工整理,去除其中的錯(cuò)誤,使其可以作為測(cè)試樣本輸入深度神經(jīng)網(wǎng)絡(luò)模型。
(2)聯(lián)合分詞與詞性標(biāo)注。
使用《四庫(kù)全書》預(yù)訓(xùn)練詞向量[14],并將由SCC語(yǔ)料庫(kù)得來的古文分詞與詞性標(biāo)注數(shù)據(jù)集作為訓(xùn)練樣本輸入深度神經(jīng)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練,然后對(duì)古典文學(xué)的電子文本(例如《三國(guó)演義》)進(jìn)行分詞與詞性標(biāo)注。
(3)圖譜及可視化查詢系統(tǒng)的構(gòu)建。
首先,對(duì)《三國(guó)演義》分詞與詞性標(biāo)注結(jié)果進(jìn)行處理,即刪除停用詞,停用詞包含虛詞等無意義的詞,得到具有意義的內(nèi)容詞,并進(jìn)行人工修改錯(cuò)誤的分詞與詞性標(biāo)簽,并且對(duì)人名進(jìn)行匹配替換,將人名的簡(jiǎn)稱詞語(yǔ)替換為完整的人名。
其次,根據(jù)詞性標(biāo)簽進(jìn)行匹配抽取實(shí)體,依據(jù)詞性標(biāo)簽定義幾種實(shí)體,如人物、地點(diǎn)實(shí)體,并以動(dòng)詞詞頻信息為基礎(chǔ),人工定義幾組關(guān)系,作為實(shí)體之間的關(guān)系。
最后,參照維基百科人工進(jìn)行實(shí)體關(guān)系補(bǔ)充,將實(shí)體和關(guān)系分別作為圖的節(jié)點(diǎn)和邊,構(gòu)建圖譜與可視化查詢系統(tǒng)。
長(zhǎng)短期記憶(long-short term memory,LSTM)[15]引入了輸入門(input gate)、遺忘門(forget gate)、輸出門(output gate)的概念,以及與隱藏狀態(tài)相似的記憶細(xì)胞,從而記錄額外信息。
t時(shí)刻的隱藏狀態(tài)ht是關(guān)于當(dāng)前時(shí)間的輸出門ot和當(dāng)前時(shí)間的記憶細(xì)胞ct的乘積,定義如下:
ht=ottanh(ct)
(1)
當(dāng)輸出門的值接近于1時(shí),記憶細(xì)胞信息被傳遞到隱藏狀態(tài)供輸出門使用,當(dāng)值接近于0時(shí),記憶細(xì)胞信息只自己保留。其中,輸出門定義如下:
ot=σ(Woxt+Uoht-1+Voct)
(2)
其中,σ為sigmoid函數(shù),可以將值變換為0和1之間,Vo是對(duì)角矩陣。
(3)
(4)
遺忘門ft調(diào)節(jié)遺忘現(xiàn)有記憶細(xì)胞的程度,輸入門it調(diào)節(jié)新的記憶細(xì)胞被添加到記憶單元的程度。遺忘門、輸入門定義如下:
ft=σ(Wfxt+Ufht-1+Vfct-1)
(5)
it=σ(Wixt+Uiht-1+Vict-1)
(6)
其中,Vf和Vi為對(duì)角矩陣。
門控循環(huán)單元(gated recurrent units,GRU)[16]被提出來使每個(gè)循環(huán)單元自適應(yīng)地捕獲不同時(shí)間序列的依存關(guān)系。通過引入重置門(reset gate)和更新門(update gate)的概念,修改循環(huán)網(wǎng)絡(luò)中隱藏狀態(tài)的計(jì)算方式。
(7)
其中更新門zt決定需要從上一時(shí)間的隱藏狀態(tài)中遺忘多少信息,需要加入多少候選隱藏狀態(tài)信息。更新門的定義如下:
zt=σ(Wzxt+Uzht-1)
(8)
在現(xiàn)有狀態(tài)和新計(jì)算狀態(tài)之間進(jìn)行線性求和的過程類似于LSTM,但是GRU沒用單元來控制其狀態(tài)顯示的程度,但是每次都會(huì)顯示整個(gè)狀態(tài)。
(9)
其中,rt是重置門,⊙是逐元素乘法,當(dāng)重置門的值接近于0時(shí),那么就會(huì)丟棄上一時(shí)間的隱藏狀態(tài),當(dāng)值接近于1時(shí),那么就會(huì)保留上一時(shí)間的隱藏狀態(tài)。
重置門rt的計(jì)算與更新門類似,定義如下:
rt=σ(Wrxt+Urht-1)
(10)
該文采用的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)為BiGRU-CRF(bidirectional gated recurrent units using conditional random fields),如圖2所示,漢字作為向量表示,被送入雙向循環(huán)層。對(duì)于循環(huán)層,使用GRU作為基本循環(huán)單元,因?yàn)樗哂邢嗨频墓δ?,但與LSTM相比,參數(shù)更少[17]。將Dropout[18]應(yīng)用到雙向循環(huán)層的輸出,接著將輸出進(jìn)行串聯(lián)并傳遞到一階鏈CRF(conditional random fields)[19]層,最后預(yù)測(cè)組合標(biāo)簽的最佳順序。
圖2 BiGRU-CRF神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
根據(jù)相關(guān)工作,單詞邊界采用的標(biāo)簽為B、M、E、S,分別代表單詞的開頭、內(nèi)部、結(jié)尾或單個(gè)字符。在給定輸入字符的情況下,CRF層對(duì)所有可能的組合標(biāo)簽上的條件得分建模。結(jié)合連續(xù)標(biāo)簽之間的轉(zhuǎn)換分?jǐn)?shù),可以通過Viterbi算法有效地獲取最優(yōu)時(shí)序。
Viterbi算法的時(shí)間復(fù)雜度O(k2n)相對(duì)于句子長(zhǎng)度n是線性的,其中k為常數(shù),等于組合標(biāo)簽的總數(shù)。對(duì)于某些POS(part-of-speech)標(biāo)簽,將它們與完整的邊界標(biāo)簽結(jié)合起來是多余的。例如,功能詞“的”可以標(biāo)記為FMI,由于它是一個(gè)單字,因此B-FMI、M-FMI和E-FMI的組合標(biāo)簽永遠(yuǎn)不會(huì)出現(xiàn)在實(shí)驗(yàn)數(shù)據(jù)中,因此應(yīng)該進(jìn)行修剪以減少搜索空間。同時(shí),如果在訓(xùn)練數(shù)據(jù)中給定的POS標(biāo)簽下的最大單詞長(zhǎng)度為2,就會(huì)進(jìn)行修剪相應(yīng)的標(biāo)簽。
通常,普遍的基于字符的神經(jīng)網(wǎng)絡(luò)模型假定,比如單詞和n-grams形式的較大范圍的文本,可以由它們所組成的字符序列來表示。例如,通過字符ci的向量表示vi傳遞給函數(shù)f來獲得生成子空間cm,n的向量表示Vm,n。其中f通常是RNN或CNN神經(jīng)網(wǎng)絡(luò)。
Vm,n=f(vm,vm+1,…,vn)
(11)
在文中,不完全依賴使用BiGRU從無上下文的字符表示中提取上下文特征,如圖3所示,通過使用增量式的級(jí)聯(lián)n-gram模型對(duì)字符向量中豐富的本地信息進(jìn)行編碼。例如,給定上下文中的中心字“甚”的向量表示是上下文無關(guān)的字“甚”本身的向量表示Vi,i和二元bigram“此甚”的向量表示Vi-1,i,以及同理的三元trigram“此甚好”的向量表示Vi-1,i+1三者的級(jí)聯(lián)。
不同于公式(11)中的字符表示來構(gòu)造n-gram模型中cm,n的向量表示Vm,n,可以使用不同順序來表示Vm,n,例如對(duì)Vi,i、Vi-1,i、Vi-1,i+1分別進(jìn)行隨機(jī)初始化。使用一個(gè)特殊的向量來表示每個(gè)序列中未知的n-grams,然后將不同順序的n-grams進(jìn)行增量式的級(jí)聯(lián)來形成給定上下文的中文的向量表示,接著進(jìn)一步傳遞給循環(huán)層。如圖3所示,中心字兩邊相鄰的字也都被考慮了進(jìn)去。
圖3 給定上下文的中文字符的向量表示
基于圖1描述的框架來構(gòu)建古典文學(xué)知識(shí)圖譜,本節(jié)主要以《三國(guó)演義》為例,介紹和展示每個(gè)步驟中產(chǎn)生的重要結(jié)果。
SCC語(yǔ)料庫(kù)(SCC語(yǔ)料庫(kù)網(wǎng)址:https://www.dhi.ac.uk/scc/db/scc/index.jsp)選擇的文本代表了不同時(shí)期發(fā)現(xiàn)的多種文本,時(shí)間段主要分為先秦、秦漢、魏晉南北朝、隋唐五代、宋元、明清,文本的類型根據(jù)不同的主題又可以分為文學(xué)類的戲劇、小說、民俗和詩(shī)歌,非文學(xué)類的傳記、政府、歷史、法律、醫(yī)學(xué)、戰(zhàn)爭(zhēng)、哲學(xué)、宗教、科學(xué)和游記。文學(xué)類型的文本包含200 040個(gè)字符(46.2%),非文學(xué)類的文本包含232 630個(gè)字符(53.8%)。SCC語(yǔ)料庫(kù)使用自然章節(jié)來對(duì)文學(xué)文本進(jìn)行采樣,因此采樣文本的長(zhǎng)度有所不同。例如,選取《三國(guó)志》魏書中的一章包含13 000多個(gè)字符,《三國(guó)志》蜀書中的兩章包含9 000多個(gè)字符,《三國(guó)志》吳書中的兩章包含13 000多個(gè)字符。整個(gè)SCC語(yǔ)料庫(kù)中共包含40個(gè)文本樣本超過42萬個(gè)字符。詞性標(biāo)注包含18個(gè)基本詞性類別及82個(gè)分類,共112個(gè)不同的標(biāo)記標(biāo)簽。如名詞又細(xì)分為朝代名、人名、地名、年份等等,分別使用詞性標(biāo)簽“NNK”、“NNL”、“NNM”、“NNO”來表示。將網(wǎng)頁(yè)顯示的語(yǔ)料庫(kù)通過加工整理,使用Xpath進(jìn)行網(wǎng)頁(yè)標(biāo)簽匹配,并使用OpenCC將繁體轉(zhuǎn)化為簡(jiǎn)體,得到分詞與詞性標(biāo)注數(shù)據(jù)集。
該文采用BiGRU-CRF神經(jīng)網(wǎng)絡(luò)模型,使用古文詞向量作為預(yù)訓(xùn)練嵌入,這和傳統(tǒng)的使用條件隨機(jī)場(chǎng)模型不同。神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)已在2.3節(jié)進(jìn)行了詳細(xì)的介紹。為了進(jìn)一步說明使用聯(lián)合模型的優(yōu)點(diǎn),進(jìn)行了如下實(shí)驗(yàn)。對(duì)分詞與詞性標(biāo)注數(shù)據(jù)集進(jìn)行劃分,將數(shù)據(jù)集的70%劃為訓(xùn)練集,15%劃為開發(fā)集,15%劃分為測(cè)試集,最終,訓(xùn)練集的句子長(zhǎng)度為45 070,開發(fā)集的長(zhǎng)度為9 780,測(cè)試集的長(zhǎng)度為10 208。對(duì)于深度神經(jīng)網(wǎng)絡(luò)模型,使用《四庫(kù)全書》詞向量(中文詞向量下載地址:https://github.com/Embedding/Chinese-Word-Vectors)作為預(yù)訓(xùn)練嵌入,對(duì)不在預(yù)訓(xùn)練詞匯表中的采用隨機(jī)初始化的向量,使用誤差反向傳播算法對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,在訓(xùn)練期間,所有的詞向量都可以通過反向傳播梯度進(jìn)行微調(diào)。使用Adagrad[20]算法進(jìn)行模型參數(shù)優(yōu)化,初始學(xué)習(xí)率設(shè)置為0.1,衰減率為0.05,Dropout為0.5。使用準(zhǔn)確率(precision)、召回率(recall)和F1值(F1-score)作為評(píng)估標(biāo)準(zhǔn),Seg表示分詞評(píng)估結(jié)果,Pos tagging表示詞性標(biāo)注評(píng)估結(jié)果,以詞性標(biāo)注結(jié)果作為最終的評(píng)估結(jié)果。最后,將訓(xùn)練的最佳模型運(yùn)用于測(cè)試集,結(jié)果如表1所示。
表1 分詞與詞性標(biāo)注結(jié)果 %
將BiGRU-CRF模型與CRF++、Bi-LSTM進(jìn)行了對(duì)比,CRF++得到的最終F1值為74.97%,Bi-LSTM模型得到的最終F1值為82.70%,該文使用的BiGRU-CRF聯(lián)合模型獲得了最佳結(jié)果,最終F1值為84.21%。由于聯(lián)合模型取得較好的結(jié)果,把它應(yīng)用于一百二十回《三國(guó)演義》中,得到《三國(guó)演義》分詞與詞性標(biāo)注結(jié)果。
通常在非結(jié)構(gòu)化文本中,可以將句子劃分為具有模糊意義的內(nèi)容詞和功能詞,內(nèi)容詞所代表的實(shí)體是文本中的主要成分,但是功能詞構(gòu)成的句子也占據(jù)很大的成分,因此需要在《三國(guó)演義》分詞與詞性標(biāo)注的結(jié)果中將虛詞、功能詞和標(biāo)點(diǎn)符號(hào)構(gòu)成的停用詞進(jìn)行刪除,通常可以使用匹配的方式來刪除。同時(shí),由于分詞與詞性標(biāo)注結(jié)果中仍然存在錯(cuò)誤的分詞與詞性標(biāo)簽,需要人工進(jìn)行修正,并且對(duì)于人名的簡(jiǎn)稱,需要根據(jù)上下文進(jìn)行匹配替換成完整的人名。該文采用詞性標(biāo)簽匹配的方式進(jìn)行實(shí)體抽取。根據(jù)古典文學(xué)的特點(diǎn),使用了豐富的詞性標(biāo)簽,對(duì)于朝代、人名、地名、年份等名詞分別對(duì)應(yīng)了不同的詞性標(biāo)簽,例如將詞性標(biāo)簽“NNL”、“NNM”分別作為人物實(shí)體、地點(diǎn)實(shí)體。
以第三十回為例,根據(jù)詞性標(biāo)簽抽取出人物實(shí)體、地點(diǎn)實(shí)體,并以詞云的方式進(jìn)行展示,如圖4所示。同時(shí),參考高質(zhì)量的數(shù)據(jù)源,如維基百科,根據(jù)維基百科進(jìn)行實(shí)體補(bǔ)充,如添加“陣營(yíng)”、“事件”、“時(shí)間”實(shí)體。
圖4 人物、地點(diǎn)實(shí)體詞云
對(duì)于實(shí)體之間的關(guān)系,主要根據(jù)人工進(jìn)行定義。對(duì)詞性標(biāo)簽帶有“V”開頭的動(dòng)詞類詞語(yǔ)進(jìn)行統(tǒng)計(jì)來確定主要關(guān)系基調(diào),并以詞云的方式進(jìn)行展示,如圖5所示,可以看出主要關(guān)系都是圍繞戰(zhàn)爭(zhēng)主題。同樣,根據(jù)維基百科人工進(jìn)行關(guān)系定義,作為實(shí)體之間的關(guān)系。
圖5 動(dòng)詞詞云
最終,以第三十回為例,主要的實(shí)體關(guān)系類型如表2所示,根據(jù)“實(shí)體-關(guān)系-實(shí)體”的形式構(gòu)建知識(shí)圖譜,并以Neo4j[21]圖數(shù)據(jù)庫(kù)作為知識(shí)存儲(chǔ),如圖6所示。
表2 實(shí)體關(guān)系類型
內(nèi)容詞是中國(guó)古典文學(xué)信息和知識(shí)的載體,由內(nèi)容詞派生的關(guān)鍵節(jié)點(diǎn)和鏈接代表了古典文學(xué)文本的知識(shí)信息。知識(shí)圖譜的可視化[22]展示清晰地描述了關(guān)鍵內(nèi)容詞之間的關(guān)系,《三國(guó)演義》知識(shí)圖譜可視化查詢系統(tǒng)實(shí)體包含人物、地點(diǎn)、時(shí)間、事件和陣營(yíng),為了完整地描述《三國(guó)演義》知識(shí)結(jié)構(gòu),使用維基百科數(shù)據(jù)進(jìn)行知識(shí)補(bǔ)充,如添加人物的簡(jiǎn)介、官職作為人物實(shí)體的屬性等。其中人物實(shí)體共1 191個(gè),地點(diǎn)實(shí)體175個(gè),時(shí)間實(shí)體135個(gè),事件實(shí)體83個(gè),陣營(yíng)實(shí)體43個(gè)。
《三國(guó)演義》知識(shí)圖譜可視化查詢系統(tǒng)使用圖數(shù)據(jù)庫(kù)Neo4j作為數(shù)據(jù)存儲(chǔ),使用Flask框架作為后端,使用D3.js框架作為前端可視化展示。前端頁(yè)面通過jQuery發(fā)送查詢請(qǐng)求,后端根據(jù)不同請(qǐng)求參數(shù)對(duì)應(yīng)的視圖函數(shù)進(jìn)行處理,根據(jù)查詢內(nèi)容的類型,調(diào)用與之對(duì)應(yīng)的cypher查詢語(yǔ)句,并以json類型返回查詢結(jié)果給前端。如圖7所示,對(duì)于查詢的實(shí)體,會(huì)顯示該實(shí)體的所有屬性,以及一跳距離內(nèi)的相關(guān)實(shí)體,最后的整體效果為以查詢實(shí)體為中心,展示出具有語(yǔ)義關(guān)系的相關(guān)實(shí)體形成網(wǎng)狀結(jié)構(gòu)。
圖7 《三國(guó)演義》知識(shí)圖譜可視化查詢系統(tǒng)
在這項(xiàng)研究中,采用了自然語(yǔ)言處理技術(shù)和知識(shí)圖譜來抽取和可視化中國(guó)古典文學(xué)文本中的知識(shí)信息。這項(xiàng)工作對(duì)非結(jié)構(gòu)化中國(guó)古典文學(xué)文本進(jìn)行知識(shí)圖譜構(gòu)建提供了新的角度。主要結(jié)論:語(yǔ)料庫(kù)生成的數(shù)據(jù)集提高了聯(lián)合分詞與詞性標(biāo)注的性能。根據(jù)詞性標(biāo)簽抽取實(shí)體及詞云顯示了內(nèi)容詞在章節(jié)中的分布和比重情況,有助于抽取關(guān)鍵知識(shí)信息。知識(shí)圖譜的可視化展示可以顯示非結(jié)構(gòu)化文本的隱藏知識(shí)信息。由于古文比較復(fù)雜而且相應(yīng)語(yǔ)料庫(kù)較少,所有目前這種基于聯(lián)合模型的方法僅僅只能做到半自動(dòng)化的構(gòu)建圖譜,一些實(shí)體抽取中的錯(cuò)誤還需要人為修正。
未來的工作:知識(shí)圖譜和原始古典文學(xué)文本之間的知識(shí)檢索,知識(shí)圖譜僅顯示了關(guān)鍵節(jié)點(diǎn)和它們之間的關(guān)系,需要定向查詢功能,來將原始文本中的詳細(xì)描述鏈接到知識(shí)圖譜的節(jié)點(diǎn)以進(jìn)行檢索。可以進(jìn)行實(shí)體鏈接、指代消歧,抽取出更多的實(shí)體與關(guān)系,豐富知識(shí)圖譜的知識(shí)結(jié)構(gòu)。