摘要:對對話管理系統(tǒng)中的自然語言理解技術(shù)進行了研究,提出了基于文法規(guī)則匹配的自然語言處理方法,給出了采用該方法實現(xiàn)的自然語言處理系統(tǒng)的結(jié)構(gòu)模型。對自然語言信息通過文法規(guī)則自動機解析為參數(shù)信息的過程做了介紹,并給出了規(guī)則應用舉例。
關(guān)鍵詞:自然語言處理;分詞處理;參數(shù)標注;文法規(guī)則匹配;參數(shù)提取
中圖分類號:TP391文獻標識碼:A文章編號:1009-3044(2009)04-0833-02
Research and Implementation of Natural Language Processing System Based on Grammar Rule Matching
DING Jie
(College of Computer Science and Technology, Beijing University of Technology, Beijing 100124, China)
Abstract: The essay research on the natural language understanding technolgoy in dialogue management system and propose a natural language processing method based on grammar rule matching. This method provide a structural model for the natural language processing system. Also, the essay introduces the process where natural language information is interpreted as parameter information through grammar rule automation while some practices are presented on the rule.
Key words: Natural Language Processing; Segmentation; Parameter Tagging; Grammar Rule Matching; Parameter Extracting
1 引言
隨著社會信息化程度的不斷提高,人與計算機系統(tǒng)之間的交互也變得越來越頻繁。在不斷地交互過程中,人們通常希望將自然語言作為人與計算機的主要溝通方式,這就使基于自然語言信息查詢的對話系統(tǒng)成為了當前對話管理系統(tǒng)的研究熱點。自然語言處理方法是對話管理系統(tǒng)的一個重要組成部分,從計算機的信息處理過程上看,其主要內(nèi)容是建立一種計算模型,使計算機可以從自然語言信息中提取出決定機器理解的關(guān)鍵要素[1]。計算機通過識別這些關(guān)鍵信息,采取一定的策略控制,就可以引導人機交互的順利進行。
基于文法規(guī)則匹配的自然語言處理方法,通過文法產(chǎn)生式將大量適用于相同人機交互過程的句子集抽象成規(guī)則,并在其中加入對關(guān)鍵信息的標注,使系統(tǒng)可以直接通過規(guī)則集生成的有窮狀態(tài)自動機將語言信息轉(zhuǎn)化為參數(shù)序列,引導至對應的信息處理方法中,從而提高了自然語言信息的識別效率,也體現(xiàn)了規(guī)則集的易擴展性。
2 系統(tǒng)模型的建立
基于文法規(guī)則匹配的自然語言處理系統(tǒng)的主要任務(wù)是將自然語言信息解析為機器可以理解的參數(shù)信息,其功能主要靠分詞處理、參數(shù)標注和文法規(guī)則匹配三個模塊來實現(xiàn),系統(tǒng)結(jié)構(gòu)模型如圖1所示。
3 系統(tǒng)實現(xiàn)
3.1 分詞處理(Segmentation)
分詞處理是通過分詞算法將句子劃分為詞序列的過程。在英文文本中,空格是單詞之間的自然分界符,無需對句子的詞邊界進行確認。而中文在句子構(gòu)成上沒有一種明顯的詞邊界符,所以對于中文來講,確定詞的劃分是理解自然語言的第一步。
3.1.1 預處理
預處理的主要任務(wù)是對源文本進行標記與拆分,以提高分詞速度和準確率。
1) 預分詞:在源文本中,經(jīng)常會出現(xiàn)一些不易被分詞算法正確切分的混合信息,比如浮點數(shù)、IP地址、電子郵件地址、時間和日期等。這些信息可能是影響計算機理解的重要參數(shù),應提前進行處理,以防被分詞算法錯誤切分。本系統(tǒng)通過使用正則表達式對源文本進行匹配,將符合條件的詞或子句標記為參數(shù),分詞算法不用對已標記的文本進行切分。
2) 分句:在中文文本中,漢語詞是不包含符號的。將具有斷句功能的標點符號作為分句依據(jù),對源文本進行句子拆分,可以減少每次分詞處理的信息量,提高分詞速度??紤]到一些特殊參數(shù)(如IP地址)包含著影響分句的標點符號,應該將預分詞處理放在分句處理之前,并將標記了參數(shù)的詞或子句也作為句子拆分的依據(jù)。
3.1.2 中文分詞
現(xiàn)有的分詞方法可以分為基于字符串匹配的分詞方法、基于理解的分詞方法和基于統(tǒng)計的分詞方法三類。其中,基于字符串匹配的分詞方法也稱為機械分詞方法,是按照一定的策略將待分析的漢字串與一個“充分大的”機器詞典中的詞條進行匹配,若在詞典中找到某個字符串,則匹配成功(識別出一個詞)。按照掃描方向的不同,串匹配分詞方法可以分為正向匹配和逆向匹配;按照不同長度優(yōu)先匹配的情況,可以分為最大(最長)匹配和最?。ㄗ疃蹋┢ヅ?;按照是否與詞性標注過程相結(jié)合,又可以分為單純分詞方法和分詞與標注相結(jié)合的一體化方法[2]。
本系統(tǒng)采用雙詞典結(jié)構(gòu)的字符串匹配分詞方法,除了具有大量詞條的分詞詞典外,還包括一個由參數(shù)表構(gòu)成的參數(shù)詞典作為附加詞典。參數(shù)詞典定義了參數(shù)表的存儲格式,每一個參數(shù)表應具備參數(shù)類型、參數(shù)標記符和參數(shù)詞表,如表1所示。
當系統(tǒng)加載詞典時,首先會載入分詞詞典中的詞條,隨后會讀取參數(shù)詞典中的參數(shù)表信息,記錄參數(shù)類型與參數(shù)標記符,并對每一個出現(xiàn)在參數(shù)詞表中的詞添加參數(shù)記錄。通過參數(shù)詞典來維護參數(shù)表,可以集中管理參數(shù)信息,便于規(guī)則集的參數(shù)擴展。
3.1.3 后處理
后處理的主要任務(wù)是優(yōu)化分詞結(jié)果,提高機器的識別能力。
1) 停用詞處理:停用詞是指文本中出現(xiàn)頻率很高,但實際意義又不大的詞,主要指副詞、虛詞、語氣詞等。本系統(tǒng)使用停用詞表對經(jīng)分詞算法切分好的詞序列進行遍歷,去掉其中包含的停用詞。
2) 規(guī)范化處理:由于漢語語法的復雜性、詞匯的廣泛性和常用語的不規(guī)范性,通常會導致同一個意思的表達有多種方式,比如表示“今天”可以說:今天,今日,今兒,今兒個...這里采用同義詞集生成的規(guī)范化映射表,可以將分詞結(jié)果中不規(guī)范的詞全部替換為標準詞,便于機器識別。
3.2 參數(shù)標注(Parameter Tagging)
對于不同領(lǐng)域不同類別的問題,系統(tǒng)需要從中抽取出查詢答案的關(guān)鍵信息,這些信息的集合就是系統(tǒng)預定義的參數(shù)集,比如在查詢天氣時候可以問“今天北京天氣怎么樣?”,這句話包含了兩類參數(shù),它們分別是時間參數(shù)“今天”和城市參數(shù)“北京”。由于參數(shù)對機器理解自然語言信息起到了較大的輔助作用,參數(shù)標注也就成為了分詞結(jié)果進行文法規(guī)則匹配前的一個重要準備工作。
參數(shù)標注與詞性標注類似,不過標注的內(nèi)容不是詞性,而是詞所包含的參數(shù)類型。比如“天安門”在進行參數(shù)標注時,將被標記兩個參數(shù):[地點]和[景點],分別對應“問路”和“旅游”兩個領(lǐng)域的信息查詢。一個詞可能不具備任何參數(shù)類型,也可能具備多種參數(shù)類型,這是由系統(tǒng)的具體應用領(lǐng)域決定的。
3.3 文法規(guī)則匹配(Grammar Rule Matching)
在自然語言處理過程中,對語言信息的理解可以看做是有窮狀態(tài)自動機的執(zhí)行過程。分詞處理與參數(shù)標注得到的帶參詞序列將作為規(guī)則匹配自動機的輸入序列,序列中每一個詞元的內(nèi)容或參數(shù)類型則是自動機的狀態(tài)轉(zhuǎn)移條件,推動其執(zhí)行。若分詞序列輸入完畢時,狀態(tài)轉(zhuǎn)移至終止結(jié)點,則成功識別出一條語言信息。這種方法通過文法產(chǎn)生式生成可以識別特定語言信息的規(guī)則,并將規(guī)則作為生成自動機狀態(tài)結(jié)點和轉(zhuǎn)移條件的依據(jù),通過不斷擴充的規(guī)則集來調(diào)整自動機的結(jié)構(gòu)和狀態(tài),以提高對語言信息的識別效率。
3.3.1 文法設(shè)計
定義文法G =({E, W, L},{(, ), [, ], {, }, <, >, $, num, word}, P , S )
其中P ={
S→E ,
E→EE ,
E→(W) ,
W→E$E|W$E ,
E→[]|[L] ,
E→{}|{L} ,
L→num ,
E→
E→word }
L(G)={w|w∈T*,S■w}為G產(chǎn)生的語言(language), ?坌w∈L(G), w為G產(chǎn)生的一個句子(sentence)[3]。在本系統(tǒng)中,將G產(chǎn)生的句子稱為規(guī)則。
3.3.2 產(chǎn)生式解釋
上述文法G所包含的產(chǎn)生式P可以對自然語言集進行規(guī)則抽象。對于符合文法規(guī)則的句子A1,A2,...,An ,包括以下幾種格式:
1) 連接:“A1A2”表示兩個規(guī)則A1和A2連接成一個新的規(guī)則A1A2。
2) 選擇: “(A1$A2$...$An)”其中n≥2,表示只需滿足A1,A2,...,An其中一條規(guī)則即可。
3) 可去除:“
4) 參數(shù)標記:“[L]”表示一個參數(shù)類型為L的詞。
5) 任意參數(shù)標記:“[]”表示一個任意參數(shù)類型的詞。
6) 組標記:“{L}”表示一組參數(shù)類型均為L的詞。
7) 任意組標記:“{}”表示一組任意參數(shù)類型的詞。
根據(jù)文法產(chǎn)生式的格式可以定義相應的規(guī)則表達式,比如([101][102]$[102][101])<的>天氣<怎么樣>。其中[101]代表日期參數(shù),[102]代表城市參數(shù),(E1$E2)表示在進行規(guī)則匹配時E1和E2只能選擇一個來匹配,<>表示所括選內(nèi)容是可以去除的。由此,前面給出的規(guī)則范例可以匹配到的句子包括:
1) 北京今天天氣怎么樣
2) 明天天津的天氣怎么樣
3) 廣州昨天的天氣
4) 后天上海天氣
……
通過文法規(guī)則,可以用少量的規(guī)則表達式來識別大量的句子組合。
3.3.3 狀態(tài)轉(zhuǎn)移
為了保證在語言信息識別成功時,句子所經(jīng)歷的狀態(tài)轉(zhuǎn)移路徑只對應一條規(guī)則,由起始結(jié)點S出發(fā)至終止結(jié)點的自動機結(jié)構(gòu)應是樹狀結(jié)構(gòu),其根結(jié)點為S結(jié)點,自動機為非確定有限狀態(tài)自動機(NFA)。對于一個結(jié)點的一次詞匹配,自動機會按照固定的順序選擇狀態(tài)轉(zhuǎn)移函數(shù),如果一種狀態(tài)轉(zhuǎn)移函數(shù)的詞匹配失敗,將通過回溯法回到前面結(jié)點,選擇新的狀態(tài)轉(zhuǎn)移函數(shù)繼續(xù)匹配,直至匹配成功或所有結(jié)點的狀態(tài)轉(zhuǎn)移函數(shù)均匹配失敗。
對狀態(tài)轉(zhuǎn)移函數(shù)的狀態(tài)轉(zhuǎn)移條件的選擇順序為:
1) 具有斷句功能的標點符號
2) 輸入詞
3) 任意組標記
4) 與輸入詞參數(shù)類型一致的組標記
5) 任意參數(shù)標記
6) 輸入詞的參數(shù)類型
3.3.4 匹配成功
當自動機執(zhí)行完畢時,若所在結(jié)點為終止結(jié)點,將會讀取到一個規(guī)則標識。通過規(guī)則標識可以從狀態(tài)轉(zhuǎn)移路徑經(jīng)過的結(jié)點中提取出與該規(guī)則相關(guān)的參數(shù)信息,并將其保存為參數(shù)序列。至此,有窮狀態(tài)自動機就完成了由分詞序列到參數(shù)序列的文法規(guī)則匹配和參數(shù)提取工作。
4 規(guī)則應用舉例
通過XML生成函數(shù)可以將定義好的規(guī)則內(nèi)容、處理方法和自動機所需的參數(shù)提取信息轉(zhuǎn)換為系統(tǒng)能夠讀取的XML格式標簽。例如 “([101][102]$[102][101])<的>天氣<怎么樣>” 將會轉(zhuǎn)換為
在識別句子“北京今天天氣怎么樣”時,系統(tǒng)提取出的信息為:
1) 信息采集方法:Weather領(lǐng)域的WeathcrSearch方法
2) 已獲得參數(shù):City|北京;Date|今天
5 結(jié)束語
本文對中文人機對話系統(tǒng)中的自然語言理解技術(shù)進行了研究,提出了一種基于文法規(guī)則匹配的自然語言處理方法。根據(jù)此方法實現(xiàn)的系統(tǒng),可以通過擴充參數(shù)詞典和規(guī)則集來提高對自然語言信息的理解能力,使系統(tǒng)有較好的領(lǐng)域擴展性。對于識別效果不好的語言信息只需按照其語法結(jié)構(gòu)抽象出新的規(guī)則并添加到系統(tǒng)中,就能夠改善對這類句子的識別效果,實現(xiàn)起來簡單而有效。
參考文獻:
[1] 俞士汶.關(guān)于語言信息處理技術(shù)的展望[J].計算機世界,1997(1).
[2] 湛燕,陳昊,袁方,王熙照.基于中文文本分類的分詞方法研究[J].計算機工程與應用,2003,39(23).
[3] 蔣宗禮,姜守旭.形式語言與自動機理論[M].北京:清華大學出版社,2007.
[4] Allen.自然語言理解[M].北京:電子工業(yè)出版社,2005.