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