摘要:提出了一種基于HNC自然語言理解框架下的中文問答處理算法,并在此算法基礎上加以系統實現。試驗證明,該系統在中等規模常識庫基礎上效果顯著、準確率高。
關鍵詞:中文信息處理;問答系統;語言概念空間;語義相關度;HNC理論
中圖法分類號:TP3911文獻標識碼:A
文章編號:1001-3695(2006)09-0139-04
自然語言問答系統能夠以簡潔的答案,方便、高效地回答用戶用自然語言提出的問題。
基于這種方式的信息檢索無疑會給用戶帶來極大的方便,進而使得個性化的信息服務成為可能。國際上著名的文本檢索會議TREC(TextRetrievalConfe-rence)于1999年第一次設立了QATrack。設立QATrack的目的就在于建立一個基于大規模文本知識庫的、開放領域的自然語言問答系統。QATrack的設立到現在已經有五年多時間了,包括微軟公司、卡耐基梅隆大學、賓西法尼亞大學在內的多家著名研究機構投入了大量的精力,取得了一定的成績。目前自然語言問答系統大致可以分為兩類:①使用TRECQA作為測試語料,檢索系統和答案抽取系統構建于該語料之上的;②基于互聯網的中文問答系統,這一類系統原理與第①類基本相同,只是它通過互聯網來獲取與問題相關的信息,然后做進一步的處理來抽取問題的答案。無論是哪一類回答系統,都是基于一定的概率統計模型的,這樣的系統往往是通過問題與答案間的詞語相似度計算來確定答案的,處理算法局限于字詞表層,很難深入到語義深層,因此很容易作出一些基于統計最優的錯誤判斷,也就給這類方法在問題分析上帶來了一定的局限性。
HNC自然語言問答處理系統是在HNC(概念層次網絡)自然語言理解框架之下提出來的,它充分利用了HNC句類以及語義塊知識,通過揭示句子內語義塊之間的各種關聯,以句類框架的形式給出處理所需的中間信息,這種中間信息是關于語句內容的概念表達。通過提取塊內關鍵內容信息與常識知識庫匹配得出最終結果。這種方法依據問詢句和知識庫的內容進行處理,有助于克服基于語料庫和概率統計模型方法在解決問題上可能存在的一些不足。
1問答系統原理
1.1問答系統的特點
自然語言問答處理系統一般分為三個階段:問題分析、信息檢索和答案抽取。與之相對應的HNC自然語言問答處理系統也分為三個階段,分別是問題理解、問題求解和應答文本生成,階段性非常明顯。與傳統基于統計的問答系統不同,HNC問答系統對信息的處理是建立在理解的基礎之上的,所以我們把第一階段的任務歸結為對問題的分析理解,主要目的是弄清楚用戶要問的問題是什么,傳統問答系統第一階段的任務一般包括問題的分類、關鍵詞的提取和關鍵詞擴展。如果是中文,還需要進行分詞處理。HNC問答系統則是對用戶所提出的問詢句進行句子語義類別分析操作,從而確定句子所屬的句子語義類別以及獲得與此相關的要點框架。
傳統問答系統信息檢索模塊返回的是一堆相關的文檔,然后答案抽取模塊從這些相關的文檔中找出相關的答案(一句話或者是一段)提交給用戶。答案抽取是問答系統的最后一部分,也是難度最大的一部分,如果答案抽取模塊不能準確地把正確答案抽取出來,將嚴重影響整個問答系統的準確性。
HNC問答系統則不同,HNC問答系統根據問題理解所得到的句子語義類別信息以及要點框架信息,通過與預先設定的、問題的多維度語義表示框架進行語義相關度計算后的結果來確定問題求解的多維度語義表達的分量(下文簡稱語義分量)。多維度語義表示框架是語義分量的一個集合,各語義分量具有確切的工程含義,如時間、地點、人物、事件或者針對某一個對象的不同方面描述;系統再根據問題中對象的這些語義分量從常識知識庫中直接抽取答案,形成一定的數據結構;最后根據這一數據結構,利用句子語義框架知識生成應答文本,返回給用戶。這中間包括了一個自然語言生成的過程,而不是簡單地將一包含答案的句子返回給用戶。
1.2問答系統原理說明
系統主張將自然語言表述的知識劃分為概念、語言和常識三個獨立的層面,并且不同層面形成各自的知識庫,HNC概念化、層次化、網絡化的概念基元符號體系為實現這一目標提供了充分的保障。
首先我們來看語言層面和語言概念層面間的詞語映射問題,這種映射是以語義為基礎的。對于任意一個語言概念空間中概念類C,它可以看成唯一對應概念空間中的某一種或者某一類概念節點,而對于語言空間中的詞語集合W,我們將W和C之間建立對應關系,那么對于每一個屬于詞語集合W的w,存在一個帶權值的詞語到概念類的映射關系。假設詞語wn到概念類C的權值用Vn來表示,所有詞語映射的集合就形成了一個映射向量空間V(V1,V2,V3,…,Vn)。如果向量空間中的特征項代表我們所要回答用戶問題的某一個語義分量的可能性,特征項的值Vi(1≤i≤n)就表示形成這個語義分量的可能性值,那么尋找用戶提問中所涉及的特征語義分量就轉換為對向量空間中特征項的值(詞語語義與概念類之間語義相關度)的計算和認定,這也是解決問題的關鍵所在。
在問答系統中,用戶需要得到的是系統針對確定的某一個或者某幾個語義分量上的回答,我們需要對各個確定設立篩選機制,這種機制通過語義相關度計算和閾值的設定來實現。語義分量權重由HNC概念基元符號體系語義相關度計算規則給出。由于HNC在設計概念基元符號體系的時候充分考慮了語義相關度問題,所以這部分計算非常簡單。系統根據詞語語義與概念類之間的語義相關度為Vi,結合語義相關度閾值a,就可得出映射向量V向二值邏輯平面的投影后得出的篩選認定向量X(X1,X2,X3,…,Xn),X具體含義是認定問題求解是否收入該多維度語義表達分量。
為了問題求解的方便,我們將常識知識庫中的知識,根據預先的設定劃分成了與C等同的多個維度,每個維度對應一個語義分量。這些語義分量是我們通過對大量用戶提問類型進行研究后得來的,具有一般意義,而信息的萃取則是在HNC交互平臺下,通過手工干預校正完成的,準確率達到99%以上。
最后,應答文本生成主要是分情況考慮了幾類文本的生成。文本生成充分利用了HNC句類以及語義塊知識,實現了語義從概念層面向語言表達層面的反映射。
2HNC問答系統算法介紹
2.1概述
系統的輸入是一個帶有詢問性質的句子,輸出是針對該問句的應答文本。系統流程如圖1所示。
系統首先獲取用戶以自然語言形式提交的問詢句,然后對問句進行分析,獲取句子要點。句子要點體現為問詢句所詢問的語義分量,語義分量可以理解為傳統問答系統的某個預期答案類型。在HNC問答系統中,允許一個問詢句提出對某個主體事物多個語義分量的詢問,而不僅僅局限于事件的某一方面。分析獲取要點的基礎在于兩類知識庫:概念知識庫和詞語知識庫。概念知識庫又包含概念節點知識庫、句類知識庫和概念關聯知識庫。概念知識庫與語言的表現形式無關,是在語言概念層面的一套知識表示模型及關于語言中內在的、與語種無關的常識知識庫。有了這一套模型及知識,在詞語知識庫的支持下,系統可以處理任何一種具體的語言,而不僅僅局限于漢語或者英語,并且可實現跨語種的問答系統。詞語知識庫是針對一種具體語言的、與語種相關的知識庫,包括常用的詞語的語義、概念類別、句類代碼等語義知識,不同的語言所對應的詞語知識庫是不同的。這些知識庫是語義分析的基礎,是HNC自然語言處理的基礎所在,相對穩定。獲取句子要點以后,系統將根據不同要點所對應的語義分量進行問題求解操作,求解主要依靠經過預處理的結構化常識知識庫中所包含的知識。求解結束后,進行應答文本生成。應答文本生成主要依據HNC概念知識庫中的句類知識庫和文本生成規則庫。
為了更好地說明整個系統的工作流程,我們將使用“中國科學院聲學研究所的地址是什么,郵編是多少?”為例進行說明。
2.2句子要點分析獲取
句子要點分析獲取由三個階段組成:
(1)預處理
預處理工作對于漢語處理來說就是分段層選處理,分段層選可以理解為漢語的分詞技術。但HNC分段層選處理并不像傳統語言學研究分詞那樣試圖給出確定性的層選結果,而只是給出具有層次感的優先級判定,提交后續的句類分析進行處理,系統從各個分類層次中依次選取一種分類方式提交給后續句類分析模塊處理。
(2)句類分析句類分析的目標是確定語句的概念類別、辨別語句的語義塊、分析語義塊構成,簡言之,就是要確定句子是按照什么樣的概念聯想脈絡進行組織的。HNC在句類分析方面已經形成了一套完整的語句語義結構表示體系,這一體系由57個基本句類表示式和57×56個混合句類表示式組成,并引入了塊擴、句蛻等概念,概括了自然語言語句的所有概念表達形式,提供了語句層面的概念聯想依據,并且對于什么是句子,句子的構成要件給出了形式化、計算機可操作的表述。從工程的角度可以把句類分析細分為三個子過程,即語義塊感知和句類假設、句類檢驗、語義塊構成分析。語義塊感知和句類假設的任務是找出句子中具有特定概念的字詞,并利用它們提供的信息來對句子的句類進行假設,得到一個候選集;句類檢驗的任務是運用句類知識對候選集中的各個假設句類進行合理性分析,最終判定句子的句類;語義塊構成分析的任務是在句類確定的宏觀前提下,對各個語義塊的內部語義結構進行分析。這里需要說明的是,語義塊是語義層面的語句結構單位,是句類分析的基礎,而語義塊感知就是指將一個句子分成若干個語義塊,并對每個語義塊再分出它的核心部分和說明部分。語義塊的每一個劃分都是與句類假設相對應的,所以劃分的對錯要通過后續的句類檢驗來確定。實際上,語義塊感知和句類假設之后的結果,形成了一張表格,這張表格中按優先次序記錄了假設出的各種句類以及相關信息,句類檢驗的任務就是依次對表格內的各個假設的合理性進行分析判定,從而確定句子所屬的句類以及句子中各個語義塊的角色。
對于例句“中國科學院聲學研究所的地址是什么郵編是多少?”經過HNC句類分析可以得到句子的語句深層結構為中國科學院聲學研究所的地址‖是‖什么,+%郵編‖是‖多少?
jDJ+%jDJ
從語句深層結構可以看出,這個問詢句由兩個是否判斷句組成,第二個句子是半共享句,半共享第一個句子的“中國科學院聲學研究所”。從是否判斷句的DC主語義塊“什么”和“多少”可以斷定這是一個疑問句,它們對應HNC概念基元符號表的f429類概念。HNC概念基元符號中語習概念(f類)定義的詢問類子節點如表1所示,HNC將詢問類型劃分為10個大類,以f42子樹節點加以表示。
表1HNC概念基元符號中詢問類節點
當然僅僅依靠語句中的“什么”、“多少”等關鍵字來確定詢問的類型是完全不夠的,必須結合句類分析的結果加以斷定。是否判斷句的句類代碼為jDJ=DB+jD+DC,其中,DB是對象,DC是內容,它是HNC57種句類代碼之一。是否判斷句的理解處理主要依靠DB與DC間的概念關聯知識,當DB和DC都是不含句蛻的簡單構成時,DB和DC的核心要素之間將具有概念類別一致性。從例句中來看,“中國科學院聲學研究所的地址”和“什么”是有概念類別一致性的,而“(中國科學院聲學研究所的)郵編”和“多少”同樣具有這樣的一致性,這是我們解決問題的切入點。
另外一個不能依靠語句中的“什么”、“多少”、“誰”等關鍵字來斷定問句類型的理由是,相當一部分的問詢句不包含這些關鍵字,我們必須通過句子的深層語義結構才能挖掘句子中隱含的詢問信息。比如說“請告知中國科學院聲學研究所的地址”,我們肯定不能從“告知”這個詞斷定這是個需要系統作出回答的詢問語句。句類分析就是要獲得句子的深層含義,并用統一的符號體系表示。
(3)要點生成要點生成的任務是將句子的要點信息進行提取,形成一個以要點為維度的向量空間結構Y(Y1,Y2,…,Ym),供問題求解模塊調用。例句中,我們根據句子的主語義塊信息提取出兩項關鍵要素,依據是兩個是否判斷句的主語義塊的C(內容)團塊,第一個句子主語義塊的C團塊是“地址”,第二個是“郵編”,分別對應HNC的jz214(特定位置或特定物的效應)和ga255+j3/j00(郵政上地區的數序)語義概念,根據這兩個要素,我們就得到一個要點向量y(jz214,ga255+j3/j00)。當然,向量的維數隨著要點的增加或者減少會改變,而不僅僅局限于二維結構。隨著C團塊語義的不同,有時得到的是一個向量數組,如句子中主語義塊的C團塊內容如果改為“地方”,那么向量的第一個特征值就會有三種情況,對應:①gc4000;pj20(關系的基本構成方面,相對中央的地方)。②wj2;j214(地域、位置)。③j400(局部)。此時,Y就是一個向量數組,包含y1(gc4000;pj20,ga255+j3/j00);y2(wj2;j214,ga255+j3/j00);y3(j400,ga255+j3/j00)。此時問題求解的復雜度也會增加。
2.3問題求解
問題求解就是把句子要點分析獲取的結果與預先設定好的多維度語義表示框架下的語義分量進行比對,確定問詢句中包含的關鍵信息,并以這些信息為依據根據常識知識庫中的知識形成一個包含答案信息的數據結構,提供應答文本生成時用。
系統中按概念類別將語義分量劃分成了15類,包括日期、時間、地點、人物、事件、組織、事物數量、比重以及與應用密切結合的電話、郵編、Email、金額等。這15類概念形成一個維數為15的特征向量Z(Z1,Z2,Z3,…,Z15),規定Zi和Zj(j<>i)的位置不可以隨意調換,特征向量對應的特征值Zi是該語義分量的一個HNC符號。比如,地點類概念對應HNC符號為j214(意為第一參照系:特定位置或特定物);時間類概念對應j1(意為時間的概念整體);事物數量類概念對應j308(意為基本數);郵編概念比較狹義,表示符號為ga255+j3/j00,將這些HNC符號依次填入特征向量Z中就形成了一個具體的向量z,接下來的操作就是把要點向量(組)Y中的所有特征項的值與語義分量概念特征向量z里的每一個特征值依據HNC語義相關度進行語義距離計算,獲得到一個0到1空間內的相關度值,構成本文在第1.2節中介紹過的語義分量權重向量V(V1,V2,V3,…,Vn)。對于Y(Y1,Y2,…,Ym)和Z(Z1,Z2,Z3,…,Zn)形成的V有:對于任意Vi,Vi=max(R(Yj,Zi)),其中(0