国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于語義要素組合的知識庫問答方法

2018-11-20 06:08:42劉飛龍郝文寧余曉晗
計算機(jī)工程 2018年11期
關(guān)鍵詞:消歧詞庫知識庫

劉飛龍,郝文寧,余曉晗,陳 剛,劉 沖

(陸軍工程大學(xué) 指揮信息系統(tǒng)學(xué)院,南京 210000)

0 概述

隨著萬維網(wǎng)的迅速發(fā)展,大規(guī)模知識庫不斷出現(xiàn),如Yago[1]、DBpedia[2]和Wikidata[3]等。這些知識庫覆蓋面廣、數(shù)據(jù)量大,擁有龐大的結(jié)構(gòu)化數(shù)據(jù),蘊含大量的知識。為能準(zhǔn)確高效地獲取這些知識并充分利用結(jié)構(gòu)化數(shù)據(jù)的優(yōu)勢,專門的知識庫查詢語言(如SPARQL[4])應(yīng)運而生。但是,只有專業(yè)的研究人員才能熟練地掌握該語言的語法,多數(shù)普通用戶仍通過口語化的問題執(zhí)行檢索來獲取知識。由于自然語言具有模糊性和復(fù)雜性,因此機(jī)器很難準(zhǔn)確地理解用戶的意圖,導(dǎo)致其查詢結(jié)果不盡人意。因此,如何讓多數(shù)普通用戶便捷地獲取知識庫中的知識,已成為一個亟待解決的問題?;谥R庫的問答系統(tǒng)允許用戶使用自然語言描述問題,通過后臺問題理解、信息檢索和答案生成,返回給用戶準(zhǔn)確、簡潔的知識庫知識,這能夠降低知識庫查詢的門檻,提升結(jié)構(gòu)化知識的利用率,因此,該系統(tǒng)成為當(dāng)前研究的熱點。

為深層次獲取用戶的查詢意圖,通過對當(dāng)前知識庫問答系統(tǒng)的分析,本文提出基于語義要素組合的知識庫問答系統(tǒng)。圍繞用戶提出的自然語言問題,從問題的依存分析結(jié)構(gòu)入手,首先識別問題中概念、實體、關(guān)系、屬性、屬性值和問題所對應(yīng)的函數(shù)類別(預(yù)定義),之后依據(jù)由依存分析結(jié)構(gòu)和預(yù)定義組合規(guī)則組合識別到的語義要素,生成結(jié)構(gòu)化的問題語義表達(dá)式,然后依據(jù)預(yù)先構(gòu)建的映射集映射語義要素到底層知識庫,使用消歧圖對映射結(jié)果進(jìn)行聯(lián)合消歧后得到由知識庫元素表示的語義表達(dá)式,最后將該語義表達(dá)式轉(zhuǎn)換為SPARQL語句,在知識庫上查詢并返回結(jié)果。

1 相關(guān)研究

早期的知識庫問答主要采取信息檢索的方法。首先抽取問題中的關(guān)鍵詞集合,然后利用該關(guān)鍵詞集合在知識庫中檢索可能的候選答案。但是,簡單的關(guān)鍵詞集無法準(zhǔn)確地表達(dá)問題真正的含義,且難以理解較復(fù)雜的問題。為提升知識問答的精度,研究人員提出多種解決方法。從已有研究成果來看,知識庫問答系統(tǒng)主要包括3種類型:基于模板的方法,基于信息抽取的方法,基于語義分析的方法。

基于模板的知識問答方法[5-7]以句型模板為核心,首先將問題和模板庫中預(yù)構(gòu)建的句型模板進(jìn)行匹配,然后依據(jù)匹配到的句型模板直接提取問題的語義信息,最后依據(jù)該句型模板對應(yīng)的查詢語句執(zhí)行查詢。相比其他方法,該方法不涉及復(fù)雜的語義分析,能夠直接分析用戶的查詢意圖從而得出語義信息,但是其需要預(yù)先構(gòu)建足夠數(shù)量的模板,即知識問答的效果受制于句模庫的數(shù)量和質(zhì)量。

基于信息抽取的知識問答方法,首先抽取問題中的核心實體,然后在知識庫中定位核心詞,抽取以核心詞為中心的周圍幾跳之內(nèi)的實體和關(guān)系形成知識庫子圖,子圖中的節(jié)點和邊中包含著候選答案,最后依據(jù)規(guī)則和模板等構(gòu)建問題特征向量和知識庫子圖特征向量,通過機(jī)器學(xué)習(xí)的方法進(jìn)行候選答案的篩選從而得出最終答案。文獻(xiàn)[8]將問題表層語言信息和知識庫子圖(其文中稱主題圖)中節(jié)點和邊作為特征,以F1正則化邏輯回歸分類器進(jìn)行判定,從主題圖中選擇答案節(jié)點。文獻(xiàn)[9-10]引入向量建模技術(shù),直接將問題以及和問題相關(guān)的候選答案三元組轉(zhuǎn)換為低維向量,結(jié)合正確的問答對進(jìn)行訓(xùn)練,選擇相似度最高的候選答案返回。文獻(xiàn)[11]提出基于查詢圖的圖匹配方法,首先結(jié)合句法分析和關(guān)系抽取提取問題當(dāng)中的三元組并映射成知識庫三元組,然后利用指代消解將三元組連接成查詢圖,最后依據(jù)子圖同構(gòu)在知識庫中查詢匹配子圖并返回答案。然而,大范圍的圖匹配查詢空間過大且效率較低,極大地影響到系統(tǒng)的性能。從問答表現(xiàn)來看,該類知識問答方法只能檢索知識庫中存在的結(jié)果,不能理解需要計算或者推理的問題,若查詢的結(jié)果不是知識庫中存在的元素,則無法執(zhí)行推理且不能計算得到正確答案。

基于語義分析的知識問答方法以規(guī)范化的語義表達(dá)式為核心,首先利用預(yù)先設(shè)計的語義分析方法解析問題語義,將問題轉(zhuǎn)換為規(guī)范化的語義表達(dá)式,然后將該語義表達(dá)式轉(zhuǎn)化為結(jié)構(gòu)化查詢語句執(zhí)行檢索獲取答案。其采取邏輯化的規(guī)范語義表示式作為對問題的解析形式,邏輯關(guān)系清晰,能夠推理并解決復(fù)雜問題。傳統(tǒng)的語義分析[12-13]依賴于人工標(biāo)注的邏輯詞表,只能在小范圍內(nèi)進(jìn)行有監(jiān)督的機(jī)器學(xué)習(xí),當(dāng)遇到在監(jiān)督學(xué)習(xí)中沒有學(xué)習(xí)過的樣本時就很難處理。為擴(kuò)展其應(yīng)用范圍,文獻(xiàn)[14]建立半監(jiān)督模型以擴(kuò)展語義分析器,其首先通過預(yù)定義的邏輯詞表訓(xùn)練有監(jiān)督的語義分析器,然后通過詞匯擴(kuò)展原有語義分析器中的詞匯,進(jìn)而提升語義分析器的適用范圍,但是,其仍然依賴人工標(biāo)注的邏輯詞表。文獻(xiàn)[15]提出擺脫人工標(biāo)注的語義分析方式,其使用DCS語言得到問題的多個語義表達(dá)式,如設(shè)計特征、損失函數(shù),利用已有的問題-答案對訓(xùn)練選擇模型,選擇能得到正確答案的語義表達(dá)式。該方法的正確率依賴于問題-答案對的數(shù)量和質(zhì)量,邏輯語義表達(dá)式構(gòu)建過程不夠精細(xì),產(chǎn)生的邏輯表達(dá)式不準(zhǔn)確,對函數(shù)類問題描述過于簡略,且缺乏專門的映射消歧過程,導(dǎo)致難以理解復(fù)雜的用戶問題。

相較于基于關(guān)鍵詞匹配和信息抽取的方法僅能淺層理解簡單的用戶問題,本文基于語義要素組合的知識問答方法借助邏輯表達(dá)式,能夠深入理解復(fù)雜用戶問題語義,并且不依賴大量人工構(gòu)建的句模庫。相較于基于邏輯詞表和問題-答案對的語義分析方法,本文方法通過語義要素分析、語義要素組合2個階段直接生成規(guī)范化的問題語義表達(dá)式,既能夠避免邏輯詞表對系統(tǒng)應(yīng)用范圍的限制,也不依賴于難以收集的問題-答案對訓(xùn)練模型。

2 知識庫問答方法整體結(jié)構(gòu)

給定一個問答系統(tǒng)中的自然語言問題集Q:{qi|qi∈Q}和知識庫K,本文方法接收任意輸入的qi,經(jīng)過問題理解輸出該問題對應(yīng)的語義表達(dá)式qNLi,通過聯(lián)合消歧生成由知識庫元素表示的語義表達(dá)式qFLi,最后將qFLi轉(zhuǎn)化為SPARQL查詢語句s,用s在知識庫上查詢并輸出答案。本文基于語義要素組合的知識庫問答方法流程如圖1所示。

圖1 基于語義要素組合的知識庫問答方法流程

該方法流程分為以下6個階段:

1)預(yù)處理:執(zhí)行分詞、修正、詞性標(biāo)注、去停用詞、依存分析。

2)語義要素識別:采取基于詞庫的語義要素識別和基于規(guī)則的語義要素識別,抽取問題中的語義要素并標(biāo)記其類型。

3)語義要素組合:首先識別問題中包含的函數(shù)類型,然后依據(jù)基本語義要素組合規(guī)則和函數(shù)對應(yīng)的語義要素組合規(guī)則組合語義要素,生成問題語義表達(dá)式。

4)語義要素映射:利用預(yù)先構(gòu)建的自然語言詞匯-知識庫元素之間的映射關(guān)系,將識別出的問題語義要素映射到知識庫元素。其中,一個語義要素可以對應(yīng)多個知識庫元素。

5)聯(lián)合消歧:通過構(gòu)建消歧圖進(jìn)行聯(lián)合消歧,將上述語義要素和知識庫元素之間的一對多關(guān)系消歧為一對一,生成知識庫語義表達(dá)式。

6)SPARQL生成:將知識庫語義表達(dá)式轉(zhuǎn)換為SPARQL查詢語句。

3 知識庫問答方法過程分析

3.1 相關(guān)概念

本文涉及的相關(guān)概念具體定義闡述如下:

定義1(語義要素) 結(jié)合當(dāng)前結(jié)構(gòu)化知識庫的數(shù)據(jù)類型,本文以E、C、A、R、V分別表示知識庫中的實體、概念、屬性、關(guān)系、屬性值。其中,根據(jù)屬性值的類型不同,用Vd和Vo分別表示數(shù)值型屬性值和對象型屬性值({Vd,Vo}=V)。在此前提下,本文定義如下2類語義要素形式(共用到{e、p、E、C、A、R、V、Vd、Vo}9種標(biāo)記形式):

1)一元語義要素:e和V。其中,e∈{E,C}。

2)二元語義要素:p。其中,p∈{A,R},A和R間的主要區(qū)別是A={A|},R={R|}。

從本質(zhì)上而言,若將知識庫三元組表示為<主體,“關(guān)系”,客體>,則一元語義要素是集合{主體,客體},二元語義要素則是集合{“關(guān)系”}(此處“關(guān)系”為廣義含義,包括屬性和關(guān)系)。

定義2(問點塊) 用戶問題包含疑問詞但不包含語義要素的連續(xù)字符塊。經(jīng)過對大量用戶問題的統(tǒng)計分析,問點塊中所涉及的疑問詞分為以下3類:

1)無意義疑問詞:{“怎么樣”“如何”“怎么”“怎樣”“那么”“這么”“多么”}。

2)有意義疑問詞:{“多少”“多”“幾”“什么”“啥”“誰”“那”“哪”}。

3)原因疑問詞:{“為什么”“為何”}。

3.2 預(yù)處理

在對問題進(jìn)行語義分析前,首先要對問句進(jìn)行預(yù)處理。預(yù)處理的目的是獲取問題的句法結(jié)構(gòu)、分析詞性和詞匯之間的依存關(guān)系、修正不規(guī)范的用戶描述形式(如在問題中穿插拼音、中英文混用、阿拉伯?dāng)?shù)字中文寫法)、去除對理解句子沒有實際幫助的停用詞等。

3.3 語義要素識別

語義要素識別的目的是抽取問題中的語義要素,標(biāo)記其類型,為后續(xù)的語義要素組合提供支撐。通常的識別方法有2種:

1)構(gòu)建相關(guān)詞庫進(jìn)行識別。該方法的優(yōu)點在于只要詞庫信息足夠全面,其識別準(zhǔn)確率可達(dá)任意精度,缺陷在于難以無限制地擴(kuò)充詞庫。

2)通過制定規(guī)則、算法進(jìn)行識別。該方法的優(yōu)點在于通用性,其可以識別復(fù)雜的語義要素,覆蓋率較高,識別類型廣,缺點在于精度受限。

本文采取詞庫和規(guī)則相結(jié)合的方法進(jìn)行語義要素識別,首先由詞庫識別語義要素,對于詞庫識別失敗的詞匯則通過規(guī)則識別。該方法能有效保證識別的精度和覆蓋率。

3.3.1 詞庫識別方法

詞庫識別是語義要素識別的第1個步驟,根據(jù)待識別的語義要素類型建立各自的詞庫。本文涉及的詞庫有以下3種:

1)領(lǐng)域詞庫。這是詞庫最重要的組成部分,由知識庫中元素抽取而來,包括實體庫、概念庫、關(guān)系庫、屬性庫、屬性值庫,分別存放知識庫中實體、概念、關(guān)系、屬性、屬性值,其中,屬性值庫主要是對象型屬性值庫。

2)同義詞庫。該詞庫對領(lǐng)域詞庫進(jìn)行同義擴(kuò)展。由于領(lǐng)域詞庫中的元素來自于知識庫,其結(jié)構(gòu)性較強(qiáng)且形式單一,而在現(xiàn)實用戶表述的問題中,經(jīng)常會用到同義表達(dá),因此,需要為領(lǐng)域詞庫進(jìn)行同義擴(kuò)充,提升識別的覆蓋率和精度。

3)用戶詞庫。該詞庫對領(lǐng)域詞庫進(jìn)行別名擴(kuò)展。部分用戶在提出問題時會夾帶縮略詞、簡寫或者別名,如“殲轟-7”縮寫為“JH-7”,別名“飛豹”。因此,需要預(yù)先搜集相關(guān)的縮略詞、簡寫、別名,建立領(lǐng)域詞庫對應(yīng)的用戶詞庫。

詞庫識別語義要素的主要步驟是:接收預(yù)處理后的問題,依據(jù)建立的詞庫分別識別并標(biāo)記{e、p、E、C、A、R、V、Vd、Vo}。其中,子類別可以和父類別同時標(biāo)記到一個語義要素,比如“殲10”可標(biāo)記為。

3.3.2 規(guī)則識別方法

盡管詞庫識別可以覆蓋多數(shù)語義要素,但是仍有部分復(fù)雜的語義要素難以通過詞庫進(jìn)行識別。比如,“有多遠(yuǎn)”對應(yīng)屬性A“距離”,“50 km”對應(yīng)數(shù)值型屬性值Vd等。這些語義要素由于結(jié)構(gòu)復(fù)雜,難以通過詞庫識別,其識別要借助于詞性、預(yù)定義文本結(jié)構(gòu)、文本模式等。本文制定如下規(guī)則輔助詞庫識別語義要素:

1)實體E、概念C、關(guān)系R識別。實體識別和關(guān)系抽取是信息抽取領(lǐng)域的關(guān)鍵技術(shù),目前已有較成熟的解決方案。通過綜合考量,本文選取基于條件隨機(jī)場(Conditional Random Field,CRF)的命名實體識別與基于規(guī)則和啟發(fā)式算法的關(guān)系抽取來進(jìn)行E、C、R識別。

2)屬性值V識別。待識別的屬性值V由對象型屬性值Vo和數(shù)值型屬性值Vd組成,通過詞庫識別的方法可以有效識別大部分Vo,部分未覆蓋的Vo和Vd則需要定義規(guī)則進(jìn)行識別。因此,本文定義如下的啟發(fā)式規(guī)則對詞庫識別屬性值V進(jìn)行補充:

(1)依據(jù)詞性識別Vo。LTP詞性標(biāo)注會將特殊的名詞詞性標(biāo)注出來,比如“現(xiàn)在”詞性為“nt(時間名詞)”、“城郊”詞性為“nl(位置名詞)”。經(jīng)過分析,這類詞性的詞匯多數(shù)對應(yīng)屬性值Vo,因此,可以在識別時依據(jù)詞性將其標(biāo)記為Vo,其中,主要包括nd(方位名詞)、nl(位置名詞)、ns(地理名詞)3種詞性。

(2)依據(jù)模式識別Vd。標(biāo)記為數(shù)值型屬性值Vd的詞匯中必然包含數(shù)值型數(shù)據(jù),但是包含數(shù)值型數(shù)據(jù)的詞匯不一定就是Vd。問題中的Vd一般有其特殊的模式,結(jié)合關(guān)鍵詞模式和依存分析結(jié)構(gòu)定義如下2種模式進(jìn)行Vd識別:

① 關(guān)鍵詞模式:數(shù)值數(shù)據(jù)+計量量詞集{“千米”“米”“公里”“噸”“斤”“尺”等},如“車長5米的坦克有哪些?”。

② 依存樹結(jié)構(gòu):屬性A-word_prep數(shù)值,比如“速度_A為100的坦克有哪些?”。其中,word_prep為介詞集合{“是”“有”“為”“屬于”“屬”}。

3)屬性A識別。復(fù)雜屬性識別是語義要素識別中最難的部分,也是本文分析的重點。從目前的研究來看,多數(shù)論文工作者很少詳細(xì)描述如何處理該部分。而本文的實驗結(jié)果表明,問題理解中由復(fù)雜屬性未能識別導(dǎo)致組合的語義表達(dá)式錯誤占總錯誤的77.08%,由此可見,復(fù)雜屬性識別非常重要。為解決該問題,本文搜集大量的百度知道問題,通過統(tǒng)計分析制定如下復(fù)雜屬性識別規(guī)則:

(1)結(jié)合E/C和詞性規(guī)則識別屬性。多數(shù)屬性都和實體E、概念C有密切聯(lián)系,極少存在單獨的屬性單元,因此,可以結(jié)合詞性和已識別的E、C定義如下的識別模式:

(E/C的)word(n)+(len(word(n))>1)

其中,+表示多個條件組合,()表示必需,/表示或者,word(n)表示詞性為名詞的詞匯,(n)表示該詞匯的詞性為名詞。上述模式需要滿足2個條件:① 表示特定的詞匯結(jié)構(gòu);② 詞匯結(jié)構(gòu)中的word(n)中文字符長度至少為2。例如“戰(zhàn)斗機(jī)_E的速度(n)是多少”,其中,“的速度”滿足上述模式,因此,“速度”會被識別為屬性A。

(2)附加Vo被省略的屬性。有些對象型屬性值Vo所對應(yīng)的屬性A在使用時被用戶省略,如“城郊_Vo的 機(jī)場_E名字_A是 什么”,完整的帶屬性的問句應(yīng)當(dāng)是“位置_A在 城郊_Vo的 機(jī)場_E名字_A是 什么”,其省略了屬性“位置_A”,會導(dǎo)致語義組合時“城郊_Vo”不能和“機(jī)場_E”組合,因此,要在識別Vo時附加其對應(yīng)屬性A。

本文總結(jié)的部分詞性-屬性對應(yīng)關(guān)系如表1所示。其中,詞性范圍為{nd,nl,ns}。

表1 詞性-屬性對應(yīng)關(guān)系

對于詞性不滿足上述條件的屬性值附加屬性,比如“國產(chǎn)_Vo”對應(yīng)屬性“產(chǎn)地_A”,這些Vo需要另外建立屬性值-屬性對應(yīng)詞典Vo-A,在識別屬性值時利用詞典附加其屬性。

(3)結(jié)合問點塊識別復(fù)雜屬性

問題中的問點塊會暗含屬性,比如“火箭彈有多長?”,其中,問點塊“有多長”中暗含了屬性“長度”。但是有時問點塊中暗含的屬性會和前面的屬性重復(fù),比如“火箭彈的長度_A有多長?”。因此,結(jié)合問點塊的復(fù)雜屬性識別要在識別后進(jìn)行屬性重復(fù)判斷,若重復(fù)則忽略識別的屬性。結(jié)合問點塊的復(fù)雜屬性識別由3個部分組成:問點塊確定,復(fù)雜屬性識別,屬性重復(fù)判斷。各部分詳細(xì)介紹如下:

①問點塊確定。問點塊就是問題中包含疑問詞的語義塊。為提取問題中的問點塊,確定問點塊覆蓋范圍,本文提出基于依存分析樹的回溯方法,該方法主要包含2個步驟:在依存分析樹中定位疑問詞,依據(jù)疑問詞集按照最長匹配的原則在依存分析樹中匹配疑問詞并定位;從疑問詞開始,向上或向下回溯到第一個遇到的E、C、R、A并停止回溯,正向輸出回溯過程中經(jīng)過的節(jié)點,得到問點塊。

②復(fù)雜屬性識別。復(fù)雜屬性的識別基于得到的問點塊,首先從問點塊中抽取其暗含的屬性,然后判斷問點塊中是否包含動詞,對抽取出的屬性進(jìn)行擴(kuò)展,比如“殲10在哪里制造(v)?”((v)表示詞性為動詞),其中,“哪里制造”是得到的問點塊,“哪里”對應(yīng)屬性“地址”,結(jié)合動詞“制造”,擴(kuò)展的屬性為“制造地址”,最終返回的屬性為“制造地址”。復(fù)雜屬性識別步驟為:

步驟1依據(jù)問點塊-屬性對應(yīng)詞典,根據(jù)最長匹配規(guī)則抽取問點塊中的屬性。本文統(tǒng)計的部分問點塊-屬性對應(yīng)詞典如表2所示。

表2 問點塊-屬性對應(yīng)詞典

步驟2判斷問點塊中是否包含動詞,若存在動詞,則擴(kuò)展上述得到的屬性,擴(kuò)展方法為動詞在前、屬性在后。如問點塊“多久完成(v)”→屬性“完成時間”,“何時服役(v)”→“服役時間”,“哪里制造(v)”→“制造地址”等。

③屬性重復(fù)判斷

通過上述復(fù)雜屬性識別得到的屬性A′可能和問題中其前面的屬性A重復(fù),因此,要進(jìn)行屬性重復(fù)判斷。判斷的過程主要依據(jù)依存分析樹,通過依存分析樹判斷識別到的屬性A′和其在依存分析樹結(jié)構(gòu)中最近連接的屬性A是否重復(fù),若重復(fù),則忽略屬性A′;若不重復(fù),則返回屬性A′,并將依存分析樹中問點塊節(jié)點部分替換為屬性A′。

3.4 語義要素組合

語義要素組合的目的是通過一定的規(guī)則組合識別到的語義要素,形成規(guī)范化的語義表達(dá)式以表示問題語義。為保證語義要素組合的精度,本文提出基于依存分析樹的組合方法。利用語義要素之間的依存關(guān)系和依存分析樹的結(jié)構(gòu),首先進(jìn)行函數(shù)識別并替換函數(shù)單元,然后對依存分析樹進(jìn)行簡化,去除非函數(shù)單元和語義要素的節(jié)點,最后按照樹的深度,依據(jù)規(guī)則從葉子節(jié)點開始逐層向上組合(若葉子節(jié)點為屬性或關(guān)系,則允許跳過部分節(jié)點后連接到實體或概念),最終得到問題的語義表達(dá)式。語義要素組合分2類:基本組合和函數(shù)組合,其中,基本組合優(yōu)先執(zhí)行,函數(shù)組合靠后執(zhí)行。通過2類組合的執(zhí)行,可以準(zhǔn)確地生成問題語義表達(dá)式,從而有效表示問題語義。

3.4.1 基本組合

基本組合是語義要素組合的基礎(chǔ),其主要對非函數(shù)單元的一元語義要素和二元語義要素執(zhí)行簡單的連接和組合,不涉及復(fù)雜的結(jié)構(gòu)組合。本文制定基本組合規(guī)則如下:

1)連接。連接關(guān)系是最常用的組合規(guī)則,主要涉及一元語義要素和二元語義要素之間的連接,具體的規(guī)則如表3所示。其中,“—”表示雙向均可的依存連接,“→”表示單向的依存連接,“/”表示或者,A.V表示等待結(jié)合到E/C,C[e?]表示類型為C的E/C,在e、V組合中,若之后沒有A結(jié)合,則丟棄V。

表3 連接關(guān)系的組合規(guī)則

2)交。該規(guī)則符號為“∩”,涉及2個條件,意義為2個條件需要同時滿足。比如,“艦載機(jī)_C[e?]∩戰(zhàn)斗機(jī)_C[e?]”表示某個“e?”其類別既要屬于“艦載機(jī)”也要屬于“戰(zhàn)斗機(jī)”。組合規(guī)則“∩”的激活條件如下:

(1)e1、e2、e3在依存分析樹中共同連接到某個e,如e1—e2—e3,其語義表達(dá)式為e1∩e2∩e3。

(2)三元組連接到同一個節(jié)點。比如e1—R—e2—A—V,其語義表達(dá)式為e1.R.e2∩e2.A.V。

(3)依存樹中結(jié)構(gòu)C1—C2,其語義表達(dá)式為C1[e?]∩C2[e?]。

3)否。該規(guī)則主要是對后續(xù)條件或語義組合結(jié)果的否定,其通過否定關(guān)鍵詞集激活,符號為“!”。如“不裝備_R99式步槍_E的部隊_C”,其語義表達(dá)式為“部隊[e?].裝備.!99式步槍”。部分否定關(guān)鍵詞有{“不是”“非”“不包括”“不包含”}等。

4)類包含。該規(guī)則是C和E之間的組合規(guī)則,在基本組合中具有最高優(yōu)先級,但是只有滿足激活條件的C和E才能執(zhí)行組合,組合結(jié)果為C[E],表示類別為C的E,其激活規(guī)則如下:

(1)依存樹結(jié)構(gòu)為E→C并且依存關(guān)系為“ATT”。

(2)在用戶問題中E、C相鄰。

(3)依存樹結(jié)構(gòu)為E—[“有”“是”]—C—疑問詞,其中,“[]”為可選。

5)其他特殊結(jié)構(gòu)

部分特殊的依存樹結(jié)構(gòu)要進(jìn)行修正或者執(zhí)行特殊的語義組合。該類結(jié)構(gòu)主要有以下4種:

(1)E—A1—A2修正為A1—E—A2。

(2)e—R1—R2,其執(zhí)行特殊的語義組合規(guī)則:e.R1.R2。

(3)e—R—A,其執(zhí)行特殊的語義組合規(guī)則:e.R.A。

(4)e—e,并且依存關(guān)系為“COO”,若后續(xù)沒有指定函數(shù)接收,則在組合時將其看作單個e,最后拆分成2個表達(dá)式。

3.4.2 函數(shù)組合

函數(shù)組合是語義要素組合的高階操作,其利用依存分析樹結(jié)構(gòu),在基本組合的基礎(chǔ)上結(jié)合預(yù)定義的函數(shù)組合規(guī)則,生成帶函數(shù)體的語義表達(dá)式,以理解復(fù)雜的問題語義。比如,“速度最快的坦克是什么”,其語義表達(dá)式為“MEntity(坦克[e?].速度,MAX)”,其中,MAX參數(shù)表示函數(shù)MEntity()取最大,即最大屬性值的實體。函數(shù)組合主要包含2個步驟:函數(shù)識別,定位替換、語義要素組合。其難點在于函數(shù)識別,為準(zhǔn)確識別問題中的函數(shù),本文以問題中語義要素類型和數(shù)目、問點塊類型、關(guān)鍵詞集、依存樹結(jié)構(gòu)、依存關(guān)系等作為特征,提出基于模式的函數(shù)識別方法,并根據(jù)不同的函數(shù)制定其語義要素組合規(guī)則。函數(shù)組合所含元素具體介紹如下:

1)函數(shù)類別

本文函數(shù)組合包含8類函數(shù),共17種,其詳細(xì)的函數(shù)類型及功能如表4所示。

表4 函數(shù)類型及功能

2)問點塊類型確認(rèn)

問點塊暗含了用戶關(guān)注的重點,比如“殲10和殲15比速度哪個快?”和“殲10和殲15比速度快多少?”,前者關(guān)注的是速度快的實體,對應(yīng)函數(shù)CompareSelect(),而后者關(guān)注速度快了多少,對應(yīng)函數(shù)CompareValue()。因此,要在函數(shù)識別前確認(rèn)問點塊類型。結(jié)合關(guān)鍵詞集,本文定義如下問點塊類型:

(1)可省略。識別條件:僅有疑問詞+[word_prep]。

(2)?Value。識別關(guān)鍵詞:{“多少”“幾”},“?notValue”表示非“?Value”的問點塊。

(3)?Num。識別條件:{“多少”“幾”}+{“個”“架”“輛”“發(fā)”“艘”…}。

(4)?listnum。識別條件:{“多少”“幾”}+{“種”“類”“種類”“類型”}。

(5)其他。

3)基于模式的函數(shù)識別及語義要素組合

為取得理想的函數(shù)組合效果,本文分析并歸納大量的用戶問題,結(jié)合問點塊類型、依存關(guān)系等特征,為每個函數(shù)建立一套準(zhǔn)確的能夠覆蓋大多數(shù)用戶問題表達(dá)方式的識別模式,并運用以下符號來準(zhǔn)確描述模式結(jié)構(gòu):“[]”表示可選,“()”表示必需,“/”表示或者,“+”表示多個條件組合,“—”表示雙向均可的依存連接,“→”“←”表示單向的依存連接,“NumE”表示問題中實體E的數(shù)目。以比較類中的函數(shù)為例,本文建立的函數(shù)識別模式及語義要素組合規(guī)則如下:

(1)CompareBase(E.A/A)。

① 函數(shù)功能:基礎(chǔ)的比較類函數(shù),輸出多個E各自的屬性對比,若有屬性輸入則只比較該屬性,否則比較E所有屬性。如“殲10和殲15相比怎么樣”,語義表達(dá)式為CompareBase(殲10,殲15)。

② 識別規(guī)則:NumE>=2+key_cmp+[C/A]+不滿足CompareSelect()和CompareValue()。

③ 定位替換:key_cmp替換為CompareBase()。

④ 組合規(guī)則:結(jié)合依存分析樹結(jié)構(gòu),其組合規(guī)則如圖2所示。其中,屬性一般連接在實體之后,其會通過基本組合規(guī)則組合到實體E上,因此,在圖2中并未標(biāo)注屬性A的位置,僅標(biāo)注和函數(shù)相連的實體結(jié)構(gòu)。

圖2 CompareBase()依存分析樹結(jié)構(gòu)組合規(guī)則

(2)CompareSelect(E.A,0/1)。

①函數(shù)功能:若有屬性則輸出經(jīng)過屬性比較的E,否則默認(rèn)輸出屬性“排名”。0/1表示輸出較大的E還是較小的E,words_high/words_cmp對應(yīng)1,words_low對應(yīng)0。

②識別規(guī)則:

NumE>=2+[key_cmp]+[{“哪/那個”“哪/那一個”“誰”“哪/那種”}]+[A]+[“更”]+words_cmp/words_high/words_low+有問點塊。定位替換:key_cmp/問點塊替換為CompareSelect()。

word_cmp—word_cmp(且依存關(guān)系為“COO”)+沒有問點塊。定位替換:該結(jié)構(gòu)替換為CompareSelect()。

③組合規(guī)則:同CompareBase()。

(3)CompareValue(E.A)。

①函數(shù)功能:輸出實體屬性值比較的結(jié)果,如“殲10比殲15速度快多少”,CompareValue(殲10,速度,殲15,速度)。

②識別規(guī)則:NumE>=2+key_cmp+[A]+words_high/words_low+“多少”。

③定位替換:key_cmp替換為CompareValue()。

④組合規(guī)則:同CompareBase()。

上述提到的關(guān)鍵詞集具體如下:

key_cmp:{“比較”“對比”“相比”“比起”“比”“改進(jìn)”“更差”“更優(yōu)越”“更好”“更佳”“更加”“更強(qiáng)”“更?!薄案眪。

words_cmp:{“先進(jìn)”“狂”“厲害”“出色”“好”“流行”“強(qiáng)悍”“強(qiáng)”“棒”“優(yōu)越”“高級”}。

words_high:{“快”“大”“長”“高”“遠(yuǎn)”“寬”“久”“前”“重”“好”}。

words_low:{“慢”“小”“短”“矮”“近”“窄”“后”“輕”“差”“壞”}。

3.5 語義要素映射

由問題語義表達(dá)式轉(zhuǎn)換的SPARQL查詢語句并不能在知識庫中有效執(zhí)行,因為其中的語義要素以用戶詞匯描述,需要映射到底層知識庫元素。本文采取基于詞庫的方法映射問題語義要素,通過預(yù)先構(gòu)建用戶詞匯-知識庫元素之間的映射詞庫,計算其相似度值,在執(zhí)行時將每個語義要素Vqi映射到多個知識庫元素,生成該語義要素的候選項集M(Vqi)和對應(yīng)的相似度集W(Vqi)。

3.6 聯(lián)合消歧

消歧的目的是計算語義要素和候選知識庫元素之間的映射,使得語義要素和知識庫元素之間的一對多關(guān)系轉(zhuǎn)變?yōu)橐粚σ?進(jìn)而生成知識庫語義表達(dá)式。本文采取聯(lián)合消歧的方法,將所有待消歧的語義要素整合到一個大的消歧任務(wù)中。首先依據(jù)語義要素及其候選項集構(gòu)建消歧圖,然后計算其邊權(quán)值,最后為消歧圖添加約束條件,通過最大化其目標(biāo)函數(shù)來生成知識庫語義表達(dá)式。

3.6.1 消歧圖構(gòu)建

消歧圖的定義及構(gòu)建過程如下:

1)消歧圖定義

以G表示消歧圖,V表示頂點集,E表示邊集,本文定義消歧圖G=,其中,V=VK∪VQ,E=Esim∪Esup。各元素含義如下:

(1)VQ是識別到的語義要素集合,Vqi∈VQ是以自然語言描述的語義要素節(jié)點。

(2)VK是問題中語義要素映射的結(jié)果集,VK=M(Vq1)∪M(Vq2)∪…∪M(Vqi)∪…∪M(Vqn),Vkij∈VK是語義要素Vqi映射后的節(jié)點。

(3)Esim?VQ×VK,該邊的權(quán)值是語義要素節(jié)點Vqi和其映射節(jié)點M(Vqi)之間的相似度量。

(4)Esup?VK×VK,該邊的權(quán)值是不同語義要素映射節(jié)點之間(如M(Vq1)×M(Vq2))的語義一致性度量。

2)消歧圖生成

消歧圖的生成以問題語義表達(dá)式中基本組合的“連接”為依據(jù)。首先,連接所有的問題語義要素節(jié)點Vqi及其映射節(jié)點集M(Vqi);其次,若Vqi和Vqj之間存在“連接”,則將M(Vqi)和M(Vqj)中的節(jié)點相互連接;最后,若存在函數(shù),則以函數(shù)作為分隔生成不連通的子圖,分別進(jìn)行消歧。以“X軍裝備的國產(chǎn)96坦克速度是多少?”為例,其消歧圖如圖3所示,其中,無方框節(jié)點表示Vqi,虛線方框表示M(Vqi),帶陰影方框/橢圓節(jié)點表示Vkij。

圖3 “X軍裝備的國產(chǎn)96坦克速度是多少?”消歧圖

3.6.2 邊權(quán)值

邊Esup反映知識庫對于消歧結(jié)果的支撐性,即與該邊連接的節(jié)點是否符合知識庫結(jié)構(gòu)。以Vqm、Vqn表示與Esup連接的2個映射集的語義要素(如“96坦克”“裝備”),Vkmk∈M(Vqm)、Vknl∈M(Vqn)表示與Esup連接的2個節(jié)點(如“96式主戰(zhàn)坦克”“配發(fā)”),freq(Vkmk,Vknl)為知識庫中連接出現(xiàn)的頻次,|M(Vqm)|為Vqm映射集的數(shù)目。則在消歧圖中,邊的權(quán)值vkl計算公式如下:

其中,k∈|M(Vqm)|,l∈|M(Vqn)|。

邊Esim反映問題中的語義要素和知識庫元素之間的匹配性。以Vqi表示語義要素,根據(jù)第3.5節(jié)的語義要素映射,可以得到其候選項集為M(Vqi),對應(yīng)相似度集為W(Vqi)。則對于候選項集中的Vkij,其消歧圖中邊的權(quán)值為wij,且wij∈W(Vqi)。

3.6.3 消歧處理

聯(lián)合消歧的結(jié)果是生成消歧圖的子圖,該子圖跨越消歧圖中所有虛線框,以圖3的消歧圖為例,其消歧結(jié)果如圖4所示。

圖4 “X軍裝備的國產(chǎn)96坦克速度是多少?”消歧結(jié)果

本文的消歧目標(biāo)是在滿足約束條件的情況下最大化目標(biāo)函數(shù)值。在描述具體的消歧方法前,進(jìn)行如下定義:

GXij∈{0,1}:消歧圖上VQ中節(jié)點i和VK中節(jié)點j之間是否存在邊。

GYkl∈{0,1}:消歧圖上VK中節(jié)點k和節(jié)點l(k≠l)之間是否存在邊。

Xij∈{0,1}:VQ中節(jié)點i和VK中節(jié)點j之間的邊是否被選中。

Ykl∈{0,1}:VK中節(jié)點k和節(jié)點l(k≠l)之間的邊是否被選中。

vij:Esup的權(quán)值。

wij:Esim的權(quán)值。

本文目標(biāo)函數(shù)為:

MaxScore(Q,G,K)

約束條件為:

1)對任意的一個VQ節(jié)點,有且僅有一個映射節(jié)點。

2)如果VK-VK之間的某個邊被選中(Ykl=1),那么必定存在2個VQ節(jié)點分別映射到Vkik和Vkjl(?i,j,Xik=1∩Xjl=1)。

3)選中的邊必須在圖中存在。

Xij≤GXij∩Yij≤GYij

3.7 SPARQL生成

經(jīng)過聯(lián)合消歧后生成知識庫語義表達(dá)式,對于消歧圖中基本組合構(gòu)成的三元組集,可以直接轉(zhuǎn)換為SPARQL查詢語句,而函數(shù)組合的部分則根據(jù)預(yù)定義的函數(shù)類型進(jìn)行相應(yīng)轉(zhuǎn)換,生成對應(yīng)的SPARQL查詢語句。以“X軍裝備的國產(chǎn)96坦克速度是多少?”為例,其SPARQL查詢語句如下:

Select o? where{

X集團(tuán)軍 裝備 96式主戰(zhàn)坦克

96式主戰(zhàn)坦克 制造國家 中國大陸

96式主戰(zhàn)坦克 平均速度 o?

}

在知識庫上執(zhí)行該SPARQL查詢語句,最終得到用戶問題的答案。

4 實驗驗證

4.1 實驗設(shè)置

由于中文沒有類似于QALD的測試集,為測試本文的問題理解方法,借助百度知道收集問題集:首先結(jié)合知識庫構(gòu)建實體集、實體-關(guān)系集,在百度知道中檢索,得到問題集后以該問題集為基礎(chǔ)在百度知道中檢索并收集同義問題,然后去除無關(guān)問題和重復(fù)問題。本次實驗共收集問題8 732個,去除結(jié)構(gòu)類似的問題后得到6 215個問題,隨機(jī)選取1 000個問題作為測試集,5 215個問題作為輔助分析集。

在實驗實現(xiàn)方面,由于哈工大語言技術(shù)平臺(LTP)[16]分詞工具不支持附加詞庫輔助分詞,本文采取jieba分詞工具[17]對問題進(jìn)行分詞,附加語義要素識別當(dāng)中的所有詞庫,詞性標(biāo)注以及依存分析則采取哈工大語言技術(shù)平臺(LTP)-3.4.0,同義詞庫采用哈工大社會計算與信息檢索研究中心同義詞詞林?jǐn)U展版[18]。

4.2 評測標(biāo)準(zhǔn)

本文采取的評測方法為:首先人工給出每個測試問題的答案,然后使用本文方法執(zhí)行問答,最后將問答系統(tǒng)給出的答案與人工構(gòu)造的標(biāo)準(zhǔn)答案進(jìn)行比較,若問答結(jié)果與人工答案一致,則判定回答正確。采取精確率P、召回率R和F1值對實驗效果進(jìn)行評價,各值定義如下:

精確率P指問答系統(tǒng)正確回答的問題數(shù)和問答系統(tǒng)返回答案不為空的問題數(shù)的比率,其計算公式如下:

召回率R指問答系統(tǒng)正確回答的問題數(shù)和總問題數(shù)的比率,其計算公式如下:

一般情況下,精確率P和召回率R相互制約,精確率提高會導(dǎo)致召回率下降,反之亦然。因此,為綜合衡量系統(tǒng)性能,避免精確率和召回率的片面性,本文采取F1值進(jìn)行綜合評價,其計算公式如下:

4.3 實驗結(jié)果與分析

對1 000個測試問題進(jìn)行實驗分析,設(shè)置3組實驗進(jìn)行對比:第1組僅使用基于關(guān)鍵詞的信息檢索(IR)方式,不執(zhí)行語義組合及后續(xù)過程,直接利用識別到的語義要素作為查詢關(guān)鍵詞執(zhí)行信息檢索;第2組為Esim-only方式,其在本文方法的基礎(chǔ)上,去除聯(lián)合消歧中的Esup,僅使用Esim進(jìn)行消歧;第3組運用本文方法進(jìn)行實驗。實驗結(jié)果如表5所示。

表5 不同語義要素識別方法實驗結(jié)果

從表5可以看出,本文基于語義要素組合的問答系統(tǒng)平均F1值達(dá)到0.841,說明其能夠有效理解問題語義并回答問題。

進(jìn)一步分析系統(tǒng)中聯(lián)合消歧的性能,采取本文方法將Score(Q,G,K)排名前k的消歧圖子圖轉(zhuǎn)換為SPARQL語句并進(jìn)行問答實驗,結(jié)果如圖5所示。

圖5 Score(Q,G,K)排名前k的子圖問答結(jié)果

從圖5可以看出,本文方法在k取1時F1值最大,為0.841,隨后,隨著k的增大,SPARQL查詢語句增多,F1值逐漸降低。該結(jié)果表明本文的聯(lián)合消歧方法能夠有效消歧并從消歧圖中選擇最優(yōu)的子圖。

4.4 錯誤分析

進(jìn)一步進(jìn)行分析,可以發(fā)現(xiàn)導(dǎo)致本文系統(tǒng)回答出錯的原因主要有以下4點:

1)用戶問題過于復(fù)雜。某些復(fù)雜的用戶問題可能包含多個子問題和復(fù)雜的指代關(guān)系,導(dǎo)致語義要素識別階段出現(xiàn)錯誤,進(jìn)而使得語義表達(dá)式生成出錯。

2)知識庫不夠豐富,映射并轉(zhuǎn)換成功的SPARQL查詢語句無法在知識庫中找到結(jié)果。

3)依存分析錯誤導(dǎo)致語義組合出錯。概念類、基本組合類、計算類問題不涉及復(fù)雜的依存分析結(jié)構(gòu),因此,這3類問題不受影響,而其他函數(shù)對依存分析結(jié)構(gòu)依賴較強(qiáng),受影響較大,容易出現(xiàn)較多錯誤。

4)復(fù)雜函數(shù)識別錯誤。如比較類函數(shù),其識別規(guī)則復(fù)雜繁多,容易因為要求過嚴(yán)而導(dǎo)致未能識別,進(jìn)而使得語義組合出錯。

5 結(jié)束語

本文提出基于語義要素組合的問答方法,該方法無需大量的人工標(biāo)注數(shù)據(jù)和正確的問題-答案對進(jìn)行訓(xùn)練,而是采取語義要素分析、語義要素組合來直接分析問題語義,然后產(chǎn)生規(guī)范化的問題語義表達(dá)式,再通過映射和聯(lián)合消歧生成知識庫語義表達(dá)式,最后將知識庫語義表達(dá)式轉(zhuǎn)換為SPARQL語句執(zhí)行查詢獲取知識。該方法能較好地進(jìn)行問答系統(tǒng)中問題語義分析,有效理解和推理復(fù)雜問題,降低知識獲取的門檻。實驗結(jié)果表明,該方法的平均F1值為0.841。雖然本文方法可以理解絕大多數(shù)的問題,但是仍對部分復(fù)雜問題理解出錯,通過錯誤分析發(fā)現(xiàn),該類問題多數(shù)和函數(shù)模式以及指代關(guān)系有關(guān),因此,今后將進(jìn)一步優(yōu)化函數(shù)模式并添加指代消解模塊,以提高本文方法理解復(fù)雜問題的準(zhǔn)確度。

猜你喜歡
消歧詞庫知識庫
基于關(guān)聯(lián)圖和文本相似度的實體消歧技術(shù)研究*
基于半監(jiān)督集成學(xué)習(xí)的詞義消歧
基于TRIZ與知識庫的創(chuàng)新模型構(gòu)建及在注塑機(jī)設(shè)計中的應(yīng)用
藏文歷史文獻(xiàn)識別過程中藏文自由虛詞的自動識別及消歧算法的研究
詞庫音系學(xué)的幾個理論問題芻議
英語知識(2016年1期)2016-11-11 07:07:54
高速公路信息系統(tǒng)維護(hù)知識庫的建立和應(yīng)用
基于Drupal發(fā)布學(xué)者知識庫關(guān)聯(lián)數(shù)據(jù)的研究
圖書館研究(2015年5期)2015-12-07 04:05:48
環(huán)境變了,詞庫別變
電腦迷(2014年14期)2014-04-29 00:44:03
基于《知網(wǎng)》的中文信息結(jié)構(gòu)消歧研究
QQ手機(jī)輸入法如何導(dǎo)入分類詞庫
電腦迷(2012年15期)2012-04-29 17:09:47
大石桥市| 固镇县| 井陉县| 清涧县| 元阳县| 望江县| 乌鲁木齐县| 玉树县| 尉氏县| 二手房| 黄山市| 铜川市| 左云县| 德兴市| 临高县| 鄯善县| 彭水| 铜山县| 合肥市| 普宁市| 凤凰县| 长葛市| 余干县| 宜昌市| 吉安县| 安达市| 朝阳县| 林口县| 土默特左旗| 台中市| 两当县| 寿光市| 稷山县| 茂名市| 搜索| 渑池县| 静宁县| 龙口市| 平原县| 卫辉市| 罗山县|