王東升,王 石,王衛(wèi)民,符建輝,諸 峰
(1 江蘇科技大學 計算機科學與工程學院,江蘇 鎮(zhèn)江 212003; 2.北京工業(yè)大學 WIC研究院,北京 100124; 3中國科學院 計算技術研究所,北京 100190)
問答系統(tǒng)是自然語言處理領域的一個研究熱點。能否正確地理解用戶意圖是自動問答系統(tǒng)的關鍵,其核心是自然語言理解。面向領域的自然語言理解(NLU)技術是垂直搜索引擎、領域相關問答系統(tǒng)等應用的核心技術之一,可以解決當前實際需求與開放域自然語言理解系統(tǒng)能力不匹配的強烈矛盾[1]。問答系統(tǒng)中用戶提交的問題通常是一些長度較短的“句子”,與長文本相比,短文本的理解有一些不同之處。首先,很多場景下要處理的短文本通常不符合書面語的語法,這就意味著傳統(tǒng)的NLP方法如詞性標注、依賴句法分析等不能直接用到短文本理解中。再次,短文本的語境信息通常比較有限,含有很多的歧義信息。比如,在Web搜索場景下,大部分的查詢不超過5個詞,而微博中帖子一般不超過140個字。因此,短文本中通常缺乏一些統(tǒng)計信息來支持一些統(tǒng)計文本處理技術,如主題建模等[2]。
本文的主要貢獻如下:
(1) 提出了一種通用的帶約束的語義文法形式,與本體等語義資源相結(jié)合,可以在詞匯級、句法級、語義級對自然語言句子的解析過程進行約束;
(2) 提出了一種高效的文法匹配算法,依據(jù)各種約束條件預先過濾一些規(guī)則,以匹配度計算模型找到最佳匹配,可以極大地提高系統(tǒng)效率;
(3) 應用不同數(shù)據(jù)集的實驗結(jié)果表明,我們提出的方法可以有效提高問答系統(tǒng)的整體性能。
文本及口語理解是近年來國內(nèi)外研究的一個熱點,專題國際會議或評測競賽包括Interspeech、ICASSP、ASRU、SLT、Sigdial、SemEval、Semantic Parsing workshop等以及專題國際期刊TASLP等,國際會議如ACL、EMNLP、COLING、NAACL、AAAI、NIPS等也有相關專題??傮w來說,文本理解方法大致可以分為兩種:淺層語義分析方法和深層語義分析方法。其中,淺層語義分析通常會標注與句子中謂詞有關成分的語義角色,如施事、受事、時間和地點等,比如在檢索型問答系統(tǒng)中,可采用該技術對查詢進行標注,并充分利用數(shù)據(jù)源(Web或語料庫)中的冗余信息,通過檢索和匹配等技術來定位答案。但對一些文本資源相對缺乏而又要求精確文本理解的應用來說,淺層文本語義分析技術就顯得不夠了,比如面向知識庫的問答系統(tǒng),通常需要精確理解文本語義并將之轉(zhuǎn)化成計算機可理解或可處理的形式化表示,并進而轉(zhuǎn)化成具體知識庫的查詢語言如Sparql等。
深層語義分析方法分為兩類,第一類方法是基于近年來發(fā)展較快的深度學習技術。這些方法一般通過嵌入學習技術[3](embedding)、深度學習技術(如DNN、RNN、LSTM)[4]等學習語料庫、知識庫和問句的語義表示及它們相互之間的語義映射關系[5],從而將用戶的自然語言問題、知識庫中的實體、概念、類以及關系等轉(zhuǎn)換為壓縮、低維、稠密的數(shù)值向量(分布式語義表示)[6],并將知識庫問答等任務看成是語義向量之間的相似度計算或分類過程?;谏疃葘W習的語義分析方法的優(yōu)點是魯棒性較強,并且由于采用端到端的學習策略,可以部分消除錯誤累積問題。但目前這類方法還存在以下問題:①深度學習方法通常需要依賴大量的訓練語料,而對于一些領域應用來說(如醫(yī)療領域),在系統(tǒng)建設初期,獲取高質(zhì)量的訓練語料仍然是個瓶頸[7]; ②已有的基于深度學習的文本理解方法多是針對簡單問題,對于復雜問題的理解能力尚且不足[8]; ③可解釋性較差,特別是在實際系統(tǒng)出現(xiàn)問題時,無法進行及時有效的人工干預[9]; ④目前取得一些較好結(jié)果的研究大多集中于詞級別的嵌入,如何從詞嵌入得到有效的句子、篇章等的嵌入表示,是目前急需解決的問題[10]。
第二類方法是基于符號邏輯的語義分析方法,即基于符號化的文法對用戶的自然語言問句進行分析并轉(zhuǎn)化成結(jié)構(gòu)化的語義表示。在這一類方法中,一類是采用級聯(lián)式的自然語言處理方法,即先對句子進行詞法、句法分析,再依據(jù)句法規(guī)則與領域語義的對應關系,對句法分析結(jié)果進行語義解釋。這類方法的優(yōu)點是各模塊的研究較成熟,特別是在書面語的處理上,詞法、句法分析等準確率較高。但是,級聯(lián)式的自然語言處理方法對于短文本理解來說,通常是低效的[11],特別是一些口語問答系統(tǒng) 、社交媒體(如微博)中用戶的問題通常是一些口語化、弱規(guī)范甚至不規(guī)范的短文本,會導致語言分析過程的前兩步常常就不能產(chǎn)生正確的結(jié)果,就更不用說后續(xù)的語義處理了[12]。另一類則通過將語義附著于詞匯或文法規(guī)則上,實現(xiàn)語法和語義一體化分析,比如語義文法(semantic grammar)[13]、SC文法(sub-category grammar)[14]、組合范疇語法(category compositional grammar,CCG)[15]、依存組合語法(dependency-based compositional semantics,DCS)[16]等。這類方法的優(yōu)點是可解釋性較好,產(chǎn)生的是一個有層次的解析結(jié)果,缺點是起到重要作用的文法一般主要由人工生成,比如CCG 中的詞匯表和規(guī)則集,在進行領域轉(zhuǎn)換和擴展時,需要耗費大量的人力和時間來生成或擴展規(guī)則庫,所以目前基于有監(jiān)督[16](如提供自然語言問題—語義表示對,自然語言問題—答案對)或無監(jiān)督[17]的自動文法學習成為研究人員探索的重點。另外,單純的短語結(jié)構(gòu)語法生成能力過強,常常會產(chǎn)生一些不合語法的句子和歧義的句子,并不是一個特別適合于描寫自然語言的語法,但為了繼承已有的研究成果,不宜完全拋棄短語結(jié)構(gòu)語法,而應該在其基礎上提出有效的手段來限制其過強的生成能力[14]。
通過對上述幾類方法的分析發(fā)現(xiàn),基于符號邏輯的語義分析方法具有分析結(jié)果層次性較豐富、可解釋性較好等特點,缺點是一些文法形式過復雜或過簡單,導致解析效率低或存在過生成等問題。比如,目前語義解析中采用較多的組合范疇語法CCG[18],在某些場景下,附著于CCG文法規(guī)則的邏輯表達式(logic form)會非常復雜,導致解析CCG時搜索空間巨大[16]。而另外一些文法形式如FunQL,則過于簡單,導致表達能力不足,存在過生成、易產(chǎn)生解析歧義等問題[19]。
Fred Karlsson等提出的一種形式簡單并可利用語境信息進行歧義消解的帶約束文法[20],可有效限制文法的生成能力,針對不同的需求,可在文法規(guī)則中加入對當前匹配所對應上下文的詞、詞性、句法等進行約束[21],最早用于詞形(Morphophonology)分析、句法分析等,近年來有研究者將其用于問答、對話系統(tǒng)等[22-23]。本文在約束文法的基礎上,提出一種基于本體的帶約束語義文法及其理解方法,通過在文法約束中融合詞匯、句法、語義(領域本體)知識以及匹配控制等,從而對文法解析過程進行多層次約束,可以有效提高文法解析的魯棒性,降低匹配歧義問題。
在本節(jié)中,我們主要介紹基于領域本體的領域建模方法和帶約束語義文法及其匹配方法。其中,3.1節(jié)給出了構(gòu)建領域模型所需的定義,3.2節(jié)給出了帶約束語義文法的定義,3.3節(jié)給出了帶約束語義文法的匹配算法。
在人工智能領域中,本體和知識表示密切相關,是一種“形式化的,對于共享概念體系的明確而又詳細的說明”。在智能系統(tǒng)中,它被看作是支持知識共享與重用的重要工具。領域本體(domain ontology)所建模的是某個特定領域,或者現(xiàn)實世界的一部分。領域本體所表達的是那些適合于該領域的術語的特殊含義。本節(jié)的領域建模與下節(jié)的約束文法構(gòu)建過程密切關聯(lián),所以在本節(jié)的領域本體中增加了與語義文法相關的屬性和概念,比如文法中的“總是必須關系”(REQ)、“總是可選關系”(OPT)等。
定義1領域本體用一個三元組表O=(N,E,M),也可將其看作是一個有向無環(huán)圖(DAG),其中:
(1)N:有向圖中的節(jié)點集合。圖中的節(jié)點包括所有的領域相關概念、語義文法中的非終結(jié)符等;在本體中,節(jié)點包括如下幾種類型或其組合:
(a) 關鍵概念 vs 輔助概念。關鍵概念類型的節(jié)點是指領域相關的實體概念,而輔助概念是指在構(gòu)造文法時,對一些詞或短語所建立的一些有用的分組,這些分組中的詞,或者是具有相同的句法層次上的作用(如非終結(jié)符<疑問詞>可重寫為如下的短語或詞:“如何,怎么,怎么辦,……”),或者這些詞在當前處理領域中具有某種程度上的語義等價性,(如非終結(jié)符<刪除詞類>可重寫為“刪除,刪掉,關掉,關……”)。
(b) 頂層節(jié)點vs 非頂層節(jié)點。頂層節(jié)點是指那些作為文法開始符的非終結(jié)符,而非頂層節(jié)點則是指除了頂層節(jié)點之外的其他的非終結(jié)符。
(c) Pre-NT vs pre-T vs Mixed。在所有規(guī)則中,如果一個非終結(jié)符A的所有子節(jié)點(即出現(xiàn)在以A為LHS的規(guī)則的RHS中)都是非終結(jié)符,或者出現(xiàn)的終結(jié)符都是“可選”,則非終結(jié)符A的類型為pre-NT;如果一個非終結(jié)符A的所有子節(jié)點(即出現(xiàn)在以A為LHS的規(guī)則的RHS中)都是終結(jié)符,或者出現(xiàn)的非終結(jié)符都是“可選”,則非終結(jié)符A的類型為pre-T;其他的非終結(jié)符類型設為Mixed。
(2)E:表示節(jié)點之間的有向邊的集合,EN×N。
(3)M:是一個映射函數(shù),M:ESM,其中SM={ISA,REQ,OPT},其中:
(a) ISA:表示N中節(jié)點間的上下位關系。
(b) REQ:表示N中節(jié)點在語義文法中的“總是必須”關系。關系“REQ”是指若某非終結(jié)符A總是作為必選成分出現(xiàn)在另一個LHS為非終結(jié)符B所對應的規(guī)則的RHS中,即形如“BA*”(“*”表示其他規(guī)則成分,下同),則建立非終結(jié)符A到非終結(jié)符B的有向邊,并且標記邊的關系類型為REQ。
(c) OPT:表示N中節(jié)點在語義文法中的“總是可選”關系關系“OPT”是指若某非終結(jié)符A總是作為可選成分出現(xiàn)在另一個LHS為非終結(jié)符B的所對應的規(guī)則的RHS中,即形如“B[A] *”,則建立非終結(jié)符A到非終結(jié)符B的有向邊,并且標記邊的關系類型為“OPT”。
初始構(gòu)建系統(tǒng)時,領域本體由領域?qū)<逸o助知識工程師進行設計,關系僅包括上下位關系(ISA);在核心語義文法設計完成后,依據(jù)核心語義文法建立圖中節(jié)點之間的有向邊(即關系)。對于任意兩個非終結(jié)符A和B,若要建立一條從B到A的有向邊,則A必須作為一條規(guī)則的LHS出現(xiàn),且B出現(xiàn)在同一條規(guī)則的RHS中。本體作為語義文法的“骨架”,在文法擴展學習時,領域本體將是對現(xiàn)有文法進行擴展學習的重要“知識源”。
同時,在具體應用時,一般還需建立一個“問題本體”(problem ontology)用于處理用戶問題。問題本體刻畫了用戶查詢意圖的語義分類,語義文法中的開始符與查詢意圖相對應。問題本體本質(zhì)上對應著用戶查詢意圖的分類體系,本體的上層對應著對查詢問題意圖的粗分類,而本體的下層則對應著對查詢問題意圖的細分類。問題本體中的節(jié)點的粒度大小與具體的應用相關。比如,一般可以將問題本體分為三層:第一層包括所有的問題集合;第二層是對問題的查詢主題的分類,這是一個較粗的分類;第三層為問題查詢意圖的分類(也稱作問題焦點),是在每一個主題下的細分類。
在給出語義文法的形式定義之前,先給出幾個基礎性概念的定義。
定義2(字符集)任何漢字、任何字母、任何標點、任何數(shù)字、任何制表符構(gòu)成的文本形式的符號。
定義3(終結(jié)符)終結(jié)符(terminal)具有以下兩種形式之一:
(1) 詞條集:由詞組成的有限集合,此處的詞是指詞典中的一個條目;
(2) 由字符集中的任意字符構(gòu)成的字符串。
定義4(語義類)語義類(semantic class)是某個論域中兩個或以上詞義相同或相近的詞所構(gòu)成的有限集合。語義類與領域本體中的概念相對應。例如,在金融領域,開通、辦理、申請等詞表達的意思相近,因此我們定義一個詞類“辦理詞類”,即辦理詞類={開通,辦理,申請}。
定義5(文法約束)文法約束(constraints)是一種邏輯表達式。為了便于文法分析和文法學習,我們提出了一種有限的約束形式,采用析取范式(DNF)表示。其BNF形式如下:
|
|
| not-streq(
| contain(
| not-contain(
| begin-with(
| not-begin-with(
| end-with(
| not-end-with(
| leneq(,
| lengt(,
| lenlt(,
| followed-by(
| pos(
| not-pos(
| isa(
| not-isa(
| not-followed-by(
| preceded-by(
| not-preceded-by(
|immediately-followed-by(
|not-immediately-followed-by(
|immediately-preceded-by(
|not-immediately-preceded-by(
|plus(
|minus(
|multi(
|div(
|power(
|root(
|...
::=
|
|
|
|strrep(
由于漢語是一種意合型語言,句子中的某些成分通??梢猿霈F(xiàn)在句子的多個位置,而這些句子含義卻變化不大,為了處理這種現(xiàn)象,本文還引入了一種特殊的約束,稱為匹配控制約束。其形式為:
control(
其中,
定義6(基本型非終結(jié)符、帶標號的非終結(jié)符)基本型非終結(jié)符(basic non-terminal)即為一般文法中的非終結(jié)符,如N、V、NP、VP等。在本文中,非終結(jié)符由ASCII英文字母、數(shù)字和連字符組成。帶標號的非終結(jié)符為形如<標號>:<基本型非終結(jié)符>的符號串,它用于對文法產(chǎn)生式中的同一基本型非終結(jié)符的多次出現(xiàn)進行區(qū)分。 例如,在產(chǎn)生式“NP→ ADJ N | N N”中出現(xiàn)多個N,我們可以采用以下形式將其中的N進行區(qū)分:
NP→ADJ1:N|2:N3:N
定義7(通配型非終結(jié)符)通配型非終結(jié)符(ANY)簡稱通配符,是一種特殊的非終結(jié)符,可用于匹配任何終結(jié)符。
由于通配符的強大匹配能力,如果不對其進行限制,那么將在文法解析過程中產(chǎn)生大量的歧義,所以需要對其匹配進行適當?shù)南拗?。定義4中的文法約束主要用來對通配型非終結(jié)符的匹配進行“監(jiān)管”,即檢查通配符的匹配成分是否滿足文法約束限制,若匹配成分不能滿足約束限制,那么規(guī)則匹配失敗。當然,文法約束不僅僅用作對通配符進行約束,還可以對其他的一些非終結(jié)符如基本型非終結(jié)符等進行限制。
定義8(確定型產(chǎn)生式規(guī)則的表示)確定型產(chǎn)生式規(guī)則的表示形式如下:
[
|
|
|
|’[’
//“[ ]”表示“可選”,其他默認為“必選”
|
|
|
//本體中的“關鍵概念”
|< Auxiliary-concept>
//本體中的“輔助概念”
|“QUERY-FOR-TRAFFIC”|…
其中,
下文中,在不導致混淆的前提下,我們有時采用Head→Body表示產(chǎn)生式,而忽略其后的限制。
定義9(語義文法)語義文法G為一個四元組G=(VT,WT,S,R),其中:
(1)VT:語義文法中的終結(jié)符(terminals);
(2)VNT:表示語義文法中的非終結(jié)符(non-terminals)。注意,語義文法中的非終結(jié)符包括兩類不交的非終結(jié)符結(jié)合,即VNT=VN∪Vw且VN∩Vw=φ,其中:
VN包括基本型非終結(jié)符集、本體中的關鍵概念、輔助概念等;Vw是通配型非終結(jié)符集。
(3)S:表示語義文法的開始符集合S={S1,…,Sn}。本文的語義文法與問題本體中的概念相對應,開始符體現(xiàn)了對查詢句子的語意分類(如用戶查詢的“查詢意圖”分類),領域語意通常與某一領域事件類型相對應。
(4)R:語義文法中的確定型產(chǎn)生式集合。
定義10(產(chǎn)生式的簡潔表示)為了便于產(chǎn)生式的編輯,根據(jù)定義7、定義8,我們給出一種文法產(chǎn)生式的簡潔的一般表示形式,即將下面的形式:
→[等價地改寫成如下形式:
Body@head@control-constraint@constraints
其中,control-constraint為Body中的終結(jié)符、非終結(jié)符的匹配控制;constraints為產(chǎn)生式的約束;當constraints不出現(xiàn)時,用null代替;在規(guī)則的約束條件中,可以引入各種約束,包括詞匯級(詞匯依存)、語義級(語義依存)等,可以彌補傳統(tǒng)PCFG的上下文無關的不足。
為了提高系統(tǒng)的匹配效率,系統(tǒng)為語義文法規(guī)則集合建立了倒排索引,即由組成文法規(guī)則的詞或語義類來索引規(guī)則。同時,系統(tǒng)只對文法規(guī)則中的必須詞位上的詞類或詞建立索引。這樣的好處是:在解析過程中,大大減少了候選規(guī)則的數(shù)量,提高了系統(tǒng)解析效率。下面給出語義文法解析算法的偽代碼。
算法的輸入為全部分詞形成的有序的詞集合QWs。系統(tǒng)根據(jù)領域詞典對句子Q進行分詞,查找知識庫,給分詞成分標注相應的語義類型,QWs[i]用三元組表示為:(i,詞,類型1|…|類型n),i表示第i個分詞成分,三元組的第三項表示詞項的語義類型列表。算法的輸出為句子的所有解析樹所對應的頂層節(jié)點列表,按照解析樹得分的高低,輸出前n個??筛鶕?jù)不同的應用,調(diào)整n的大小,本文的實驗取值為3。
在上述解析過程中,步驟(5)為語義文法規(guī)則過濾子過程,其根據(jù)文法規(guī)則中的各詞位的性質(zhì)、規(guī)則匹配控制限制、文法規(guī)則的約束等,判別語義文法與句子或句子的子串匹配是否合法。
在啟用文法規(guī)則的約束檢查時,首先按照句子與文法規(guī)則的規(guī)則體部分的匹配結(jié)果,對約束中的變量進行實例化,然后調(diào)用相應的約束謂詞實現(xiàn)函數(shù)對約束進行檢查,若約束檢查結(jié)果為真,則通過檢查,否則視為違反約束,文法規(guī)則匹配失敗。
即使經(jīng)過規(guī)則過濾,一個句子還是可能會生成多棵解析樹。本文通過引入匹配度計算模型,計算解析樹的得分,并依此對解析樹進行排序。在匹配度計算模型中,考慮了以下四個特征。
【特征1】規(guī)則匹配詞分布密度
組成規(guī)則的詞或語義類所匹配的成分在句子中分布越緊密,詞之間的相互作用越強,與規(guī)則匹配上時產(chǎn)生的歧義性越小;而當分布密度越小,組成規(guī)則的詞之間相隔較遠時,產(chǎn)生歧義的可能性就越大。規(guī)則匹配詞在句子中的分布密度的定義如式(1)所示。
(1)
其中,wp表示文法規(guī)則,CQWs表示句子Q所對應的分詞集合,m表示規(guī)則wp與句子Q匹配的詞數(shù),WPosi表示規(guī)則wp所匹配的第i個詞在句子Q中的位置。ε是為了防止分母等于0所設的一個很小的數(shù)。
【特征2】規(guī)則歷史匹配準確率
系統(tǒng)中的核心文法庫由人工構(gòu)造而成,規(guī)則質(zhì)量參差不齊,同時隨著系統(tǒng)的不斷演進,原先構(gòu)造的規(guī)則會有不符合當前要求的情形。所以,在匹配規(guī)則時,要考慮規(guī)則匹配的歷史準確率,若某個規(guī)則的歷史匹配準確率越高,則有理由相信此規(guī)則的匹配歧義越低,反之則相反。規(guī)則歷史匹配準確率定義如式(2)所示。
(2)
其中,HAllMatchNUM(wpi)表示歷史記錄中規(guī)則wpi匹配的句子總數(shù),HCorrectNUM(wpi)表示歷史記錄中規(guī)則wpi匹配正確的句子總數(shù)。對于歷史匹配準確率低于設定閾值的規(guī)則,系統(tǒng)會提醒規(guī)則編輯人員修改或刪除規(guī)則。
【特征3】 匹配相關度
句子與規(guī)則相匹配的成分所計算出來的分值體現(xiàn)了兩者的匹配相關程度,相關度越高,句子與規(guī)則匹配的可能性越大。規(guī)則wp與句子(用其分詞CQWs表示)匹配相關度公式定義如式(3)所示。
(3)
詞或詞類的idf值從一個方面反映了該詞或詞類的重要程度,通常越低頻的詞,即只出現(xiàn)在少數(shù)的規(guī)則中,其idf值越大,該詞或詞類所含有的信息量就越多,這個詞或詞類也就越重要。在規(guī)則匹配度計算模型中,以詞或詞類在規(guī)則集合中的idf值作為其權重。在式(3)中,Matchedwpi,CQWs表示規(guī)則wpi與問句分詞CQWs匹配的詞位集合,t∈wpi。|t|表示wpi匹配項所對應的詞的長度,nt表示詞或詞類t索引到的規(guī)則總數(shù),N表示系統(tǒng)中的規(guī)則總數(shù),α為詞位的匹配權重,若t∈requiredwpi則取α=1,若t∈optionalwpi則取α=0.5,這一取值為經(jīng)驗值,體現(xiàn)了不同性質(zhì)詞位的重要程度,實驗結(jié)果表明此取值最佳。requiredwpi表示規(guī)則wpi的必選詞位集合,optionalwpi表示規(guī)則wpi的可選詞位集合,下同。
【特征4】匹配不相關度
未被解析樹所覆蓋的句子的成分所計算出來的分值代表解析樹與句子的不相關度,不相關度越大,句子與解析樹相匹配的可能性越小。解析樹T與句子(用其分詞CQWs表示)匹配不相關度公式定義如式(4)所示。
(4)
其中,T表示解析樹,NoMatchedT,CQWs表示CQWs中未被解析樹覆蓋的詞集合,|s|表示詞的長度,s∈CQWs且s?T。匹配不相關度考慮了句子中未能被解析樹覆蓋的成分對最終匹配結(jié)果的影響,其分值越大,表明在剩余成分中還有一些重要的詞(特征詞)未被匹配,此時解析樹與句子匹配上的可能性越小。
最終的解析樹與句子的匹配度將上述幾個因素都考慮進來,在它們之間取得平衡。加入了上述幾個特征的最終的匹配度計算如式(5) 所示。
(5)
其中,T表示句子的解析樹,Wwp,CWQs表示CWQs與規(guī)則wpi匹配的規(guī)則詞分布密度;HPrewpi表示規(guī)則wpi的歷史匹配準確率;MT,CWQs表示CWQs與解析樹匹配的詞位數(shù),即解析樹覆蓋句子的詞數(shù)越多,兩者意思相近的可能性越大,故將這一特征也納入到匹配度計算模型中。
為了驗證上述方法的有效性,本文方法在兩個領域中進行了應用,分別構(gòu)造了面向通信領域的業(yè)務信息問答系統(tǒng)和面向金融領域的某銀行業(yè)務信息問答系統(tǒng),首先按照本體建模的一般原則,結(jié)合領域特點,分別建立了通信業(yè)務領域本體和銀行業(yè)務領域本體。圖1給出了通信業(yè)務領域本體(部分)。
圖1 通信業(yè)務領域本體
從上述本體層次結(jié)構(gòu)可以看到,業(yè)務相關的概念作為本體的類,業(yè)務(類)之間的父子關系作為“Isa”關系,這種關系具有繼承性,即子節(jié)點可繼承父親節(jié)點的相關屬性。另外,建立了用以處理用戶的提問句子的問題本體。在兩個應用領域中,本文均按照業(yè)務的生命周期,即業(yè)務的介紹、開通、故障、優(yōu)惠、取消等,來組織用戶咨詢,再在每一個業(yè)務的生命周期階段作細分類。如“開通類”可再細分為:開通方法、開通失敗原因等(用“IO”表示InstanceOf關系)。兩個應用領域的問題本體在中間層次上幾乎是相同的,只是在本體的葉子節(jié)點上有區(qū)別。問題本體體現(xiàn)了用戶問句語義和問題焦點的分類。由于篇幅所限,這里只給出了通信業(yè)務領域的問題本體,如圖2所示。
圖2 通信業(yè)務領域的問題本體
根據(jù)設計的領域本體,由領域?qū)<以O計相應的核心語義文法。由于本文的方法是一種面向領域的自然語言理解方法,依賴于構(gòu)建的領域本體及語義文法等,很難與其他已有的語義理解方法進行直接比較,為了使得實驗結(jié)果更加客觀,本文的Baseline設置為按照解析結(jié)果生成的先后順序,對解析結(jié)果進行排序,并從解析結(jié)果中任意選擇一個解析結(jié)果返回,對本文提出方法與Baseline方法進行了比較。
本文在兩個應用領域中分別構(gòu)造了測試數(shù)據(jù),包括某銀行的業(yè)務信息查詢系統(tǒng)和某通信公司的產(chǎn)品及業(yè)務的信息查詢系統(tǒng)。其中,前者的領域概念較少,信息查詢點較少,而后者是一個較大的領域,涉及的領域概念比較多,信息查詢點較多。通過將方法應用于不同規(guī)模的領域中,來檢測方法的可擴展性(scalability)。根據(jù)兩個數(shù)據(jù)集所在領域,本文分別設計了領域本體及語義文法。
數(shù)據(jù)集1BSC Data Set,數(shù)據(jù)集中的問題是關于某個銀行的產(chǎn)品或業(yè)務的咨詢,比如關于如何辦理信用卡或匯款手續(xù)費等,這些問題都是真實用戶提交到系統(tǒng)中的。我們從實際用戶的提問日志中,隨機抽取了10 000個句子;組成測試數(shù)據(jù)集。
數(shù)據(jù)集2MSC Data Set,數(shù)據(jù)集中的問題是關于某個通信公司的產(chǎn)品或業(yè)務的咨詢,比如關于手機歸屬地查詢或辦理通信套餐業(yè)務等。我們也從實際用戶的提問日志中隨機抽取了10 000個句子,組成測試數(shù)據(jù)集。
本文采用精確率、平均排序倒數(shù)(mean reciprocal rank,MRR)以及識別率這三個指標來評價算法的性能。其中精確率表示系統(tǒng)能夠正確理解的問題數(shù)占所有測試問題的數(shù)目的比例,這里的“正確理解”是指在句子的所有分析結(jié)果中,得分排名第一的分析結(jié)果是正確無歧義的,如式(6)所示。
(6)
其中,T表示測試語料,t表示測試語料中的一個句子,trees(t)表示系統(tǒng)對句子t的所有解析結(jié)果,按照解析樹的得分高低進行排序,TA(t)表示句子t的正確的解析結(jié)果。
MRR指標首先計算每一個查詢的正確理解結(jié)果在所有分析結(jié)果中的位置的倒數(shù),然后對測試集中所有查詢問題的這一數(shù)值求平均如式(7)所示。
(7)
其中,T表示整個測試集,TA(t)表示句子t的正確的解析結(jié)果,rank(TA(t))用于計算查詢問題t的正確分析結(jié)果在其所有分析結(jié)果中的排名。其定義如式(8)所示。
(8)
引入如上定義,是因為當句子t無法理解或理解結(jié)果中沒有正確的分析結(jié)果時,rank(TA(t))=0,本文選取一個較大的數(shù)值(如令∝≈10 000)來處理這種情況。
識別率是指所有能夠被系統(tǒng)識別的句子數(shù)占總測試問句數(shù)的比率,它反映了語義文法對領域知識的覆蓋程度,如式(9)所示。
(9)
其中,tree(t)≠?表示句子t的解析結(jié)果不為空。
本文共進行了三組實驗來測試算法的有效性。第一組實驗測試了方法在構(gòu)造的數(shù)據(jù)集上的整體測試性能。表1給出了在BSC數(shù)據(jù)集和MSC數(shù)據(jù)集上的測試結(jié)果。
表1 BSC數(shù)據(jù)集和MSC數(shù)據(jù)集上的實驗結(jié)果
從表1可以看出,該方法在兩個領域的測試集上均取得了較高的準確率、MRR值及識別率,其中,與規(guī)模較大的領域(MSC)相比,方法在較小規(guī)模領域(BSC)上取得了相對較高的性能指標。原因是,在應用到較小規(guī)模領域時,手工容易總結(jié)出較全面的領域本體及語義文法,所以三項指標值均較高;而在應用到較大規(guī)模領域中時,語義文法不容易手工總結(jié)全面,這些指標相對要低一些。
第二組實驗對STM算法中的匹配度計算模型進行了測試。比較測試了規(guī)則詞分布密度特征、規(guī)則歷史匹配準確率特征、匹配詞位數(shù)特征、匹配相關度、匹配不相關度對匹配度計算模型的影響。表2和表3分別給出了在兩個數(shù)據(jù)集上測試包含幾個特征所對應的系統(tǒng)準確率和MRR值。其中,Re表示匹配相關度(relativeness),IrRe表示匹配不相關度(irrelativeness),W表示規(guī)則詞分布密度權值系數(shù),M表示匹配詞位數(shù)特征,HPre表示規(guī)則的歷史匹配準確率特征。由于匹配度計算只影響系統(tǒng)匹配出的答案次序,對是否有答案無影響,即對識別率無影響,故在表2、表3中只列出了對應的準確率。從表2、表3中可以看出,綜合考慮幾個特征系數(shù)的匹配度計算模型取得了較高的準確率。
表2 多個特征系數(shù)對比結(jié)果(BSC數(shù)據(jù)集)
表3 多個特征系數(shù)對比結(jié)果(MSC數(shù)據(jù)集)
為了提高問答系統(tǒng)的用戶友好性,通常需要在回答準確率和系統(tǒng)實際回答的問題占所有問題的比例之間找到一個平衡點。本文對于一個問題是否給出答案取決于所估計的置信度大小(在本文,解析樹的匹配分值即為系統(tǒng)的對于答案的置信度):對于設定的置信度閾值,只有當問題所生成的解析樹的最高得分大于設定閾值時,系統(tǒng)才會給出答案。反之,若匹配的解析樹的分值都小于設定閾值,則系統(tǒng)對此問題不給出答案。一個合理的置信度閾值將在系統(tǒng)準確性和所回答問題的比例之間取得一個平衡。對于較高的閾值,系統(tǒng)將更趨向于保守,只對較少的問題給出答案,但準確性較高;反之,對于較低的閾值,系統(tǒng)將更趨向于開放,會回答大部分的問題,但準確性相對較低。
圖3給出了準確性與回答問題的比例之間的關系圖。曲線是通過給系統(tǒng)設置不同的置信度閾值得到的。從圖中可以看出,隨著閾值的提高,系統(tǒng)選擇回答問題的比例降低,系統(tǒng)的準確率也在提高。當回答問題比例在40%左右時,系統(tǒng)的準確率達到最高(100%)。圖3說明,本文給出的匹配度計算模型對于評價解析樹與句子的匹配是有效的。
圖3 準確性與回答問題的比例之間的關系圖
通過對測試語料的統(tǒng)計分析,表4列出了測試句子集合的統(tǒng)計特征數(shù)據(jù)。主要考察了句子的兩個方面的特征:句子長度和句子的復雜程度。其中復雜程度是對問句所包含的問題焦點數(shù)目的度量。若句子只關心一個業(yè)務的某一個屬性或關系,即可與本文的問題焦點一一對應,稱之為簡單問句;大于1個問題焦點的稱為復雜問句,復雜問句的問題焦點通常是本文的問題焦點的組合。
從表4對測試語料的分析可知,語料中有不少長句(約占20%),長句中雖然包含了語義規(guī)則中所要求的詞,但這些詞在長句中的分布較散,可能已經(jīng)與規(guī)則所要表達的意思相差甚遠。通常這一類問句的規(guī)則詞分布密度較小,在下一步的工作中可考慮設置分布密度閾值來避免這一類的錯誤匹配。
表4 測試語料統(tǒng)計分析數(shù)據(jù)
在語料中也有不少復雜問句(約15%)。用戶經(jīng)常會在一個問句中隱含多個問題焦點,如問句“請問彩鈴怎么開通以及如何收費???”其中包含了兩個問題焦點(彩鈴開通方法、彩鈴收費方法)。在這種情況下,系統(tǒng)返回其中之一都不合適。這種情況可通過返回多個問題焦點,并將其答案經(jīng)過重新組合后反饋給用戶。另外,一個用戶連續(xù)的多個問題通常是相關的,若不考慮這些上下文信息,將導致錯誤結(jié)果。如有問句(1)“彩鈴是如何開通的?”(2)“它怎么收費???”若單獨的去理解問句(2)是無意義的,必須聯(lián)系用戶的前一個問題才能準確地理解用戶意圖。目前系統(tǒng)假設問句之間是不相關的,從而導致部分問句理解錯誤。分詞模塊也對系統(tǒng)準確率產(chǎn)生了一定影響。由于所處理領域的一些概念多為新詞,其組詞模式也多種多樣,如在業(yè)務“手機停機”中,其為一個復合短語,在分詞時很難確定是否要將“手機”與“停機”分開。如在句子“手機停機業(yè)務怎么辦理?”等等,需要將“手機停機”作為一個業(yè)務名看待,而在句子“我手機停機了怎么辦?”則需要將“手機停機”分開。在文中以idf值作為詞(類)的權重因子,而由于文法規(guī)則集合的不完備性,導致基于其計算出來的權重有時不太準確,對于一些語義上比較重要的詞,其權重因子有時很??;對于一些不太重要但只在少數(shù)質(zhì)量較差(即規(guī)則容易引起匹配歧義)的規(guī)則中使用的詞或詞類,權重因子反而會很高。在下一步工作中,可考慮將規(guī)則的匹配準確率因子加入到詞(類)權重計算中。
短文本理解除了對問答系統(tǒng)的性能至關重要,在很多應用中都有很急迫的需求,比如Web搜索、微博、廣告匹配、智能客服等。針對短文本具有不符合傳統(tǒng)語法、語境較少、歧義多等特點,本文提出的基于領域本體和帶約束語義文法的自然語言理解方法,通過與語義資源相結(jié)合,可以在詞匯級、句法級、語義級對文法解析過程進行約束,解決歧義問題。實驗結(jié)果表明,這一方法具有較高的準確率和識別率。目前系統(tǒng)中的核心語義文法都是由人工構(gòu)造而成,在系統(tǒng)建設初期,需要投入一定的人力成本,這也是本文下一步要開展的工作,即以用戶歷史問題集合為基礎,自動或半自動地構(gòu)造語義文法規(guī)則。
[1]Fernández A M.Closed-domain natural language approaches:methods and applications[M].Editorial de la Universidad de Granada,2014.
[2]Mollá D,Vicedo J L.Question answering in restricted domains:An overview[J].Computational Linguistics,2007,33(1):41-61.
[3]Mikolov T,Sutskever I,Chen K,et al.Distributed representations of words and phrases and their compositionality[J].Advances in neural information processing systems,2013:3111-3119.
[4]Bordes A,Chopra S,Weston J.Question answering with subgraph embeddings[J].arXiv preprint arXiv:1406.3676,2014.
[5]Zhang K,Wu W,Wang F,et al.Learning distributed representations of data in community question answering for question retrieval[C]//Proceedings of the Ninth ACM International Conference on Web Search and Data Mining.ACM,2016:533-542.
[6]中文信息學會.中文信息處理發(fā)展報告(2016)[R/OL].http://cips-upload.bj.bcebos.com/cips2016.pdf,2016:83-89.
[7]Choi E,Bahadori M T,Song L,et al.GRAM:Graph-based attention model for healthcare representation learning[J].arXiv preprint arXiv:1611.07012,2016.
[8]Bordes A,Weston J,Usunier N.Open question answering with weakly supervised embedding models[C]//Proceedings of the Joint European Conference on Machine Learning and Knowledge Discovery in Databases.Springer Berlin Heidelberg,2014:165-180.
[9]Ferrone L,Zanzotto F M.Symbolic,distributed and distributional representations for natural language processing in the era of deep learning:a Survey[J].arXiv preprint arXiv:1702.00764,2017.
[10]Palangi H,Deng L,Shen Y,et al.Deep sentence embedding using long short-term memory networks:Analysis and application to information retrieval[J].IEEE/ACM Transactions on Audio,Speech and Language Processing(TASLP),2016,24(4):694-707.
[11]Fernández A M.Closed-domain natural language approaches:methods and applications[M].Editorial de la Universidad de Granada,2014.
[12]Andrenucci A,Sneiders E.Automated question answering:Review of the main approaches[J].ICITA,2005,(1):514-519.
[13]王東升,王石,王衛(wèi)民,等.基于本體和語義文法的上下文相關問答[J].中文信息學報,2016,30(2):142-152.
[14]陳肇雄.SC文法功能體系[J].計算機學報,1992(11):801-808.
[15]Steedman,Mark.The Syntactic Process[M].The MIT Press,2000.
[16]Liang P,Jordan M I,Klein D.Learning dependency-based compositional semantics[C]//Proceedings of the 49th Annual Meeting of the Association for Computational Linguistics:Human Language Technologies-Volume 1.Association for Computational Linguistics,2011:590-599.
[17]Titov I,Klementiev A.A Bayesian model for unsupervised semantic parsing[C]//Proceedings of the 49th Annual Meeting of the Association for Computational Linguistics:Human Language Technologies-Volume 1.Association for Computational Linguistics,2011:1445-1455.
[18]Liang P.Learning executable semantic parsers for natural language understanding[J].Commun.ACM,2016,59(9):68-76.
[19]Kate R J,Wong Y W,Mooney R J.Learning to transform natural to formal languages[C]//Proceedings of the National Conference on Artificial Intelligence.Menlo Park,CA; Cambridge,MA; London; AAAI Press; MIT Press; 1999,2005,20(3):1062.
[20]Karlsson F.Constraint grammar as a framework for parsing running text[C]//Proceedings of the 13th conference on Computational Linguistics-Volume 3.Association for Computational Linguistics,1990:168-173.
[21]Bick E,Didriksen T.CG-3—Beyond classical constraint grammar[C]//Proceedings of the 20th Nordic Conference of Computational Linguistics,NODALIDA 2015,May 11-13,2015,Vilnius,Lithuania.Link?ping University Electronic Press,2015(109):31-39.
[22]L Antonsen,S Huhmarniemi,T Trosterud.Constant grammor in dialogue systems[C]//Proceedings of the NODALIDA 2009 workshopConstraint Grammar and robust parsing NEALT Proceedings Series,2009,8:13-21.
[23]Bick E,A constraint grammar based question answering system for portuguese[J].Progress in Artificial intelligence,2003,2902:414-418.
王東升(1982—),博士,講師,主要研究領域為自然語言處理、知識工程、語義網(wǎng)等。E-mail:wds_ict@163.com
王石(1981—),博士,副研究員,主要研究領域為文本處理、問答系統(tǒng)、知識工程等。E-mail:wangshi@ict.ac.cn
王衛(wèi)民(1977—),博士,講師,主要研究領域為自然語言處理、知識管理、問答系統(tǒng)等。E-mail:wangweimin@google.com