林子琦,倪晚成, 趙美靜,楊一平
(1. 中國科學院自動化研究所 綜合信息系統(tǒng)研究中心, 北京 100190;2. 中國科學院大學,北京 100049)
基于概念知識樹的雙賓短語分析
林子琦1,2,倪晚成1, 趙美靜1,楊一平1
(1. 中國科學院自動化研究所 綜合信息系統(tǒng)研究中心, 北京 100190;2. 中國科學院大學,北京 100049)
雙賓短語是一種特殊的語言現(xiàn)象,為了使計算機能夠理解并處理雙賓短語,該文從語法和語義兩個層面對雙賓短語進行了分析,基于概念知識樹知識表示模型建立了雙賓短語的語義表達模型;并提出一種雙賓短語分析算法,實現(xiàn)了從雙賓短語到其語義表達模型的自動轉(zhuǎn)換。雙賓短語分析算法采用自頂向下和自底向上相結(jié)合的方法,自頂向下用于對雙賓短語的語法成分進行劃分,獲得構(gòu)成雙賓短語的雙賓動詞成分、間接賓語成分和直接賓語成分;自底向上用于使用基于概念知識樹的短語分析推理算法對雙賓短語中的這三種成分分別進行分析,獲得對應的語義表達;最后,利用三種成分的語義分析結(jié)果構(gòu)建雙賓短語完整的語義表達。該文從權(quán)威文獻和語法詞典中選取了122個雙賓動詞,對這些雙賓動詞構(gòu)成的209個短語進行了分析,分析的正確率為90.43%,證明了該文提出的雙賓短語分析算法和語義表達模型的有效性。
雙賓短語; 概念知識樹; 語法分析; 語義表達模型
雙賓短語是一種特殊的語言現(xiàn)象,現(xiàn)代漢語中的雙賓語[1]是“某些動詞能帶兩個賓語,一般是一個賓語指人,另一個賓語指物,如‘我問你一句話’。指人的一個(‘你’)靠近動詞,叫作近賓語;指事物的一個(‘一句話’)離動詞較遠,叫作遠賓語”。
語言學家對雙賓短語的結(jié)構(gòu)主要有兩種觀點[2],第一種觀點認為雙賓短語應該分析為動賓短語帶賓語;第二種觀點認為雙賓短語是謂語動詞分別與兩個賓語發(fā)生關(guān)系,兩個賓語在同一層次,一個是近賓語,另一個是遠賓語。相比于第一種觀點,本文認為第二種觀點更加清楚地刻畫了兩個賓語和謂語動詞的關(guān)系,有利于計算機的分析和理解。 因此,本文依據(jù)第二種觀點對雙賓短語進行分析。
目前語言學家對于雙賓短語的研究很多,然而,在計算機領(lǐng)域中,專門針對雙賓短語的研究相對較少。我們需要對雙賓短語進行形式化的表達,從而讓計算機能夠處理乃至理解這種特殊的語言現(xiàn)象。如果不能正確地分析雙賓短語,會導致很多后續(xù)的研究產(chǎn)生錯誤。例如,“轉(zhuǎn)贈學校一批圖書”表達的是將原本不屬于學校的“一批圖書”轉(zhuǎn)贈給了學校;但是,如果“轉(zhuǎn)贈學校一批圖書”被錯誤分析為單賓短語,即“學?!焙汀耙慌鷪D書”構(gòu)成偏正短語做“轉(zhuǎn)贈”的賓語,語義變成將屬于“學?!钡摹耙慌鷪D書”轉(zhuǎn)贈了出去;并且,如果讓計算機回答“這批圖書被轉(zhuǎn)贈給了誰”,那么計算機會找不到“轉(zhuǎn)贈”的對象,導致分析出錯。如果將“告訴他下雨了”分析成“他下雨了”構(gòu)成主謂短語做“告訴”的賓語,從語法層面上看,上述分析是可以的,但是從語義上來說,人是不會下雨的,這樣的分析結(jié)果是完全不合理的。
因此,對雙賓短語進行正確合理地分析不僅是語言學家要研究的,也是計算機領(lǐng)域中不可忽視的問題。為此,本文研究了雙賓短語的語義表達模型,并提出一種基于概念知識樹的雙賓短語分析算法,從而幫助計算機更加準確地理解雙賓短語的語義。
本文第二部分介紹概念知識樹知識表示模型;第三部分分析雙賓短語的特征,并建立雙賓短語概念庫;第四部分對雙賓短語分析算法的分析基礎(chǔ)進行了介紹,即描述基于概念知識樹建立的漢語語法知識樹;第五部分詳細闡述了本文提出的雙賓短語分析算法;第六部分給出實驗結(jié)果和分析;最后總結(jié)了本文的工作。
人類的知識需要經(jīng)過編碼,才能為計算機所理解,構(gòu)建知識的表示模型是人工智能的基礎(chǔ)[3]。在人工智能領(lǐng)域,很多知識表示方法被提出,如謂詞邏輯[4-5]、產(chǎn)生式表示法[6]、框架[7]、語義網(wǎng)絡(luò)[8-10]等。這些方法在某些特定領(lǐng)域取得了很好的效果。但是,這些方法在理論和實際的應用中都存在一定的局限性,如謂詞邏輯難以表達不確定性知識和啟發(fā)性知識;產(chǎn)生式表示法在處理復雜問題時,容易引起組合爆炸問題;框架不善于表達過程性知識;語義網(wǎng)絡(luò)對知識的表示不能保證其不存在二義性。
通過研究和借鑒語義學、本體論、形式邏輯等學科對于知識表示和推理的理論,中國科學院自動化研究所綜合信息系統(tǒng)研究中心構(gòu)建了一種新的知識表示模型——概念知識樹(concept knowledge tree, CKT)知識表示模型[11-13]。該模型分為概念和知識樹兩個層次: 第一層是概念層,該層基于概念的語義表達模型,通過形式化的表達刻畫語言的內(nèi)涵,是知識表示模型的核心和基礎(chǔ);第二層是知識層,該層基于樹結(jié)構(gòu)的知識表達模型,具體如圖1所示。
圖1 概念知識樹知識表示模型
2.1 基于概念的語義表達模型
概念知識樹知識表示模型將概念[12]作為表達語義的基本單元, 使用屬性、關(guān)系和行為三個要素來對概念這一思維單元進行刻畫,即在概念知識樹知識表示模型中:
概念 = {概念名稱, 屬性, 關(guān)系, 行為}
(1)
其中屬性是概念的基本特征, 對概念起表示和區(qū)分的作用;關(guān)系是概念間的相互聯(lián)系,概念的屬性和行為因關(guān)系的存在得以繼承和發(fā)展;行為是概念間的相互作用,體現(xiàn)了事物的運動特性,是概念發(fā)展變化的源動力。
概念又分為獨立概念和復合概念,其中獨立概念在語義上是不可再分的單元,例如,概念“貓”“花”等;而復合概念是由兩個或兩個以上的獨立概念復合而成,如“巡航導彈”由概念“巡航”和概念“導彈”復合而成。
復合概念根據(jù)其復合方式劃分為三種類型: 語義約束,語義邏輯,語義狀態(tài),其中三種復合方式之間及其本身可以相互嵌套,從而形成復合概念。
語義約束主要用于表達由概念間修飾和屬性約束關(guān)系構(gòu)成的復合概念,其中一個概念是復合概念的核心概念,另一個概念是約束概念,用于修飾核心概念。語義約束可以用一個二元組來表示,如式(2)所示。
例如,“紅花”表示成“l(fā)t;紅:花gt;”。
語義狀態(tài)用于描述事件的語義復合結(jié)構(gòu),由謂詞概念、主體概念、客體概念和狀態(tài)概念四個部分構(gòu)成。其中,謂詞概念用來表示事件的行為和動作等;主體概念和客體概念用來表示事件的主格和賓格;狀態(tài)概念用來表示事件發(fā)生的條件、背景等。語義狀態(tài)可以用一個四元組來表示,如式(3)所示。
語義狀態(tài)= [lt;主體概念gt;{狀態(tài)概念}
例如,“他明天去北京”表示成“[lt;他gt;{明天}去lt;北京gt;]”。
語義邏輯用于描述通過連詞等連接在一起的多個獨立概念或復合概念之間的邏輯組合關(guān)系。語義邏輯由兩部分組成,邏輯關(guān)系和概念列表。其中,邏輯關(guān)系分為六種: “邏輯與”“邏輯或”“邏輯表”“邏輯異或”“邏輯非”“邏輯蘊含”。“邏輯與”表示概念并列,“邏輯或”表示概念具有選擇性,“邏輯表”表示若干概念的簡單排列,“邏輯異或”表示概念的異同性,“邏輯非”表示概念否定,“邏輯蘊含”表示概念間的因果、遞進關(guān)系。語義邏輯可以用一個二元組來描述,如式(4)所示。
例如,“我和你”表示成“(與,我 你)”。
2.2 基于知識樹的知識表達模型
如圖1所示,在概念知識樹的知識表示模型中,以知識樹的形式組織和存儲領(lǐng)域知識。知識樹以概念語義表達為基礎(chǔ),每個知識節(jié)點是以獨立概念或者復合概念為意義的基本表達單元,并且每個知識節(jié)點上可以構(gòu)建相應的屬性、規(guī)則,從而詳細地刻畫知識節(jié)點的特性。知識節(jié)點之間的有向邊表示知識節(jié)點間的父子關(guān)系或成員關(guān)系。
其中,對于知識節(jié)點間的共性只在父節(jié)點中保存,子節(jié)點可以繼承并獲取到這些信息,減少了信息存儲的代價;而對于知識節(jié)點間的特性,可以在各個節(jié)點中按需刻畫并擴展。
基于知識樹的知識表達模型,從某一側(cè)面對特定領(lǐng)域的知識進行切分,將切分好的知識表示成計算機可以存儲和識別的數(shù)據(jù),即構(gòu)建對應的知識節(jié)點;然后,按照知識節(jié)點間的關(guān)系將知識節(jié)點組織成樹狀結(jié)構(gòu),從而更好地刻畫知識間的共性和特性。知識樹是表達知識的層次結(jié)構(gòu)[11],在各層中,知識節(jié)點與其相鄰節(jié)點在粒度上保持一致;根節(jié)點層次最高,葉節(jié)點層次最低,層次越高,粒度越犬;層次越低,粒度越小。
3.1 雙賓短語的特征分析
(1) 雙賓短語的語法特征
本文從《漢語動詞用法詞典》[14]、《現(xiàn)代漢語語法信息詞典詳解》[15]和文獻[16]中,抽取出122個雙賓動詞和上述雙賓動詞構(gòu)成的209個短語;其中,主要研究上述122個雙賓動詞構(gòu)成的三種類型的雙賓短語,三種類型的雙賓短語如下所示:
① V+N1+N2
雙賓動詞后面帶的兩個賓語都是體詞性的成分。例如,“送你一本書”“稱他老三”;
② V1+N1+V2
雙賓動詞后面的近賓語是體詞性成分的,遠賓語是謂詞性的。例如,“告訴他下雨了”;
③ V+N1+小句
雙賓動詞后面的近賓語是體詞性成分的,遠賓語是小句。例如,“告訴他明天我找他”。
通過分析發(fā)現(xiàn),雙賓短語的構(gòu)成是一個動詞后面帶有兩個賓語,近賓語稱為間接賓語,遠賓語稱為直接賓語。雖然,有些語言學家認為像“吃了他三個蘋果”不是雙賓短語,“他三個蘋果”是表示領(lǐng)屬關(guān)系的偏正短語,與“吃”構(gòu)成動賓結(jié)構(gòu);但是,文獻[16-17]也從多個角度論證了“吃了他三個蘋果”可以分析為雙賓短語。
本文認為“吃了他三個蘋果”可以分析為雙賓短語,即將“他”分析為“吃”的間接賓語,“三個蘋果”是“吃”的直接賓語。本文將此類短語分析為雙賓短語本質(zhì)上是為了更加全面地刻畫其特征,為下一步的研究提供更加豐富的語義信息。
(2) 雙賓短語的語義特征
分析發(fā)現(xiàn),雙賓短語的語義特征主要是通過雙賓動詞的語義體現(xiàn),即雙賓動詞執(zhí)行后會導致直接賓語與主語、間接賓語間的領(lǐng)屬關(guān)系發(fā)生變化。其中,文獻[18-19]認為在雙賓句中,直接賓語所指對象在主語和間接賓語之間會發(fā)生轉(zhuǎn)移。參考語言學家對雙賓動詞的分析,按照直接賓語所指對象在主語和間接賓語的轉(zhuǎn)移方向,本文將雙賓動詞分為三類。
① “給予類”表示直接賓語從主語轉(zhuǎn)移到間接賓語;例如,雙賓短語“送你一本書”,其語義特征為“書”從雙賓動詞“送”的發(fā)出者(主語)轉(zhuǎn)移到了間接賓語“你”的手上;
② “獲取類”表示直接賓語從間接賓語轉(zhuǎn)移到主語;例如,“吃了他三個蘋果”的語義特征為“三個蘋果”從間接賓語“他”轉(zhuǎn)移到了動作發(fā)出者(主語);
③ “轉(zhuǎn)移不明類”表示直接賓語在主語和間接賓語間的轉(zhuǎn)移方向不明確或不存在轉(zhuǎn)移;例如,“掰你一塊饅頭”可以表示“掰了你的一塊饅頭”和“掰給你一塊饅頭”兩種語義,可以表達兩種轉(zhuǎn)移方向;“稱他老三”不存在直接賓語的轉(zhuǎn)移。
3.2 雙賓短語的語義表達模型
通過對雙賓短語的分析,我們發(fā)現(xiàn)雙賓短語可以使用“[謂詞概念lt;客體概念gt;]”的動賓短語的語義表達模型來表示;但是,雙賓短語與動賓短語相比,其謂語動詞后面帶有兩個賓語。對于這種語義關(guān)系,我們基于概念知識樹知識表示模型的“語義邏輯”來表示;其中,“語義邏輯”中的“邏輯表”表示若干概念的簡單排列,可以用來表示雙賓短語的兩個賓語,即通過語義狀態(tài)和語義邏輯的嵌套,構(gòu)成雙賓短語的語義表達模型。最終,雙賓短語的語義表達模型如下:
[雙賓動詞概念lt;(表 間接賓語概念 直接賓語概念)gt;]
例如,“安排他兩間房”對應的語義表達為“[安排lt;(表 他 lt;lt;兩:間gt;:房gt;)gt;]”,如圖2所示。
圖2 雙賓短語語義表達模型實例
3.3 雙賓短語概念庫的構(gòu)建
概念知識樹知識表示模型以概念為表達語義的基本單元,以概念庫作為語義計算和分析的基礎(chǔ)。實驗室現(xiàn)有概念庫中包含九萬多個中文概念(包含獨立概念和復合概念),其中76 828個概念是基于《現(xiàn)代漢語詞典》構(gòu)建[20]的。雙賓短語概念庫是基于已有概念庫構(gòu)建的,其中主要分為以下兩個部分。
(1) 基本概念的構(gòu)建
在已有概念庫的基礎(chǔ)上,構(gòu)建122個雙賓動詞對應的雙賓動詞概念;抽取出209個短語實例所包含的動、名詞,并在概念庫中構(gòu)建缺失的動、名詞相對應的概念。當然,對于209個短語所涵蓋的各種詞都可以構(gòu)建相應的概念;但是,概念庫本身已經(jīng)涵蓋大多數(shù)常見的概念,少部分概念的缺失并不影響目前雙賓短語的分析,故對其余的概念暫時不構(gòu)建,使用“缺失”這個概念來代替。
(2) 概念屬性的構(gòu)建
對短語實例中包含的名詞概念,按照所表達語義的不同,對這些名詞概念進行粗略的分類,主要分為以下幾類: 個人、集體名詞(國家、連隊) 、機構(gòu)(國務院、北京大學)、動物、植物、處所、抽象名詞、物質(zhì)名詞、時間名詞等;并對這些名詞概念添加“類型”這個屬性。
對雙賓動詞概念和短語實例中包含的動詞概念添加“主體”“客體”“類型”這三種屬性。其中,“主體”和“客體”分別填充動詞概念能夠帶的主語和賓語的類型,這些類型對應于名詞概念“類型”屬性中的值;“類型”屬性主要用來表征動詞概念是否是雙賓動詞、是否能用于兼語句等。
最后,對雙賓動詞概念添加“方向”屬性,即用該屬性來表示雙賓動詞對直接賓語移動方向的刻畫;其中,“方向”的屬性值有三種: “給予類”“獲取類”“轉(zhuǎn)移不明類”。通過對雙賓動詞概念添加其特有的屬性、行為等,可以將其語義特征更好地刻畫出來,為下一步分析短語的語義提供有用的信息。
在雙賓短語分析中,雙賓短語概念庫是雙賓短語分析的基礎(chǔ),雙賓短語的語義表達模型是對雙賓短語的形式化表達,而語法正是雙賓短語解析為形式化表達的橋梁。語法描述了語言中詞、短語、句子等語言單位的組織規(guī)律?;诟拍钪R樹語義表達模型,我們構(gòu)建了基本的漢語語法知識樹。
4.1 漢語語法知識樹的基本結(jié)構(gòu)
參考漢語語法書籍[21-23]對語法的劃分,本文目前從詞和短語兩個層面來構(gòu)建基本的漢語語法知識樹: 詞包括名詞、動詞、形容詞、副詞、代詞、介詞、數(shù)詞、量詞、數(shù)量詞、連詞、助詞等;短語包括聯(lián)合短語、主謂短語、同位短語、方位短語、數(shù)量短語、偏正短語、動賓短語、述補短語、介詞短語*本文對介詞短語主要關(guān)注介詞短語中的介賓短語,其他介詞短語待后面繼續(xù)研究。、連謂短語等。依據(jù)各類詞、短語之間的關(guān)系,構(gòu)成的漢語語法知識樹的結(jié)構(gòu)如圖3所示。
在后續(xù)研究中,我們將繼續(xù)加入句子等語言單位完善漢語語法知識樹。
本文針對目前漢語語法知識樹中的11種短語,構(gòu)建了這些短語的基本語義表達模型,具體如表1 所示。
表1 短語的基本語義表達模型
4.2 基于漢語語法知識樹的語法規(guī)則構(gòu)建
4.2.1 漢語語法知識樹的語法規(guī)則表示
圖3 漢語語法知識樹結(jié)構(gòu)
在漢語語法知識樹的基礎(chǔ)上,我們在知識節(jié)點上構(gòu)建了相應的語法規(guī)則。其中,規(guī)則的構(gòu)建主要是從語法層面出發(fā),即根據(jù)詞序列中的詞性、標志詞(如“的”“地”“和”)等特征來形成規(guī)則;例如,在名詞節(jié)點可以構(gòu)建如下的規(guī)則: 如果兩個名詞之間用“和”進行連接, 則這兩個名詞形成聯(lián)合短語,即“名詞1 和 名詞2”被識別成聯(lián)合短語“(與 名詞概念1 名詞概念2) ”。
知識節(jié)點上的規(guī)則采用IF-THEN的產(chǎn)生式規(guī)則來表達,例如,
其中,“*變量名*”表示變量,“*input*”表示輸入字符串經(jīng)過概念映射得到的概念序列,“*input.pos*”表示概念序列對應的詞性列表,“*cur*”表示當前分析程序處理到的概念序列的位置; 式(5)為數(shù)詞知識節(jié)點上的一條規(guī)則, 表示的語
義如下:
如果: 當前位置的概念詞性為數(shù)詞(m),下一個位置的概念詞性為量詞(q);
則: 當前概念和后面的概念構(gòu)成數(shù)量短語,并且進行如下操作,將當前概念變?yōu)楫斍案拍詈秃竺娓拍顦?gòu)成的語義約束、將當前概念的詞性修改為數(shù)量短語(SL)、移除后面一個概念。
4.2.2 漢語語法知識樹的語法規(guī)則規(guī)模
基于構(gòu)建的漢語語法知識樹,我們構(gòu)建了一個包含196條規(guī)則的基礎(chǔ)規(guī)則庫,規(guī)則的具體分布情況如表2所示。
表2 漢語語法知識樹上的規(guī)則分布情況
與一般的規(guī)則庫不同,我們的規(guī)則是分散存儲的,即按照規(guī)則的特性將規(guī)則建立在知識樹的各個知識節(jié)點上。具體來說,按照規(guī)則前件第一個位置需要滿足的概念詞性對規(guī)則進行分類,將規(guī)則放置在該詞性對應的詞類或短語的知識節(jié)點上。通過這種存儲方式,在對漢語文本進行分析時,可以根據(jù)待分析文本開頭的概念有效地獲取可能被激活的規(guī)則,提高分析程序的運行效率。
基于概念知識樹的雙賓短語分析算法,輸入為待分析文本,輸出為短語的語義表達,算法由預處理和雙賓短語成分分析兩個部分構(gòu)成,具體流程如圖4所示。
圖4 基于概念知識樹的雙賓短語分析算法流程圖
預處理首先對待分析文本進行分詞和詞性標注,得到有詞性標注的詞序列;然后,對詞序列進行雙賓短語邊界識別、雙賓短語詞性矯正;最后,使用雙賓短語成分分析對詞序列進行分析,得到短語的語義表達。
在預處理中,分詞和詞性標注使用中國科學院計算技術(shù)研究所的ICTCLAS 5.0;雙賓短語的邊界識別是通過識別詞序列中的第一個雙賓動詞及離該動詞最近的標點符號來得到雙賓短語的范圍;雙賓短語詞性矯正是利用規(guī)則將詞性標注的一些明顯錯誤進行糾正。雙賓短語成分分析是算法的核心所在,將在5.1節(jié)中進行詳述。
5.1 雙賓短語成分分析
雙賓短語成分分析采用的是自頂向下和自底向上相結(jié)合的分析方法;自頂向下是指在進行成分分析時,先對輸入的短語序列進行成分劃分得到雙賓短語的雙賓動詞成分、間接賓語成分、直接賓語成分;然后,再對各個成分使用基于概念知識樹的短語分析推理算法進行分析;最后,對各成分的語義表達進行消歧等操作后,將各成分分析結(jié)果進行組裝,得到整個短語的語義表達,雙賓短語成分分析算法流程如圖5所示,主要步驟如下。
(1) 概念映射
雙賓短語成分分析算法先對輸入的詞序列進行概念映射獲取對應的概念序列,即找到詞序列中每個詞在概念庫中對應的概念。由于一個詞可能會對應多個概念,因此,用“詞”加下劃線和編號來表示該“詞”所對應的概念。例如,“阿公”這個詞分別對應三個概念: ①丈夫的父親;②祖父;③尊稱老年男子,則概念庫中分別用“阿公_1”、“阿公_2”、“阿公_3”來表示“阿公”代表的三個概念。目前,短語成分分析輸入的是短語分詞、詞性標注后的詞序列,文本長度較短;因此,暫時不考慮概念消歧的問題。
(2) 雙賓動詞成分的識別
雖然經(jīng)過預處理后得到的詞序列是以雙賓動詞開頭的,但是雙賓動詞后面有可能帶有助詞、介詞等成分(“了”“給”等),因而需要對經(jīng)過概念映射得到的概念序列進行分析,識別雙賓動詞概念后面的附加成分,得到完整的雙賓動詞成分。例如,對概念序列“吃_2 了_7 他_1 三_1 個_1 蘋果_1”進行雙賓動詞成分識別,得到的雙賓動詞成分為“吃_2 了_7”;
(3) 間接賓語成分的識別
將雙賓動詞成分后面的概念序列和間接賓語的模板進行匹配,如果匹配成功,則匹配成功的部分識別為間接賓語成分;反之,則將雙賓動詞成分后的第一個名詞性概念識別為間接賓語成分;其中,間接賓語模板是統(tǒng)計收集到的209個短語實例的詞性序列得到的。例如,“數(shù)詞 量詞 名詞”(兩 個 人)為統(tǒng)計得到的一個間接賓語模板。
(4) 單賓短語的判別
在對直接賓語的成分進行劃分之前,檢測前面的間接賓語成分是否一定會與后面的部分構(gòu)成單賓語,判斷標準是如果間接賓語的后面直接跟“是”“的”等標志性的詞,則判定為單賓短語轉(zhuǎn)到步驟(5)單賓短語的分析;否則,轉(zhuǎn)到步驟(6)。
(5) 單賓短語的分析
通過步驟(4)詞序列已被判定為單賓短語,則將整個詞序列,即由步驟(1)得到的整個短語的概念序列,使用步驟(7)的基于概念知識樹的短語分析推理算法進行分析,分析得到的語義表達即為單賓短語的分析結(jié)果,輸出分析結(jié)果算法結(jié)束。
(6) 直接賓語成分的識別
通過步驟(4)詞序列被判定為不是單賓短語,則繼續(xù)進行雙賓短語的分析,將間接賓語之后的部分識別為直接賓語。
(7) 基于概念知識樹的短語分析推理算法
對步驟(2)、(3)、(6)得到的雙賓動詞成分、間接賓語成分和直接賓語成分,使用基于概念知識樹的短語分析推理算法進行分析,得到其對應的語義表達,具體的算法見算法1、算法2。
(8) 語義消歧
雖然經(jīng)過上述步驟的分析得到了三個成分的語義表達,但是分析算法中的規(guī)則主要是短語間的結(jié)構(gòu)信息,并不能消除語義上的歧義。因此,需要利用概念的語義信息來消除歧義,從而得到正確的語義表達。其中,語義消歧主要分為以下兩個部分。
① 直接賓語的消歧: 主要利用概念間的屬性來進行消歧,例如,利用動詞概念的“客體”屬性和名詞概念的“類型”屬性可以判斷這個動詞概念和名詞概念能否構(gòu)成動賓關(guān)系。
② 兼語短語和雙賓短語的消歧: 當待分析短語中的雙賓動詞概念能夠形成兼語句時,需要檢測間接賓語成分和直接賓語成分是否構(gòu)成主謂關(guān)系,如果構(gòu)成主謂關(guān)系,則識別為兼語短語;反之識別成雙賓短語;其中,利用動詞概念的“主體”屬性和名詞概念的“類型”屬性可以判斷這個動詞概念和名詞概念能否構(gòu)成主謂關(guān)系。例如,概念序列“發(fā)展_1/v 農(nóng)業(yè)_1/n”會激活兩條規(guī)則,從而得到偏正短語“l(fā)t;發(fā)展_1:農(nóng)業(yè)_1gt;”和動賓短語“[發(fā)展_1lt;農(nóng)業(yè)_1gt;]”兩種推理結(jié)果;程序通過查詢概念“發(fā)展_1”的“客體”屬性為“機構(gòu)、抽象名詞”,“農(nóng)業(yè)_1”的“類型”屬性為“抽象名詞”,說明概念“農(nóng)業(yè)_1”與“發(fā)展_1”可以帶的賓語類型一致,因此將上述概念序列識別成動賓短語。兼語短語的檢測方法與上述例子類似,即檢測直接賓語成分形成的復合概念中的“主體”屬性是否包含間接賓語成分形成的復合概念中的“類型”屬性,即可判斷兩種成分是否構(gòu)成主謂關(guān)系。
(9) 短語語義表達的構(gòu)造
根據(jù)語義消歧得到的短語類型對步驟(7)得到的各部分語義表達進行組裝,構(gòu)造出完整的短語語義表達,即按照“兼語短語”或“雙賓短語”中各個成分間的關(guān)系,構(gòu)造完整的短語語義表達。例如,對短語“補充連隊三名新兵”經(jīng)過步驟(1)~(7)的處理后(不進入步驟(5)),分別得到其各部分的語義表達,即雙賓動詞成分的語義表達“補充_1”、間接賓語成分的語義表達“連隊_1”、直接賓語成分的語義表達“l(fā)t;lt;三_1:名_8gt;:新兵_1gt;”;再經(jīng)過步驟(8)的語義消歧,程序判定上述短語為雙賓短語,根據(jù)雙賓短語的語義表達模型構(gòu)造出完整的短語語義表達為“[補充_1lt;(表 連隊_1 lt;lt;三_1:名_8gt;:新兵_1gt;)gt;]”。
5.1.1 基于概念知識樹的短語分析推理算法
基于概念知識樹的短語分析推理算法主要利用漢語語法知識樹上的規(guī)則對短語對應的概念序列進行分析,從而獲得短語的語義表達;算法的核心是基于規(guī)則的推理算法,即基于推理樹的推理算法(算法2)。
基于概念知識樹的短語分析推理算法是在推理樹上進行的,輸入為漢語語法知識樹、概念序列、推理位置,輸出為概念序列的語義表達。其中,漢語語法知識樹是推理樹進行推理的知識和規(guī)則的來源;概念序列是詞序列經(jīng)過概念映射得到的; 推理位置
圖5 雙賓短語成分分析算法流程圖
給定推理是從概念序列的哪個位置開始。算法的偽代碼如下:
算法1基于概念知識樹的短語分析推理算法
1. Reason (knowtree, conceptlist, pos)
2. reason_path = [], reason_result = [];
3. rt = ReasonTree();
4. rt.rt_Reason(knowtree, conceptlist, pos, reason_path, reason_result);
5. WHILE((reason_result==[]) and
knowtree.HasParent(conceptlist) ) DO
6. conceptlist = knowtree.findParent(conceptlist);
7. rt.rt_Reason(rt, knowtree, conceptlist, pos,
reason_path, reason_result);
8. END WHILE
9. return reason_result
其中,第2、3行代碼是對推理路徑、推理結(jié)果和推理樹進行初始化;
第4行代碼表示使用基于推理樹的推理算法對輸入的概念序列進行分析,獲得其對應的語義表達,基于推理樹的推理算法見算法2;
第5到第8行代碼表示當推理失敗沒有獲得推理結(jié)果時,如果當前概念序列中有概念的詞性在漢語語法知識樹中有父節(jié)點的話,那么就將這些概念的詞性變?yōu)楦腹?jié)點的詞性,重新進行推理,即子知識節(jié)點可以爬升到父知識節(jié)點繼承父節(jié)點的規(guī)則和語義信息;例如,漢語語法知識樹中趨向動詞的父節(jié)點是動詞,當概念詞性是趨向動詞時,如果推理不成功,那么該概念節(jié)點的詞性就爬升到動詞這個父節(jié)點,從而利用動詞節(jié)點的規(guī)則和語義信息繼續(xù)進行推理。
5.1.2 基于推理樹的推理算法
基于推理樹的推理算法是基于規(guī)則的深度優(yōu)先推理算法,輸入為漢語語法知識樹、概念序列、推理位置、推理路徑、推理結(jié)果,輸出為推理結(jié)果,即概念序列可能的語義表達?;谕评順涞耐评硭惴▊未a如下:
算法2基于推理樹的推理算法
1.rt_Reason(knowtree, conceptlist, pos, reason_path,
reason_result)
2. WHILE( poslt;len(conceptlist) )
3. topNodes = getRules(conceptlist[pos], knowtree)
4. curPath = getReasonPath();
5. checkPath(curPath, reason_path);
6. FOR i = 0:len(topNodes)-1
7. rn_Reason(topNodes[i], conceptlist, output);
8. END FOR
9. FOR i = 0:len(output)-1
10. IF len(output[i])gt;1 THEN
11. rt_Reason(knowtree, output[i], pos-maxRuleLen+1,reason_path,reason_result);
12. rt_Reason(knowtree, output[i], pos, reason_path, reason_result);
13. ELSE
14. reason_result.append(output[i]);
15. END IF
16. END FOR
17. pos++;
18. END WHILE
其中,第2行代碼表示當推理的位置未到達概念序列的末尾時,繼續(xù)推理(推理位置從0開始計數(shù));
第3行代碼表示獲取當前進行推理的概念可能滿足的規(guī)則,即利用概念的詞性在漢語語法知識樹上得到對應知識節(jié)點中的規(guī)則,并將這些規(guī)則作為推理樹進行推理的頂層節(jié)點;
第4~5行代碼表示獲取當前推理路徑,如果當前推理路徑已經(jīng)推理過,則函數(shù)返回,推理結(jié)束;否則,將保存當前推理路徑,繼續(xù)推理;
第6~8行代碼表示對推理樹的頂層節(jié)點進行推理,即檢驗當前輸入的概念序列是否滿足規(guī)則,如果滿足規(guī)則,則執(zhí)行規(guī)則后件得到推理結(jié)果;
第9~17行代碼表示如果推理成功,則對每個推理結(jié)果進行兩次推理,即將推理位置向前回溯一定距離(最大規(guī)則長度-1)或保持當前推理位置不變,然后,遞歸調(diào)用基于推理樹的推理算法;反之,推理位置加1,繼續(xù)推理;
第14行代碼表示當推理結(jié)果的長度為1時,表明已獲得對應的語義表達,保存推理結(jié)果。
基于推理樹的推理算法主要是深度優(yōu)先的推理算法,采用遞歸的方式進行推理,并且記錄推理路徑,避免了重復推理。
例如,對短語“一塊饅頭”進行預處理、概念映射等處理后得到的概念序列“一_1/6塊_2/7饅頭_1/0”使用基于推理樹的推理算法進行推理(概念使用數(shù)字來表示詞性,例如名詞:0、數(shù)詞: 6、量詞:7、偏正短語: 21、數(shù)量短語: 25等),推理過程如下:
① 一_1 塊_2 饅頭_1 ('0: 6 7 0 ')
② lt;一_1:塊_2gt; 饅頭_1 ('0: 25 0 ')
③ lt;lt;一_1:塊_2gt;:饅頭_1gt; (推理結(jié)果)
④ lt;一_1:塊_2gt; 饅頭_1 ('1: 25 0 ')
⑤ 一_1 塊_2 饅頭_1 ('1: 6 7 0 ')
⑥ 一_1 lt;塊_2:饅頭_1gt; ('0: 6 21 ')
⑦ 一_1 lt;塊_2:饅頭_1gt; ('1: 6 21 ')
⑧ 一_1 塊_2 饅頭_1 ('2: 6 7 0 ')
其中,每一行表示當前推理時輸入的概念序列,括號中表示的是“(推理位置:概念序列的詞性)”;
第①行: 從起始的“數(shù)詞 量詞 名詞”組成的概念序列開始推理,取出漢語語法知識樹上的“數(shù)詞”節(jié)點中的規(guī)則,“數(shù)詞 量詞”激活規(guī)則被識別為數(shù)量短語,即第②行為推理結(jié)果;
第②行: 第1行推理完成后,將推理位置向前回溯一定距離(最大規(guī)則長度-1)或保持當前推理位置不變,然后,遞歸調(diào)用基于推理樹的推理算法,在此由于推理位置是0不能再向前回溯,故保持推理位置不變,從0開始推理,即對第②行進行推理,取出“數(shù)量短語”節(jié)點中的規(guī)則,“數(shù)量短語 名詞”激活規(guī)則被識別為偏正短語,即第③行的推理結(jié)果;
第③行: 第③行待推理的概念序列長度1,說明已獲得推理結(jié)果,推理位置加1;
第④行: 第④行與第②行屬于同一層次的推理,但由于從位置1(“饅頭_1”)開始,沒有可以滿足的規(guī)則,故沒有推理結(jié)果;
第⑤~⑧行的推理過程類似,通過推理路徑可以觀察到遞歸調(diào)用基于推理樹的推理算法的層次,即概念序列的詞性一致的為同一層次的推理,例如,①、⑤、⑧均為最外層次的推理。
由上述推理過程,可以發(fā)現(xiàn)基于推理樹的推理算法是深度優(yōu)先的方法,因而上述推理實例在第③行就得到了推理結(jié)果;推理路徑為: ['0: 6 7 0 ', '0: 25 0 ', '1: 25 0 ', '1: 6 7 0 ', '0: 6 21 ', '1: 6 21 ', '2: 6 7 0 '],通過比較當前推理路徑是否在推理路徑中出現(xiàn)過即可避免冗余的推理。
6.1 實驗設(shè)置
實驗數(shù)據(jù)是從《漢語動詞用法詞典》[14]、《現(xiàn)代漢語語法信息詞典詳解》[15]和文獻[16]中,抽取出的122個雙賓動詞,及其構(gòu)成的209個短語,數(shù)據(jù)的分布情況如表3所示。
表3 待分析短語集合數(shù)據(jù)分布情況
實驗中使用的操作系統(tǒng)為Windows 7(旗艦版64位)、處理器為AMD A8-6500 3.50GHz、內(nèi)存4GB、硬盤1TB、分詞和詞性標注工具為ICTCLAS 5.0、數(shù)據(jù)庫為Microsoft SQL Server 2005。
6.2 實驗結(jié)果
對209個短語實例使用基于概念知識樹的雙賓短語分析算法進行分析,將得到的語義表達進行分析,識別的正確率為90.43%,錯誤率為9.57%,具體的實驗結(jié)果如表4所示。
表4 短語分析實驗結(jié)果
圖6 雙賓短語分析算法部分分析結(jié)果
圖6給出了分析得到的部分結(jié)果;由于一個詞可能會對應多個概念,因此用“詞”加下劃線和編號來表示該“詞”所對應的概念;每個實例的第一行為待分析短語,第二行為分詞和詞性標注結(jié)果,第三行為短語分析結(jié)果。其中,前兩個實例被分析為雙賓短語,第三個實例被分析為單賓短語,最后一個實例被分析為兼語短語。實例“派他去西藏工作”被分析為“派他”和“他去西藏工作”構(gòu)成的兼語短語,“去西藏工作”被分析為連謂短語。
圖7給出了由于子節(jié)點“趨向動詞”的規(guī)則不能推導出結(jié)果,從而爬升到其父節(jié)點“動詞”繼承父節(jié)點規(guī)則得到的分析結(jié)果。其中,“趨向動詞”節(jié)點中不包含動詞和名詞構(gòu)成動賓短語的規(guī)則。
圖7 子節(jié)點爬升到父節(jié)點的分析實例
6.3 實驗分析
表5針對每個實例的錯誤原因進行了分析(括號中為矯正結(jié)果)。其中,對分詞和詞性標注錯誤進行矯正后,有十個實例能得到正確的分析結(jié)果;而剩下的兩個實例在進行詞性矯正后,還需要進行消歧才能得到正確的分析結(jié)果。
表5 短語分析錯誤類型統(tǒng)計
在導致短語分析錯誤的四種原因中,分詞錯誤和詞性標注錯誤對分析結(jié)果的影響很大,如果要解決這類錯誤,則需要改善分詞和詞性標注的性能;對于規(guī)則未覆蓋導致的錯誤,說明對規(guī)則的總結(jié)不到位,需要向規(guī)則庫合理地增加規(guī)則,從而提高規(guī)則的覆蓋度,并保證規(guī)則數(shù)量不會爆炸式地增長;前面幾種錯誤主要是語言結(jié)構(gòu)層面上的問題,而歧義問題是語義層面上的問題,同時也是最難解決的問題,需要添加語義信息輔助識別。
例如,“吃了他三個蘋果”中由于在“吃”對應的概念中添加了其“方向”屬性為“獲取類”,因而可以得到在發(fā)出“吃”這個動作前,“他”和“三個蘋果”構(gòu)成領(lǐng)屬關(guān)系;然而,如果僅從結(jié)構(gòu)上來進行辨析是分辨不了“他”和“三個蘋果”是否構(gòu)成領(lǐng)屬關(guān)系,需要利用文獻[24-26]中所述的語義信息和特征來進行判別。
當構(gòu)成偏正短語的兩個成分之間沒有“的”這種標志性的詞時,要判別是否是偏正短語是很困難的,比如“生活費用”這種動詞作定語的粘合式偏正結(jié)構(gòu)[27],就需要利用語義信息來進行判別。
為了準確地將漢語中的雙賓短語表達為計算機可理解的語義表達模型,我們基于概念知識樹構(gòu)建了雙賓短語的語義表達模型,并提出了基于概念知識樹的雙賓短語分析算法。實驗證明本文提出的基于概念知識樹的雙賓短語分析算法是有效的。本文提出的雙賓短語分析算法具有如下特點:
(1) 自頂向下和自底向上相結(jié)合的深度優(yōu)先分析算法;
(2) 對當前概念可能滿足的規(guī)則集,搜索的時間復雜度為O(1);
(3) 分析算法是利用漢語語法知識樹和概念庫中的信息進行推理;
(4) 概念知識樹的這種求同存異的知識構(gòu)建方式,使得漢語語法知識樹上的知識節(jié)點可以存儲自身特有的規(guī)則和語義信息,并且通過繼承父節(jié)點的規(guī)則和語義信息,保證了信息的豐富性和完整性,同時減少了冗余信息的存儲;
(5) 分析算法在利用短語的結(jié)構(gòu)信息進行分析的基礎(chǔ)上,利用概念的語義信息進行消歧,從而將語言的結(jié)構(gòu)信息和語義信息相結(jié)合,增強了短語分析算法的分析能力。
本文構(gòu)建了雙賓短語的概念庫和漢語語法知識樹,并且有一定規(guī)模的概念庫作為雙賓短語分析的基礎(chǔ);然而,要想全面地實現(xiàn)雙賓短語的分析,現(xiàn)有概念庫和知識樹中存儲的規(guī)則和語義信息還遠遠不夠,在后續(xù)的研究中,我們會進一步完善漢語語法知識樹中的規(guī)則庫,將更多的知識加入到概念庫和知識樹中。另一方面,語言學家對眾多的語言現(xiàn)象進行了很深入和細致的研究,并且提出了很多用于分析語言的方法和特征;然而,這些方法和特征更多的是偏向于讓人來使用的;因此,如何將這些有用的知識轉(zhuǎn)化為計算機可利用,甚至可理解的信息,也是我們后續(xù)研究中需要繼續(xù)思考的問題和努力的目標。
[1] 中國社會科學院語言研究所詞典編輯室. 現(xiàn)代漢語詞典[M]. 第5版. 北京: 商務印書館. 2005.
[2] 何莉芳. 現(xiàn)代漢語雙賓語句研究歷程及分歧綜述 [J]. 湖北廣播電視大學學報, 2010, 30(7): 111-112.
[3] Bench-Capon T J M. Knowledge representation: an approach to artificial intelligence[M]. New York: Academic Press, 1991.
[4] Cat B D, Bogaerts B, Bruynooghe M, et al. Predicate Logic as a Modelling Language: The IDP System [C]//Proceedings of the Computer Science, 2014.
[5] Van Emden M H, Kowalski R A. The semantics of predicate logic as a programming language[J]. Journal of the Acm, 1976, 23(4): 733-42.
[6] Poria S, Cambria E, Ku L W, Chen G, et al. A Rule-Based Approach to Aspect Extraction from Product Reviews[C]//Proceedings of the 2nd Workshop on Natural Language Processing for Social Media. Dublin, 2014: 28-37.
[7] Minsky M. A framework for representing knowledge[J]. Readings in Cognitive Science, 1974, 8(76): 156-89.
[8] Nosek J T, Roth I. A comparison of formal knowledge representation schemes as communication tools: predicate logic vs semantic network [J]. International Journal of Man-Machine Studies, 1990, 33(2): 227-39.
[9] Havasi C, Speer R, Alonso J B. ConceptNet 3: a Flexible, Multilingual Semantic Network for Common Sense Knowledge[C]//Proceedings of the 3rd Recent Advances in Natural Language Processing. Philadelphia, 2007: 27-29.
[10] Niemann H, Sagerer G F, Schroder S, et al. Ernest: a semantic network system for pattern understanding [J]. IEEE Transactions on Pattern Analysis amp; Machine Intelligence, 1990, 12(9): 883-905.
[11] 于海濤, 高一波, 楊一平. 基于知識樹的領(lǐng)域知識組織和應用 [J]. 計算機應用研究, 2008, 25(11): 3246-3248.
[12] 高一波. 一種基于概念的知識表達體系 [J]. 微電子學與計算機, 2004, 21(09): 71-74.
[13] 盧朋. 基于語義的現(xiàn)代漢語介詞理解研究 [D]. 中國科學院自動化研究所博士學位論文, 2008.
[14] 孟琮, 鄭懷徳, 孟慶海,等. 漢語動詞用法詞典 [M]. 北京: 商務印書館, 1999.
[15] 俞士汶, 朱德熙, 陸儉明,等. 現(xiàn)代漢語語法信息詞典詳解[M]. 第2版. 北京: 清華大學出版社, 2002.
[16] 陸儉明. 再談“吃了他三個蘋果”一類結(jié)構(gòu)的性質(zhì) [J]. 中國語文, 2002(4): 317-325.
[17] 吳坤. 淺談“吃了他三個蘋果”結(jié)構(gòu) [J]. 青年文學家, 2016(15): 138-9.
[18] 古川裕. 談現(xiàn)象句與雙賓語句的認知特點 [J]. 漢語學習, 1997(01): 20-3.
[19] 李敏. 雙賓動詞的詞匯語義和雙賓句式語義的互動 [J]. 世界漢語教學, 2006(4): 55-66.
[20] 趙美靜. 漢語詞典義的語義理解研究 [D]. 中國科學院自動化研究所博士學位論文, 2015.
[21] 黃伯榮, 廖序東. 現(xiàn)代漢語:下冊 [M]. 北京: 高等教育出版社, 2007.
[22] 李徳津, 程美珍, 金徳厚,等. 外國人實用漢語語法 [M]. 北京: 北京語言大學出版社, 2008.
[23] 劉月華, 潘文娛, 故韡. 實用現(xiàn)代漢語語法 [M]. 北京: 商務印書館, 2001.
[24] 田英華. 表領(lǐng)屬的“名+名”偏正結(jié)構(gòu)詞的內(nèi)部語義關(guān)系 [J]. 阜陽師范學院學報(社會科學版), 2005(5): 32-35.
[25] 李宇明. 領(lǐng)屬關(guān)系與雙賓句分析 [J]. 語言教學與研究, 1996(3): 63-74.
[26] 司富珍. 雙賓結(jié)構(gòu)中的領(lǐng)屬關(guān)系 [J]. 外國語文研究, 2015(3): 2-11.
[27] 潘國英. 論動詞作定語的兩種結(jié)構(gòu)形式 [J]. 湖州師范學院學報, 2001, 23(4): 59-63.
林子琦(1991—),博士研究生,主要研究領(lǐng)域為語義信息處理、問答系統(tǒng)。
E-mail:linziqi2013@ia.ac.cn
倪晚成(1978—),通信作者,高級工程師,博士,主要研究領(lǐng)域為知識表示與知識服務系統(tǒng)、資源共享與優(yōu)化、大數(shù)據(jù)處理等。
E-mail:wancheng.ni@ia.ac.cn
趙美靜(1985—),助理研究員,博士,主要研究領(lǐng)域為語義信息處理、知識表示與應用、大數(shù)據(jù)處理等。
E-mail:meijing.zhao@ia.ac.cn
ParsingofDouble-ObjectPhrasesBasedonConceptKnowledgeTree
LIN Ziqi1,2, NI Wancheng1, ZHAO Meijing1, YANG Yiping1
(1. Integrated Information System Research Center, Institute of Automation, Chinese Academy of Sciences, Beijing 100190, China;2. University of Chinese Academy of Sciences, Beijing 100049, China)
This paper analyzes the double-object phrase which is a special linguistic phenomenon from the syntactic and semantic perspective, and presents a semantic double-object expressive model based on Conceptual Knowledge Tree (CKT). Moreover, this paper proposes a method for analyzing the double-object phrases, which can automatically translate them into the semantic expressive model. It firstly, in a top-down style, classifies the syntactic parts of a double -object phrase into three parts - double -object verb, direct object and indirect object. And then, in a bo-ttom-up style, it uses CKT to do inferences on these three parts and get their semantic expressions. Experiment on a dataset consisting of 122 double-object verbs and 209 phrases selected from authoritative literatures and grammar dictionaries reveals an accuracy 90.43%.
double-object phrases; concept knowledge tree; syntax parsing; semantic expressive model
1003-0077(2017)05-0021-11
TP391
A
2016-09-14定稿日期2017-03-13