專利名稱::一種自然語(yǔ)言理解方法和人機(jī)交互智能系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及人機(jī)交互技術(shù),特別是指一種自然語(yǔ)言理解方法和人機(jī)交互智能系統(tǒng)。
背景技術(shù):
:企業(yè)商務(wù)服務(wù)以自動(dòng)語(yǔ)音和人工為特點(diǎn)在國(guó)內(nèi)已經(jīng)開展了多年。隨著互聯(lián)網(wǎng)、移動(dòng)網(wǎng)的發(fā)展,企業(yè)商務(wù)在線應(yīng)用已經(jīng)成為企業(yè)新的窗口和媒介?,F(xiàn)有商務(wù)應(yīng)用的客戶接觸模式_—如依靠傳統(tǒng)人工電話接聽和靜態(tài)單向企業(yè)網(wǎng)站等已經(jīng)越來(lái)越不適應(yīng)互聯(lián)網(wǎng)時(shí)代的企業(yè)商務(wù)要求,原有以自動(dòng)語(yǔ)音和人工為特點(diǎn)的商務(wù)服務(wù)現(xiàn)在遇到了如下的挑戰(zhàn)隨著市場(chǎng)竟?fàn)幍募觿?,企業(yè)不斷推出新的產(chǎn)品和服務(wù)。作為聯(lián)系客戶的重要部門,客戶服務(wù)中心必須對(duì)企業(yè)提供的所有產(chǎn)品和服務(wù)都了如指掌。因此,企業(yè)通常在推出新產(chǎn)品的前期,會(huì)對(duì)客服人員進(jìn)行專門的培訓(xùn),隨著新產(chǎn)品推出速度的加快,這種培訓(xùn)頻率也逐漸提高(成本由此增大)。由于這種信息越來(lái)越多,有時(shí)甚至已經(jīng)超出了客服人員能夠掌握的程度,客戶人員不得不在客戶詢問(wèn)的時(shí)間,臨時(shí)查詢相關(guān)資料或者詢問(wèn)其他對(duì)此了解的同事。這種臨時(shí)的信息檢索一方面使得客戶等待更長(zhǎng)的時(shí)間,另一方面4吏每次通話的成本大幅上升。在某些情況下,客戶的電話被轉(zhuǎn)到不同的客服代表手中,這時(shí)客戶需要不斷的重復(fù)自己的問(wèn)題,造成客戶的麻煩和對(duì)客戶服務(wù)的不滿。隨著企業(yè)市場(chǎng)的開拓,更多的客戶和潛在客戶通過(guò)客服中心或企業(yè)網(wǎng)站了解相關(guān)的產(chǎn)品和服務(wù)信息,這時(shí)企業(yè)原有的客戶中心由于硬件系統(tǒng)的限制,導(dǎo)致商務(wù)代表不能同時(shí)服務(wù)更多的客戶。企業(yè)這時(shí)面臨著一個(gè)選擇,加大設(shè)備和人員投資(申請(qǐng)更多線路,提高電信設(shè)備處理能力)或者流失客戶。同時(shí),在網(wǎng)站上與客戶也不能形成在線實(shí)時(shí)交互。這是非常落后,效率低下的服務(wù)方式。不能實(shí)時(shí)與大量客戶形成良性互動(dòng)。由于工作節(jié)奏的加快,相當(dāng)多用戶都不方便在工作時(shí)間利用企業(yè)的客戶服務(wù)中心,他們通常會(huì)選擇下班以后或者利用節(jié)假日的時(shí)間。作為企業(yè)來(lái)說(shuō),維持一個(gè)長(zhǎng)時(shí)間的客戶服務(wù)時(shí)間意味著成本的增加,而對(duì)于客服人員本身來(lái)說(shuō),在節(jié)假日工作會(huì)帶來(lái)各種各樣的管理問(wèn)題。企業(yè)產(chǎn)品營(yíng)銷和廣告是企業(yè)商務(wù)的頭等大事,現(xiàn)有的企業(yè)對(duì)誰(shuí)對(duì)產(chǎn)品感興趣、誰(shuí)會(huì)買我的產(chǎn)品不能準(zhǔn)確知道,廣告的推送并不能針對(duì)有效的客戶群,不能智能化精準(zhǔn)營(yíng)銷與廣告推送網(wǎng)絡(luò)智能機(jī)器人的誕生現(xiàn)在,以微軟為代表的網(wǎng)絡(luò)智能機(jī)器人已經(jīng)誕生,在最新的定義中,網(wǎng)絡(luò)機(jī)器人是"以即時(shí)通訊(IM)工具軟件聯(lián)系人的方式表現(xiàn)出來(lái),可以像真人一樣陪你聊天、幫你查信息、陪你玩游戲的一種信息互動(dòng)平臺(tái)"。IM能讓人與人之間的聯(lián)系體現(xiàn)得更為緊密,并且覆蓋面廣泛,成為網(wǎng)絡(luò)機(jī)器人最好的載體。對(duì)"網(wǎng)絡(luò)智能機(jī)器人"的開發(fā)已經(jīng)成為智能互聯(lián)網(wǎng)時(shí)代新的熱點(diǎn)。
發(fā)明內(nèi)容有鑒于此,本發(fā)明提出一種自然語(yǔ)言理解方法,對(duì)用戶輸入的自然語(yǔ)音進(jìn)行更準(zhǔn)確的識(shí)別,以及基于該方法的人機(jī)交互智能系統(tǒng)為用戶提供更加智能完善的服務(wù)?;谏鲜瞿康谋景l(fā)明提供的自然語(yǔ)言理解方法,包括接收到用戶輸入的自然語(yǔ)言后,將自然語(yǔ)言組配出概念語(yǔ)言符號(hào),將概念與概念語(yǔ)言符號(hào)關(guān)聯(lián)起來(lái);通過(guò)比對(duì)預(yù)設(shè)的概念辭典,從中選取最符合當(dāng)前語(yǔ)境的概念,判斷是否有歧義,如果有,則通過(guò)語(yǔ)料庫(kù)技術(shù)得出概念,進(jìn)入下一步;如果沒(méi)有,釆用語(yǔ)意符合搭配原則直接得出概念,進(jìn)入下一步;概念識(shí)別并得出核心概念和周邊概念,核心概念通過(guò)計(jì)算機(jī)操作本身明確核心語(yǔ)意,周邊概念通過(guò)計(jì)算機(jī)操作內(nèi)容明確周邊語(yǔ)意;才艮據(jù)核心語(yǔ)義并結(jié)合周邊語(yǔ)義求得完整語(yǔ)義。該方法還設(shè)置概念辭典,概念辭典主要包含概念之間以及概念的屬性之間的各種關(guān)系,概念與其語(yǔ)言符號(hào)之間的對(duì)應(yīng)關(guān)系;所述自然語(yǔ)言組配過(guò)程包括使用組配算法將概念辭典中包含的概念語(yǔ)言符號(hào)從原文中組配出來(lái)。該方法所述概念之間的關(guān)系包括概念之間的上下位、同義、反義、對(duì)義、整體與部分、屬性與宿主、材料與成品、主體與事件、內(nèi)容與事件關(guān)系。該方法所述選取最符合當(dāng)前語(yǔ)境的概念過(guò)程采用語(yǔ)意符合搭配原則和釆用語(yǔ)境保持一致原則。該方法所述概念識(shí)別還包括利用數(shù)字量的識(shí)別算法,將文本中的數(shù)字量識(shí)別出來(lái)。該方法所述求得完整語(yǔ)義后還包括根據(jù)建立的自然語(yǔ)言語(yǔ)意與計(jì)算機(jī)操作之間的映射關(guān)系識(shí)別操作內(nèi)容;按操作不同,從命令文本中識(shí)別操作內(nèi)容,定位內(nèi)容所指資源;執(zhí)行操作,輸出結(jié)果并呈現(xiàn)。該方法所述自然語(yǔ)言語(yǔ)意與計(jì)算機(jī)動(dòng)作之間的映射關(guān)系的建立是通過(guò)核心語(yǔ)意與計(jì)算機(jī)操作、操作數(shù)進(jìn)行綁定實(shí)現(xiàn)。該方法采用句子模式方法和先驗(yàn)知識(shí)方法求得語(yǔ)意這二種方法結(jié)合來(lái)識(shí)別操作內(nèi)容。該方法所述采用句子模式方法的過(guò)程包括搜集各個(gè)操作的各種句子模式,并將它們組織起來(lái)存放到知識(shí)庫(kù)中,并且使用跳字匹配有限狀態(tài)自動(dòng)機(jī)實(shí)現(xiàn)句子模式的識(shí)別,之后,按照該句子模式來(lái)識(shí)別命令文本中的操作內(nèi)容。該方法所述資源定位包括確定文件在哪個(gè)目錄下;確定文件的文件名是什么。該方法所述確定文件目錄、確定文件名通過(guò)遍歷目錄樹并匹配文件名實(shí)現(xiàn),包括使用有限狀態(tài)自動(dòng)機(jī)實(shí)現(xiàn)名稱中關(guān)鍵詞的提取,將關(guān)鍵詞詞典作為模式串集合,輸入到最長(zhǎng)匹配有限狀態(tài)自動(dòng)機(jī)中,然后使用有限狀態(tài)自動(dòng)機(jī)來(lái)實(shí)現(xiàn)"按需提取,,將各個(gè)資源的各個(gè)屬性值都以模式串的形式加入到有限狀態(tài)自動(dòng)機(jī)中,然后構(gòu)建自動(dòng)機(jī),并用它掃描命令文本,則自動(dòng)機(jī)將輸出命令串中出現(xiàn)的資源屬性值,通過(guò)屬性值定位到相應(yīng)的資源。表示,通過(guò)核心語(yǔ)意與周邊語(yǔ)意組成的有序序列來(lái)表示完整語(yǔ)意,多個(gè)概念組織成完整的語(yǔ)意,計(jì)算機(jī)理解完整語(yǔ)意并得出操作。基于上述目的本發(fā)明提供的一種人機(jī)交互智能系統(tǒng),包括知識(shí)庫(kù)服務(wù)器,用于保存商務(wù)知識(shí)數(shù)據(jù)和管理系統(tǒng)常用數(shù)據(jù);人工智能引擎,用于對(duì)用戶輸入的問(wèn)題進(jìn)行分析處理并獲取檢索提交的回答;數(shù)據(jù)統(tǒng)計(jì)分析單元,用于對(duì)用戶與人工智能引擎交互數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析。從上面所述可以看出,本發(fā)明提供的自然語(yǔ)言理解方法通過(guò)概念組配、概念辭典、概念識(shí)別等技術(shù)手段同時(shí)識(shí)別自然語(yǔ)言的核心語(yǔ)義和周邊語(yǔ)義,更好的理解用戶輸入的自然語(yǔ)言用途,該自然語(yǔ)言可以是文字形式,也可以是語(yǔ)音形式,能夠使計(jì)算機(jī)理解人們?nèi)粘K褂玫恼Z(yǔ)言(如漢語(yǔ)、英語(yǔ)),使得計(jì)算機(jī)懂得自然語(yǔ)言的含義,理解人們用自然語(yǔ)言輸入的信息,進(jìn)而觸發(fā)計(jì)算機(jī)相關(guān)操作,正確回答輸入信息中的有關(guān)問(wèn)題??头藱C(jī)交互智能系統(tǒng)幫助企業(yè)提供快捷的智能商務(wù)服務(wù),可以帶來(lái)以下多方面收益1)降低企業(yè)在商務(wù)服務(wù)領(lǐng)域的再投資,從容應(yīng)對(duì)用戶數(shù)的大量增長(zhǎng)根據(jù)對(duì)銀行、電信、政府和普通企業(yè)客戶服務(wù)中心數(shù)據(jù)的調(diào)查,客戶中心所接到的問(wèn)題之中很大部分是重復(fù)的問(wèn)題或者簡(jiǎn)單咨詢的問(wèn)題,例如產(chǎn)品的功能、特點(diǎn),辦事流程等。如果我們可以將這部分問(wèn)題分流到其他渠道,例如企業(yè)的網(wǎng)站將能夠滿足這部分用戶的需求。企業(yè)通常都試圖這么做,不過(guò)根據(jù)最終用戶的反饋,他們?cè)谠L問(wèn)企業(yè)的網(wǎng)站時(shí)通常都覺(jué)得網(wǎng)站結(jié)構(gòu)太過(guò)復(fù)雜,需要花費(fèi)太多的時(shí)間來(lái)尋找自己需要的內(nèi)容。企業(yè)商務(wù)在線人機(jī)交互系統(tǒng)能夠通過(guò)引導(dǎo)性的問(wèn)答,了解客戶的需求,在較短的時(shí)間內(nèi)給用戶一個(gè)滿意的回答。而且用戶只需要像和客服代表一樣聊天就能夠達(dá)到自己的目的。而且由于系統(tǒng)架構(gòu)本身的特點(diǎn),企業(yè)商務(wù)在線人機(jī)交互系統(tǒng)能夠?qū)崿F(xiàn)同時(shí)對(duì)大量用戶的服務(wù)。因此,如果企業(yè)的用戶增長(zhǎng)迅速,企業(yè)能夠利用客服人機(jī)交互系統(tǒng)分流其中的部分咨詢用戶,使得企業(yè)能夠從容的為全部用戶提供需要的合適的服務(wù)。2)降低企業(yè)商務(wù)運(yùn)行成本可以實(shí)現(xiàn)24小時(shí)的在線客服、產(chǎn)品營(yíng)銷、廣告精確推送等,企業(yè)可以節(jié)省更多的通信費(fèi)用和人員成本。3)減少客戶的不愉快體驗(yàn)-等待時(shí)間、回答的準(zhǔn)確性由于將部分咨詢問(wèn)題轉(zhuǎn)移到網(wǎng)絡(luò)客服,企業(yè)有更多的更多的資源(線路、人員)投入到復(fù)雜的問(wèn)題之中。對(duì)于企業(yè)的客戶來(lái)說(shuō),其每次撥打客服中心時(shí),需要排隊(duì)的時(shí)間就更短,甚至能夠即時(shí)接通。而對(duì)于使用網(wǎng)絡(luò)客服的用戶來(lái)說(shuō),系統(tǒng)能夠根據(jù)其問(wèn)題即時(shí)給出相關(guān)答復(fù),而且由于其回答基于企業(yè)標(biāo)準(zhǔn)信息,不會(huì)存在錯(cuò)誤。4)對(duì)客戶進(jìn)行分析并自我更新服務(wù)能力系統(tǒng)能夠完整記錄所有的用戶問(wèn)題,企業(yè)或者政府能夠根據(jù)這些記錄分析客戶的行為特點(diǎn),例如哪些問(wèn)題是用戶最關(guān)心的,特定用戶對(duì)什么產(chǎn)品/服務(wù)感興趣等。而利用傳統(tǒng)客戶,這些信息保存于語(yǔ)音形式或者屬于客服人員的私有信息,很難進(jìn)行信息的再加工(搜索和分析)。系統(tǒng)通過(guò)對(duì)常見問(wèn)題的分析,可以提供更為準(zhǔn)確的回答。對(duì)于暫時(shí)無(wú)法滿足的問(wèn)題,企業(yè)可以進(jìn)行分析,從而為以后類似的問(wèn)題提供信息。5)低成本提供晝夜和假日服務(wù)在假日和下班時(shí)段內(nèi),用戶愿意使用更長(zhǎng)的時(shí)間解決產(chǎn)品或者服務(wù)的問(wèn)題,在傳統(tǒng)的客服務(wù)中心模式下,企業(yè)或者政府一方面要雇用更多的客服代表,另一方面平均通話時(shí)間變長(zhǎng),相應(yīng)的成本會(huì)急劇增加。而智能客服人機(jī)交互系統(tǒng)一旦部署,能夠在幾乎無(wú)成本增加的情況下提供全時(shí)服務(wù)??傊髽I(yè)或者政府通過(guò)部署企業(yè)商務(wù)在線人機(jī)交互系統(tǒng),能夠?yàn)閭鹘y(tǒng)商務(wù)服務(wù)中心提供問(wèn)題分流支持,使傳統(tǒng)商務(wù)服務(wù)中心能夠?qū)W⒂趶?fù)雜的和高價(jià)值的客戶。從而在兩種渠道內(nèi),企業(yè)能為用戶提供了更為迅速、準(zhǔn)確而標(biāo)準(zhǔn)的服務(wù)。在低成本的條件下,為企業(yè)的高速發(fā)展提供了有效的支持。對(duì)于企業(yè)或者政府來(lái)說(shuō),這種領(lǐng)先技術(shù)的使用也為其增加了新的形象(科技和創(chuàng)新的形象)。圖l為本發(fā)明實(shí)施例自然語(yǔ)言理解方法流程示意圖2為本發(fā)明實(shí)施例概念與語(yǔ)言符號(hào)之間的"多對(duì)多"的關(guān)系示意圖3為本發(fā)明實(shí)施例概念辭典的組織示意圖;圖4為本發(fā)明實(shí)施例AC機(jī)轉(zhuǎn)向函數(shù)示意圖;圖5為本發(fā)明實(shí)施例一個(gè)典型的有限狀態(tài)自動(dòng)機(jī)示意圖;圖6為本發(fā)明實(shí)施例一個(gè)典型的AC^Ui配過(guò)程示意圖;圖7為本發(fā)明實(shí)施例改進(jìn)后的有限狀態(tài)自動(dòng)機(jī)示意圖;圖8為本發(fā)明實(shí)施例計(jì)算機(jī)對(duì)"概念"的理解過(guò)程示意圖;圖9為本發(fā)明實(shí)施例跳字匹配有限狀態(tài)自動(dòng)機(jī)結(jié)構(gòu)示意圖;圖10為本發(fā)明實(shí)施例"自動(dòng)摘要系統(tǒng)"中兩條已執(zhí)行的用戶命令的框架示意圖11為本發(fā)明實(shí)施例直接/間接內(nèi)容分析、處理示意圖12為本發(fā)明實(shí)施例一個(gè)典型的文件系統(tǒng)目錄樹結(jié)構(gòu)示意圖13為本發(fā)明實(shí)施例資源及其屬性示例的示意圖14為本發(fā)明實(shí)施例資源定位算法模型示意圖15為本發(fā)明實(shí)施例人機(jī)交互智能系統(tǒng)結(jié)構(gòu)示意圖。具體實(shí)施例方式下面參照附圖對(duì)本發(fā)明進(jìn)行更全面的描述,其中說(shuō)明本發(fā)明的示例性實(shí)施例。本發(fā)明在自然語(yǔ)言識(shí)別處理時(shí),首先構(gòu)建一部概念辭典,其中包含常用的概念及其常用語(yǔ)言符號(hào)表達(dá),然后用匹配算法在用戶自然語(yǔ)言中進(jìn)行形式上的匹配,在遇到有多種組配的情況,依據(jù)當(dāng)時(shí)的語(yǔ)境來(lái)確定。對(duì)于一些語(yǔ)言文字,如果某個(gè)字串不在概念辭典中出現(xiàn),然而在交互對(duì)話中多次出現(xiàn),那么我們認(rèn)為它也是某個(gè)概念的語(yǔ)言符號(hào)表達(dá),且把這個(gè)形式加入到概念辭典中。概念辭典主要包含兩部分內(nèi)容一是概念之間以及概念的屬性之間的各種關(guān)系,二是概念與其語(yǔ)言符號(hào)之間的對(duì)應(yīng)關(guān)系。有限狀態(tài)自動(dòng)機(jī)有限狀態(tài)自動(dòng)機(jī)是一個(gè)5元組(Q,g,f,s0,T),其中Q是有限的狀態(tài)集,g是轉(zhuǎn)移函數(shù),f是失效函數(shù),s0是初始狀態(tài),T是可以轉(zhuǎn)移到的狀態(tài)集。它的使用包含兩個(gè)方面構(gòu)造和組配,工作過(guò)程主要依靠三個(gè)核心函數(shù)轉(zhuǎn)移函數(shù)(g)、失效函數(shù)(f)以及輸出函數(shù)(output)。AC機(jī)的構(gòu)造過(guò)程也就是構(gòu)造狀態(tài)集Q以及這三個(gè)核心函數(shù)的過(guò)程。參見圖1所示,本發(fā)明自然語(yǔ)言理解方法的較佳實(shí)施方案包括以下步驟步驟1~2:用戶通過(guò)WEB網(wǎng)頁(yè)或IM表現(xiàn)端輸入自然語(yǔ)言后,將自然語(yǔ)言組配出概念語(yǔ)言符號(hào),然后將概念與概念語(yǔ)言符號(hào)關(guān)聯(lián)起來(lái)。這個(gè)過(guò)程主要是通過(guò)使用有限狀態(tài)自動(dòng)機(jī)(簡(jiǎn)稱為AC機(jī)或有限自動(dòng)機(jī))來(lái)解決語(yǔ)言形式上的組配。概念和語(yǔ)言符號(hào)在計(jì)算機(jī)中表示的較好形式是文本,以字符串的形式存放,AC機(jī)能在一次掃描中從目標(biāo)字符串中將模式串完全匹配出,實(shí)現(xiàn)概念組配。才既念的組配計(jì)算機(jī)要實(shí)現(xiàn)自然語(yǔ)言理解,就是要從語(yǔ)言符號(hào)中取得語(yǔ)義。而語(yǔ)義是通過(guò)概念來(lái)表達(dá)的,因此,自然語(yǔ)言的理解過(guò)程需要從語(yǔ)言符號(hào)中把其中表達(dá)的概念識(shí)別出來(lái),然后將話語(yǔ)中多個(gè)概念組織成完整的語(yǔ)意。由于概念與語(yǔ)言符號(hào)之間多對(duì)多的對(duì)應(yīng)關(guān)系,因此概念的自動(dòng)提取分兩個(gè)步驟實(shí)現(xiàn)(1)從輸入文本中組配出概念的語(yǔ)言符號(hào);(2)根據(jù)語(yǔ)境等信息確定組配出的語(yǔ)言符號(hào)所表達(dá)的概念,這表現(xiàn)為概念的識(shí)別。1、相無(wú)念組配的方法本系統(tǒng)處理時(shí),首先構(gòu)建一部概念辭典,其中包含常用的概念及其常用語(yǔ)言符號(hào)表達(dá),然后用匹配算法在原文(句子或文章)中進(jìn)行形式上的匹配,在遇到有多種組配的情況,依據(jù)當(dāng)時(shí)的語(yǔ)境來(lái)確定。這個(gè)過(guò)程分為兩個(gè)基本步驟①使用組配算法將概念辭典中包含的概念語(yǔ)言符號(hào)從原文中組配出來(lái);②將概念語(yǔ)言符號(hào)與概念關(guān)聯(lián)起來(lái)。參見圖2所示,概念與其語(yǔ)言符號(hào)之間是"多對(duì)多"的關(guān)系,一個(gè)語(yǔ)言符號(hào)可能表達(dá)不同的概念。而在一定的語(yǔ)境中,該語(yǔ)言符號(hào)只能表達(dá)一個(gè)概念,因此語(yǔ)言符號(hào)具體表達(dá)哪個(gè)概念,^據(jù)語(yǔ)境來(lái)確定。對(duì)于文章,如果某個(gè)字串不在概念辭典中出現(xiàn),然而在文章中多次出現(xiàn),那么認(rèn)為它也是某個(gè)概念的語(yǔ)言符號(hào)表達(dá),且把這個(gè)形式加入到概念辭典中。2、概念辭典的組織概念辭典主要包含兩部分內(nèi)容一是概念之間以及概念的屬性之間的各種關(guān)系,二是概念與其語(yǔ)言符號(hào)之間的對(duì)應(yīng)關(guān)系。概念之間的關(guān)系指的是概念之間的上下位、同義、反義、對(duì)義、整體與部分、屬性與宿主、材料與成品、主體與事件、內(nèi)容與事件等關(guān)系。比如說(shuō)"計(jì)算機(jī),,與"CPU"是整體與部分的關(guān)系,而"布,,與"衣服"是材料與成品的關(guān)系。主要由如下的16種關(guān)系(1)上下位關(guān)系,(2)同義關(guān)系,(3)反義關(guān)系,(4)對(duì)義關(guān)系,(5)屬性-宿主關(guān)系,(6)部件-整體關(guān)系,(7)材料-成品關(guān)系,(8)事件-角色關(guān)系,(9)施事/經(jīng)驗(yàn)者/關(guān)系主體-事件關(guān)系,(10)受事/內(nèi)容/領(lǐng)屬物等-事件關(guān)系,(11)工具-事件關(guān)系,(12)場(chǎng)所-事件關(guān)系,(13)時(shí)間-事件關(guān)系,(14)值-屬性關(guān)系,(15)實(shí)體-值關(guān)系,(16)相關(guān)關(guān)系。概念辭典中概念與其語(yǔ)言符號(hào)的組織采用圖3的方式,左邊一欄是概念的語(yǔ)言符號(hào),右邊一欄是對(duì)應(yīng)的概念,中間是對(duì)應(yīng)關(guān)系。概念及其語(yǔ)言符號(hào)之間是"多對(duì)多"的關(guān)系,因此在圖2中的語(yǔ)言形式到概念的對(duì)應(yīng)關(guān)系是一對(duì)多的關(guān)系(當(dāng)然反過(guò)來(lái)概念到語(yǔ)言形式的對(duì)應(yīng)也是一對(duì)多的關(guān)系)。因此,本項(xiàng)目中語(yǔ)言符號(hào)節(jié)點(diǎn)的結(jié)構(gòu)如表1所示W(wǎng)ordNumberIndex1Index2Indexii表1其中Word:指示語(yǔ)言形式的字符串;Number:語(yǔ)言符號(hào)所可能關(guān)聯(lián)的概念個(gè)數(shù);Index1,Index2,...,Indexn:語(yǔ)言符號(hào)所關(guān)聯(lián)的概念的索引;"語(yǔ)言符號(hào)"與"概念"在計(jì)算機(jī)存儲(chǔ)中,都進(jìn)行了排序處理;圖3顯示了從"語(yǔ)言符號(hào)"到"概念"的對(duì)應(yīng)關(guān)系。該圖中如果補(bǔ)充從"概念"到"語(yǔ)言符號(hào)"的對(duì)應(yīng)關(guān)系(即一個(gè)概念可以有多種語(yǔ)言符號(hào)表達(dá)),那么就可以為計(jì)算機(jī)自然語(yǔ)言生成服務(wù),而且使得生成的自然語(yǔ)言更接近人們?nèi)粘I?,更加自然。這部分工作可以簡(jiǎn)單地從圖2的對(duì)應(yīng)關(guān)系中通過(guò)計(jì)算機(jī)運(yùn)算,求出其反對(duì)應(yīng)關(guān)系,并加以組織而成o3、改進(jìn)有限狀態(tài)自動(dòng)機(jī),實(shí)現(xiàn)概念組配概念和語(yǔ)言符號(hào)在計(jì)算機(jī)中表示的較好形式是文本,以字符串的形式存放。語(yǔ)言形式上的組配過(guò)程一般使用Aho-Corasick有限狀態(tài)自動(dòng)機(jī)(簡(jiǎn)稱為AC機(jī)或有限自動(dòng)機(jī))來(lái)解決。例1-3-1:設(shè)模式串集合是P={"中國(guó)","中華","中華人民共和國(guó)","華人","人民","中華人民"}有限狀態(tài)自動(dòng)機(jī)有限狀態(tài)自動(dòng)機(jī)是一個(gè)5元組(Q,g,f,sO,T),其中Q是有限的狀態(tài)集,g是轉(zhuǎn)移函數(shù),f是失效函數(shù),s0是初始狀態(tài),T是可以轉(zhuǎn)移到的狀態(tài)集。它的使用包含兩個(gè)方面構(gòu)造和組配,工作過(guò)程主要依靠三個(gè)核心函數(shù)轉(zhuǎn)移函數(shù)(g)、失效函數(shù)(f)以及輸出函數(shù)(output)。AC機(jī)的構(gòu)造過(guò)程也就是構(gòu)造狀態(tài)集Q以及這三個(gè)核心函數(shù)的過(guò)程。(1)構(gòu)造轉(zhuǎn)向函數(shù)g:def2.2(狀態(tài)的路徑)AC機(jī)中,如果存在一條從狀態(tài)A轉(zhuǎn)移到狀態(tài)B的有序轉(zhuǎn)移函數(shù)集,則稱該有序轉(zhuǎn)移函數(shù)集為狀態(tài)A到狀態(tài)B的路徑,A稱為該路徑的起始狀態(tài),B稱為該路徑的終到狀態(tài)。從0狀態(tài)到任意一個(gè)狀態(tài)的路徑簡(jiǎn)稱為該狀態(tài)的路徑。轉(zhuǎn)移函數(shù)g使得AC機(jī)在輸入特定字符后,轉(zhuǎn)移當(dāng)前狀態(tài)到新狀態(tài),實(shí)際上是其當(dāng)前狀態(tài)及輸入字符的二元函數(shù),它可表示成g(當(dāng)前狀態(tài),字符)=下一個(gè)當(dāng)前狀態(tài);構(gòu)造時(shí),對(duì)于每個(gè)模式Pi,逐個(gè)地取出Pi中的字符,開始以0狀態(tài)為當(dāng)前狀態(tài),然后根據(jù)所取出的字符決定其后的當(dāng)前狀態(tài)(i)如該狀態(tài)存在標(biāo)有該字符的路徑,則直接將該路徑的下一個(gè)狀態(tài)作為當(dāng)前狀態(tài);否則(ii),AC機(jī)中添加一個(gè)標(biāo)有比已有狀態(tài)號(hào)大l的新狀態(tài),并且添加一條從當(dāng)前狀態(tài)到新狀態(tài)的路徑,并且把當(dāng)前字符設(shè)定為該路徑的轉(zhuǎn)移字符,然后以此新狀態(tài)作為當(dāng)前狀態(tài);循環(huán)直到該^^式結(jié)束。當(dāng)Pi結(jié)束時(shí),將Pi作為輸出函數(shù)值賦給當(dāng)前狀態(tài),然后再將當(dāng)前狀態(tài)恢復(fù)成0狀態(tài)。例1-3-1中的模式串集合構(gòu)成的AC機(jī)轉(zhuǎn)向函數(shù)圖,參見圖4所示o(2)構(gòu)造失效函數(shù)fAC機(jī)組配時(shí),在當(dāng)前狀態(tài)s輸入了轉(zhuǎn)向函數(shù)圖中所沒(méi)有標(biāo)注的字符時(shí)(即轉(zhuǎn)向函數(shù)調(diào)用失敗時(shí)),將調(diào)用失效函數(shù),即將f(s)改為當(dāng)前狀態(tài)。如圖4中的AC機(jī)在狀態(tài)3輸入的字符如果不是"人",那么AC機(jī)將調(diào)用狀態(tài)3的失效函數(shù),將狀態(tài)9設(shè)定為當(dāng)前狀態(tài)。def2.3(狀態(tài)的層次)AC機(jī)中,狀態(tài)的路徑所包含的轉(zhuǎn)移次數(shù)稱為該狀態(tài)的層次。由于每次狀態(tài)轉(zhuǎn)移都需要一個(gè)轉(zhuǎn)移字符,因此狀態(tài)的層次實(shí)際上就是從0狀態(tài)到該狀態(tài)的轉(zhuǎn)移過(guò)程中所有轉(zhuǎn)移字符的數(shù)目,而且,該狀態(tài)的輸出函數(shù)就是這些字符按照轉(zhuǎn)移順序組合起來(lái)所組成的模式串。構(gòu)造時(shí),圖4中0狀態(tài)為0層狀態(tài);1、9、ll狀態(tài)為第一層狀態(tài);2、3、10、12為第二層狀態(tài);4為第三層狀態(tài);狀態(tài)5居第四層,規(guī)定第0層狀態(tài)的失效函數(shù)f(0)=0,所有笫一層狀態(tài)s的失效函數(shù)f(s)=0。在圖4中,f(0)=0,f(l)=f(9)=f(ll)=0;對(duì)非第一層的狀態(tài)s,若其父狀態(tài)為r,即g(r,a)=s,則其失效函數(shù)f(s)=g(f(s*),a),其中狀態(tài)sA為追溯狀態(tài)s的祖先狀態(tài)(〈祖先狀態(tài)〉::=〈狀態(tài)〉I〈狀態(tài)〉〈祖先狀態(tài)〉)所得到的最近一個(gè)使g(f(s",a)存在的狀態(tài)。例1-3-1中的模式串構(gòu)成的失效函數(shù)如表2所示:<table>tableseeoriginaldocumentpage14</column></row><table>表2(3)構(gòu)造輸出函數(shù)output在狀態(tài)s,如果AC機(jī)成功組配出模式串,則它應(yīng)該提供輸出函數(shù)output(s),從而輸出這些模式串,如例1-3-1中的AC機(jī),在狀態(tài)5,AC機(jī)成功組配出"中華人民"以及"人民,,這兩個(gè)模式串,所以,AC機(jī)在該狀態(tài)應(yīng)該輸出它們。構(gòu)造時(shí),在過(guò)程(l)中,在每個(gè)模式結(jié)束時(shí),應(yīng)給當(dāng)前的狀態(tài)s賦予輸出函數(shù)output(s)={當(dāng)前模式}(如,output(2H"中國(guó)"},output(3)={"中華"},……)。在構(gòu)造出失效函數(shù)f(s)=s,后,應(yīng)修改輸出函數(shù),4吏output(s)=output(s)Uoutput(s,)。顯然,AC機(jī)掃描的過(guò)程就是AC機(jī)將輸入的目標(biāo)串中的字符進(jìn)行相鄰組配的過(guò)程。如圖5所示,即是依據(jù)例1-3-1中的模式串構(gòu)造的AC機(jī)。其中,實(shí)線箭頭表示轉(zhuǎn)向函數(shù),其上的文字是該狀態(tài)下AC機(jī)的輸入,它將導(dǎo)致AC機(jī)的狀態(tài)轉(zhuǎn)移;虛線箭頭表示失效函數(shù),其余狀態(tài)的失效函數(shù)都是O狀態(tài);方框中的文本是狀態(tài)的輸出模式串,即輸出函數(shù)。在這三個(gè)函數(shù)構(gòu)造完后,AC機(jī)就可以開始組配模式串了。用AC才幾進(jìn)4亍組配的過(guò)禾呈如下從0狀態(tài)出發(fā),逐個(gè)取出目標(biāo)文本中的字符,并按照其轉(zhuǎn)向函數(shù)或者失效函數(shù)的指引進(jìn)入下一狀態(tài);當(dāng)某個(gè)狀態(tài)具有輸出函數(shù)時(shí),執(zhí)行輸出函數(shù),輸出組配得到的模式串;使用例1-3-1中的AC機(jī)對(duì)目標(biāo)文本Tl="北京是中華人民共和國(guó)的首都"進(jìn)行組配的過(guò)程如圖6所示,當(dāng)AC機(jī)到達(dá)3、4、5、8狀態(tài)時(shí),分別組配出{"中華,,}、{"華人,,}、{"中華人民"、"人民,,}、{"中華人民共和國(guó)"},這些模式串一方面在目標(biāo)串Tl中出現(xiàn),另一方面也是該目標(biāo)串Tl中出現(xiàn)的所有模式串,且模式串的輸出順序和它們?cè)谀繕?biāo)文本中的出現(xiàn)順序一致。由圖6也可以看出,AC機(jī)組配過(guò)程無(wú)回溯,工作效率較高。改進(jìn)有限狀態(tài)自動(dòng)機(jī)本實(shí)施例使用AC機(jī)實(shí)現(xiàn)概念語(yǔ)言形式的組配,假設(shè)目標(biāo)文本Tl="北京是中華人民共和國(guó)的首都",組配時(shí),將其中的"中華人民共和國(guó)"這幾個(gè)相鄰的字組配為一個(gè)整體,它表達(dá)了一個(gè)概念,那就是"中國(guó),,這個(gè)國(guó)家,而不將其中包含的"中華"、"華人"、"人民,,等詞(詞組)也分別作為概念處理。用AC機(jī)輸出最長(zhǎng)模式串的方式來(lái)實(shí)現(xiàn)這種組配過(guò)程,即AC機(jī)對(duì)目標(biāo)文本進(jìn)行組配時(shí),盡量輸出最長(zhǎng)的模式串,而那些包含于其中的較短模式串則不輸出,且不輸出那些交叉的串(比如"中華"與"華人"在T1中是交叉的,"華"字被使用了兩次,本發(fā)明實(shí)施例輸出AC機(jī)最先組配出來(lái)的模式串,即"中華",而后面的"華人"這個(gè)模式串就不輸出了)。對(duì)普通的AC機(jī)進(jìn)行了改造,以達(dá)到這種目的。下面分三個(gè)方面說(shuō)明改造后的AC機(jī)的構(gòu)建和組配過(guò)程(l)何時(shí)輸出;(2)輸出什么;(3)輸出后如何處理。這里,堅(jiān)持左方向組配優(yōu)先的原則。(1)何時(shí)輸出def2.4(葉子狀態(tài))AC機(jī)中,沒(méi)有轉(zhuǎn)移函數(shù)的狀態(tài)稱為葉子狀態(tài)。圖5中,狀態(tài)2、8、10、12都是葉子狀態(tài)。顯然,葉子狀態(tài)有如下幾個(gè)屬性葉子狀態(tài)沒(méi)有轉(zhuǎn)移函數(shù),在該狀態(tài)輸入任何字符都將導(dǎo)致失效函數(shù)的調(diào)用;葉子狀態(tài)必然存在輸出函數(shù),而且該狀態(tài)的一個(gè)輸出函數(shù)就是它的路徑中的最長(zhǎng)輸出函數(shù),這從AC機(jī)的構(gòu)造過(guò)程可以看出一方面,必然存在一個(gè)模式串(設(shè)為p),使得AC機(jī)在構(gòu)造時(shí),構(gòu)造出該葉子狀態(tài)(設(shè)為sp);另一方面,該路徑中如果存在更長(zhǎng)的模式串(設(shè)為pl),那么AC機(jī)在構(gòu)造時(shí),必然從狀態(tài)sp繼續(xù)轉(zhuǎn)移到新狀態(tài)sl,那么狀態(tài)sp就至少存在一個(gè)轉(zhuǎn)移函數(shù),轉(zhuǎn)向狀態(tài)sl,從而sp就不是葉子狀態(tài)了;從A和B可以看出,葉子狀態(tài)失效函數(shù)的調(diào)用,將導(dǎo)致葉子狀態(tài)輸出一個(gè)從O狀態(tài)到該狀態(tài)的最長(zhǎng)模式串;因此,對(duì)于葉子狀態(tài),一方面,任何輸入字符都將導(dǎo)致失效函數(shù)調(diào)用,另一方面,AC機(jī)組配得到的模式串是最長(zhǎng)的,因此應(yīng)該輸出該模式串,也就是說(shuō),葉子狀態(tài)的失效函數(shù)調(diào)用時(shí),AC機(jī)應(yīng)該輸出組配得到的最長(zhǎng)模式串。AC機(jī)的很多狀態(tài)都具有輸出,而且這些狀態(tài)并不限定于葉子狀態(tài)(比如圖4的AC機(jī)中的3、4、5等狀態(tài)),當(dāng)AC機(jī)轉(zhuǎn)移到這些狀態(tài)時(shí),由于AC機(jī)并不知道接下來(lái)輸入的字符是否會(huì)導(dǎo)致AC機(jī)繼續(xù)轉(zhuǎn)移到新狀態(tài)(即調(diào)用轉(zhuǎn)移函數(shù)產(chǎn)生狀態(tài)轉(zhuǎn)移,而不是調(diào)用失效函數(shù)),從而AC機(jī)并不能確定這些狀態(tài)的輸出函數(shù)是否最長(zhǎng)的模式串,因此不能立即輸出,這一點(diǎn)與普通的AC機(jī)不同。對(duì)照AC的失效函數(shù)f的構(gòu)造過(guò)程,可以看出,失效函數(shù)總是使得AC機(jī)的當(dāng)前狀態(tài)s朝著層次低的狀態(tài)f(s)失效;而且,失效狀態(tài)f(s)的路徑對(duì)應(yīng)的有序轉(zhuǎn)移字符集Cf(s)正好是狀態(tài)s的路徑對(duì)應(yīng)有序字符集Cs的右對(duì)齊子集,也就是說(shuō),AC機(jī)組配過(guò)程中,調(diào)用狀態(tài)的失效函數(shù)意味著狀態(tài)的路徑字符集的前面一部分將不再處理(認(rèn)為已經(jīng)處理過(guò)了),因此在左向組配優(yōu)先的原則下,AC機(jī)此時(shí)應(yīng)該輸出組配得到的最長(zhǎng)才莫式串。例2-2中的AC才幾,如圖5,當(dāng)AC才幾到達(dá)狀態(tài)5時(shí),組配得到最長(zhǎng)的模式串"中華人民,,(也是狀態(tài)5的路徑中有序轉(zhuǎn)移字符組成的模式串),5狀態(tài)的失效狀態(tài)是12,它的路徑中有序轉(zhuǎn)移字符組成的模式串是"人民",長(zhǎng)度為2,正好是"中華人民"(長(zhǎng)度為4)的右對(duì)齊部分;如果狀態(tài)5的輸入字符導(dǎo)致了失效函數(shù)的調(diào)用,則狀態(tài)5應(yīng)該輸出組配出的最長(zhǎng)模式串"中華人民"。也就是說(shuō),對(duì)于非葉子狀態(tài),失效函數(shù)調(diào)用時(shí),AC機(jī)組配得到的模式串是左向匹配優(yōu)先的原則下的最長(zhǎng)模式串,應(yīng)該輸出。綜合葉子狀態(tài)和非葉子狀態(tài)兩種情況,AC機(jī)在失效函數(shù)調(diào)用時(shí),所組配得到的模式串是最長(zhǎng)的,應(yīng)該輸出該模式串,在其余情況下,AC機(jī)不能肯定已經(jīng)組配出的模式串是否最長(zhǎng),因此不輸出。(2)輸出fh么前面的討論中,AC機(jī)調(diào)用失效函數(shù)前,將輸出組配出的最長(zhǎng)模式串,而在此之前,AC機(jī)并不輸出。為描述的方便,記從0狀態(tài)到狀態(tài)s所需要經(jīng)過(guò)的狀態(tài)數(shù)目為n(s),狀態(tài)s的輸出模式串?dāng)?shù)目為m(s)。普通AC機(jī)從0狀態(tài)轉(zhuǎn)移到當(dāng)前狀態(tài)sc,需要經(jīng)過(guò)n(sc)個(gè)狀態(tài)(這些狀態(tài)的狀態(tài)號(hào)不一定是連續(xù)的,狀態(tài)依次記為、,、,'"、"。'),而期間的每一個(gè)狀態(tài)sk,都存在m(sk)個(gè)輸出才莫式串,在狀態(tài)sc前,AC機(jī)一直在積累輸出模式串,總共的輸出模式串?dāng)?shù)目是^'。AC機(jī)失效函數(shù)調(diào)用時(shí),就是要從這些模式串中挑選出最長(zhǎng)的模式串并輸出。顯然,AC在當(dāng)前狀態(tài)sc調(diào)用失效函數(shù)前所能組配出來(lái)的最長(zhǎng)模式串是在狀態(tài)sc的路徑中,沿著該路徑朝0狀態(tài)搜索所能最先搜索出來(lái)的、具有輸出函數(shù)狀態(tài)(設(shè)為scp)的輸出函數(shù),而且該輸出模式串的長(zhǎng)度就是狀態(tài)scp的路徑的長(zhǎng)度,也就是說(shuō),AC機(jī)應(yīng)該輸出這個(gè)模式串。例2-2的AC機(jī)中,如果組配過(guò)程在狀態(tài)6轉(zhuǎn)移失效,將調(diào)用該狀態(tài)的輸出函數(shù),在輸出之前,首先輸出該狀態(tài)所能組配出來(lái)的最長(zhǎng)模式串,分析如下6狀態(tài)的路徑是0-1-3-4-5-6,沿著該路徑從6狀態(tài)朝0狀態(tài)搜索,所能最先搜索出來(lái)并且具有輸出函數(shù)的狀態(tài)是5狀態(tài),它具有兩個(gè)輸出模式串{"中華人民"、"人民"},顯然前面一個(gè)輸出模式串是從0狀態(tài)到5狀態(tài)的路徑中所有轉(zhuǎn)移字符組成的模式串,長(zhǎng)度最大,為4,應(yīng)該輸出該模式串;狀態(tài)5和狀態(tài)7的輸出也可用類似方法計(jì)算出。值得注意的是,AC機(jī)組配失效的狀態(tài)不一定有輸出函數(shù)(例2-2中的5狀態(tài)有輸出,而6、7狀態(tài)都沒(méi)有輸出),那么,為了得到最長(zhǎng)的模式串輸出,一種方法是按照當(dāng)前狀態(tài)的路徑朝0狀態(tài)回溯,直到找到一個(gè)具有輸出函數(shù)的狀態(tài)并輸出其中的模式串,逸種方法需要回溯,將降低AC機(jī)的性能;系統(tǒng)中,采用了數(shù)據(jù)綁定的辦法實(shí)現(xiàn)在AC機(jī)中設(shè)計(jì)一個(gè)輸出緩沖區(qū),并綁定該緩沖區(qū)到組配的當(dāng)前狀態(tài),AC機(jī)組配時(shí)將所能組配出的最長(zhǎng)模式串存放到該緩沖區(qū)中,這樣AC機(jī)失效函數(shù)調(diào)用前只要輸出該緩沖區(qū)中的內(nèi)容即可;AC機(jī)在沒(méi)有調(diào)用失效函數(shù)之前,狀態(tài)越往后轉(zhuǎn)移,組配得到的模式串長(zhǎng)度越大,從而,狀態(tài)轉(zhuǎn)移過(guò)程中,如果新狀態(tài)具有輸出函數(shù),則只要將新狀態(tài)的最長(zhǎng)輸出模式串保存到輸出緩沖區(qū)中即可,這樣避免了AC才幾輸出時(shí)的回溯。例1-3-1中的AC才幾,狀態(tài)轉(zhuǎn)移到1狀態(tài),沒(méi)有輸出,轉(zhuǎn)移到3狀態(tài)具有輸出"中華",輸出緩沖區(qū)內(nèi)容為"中華",4狀態(tài)的輸出是從失效函數(shù)繼承而來(lái),不計(jì)算在內(nèi),轉(zhuǎn)移到5狀態(tài)具有輸出"中華人民",輸出緩沖區(qū)的內(nèi)容更新為"中華人民",6、7狀態(tài)都沒(méi)有輸出,輸出緩沖區(qū)內(nèi)容不變,如果在這些狀態(tài)失效,則AC機(jī)將輸出緩沖區(qū)內(nèi)容,即"中華人民"。AC機(jī)組配失效并轉(zhuǎn)移到新狀態(tài)后,應(yīng)該清空輸出緩沖區(qū)。前面講述過(guò),AC機(jī)的失效函數(shù)總是向路徑短的狀態(tài)轉(zhuǎn)移,因此失效函數(shù)所指向狀態(tài)的輸出模式串的長(zhǎng)度總是比當(dāng)前狀態(tài)所具有的輸出模式串的長(zhǎng)度要短,從而在構(gòu)造輸出函數(shù)時(shí),不用將失效函數(shù)狀態(tài)的輸出模式串"并"到當(dāng)前狀態(tài)的輸出函數(shù)集中。圖5所示的AC機(jī)改進(jìn)后,4狀態(tài)將不會(huì)有輸出模式串,而5狀態(tài)只有輸出模式串"中華人民"。這個(gè)過(guò)程簡(jiǎn)化了AC機(jī)輸出函數(shù)的構(gòu)造,AC機(jī)的結(jié)構(gòu)也簡(jiǎn)化了一些。(3)輸出后如何處理AC機(jī)在失效函數(shù)調(diào)用前將輸出組配出的模式,一方面,為避免交集型輸出,已經(jīng)輸出的模式內(nèi)容不能作為下一個(gè)串的輸入;另一方面,由于采用了滯后輸出,沒(méi)有輸出的串必須保留。為避免交集型輸出,可以強(qiáng)制讓AC機(jī)在輸出后轉(zhuǎn)移到0狀態(tài)(而不是普通AC機(jī)的失效狀態(tài)),此時(shí),為了避免丟失模式串,就必須將已經(jīng)組配了但沒(méi)有輸出的字符(具體說(shuō)來(lái),就是從最近的具有輸出函數(shù)的狀態(tài)到當(dāng)前狀態(tài)的路徑中的所有字符)保留,一種方法是采用回溯,讓AC機(jī)回溯這些字符,并且從0狀態(tài)重新開始組配,這種方法采用了回溯,使得AC機(jī)的組配過(guò)程比較復(fù)雜,而且丟棄了一些組配過(guò)程,降低了性能;另一種方法是充分利用每一步的組配結(jié)果,以提高AC機(jī)的組配效率,具體說(shuō)來(lái),分為兩種情況如果失效的狀態(tài)具有輸出函數(shù),那么此時(shí)強(qiáng)制AC機(jī)的當(dāng)前狀態(tài)到0狀態(tài)使得AC機(jī)將不輸出交集型模式串,同時(shí)也不存在該狀態(tài)后已經(jīng)組配過(guò)的字符;也就是說(shuō),這個(gè)狀態(tài)的輸出函數(shù)就定義為0狀態(tài),這和普通的AC機(jī)的失效函數(shù)構(gòu)建過(guò)程是不同的;失效的狀態(tài)沒(méi)有輸出函數(shù),此時(shí)AC將輸出該狀態(tài)sc路徑上距離sc最近的具有輸出函數(shù)狀態(tài)scp的輸出函數(shù),且AC才幾已經(jīng)組配過(guò)的字符是scp到sc之間的路徑上的所有字符;按照I,scp的失效函數(shù)將是0狀態(tài),由于scp與sc之間的所有狀態(tài)都沒(méi)有輸出函數(shù),sc的失效函數(shù)的構(gòu)建過(guò)程就是基于scp的失效函數(shù)是0狀態(tài)來(lái)構(gòu)建的,也就是利用scp到sc之間的路徑上的所有字符作為轉(zhuǎn)移字符使得AC機(jī)從0狀態(tài)所能轉(zhuǎn)移到的狀態(tài),如果轉(zhuǎn)移過(guò)程中,調(diào)用了失效函數(shù),則再次從0狀態(tài)開始轉(zhuǎn)移,循環(huán)直到所有字符結(jié)束所對(duì)應(yīng)的狀態(tài),這個(gè)構(gòu)建過(guò)程和普通AC機(jī)的構(gòu)建過(guò)程是相同的。例1-3-1中的AC機(jī),如圖5,在4狀態(tài)調(diào)用失效函數(shù),那么AC機(jī)將輸出4狀態(tài)之前最近的具有輸出函數(shù)狀態(tài)的輸出函數(shù),即3狀態(tài)的"中華"(這里注意,由于4狀態(tài)本身的輸出函數(shù)是從失效函數(shù)繼承而來(lái),因此不被計(jì)算在內(nèi)),由于"華"字已經(jīng)輸出,因此AC機(jī)不能再轉(zhuǎn)移到以前的失效狀態(tài),即10狀態(tài)(該狀態(tài)重新利用了"華"字);同時(shí),由于3狀態(tài)到4狀態(tài)路徑上的字符集是p34^"人"}字并未輸出,因此不能刪除它(必須重新利用它,否則可能丟失某些輸出);從0狀態(tài)出發(fā),沿著p34中的字符進(jìn)行轉(zhuǎn)移,AC機(jī)將轉(zhuǎn)移到11狀態(tài),這也就是AC機(jī)在4狀態(tài)失效時(shí)應(yīng)該轉(zhuǎn)移到的狀態(tài),也就是改進(jìn)后的AC機(jī)狀態(tài)4的失效狀態(tài)。綜上所述,本發(fā)明實(shí)施例對(duì)AC機(jī)的構(gòu)造以及組配過(guò)程作如下的改進(jìn)(1)轉(zhuǎn)移函數(shù)的構(gòu)造過(guò)程不變。(2)失效函數(shù)的構(gòu)造過(guò)程中,規(guī)定所有具有輸出的狀態(tài)s的失效函數(shù)f(s"O,其余狀態(tài)的失效函數(shù)構(gòu)造過(guò)程不變。(3)構(gòu)造最終輸出函數(shù)時(shí),不用將失效函數(shù)的輸出"并"到當(dāng)前狀態(tài)的輸出函數(shù)列表中,從而每個(gè)狀態(tài)至多有一個(gè)輸出模式串,避免了交集型模式串輸出。以上是對(duì)普通型AC機(jī)構(gòu)建過(guò)程的改進(jìn)。(4)組配過(guò)程正如上文所講,一方面,采用數(shù)據(jù)綁定的方法實(shí)現(xiàn)輸出模式的記憶,另一方面,釆用滯后輸出的方法,只有在失效函數(shù)調(diào)用時(shí)才輸出緩沖區(qū)中的模式。AC機(jī)改造后,其內(nèi)部結(jié)構(gòu)如圖7所示。步驟3~6:AC機(jī)從目標(biāo)文本中組配出其中所表達(dá)概念的語(yǔ)言形式,并把語(yǔ)言形式與它的語(yǔ)義關(guān)聯(lián)起來(lái),通過(guò)比對(duì)系統(tǒng)預(yù)設(shè)的概念辭典,采用語(yǔ)意符合搭配原則和采用語(yǔ)境保持一致原則,從中選取最符合當(dāng)前語(yǔ)境的概念,判斷是否有歧義,如果有,則通過(guò)語(yǔ)料庫(kù)技術(shù)來(lái)解決。如果沒(méi)有,采用語(yǔ)意符合搭配原則直接得出概念。同時(shí),并利用數(shù)字量的識(shí)別算法,將文本中的數(shù)字量識(shí)別出來(lái)。這個(gè)過(guò)程主要實(shí)現(xiàn)概念識(shí)別,概念的識(shí)別包括1,形式上歧義組配問(wèn)題在改進(jìn)AC機(jī)以后,本發(fā)明實(shí)施例組織了一部包含常用概念及其常用表達(dá)形式的概念辭典來(lái)作為AC機(jī)的模式串輸入,AC機(jī)釆用左向優(yōu)先的最長(zhǎng)組配輸出原則實(shí)現(xiàn)其功能。然而一些句子在形式上存在歧義,比如"研究生命太苦了",其中"研究生命"這幾個(gè)字可以組配為①"研究生l命,,或者②"研究l生命",組配出來(lái)的概念是不同的。那么究竟哪種組配方式是正確的呢?如果僅考慮這一個(gè)句子,那么兩種組配方式都是正確的,實(shí)際情況下,需要依據(jù)該句子所在的語(yǔ)境來(lái)確定正確的組配方式。針對(duì)一個(gè)句子,不考慮它所處的語(yǔ)言環(huán)境,對(duì)于存在歧義組配的文本,主要通過(guò)語(yǔ)料庫(kù)技術(shù)來(lái)解決①字組配成概念的概率統(tǒng)計(jì)出語(yǔ)料庫(kù)中幾個(gè)相鄰的字組配成概念的概率,比較得出組配概率高的概念形式;②概念同時(shí)出現(xiàn)的概率統(tǒng)計(jì)出不同的幾個(gè)概念在同一個(gè)句子中出現(xiàn)的頻率,比較得出頻率高的概念形式。2,概念的確認(rèn)AC機(jī)能從目標(biāo)文本中組配出其中所表達(dá)概念的語(yǔ)言形式,下一步工作就是要把語(yǔ)言形式與它所表達(dá)的概念(也就是語(yǔ)言形式的語(yǔ)義)關(guān)聯(lián)起來(lái)選取語(yǔ)言形式所表達(dá)的概念時(shí),必須堅(jiān)持兩個(gè)基本原則原則一,語(yǔ)言形式所表達(dá)的概念必須與句子中的其它概念在語(yǔ)意上保持一致,即語(yǔ)意上符合搭配原則;原則二,如果仍然不能確定語(yǔ)言形式所表達(dá)的概念,那么,可以利用語(yǔ)言形式表達(dá)的概念必須與句子所處文章的主題、即句子所處的語(yǔ)境保持一致的原則。通過(guò)原則一,能判定出大部分語(yǔ)言形式所表達(dá)的概念(比如"打飯"、"打毛衣"中的"打"通過(guò)語(yǔ)義符合搭配原則即可判定為分別對(duì)應(yīng)"買"、"編織"等概念),少部分語(yǔ)言形式所表達(dá)的概念尚需要依據(jù)原則二才能判定(比如在"病毒具有傳染性"中,依據(jù)原則一就不能判定出"病毒"是對(duì)應(yīng)計(jì)算機(jī)學(xué)上講述的"軟件病毒,,還是生理學(xué)上講述的"生理病毒")步驟7~8:概念識(shí)別后得出核心概念和周邊概念,核心概念通過(guò)計(jì)算機(jī)操作本身明確核心語(yǔ)意,周邊概念通過(guò)計(jì)算機(jī)操作內(nèi)容明確周邊語(yǔ)意。數(shù)字量概念的組配數(shù)字量經(jīng)常出現(xiàn)于自然語(yǔ)言中,比如時(shí)間、數(shù)量、百分?jǐn)?shù)等等,表示很具體的信息。數(shù)字量的符號(hào)表示仍然是文本(如"二十五年"),在計(jì)算機(jī)中以字符串形式存儲(chǔ)(如"二十五年,,存儲(chǔ)為字符串形式,占8個(gè)字節(jié)),這種字符串與普通的字符串沒(méi)有本質(zhì)的區(qū)別,如果不作特殊處理,則計(jì)算機(jī)很難把它當(dāng)作數(shù)量處理。然而,計(jì)算機(jī)對(duì)自然語(yǔ)言的理解不能停留在語(yǔ)言形式的層面,而必須得到語(yǔ)言形式所表達(dá)的語(yǔ)意。換句話說(shuō),針對(duì)數(shù)字量字符串,計(jì)算機(jī)理解的時(shí)候必須得到它的語(yǔ)義,也就是它表達(dá)的數(shù)字量的內(nèi)容。從而,必須構(gòu)建一定的模型以及設(shè)計(jì)相應(yīng)的算法,使得計(jì)算機(jī)從目標(biāo)文本中組配概念的時(shí)候,能將文本中的數(shù)字量識(shí)別出來(lái),并且得到這些數(shù)字量概念所表達(dá)的語(yǔ)義。其中,一個(gè)重要工作便是將這種表示數(shù)字的字符串轉(zhuǎn)換成數(shù)字,這包含兩個(gè)方面的內(nèi)容識(shí)別數(shù)字串在文本中的位置;識(shí)別數(shù)字串表示的數(shù)字量。本系統(tǒng)研究了人機(jī)對(duì)話中出現(xiàn)的數(shù)字量文本的特征,并設(shè)計(jì)了文本轉(zhuǎn)化為數(shù)字的算法;該算法的設(shè)計(jì)模仿人的思維過(guò)程、人對(duì)數(shù)字的識(shí)別、記憶過(guò)程,在算法的復(fù)雜度(時(shí)間/空間)等各個(gè)方面都取得了較好的效果。主要特定于人機(jī)對(duì)話領(lǐng)域研究了數(shù)字量文本的特征以及文本到數(shù)字的識(shí)別算法。1.6數(shù)字量概念和語(yǔ)義識(shí)別1.6.1數(shù)字量的基本特征中文文本中出現(xiàn)的數(shù)字量基本上有以下幾種形式(1)通過(guò)純阿拉伯?dāng)?shù)字表示,比如"這棟樓高35層,,中的"35";(2)通過(guò)阿拉伯?dāng)?shù)字后帶一個(gè)表示階次的標(biāo)記,比如"305萬(wàn)人口"中的"305萬(wàn),,;(3)通過(guò)中文數(shù)字(或阿拉伯?dāng)?shù)字)后緊連的表示階次的標(biāo)記,如"二十五億三千五百六十二萬(wàn)四千零五十三",再如"三百零五萬(wàn)",以及"3千5百6十2"這種格式;(4)通過(guò)中文數(shù)字的的順次排列表示,比如"三五六一九"表示35619;(5)其他一些格式,比如"百分之五","5%",以及數(shù)學(xué)中經(jīng)常出現(xiàn)的指數(shù)表示形式。這幾種形式在中文文本中都是經(jīng)常出現(xiàn)的,基本上有幾下幾條規(guī)律'.通過(guò)連續(xù)的數(shù)字字符(阿拉伯?dāng)?shù)字或者中文數(shù)字字符)組成的字符串來(lái)表示,字符之間不帶階次字符;字符串結(jié)束時(shí),可以帶一個(gè)階次字符(如"億"、"萬(wàn)"等,為處理的方便,百分符號(hào)"%,,、千分符號(hào)"%。,,等也可以算作階次字符,下同)以修飾整個(gè)數(shù)字串,比如上面提及的(1)、(2)、(4);通過(guò)一個(gè)數(shù)字字符后緊跟一個(gè)階次字符組成的字符串表示,字符串結(jié)束時(shí),可以帶一個(gè)階次字符以修飾整個(gè)數(shù)字串,比如上面提及的(3);一個(gè)數(shù)字量中,數(shù)字字符或者全部使用阿拉伯?dāng)?shù)字字符,或者全部使用中文數(shù)字字符,一般不會(huì)兩者夾雜使用(比如,文本中很少出現(xiàn)如下的形式三5六1九);數(shù)字量不以階次字符開始("十"除外);1.6.2數(shù)字量文本位置的確定文本中數(shù)字串位置的確定就是找出數(shù)字串在文本中的起始位置以及結(jié)束位置,等價(jià)的結(jié)果是找出數(shù)字串的長(zhǎng)度以及其起始/結(jié)束位置。識(shí)別時(shí),一般從文本的首字符開始依次處理(或者逆向掃描,即從文本的最后一個(gè)字符開始向前掃描),同時(shí)記下每個(gè)字符在文本中的索引(偏移量,即位置信息),因此識(shí)別數(shù)字量文本位置的問(wèn)題轉(zhuǎn)化成測(cè)試當(dāng)前掃描的字符是否數(shù)字字符。中文文本中數(shù)字字符是有限的,比如"一"、"二"、"三"、"1"、"2"、"3",再比如表示階次的字符"十"、"百"、"千"、"萬(wàn)"、"億,,等,口語(yǔ)中和文本中經(jīng)常出現(xiàn)的另一個(gè)數(shù)字字符是"兩"(如"兩百三十五"),表示"2"。這些數(shù)字字符、階次字符組成集合,記作Nset:Nset={"—-""-""-""i""2,,"3,,"""""千",...}(式2-3)注意,Nset中包括全角和半角數(shù)字字符以及百分、千分符號(hào)等。這樣數(shù)字串位置的確定就很簡(jiǎn)單了,最簡(jiǎn)單的辦法是將當(dāng)前掃描字符依次與集合Nset的每一個(gè)元素比較,看是否相等,便可以測(cè)試出是否這些數(shù)字或階次字符中的一個(gè),算法很簡(jiǎn)單,但效率不高;采用HASH算法其中,函數(shù)ConvertWord用于判斷一個(gè)字符是否數(shù)字相關(guān)字符,如果否,則返回(DWORD)-l;否則,如果是數(shù)字字符,比如"1"、"三"將分別返回0x01、0x3;如果字符是表示階次的字符,比如"十","千",則返回其階次,并且將返回值的最高位設(shè)置為1,以示區(qū)別,如0x80000001、0x80000003(0x前綴表示16進(jìn)制數(shù))。注意到階次字符單獨(dú)出現(xiàn)時(shí)一般不表示具體的數(shù)字,或者不表示數(shù)字信息(如"億萬(wàn)觀眾"中的"億萬(wàn)"只表示觀眾很多,并非觀眾是一億或幾億,更非一億乘一萬(wàn);"十萬(wàn)火急"中的"十萬(wàn)","千鈞一發(fā)"中的"千"與"一",都不表示具體的數(shù)字信息),因此如果簡(jiǎn)單地把階次字符都轉(zhuǎn)換成數(shù)字串,那么,在這些情況下都要出錯(cuò)。處理這種情況的簡(jiǎn)單辦法是(1)將以階次字符開始的文本串不作為數(shù)字串處理,即數(shù)字串必須以數(shù)字字符開始,于是避免了許多錯(cuò)誤;當(dāng)然,漢語(yǔ)中的"十,,得作特別處理,口語(yǔ)和書面語(yǔ)中都經(jīng)常出現(xiàn)"十幾,,(比如,"十五的月亮十六圓");(2)成語(yǔ)、慣用語(yǔ)中的數(shù)字字符,比如成語(yǔ)"千鈞一發(fā),,中的"千,,和"一",成語(yǔ)"三下五除二"中的幾個(gè)數(shù)字字符,都不作為數(shù)字字符處理;(3)在掃描到一個(gè)可能是數(shù)字串的文本串時(shí),如果串后接量詞或者可數(shù)名詞,則,這樣的文本串可作為數(shù)字串處理;人在處理自然語(yǔ)言過(guò)程中遇到一些不明確的概念(也許沒(méi)有聽清楚,必須根據(jù)上下文處理)時(shí),也是根據(jù)當(dāng)時(shí)的上下文一一語(yǔ)境來(lái)確定的。比如,在讀到一個(gè)句子的開頭是"十萬(wàn)......."時(shí),并不知道它是否表示確定的數(shù)字,如果后面跟了"火急",那么就不是具體的數(shù)字了,但如果后面跟的是"個(gè)為什么"("十萬(wàn)個(gè)為什么,,),則基本上可以確定它表示的是具體的數(shù)字;這種方法仍有極少數(shù)例外。本發(fā)明實(shí)施例解決這個(gè)問(wèn)題時(shí),就堅(jiān)持了這兩個(gè)原則。時(shí)間、貨幣等數(shù)字相關(guān)量的識(shí)別按照前面的步驟,可以將中文文本中出現(xiàn)的數(shù)字字符串的位置識(shí)別出來(lái),并且轉(zhuǎn)化為具體的數(shù)字。然而文本中出現(xiàn)的數(shù)字量往往不僅僅是數(shù)字,而還有其它的一些信息比如時(shí)間量十三點(diǎn)四十二分,貨幣量六塊五毛,等等。處理中,這些量需要完整地識(shí)別出來(lái)(比如前面兩個(gè)需要完整識(shí)別為13:42、6.5元),當(dāng)然,數(shù)字串轉(zhuǎn)換為數(shù)字是其中第一個(gè)步驟。剩下的過(guò)程需要結(jié)合數(shù)字串、量詞等在句子中的位置來(lái)完成。而且在此過(guò)程中,需要結(jié)合中文的特點(diǎn)來(lái)進(jìn)行,這里基本上有三條原則中文中,數(shù)字串總是出現(xiàn)在相應(yīng)量詞的前面,而且與量詞是緊鄰的;同一類數(shù)量存在不同大小的單位(如元、角、分),而在中文中,總是大的單位在前面,小的單位在后面(如六元一角九分);如果同一數(shù)量使用了大小不同的多個(gè)量詞來(lái)表達(dá),則最后一個(gè)量詞可能省略(如六元一角九,省略最后的"分,,),這在漢語(yǔ)中是經(jīng)常出現(xiàn)的。這里以貨幣量的識(shí)別作為例子來(lái)說(shuō)明數(shù)字相關(guān)量的識(shí)別過(guò)程。(1)搜集貨幣量相關(guān)的單位首先需要按照單位大小人工搜集貨幣量的單位的常用表達(dá)形式(這些信息可以作為基本常識(shí)存放到系統(tǒng)知識(shí)庫(kù)中,使用的時(shí)候只需要從知識(shí)庫(kù)中調(diào)出來(lái)即可,從而這部分人工搜集過(guò)程是一次性的),并且將這些單位的大小比例也搜集起來(lái)并存放到知識(shí)庫(kù)中。這里搜集的結(jié)果是A,元、塊、圓;B,角、毛;C,分;并且A類單位大小是B類單位大小的10倍,而B類單位大小是C類單位大小的10倍。(2)計(jì)算過(guò)程計(jì)算過(guò)程依據(jù)前面講述的幾條原則來(lái)進(jìn)行,主要依據(jù)數(shù)字串、量詞等在文本中的位置來(lái)判斷一個(gè)數(shù)字相關(guān)量的開始和結(jié)束位置,并且依據(jù)知識(shí)庫(kù)中存放的單位大小關(guān)系來(lái)計(jì)算整個(gè)數(shù)字量的大小。在語(yǔ)義理解的整個(gè)過(guò)程中,智能分詞技術(shù)是最初的一個(gè)環(huán)節(jié),它將組成語(yǔ)句的核心詞提煉出來(lái)供語(yǔ)義分析模塊使用。在分詞的過(guò)程中,如何能夠恰當(dāng)?shù)靥峁┳銐虻脑~來(lái)供分析程序處理,并且過(guò)濾掉冗余的信息,這是后期語(yǔ)義分析的質(zhì)量和速度的重要前提。尤里卡的智能分詞避免了傳統(tǒng)分詞技術(shù)在拆分時(shí)產(chǎn)生的歧義組合。從而為語(yǔ)義理解的處理提供了良好的原始材料。同時(shí),在分詞的過(guò)程中,知識(shí)庫(kù)當(dāng)中的同義詞會(huì)被逐個(gè)匹配并同時(shí)提交給語(yǔ)義理解模塊使用,這樣處理過(guò)的句子,不僅提供了原始的句型,還同時(shí)搭載了語(yǔ)句的概念部分。步驟9:建立自然語(yǔ)言語(yǔ)意與計(jì)算機(jī)動(dòng)作之間的映射關(guān)系,具體是核心語(yǔ)意與計(jì)算機(jī)操作、操作數(shù)進(jìn)行綁定來(lái)實(shí)現(xiàn)。語(yǔ)意在計(jì)算機(jī)中的表示1、語(yǔ)意表達(dá)的是計(jì)算機(jī)的操作人機(jī)對(duì)話的目的是讓計(jì)算機(jī)執(zhí)行特定領(lǐng)域中的操作,那么人們表達(dá)的語(yǔ)意必然和計(jì)算機(jī)的操作相關(guān)。從而,語(yǔ)意能通過(guò)相應(yīng)的計(jì)算機(jī)操作來(lái)表示。計(jì)算機(jī)執(zhí)行的一次操作包括操作本身和操作的內(nèi)容,它們與話語(yǔ)中的核心語(yǔ)意和周邊語(yǔ)意分別對(duì)應(yīng)①核心概念表達(dá)核心語(yǔ)意,核心語(yǔ)意表達(dá)計(jì)算機(jī)要要執(zhí)行的操作;②周邊概念表達(dá)周邊語(yǔ)意,周邊語(yǔ)意表達(dá)計(jì)算機(jī)執(zhí)行操作的內(nèi)容。由于話語(yǔ)表達(dá)的是一個(gè)完整的語(yǔ)意,也就是計(jì)算機(jī)的一條操作,所以,語(yǔ)意通過(guò)操作本身以及操作的內(nèi)容來(lái)表示。2、計(jì)算機(jī)操作通過(guò)操作本身和操作內(nèi)容組成的有序序列來(lái)表示(操作數(shù))計(jì)算機(jī)執(zhí)行特定操作所需要的操作內(nèi)容的數(shù)目及類型稱為該操作的操作數(shù)。操作op的操作數(shù)記作PARAMop。按照操作的不同,操作內(nèi)容的數(shù)目以及類型都不同,且與特定操作關(guān)聯(lián)起來(lái)后,操作內(nèi)容之間的順序也至關(guān)重要。對(duì)應(yīng)到軟件實(shí)現(xiàn)中,一條操作對(duì)應(yīng)為軟件的一個(gè)模塊,計(jì)算機(jī)執(zhí)行一個(gè)操作就是調(diào)用該操作對(duì)應(yīng)的軟件模塊;操作數(shù)對(duì)應(yīng)軟件模塊所需要的參數(shù),軟件模塊的參數(shù)不同,計(jì)算機(jī)執(zhí)行后的結(jié)果將不同。軟件模塊的參數(shù)是有順序的,錯(cuò)誤的順序?qū)?dǎo)致軟件模塊不能執(zhí)行,或者執(zhí)行結(jié)果不對(duì)。從而,計(jì)算機(jī)的一條操作可作如下記錄ACTION={op,paraml,param2,…,paramn}其中,ACTION表示一條完整的操作,而op則是操作本身,paramk是第k個(gè)操作內(nèi)容。paraml,param2,…,paramn之間是有序的。3、通過(guò)核心語(yǔ)意與周邊語(yǔ)意組成的有序序列來(lái)表示完整語(yǔ)意人機(jī)對(duì)話中,由于語(yǔ)意表達(dá)的是計(jì)算機(jī)的操作,依據(jù)計(jì)算機(jī)操作的表示方法,可以通過(guò)核心語(yǔ)意與周邊語(yǔ)意組成的有序序列來(lái)表示話語(yǔ)的完整語(yǔ)意SEMANTICS={Core,pl,p2,…,pn}其中,SEMANTICS是話語(yǔ)的完整的語(yǔ)意;Core是話語(yǔ)中的核心語(yǔ)意,與計(jì)算機(jī)操作對(duì)應(yīng);pk是第k個(gè)周邊語(yǔ)意,與計(jì)算機(jī)操作的內(nèi)容對(duì)應(yīng)。不同的核心語(yǔ)意所需要的周邊語(yǔ)意數(shù)目不等。注意pl,p2,...,pn之間是有序的,不同的順序?qū)?dǎo)致不同的語(yǔ)意。4、操作數(shù)的搜集一條操作的執(zhí)行,不僅僅是數(shù)據(jù)在計(jì)算機(jī)中的表示,更重要的是計(jì)算機(jī)執(zhí)行操作,這包含兩個(gè)方面的內(nèi)容①計(jì)算機(jī)要執(zhí)行哪個(gè)操作;②計(jì)算機(jī)如何執(zhí)行這個(gè)操作。對(duì)于①,特定領(lǐng)域中的計(jì)算機(jī)應(yīng)用系統(tǒng)所能執(zhí)行的操作是有限的,記為。A=fe,2,…,o;vJ其中,d表示具體的領(lǐng)域,OPd是領(lǐng)域d中計(jì)算機(jī)所能執(zhí)行的所有操作的集合,opk(1^^Nd)是該領(lǐng)域中的一條具體的操作,Nd是領(lǐng)域d中計(jì)算機(jī)能執(zhí)行的操作的數(shù)目。在系統(tǒng)設(shè)計(jì)階段,設(shè)計(jì)人員能夠根據(jù)d的領(lǐng)域信息來(lái)分析得出這些操作,從而計(jì)算機(jī)在分析用戶自然語(yǔ)言命令時(shí),根據(jù)上面式子,將自然語(yǔ)言表達(dá)與計(jì)算機(jī)能執(zhí)行的某條操作(例如opn)對(duì)應(yīng)起來(lái);對(duì)于②,計(jì)算機(jī)需要在①的基礎(chǔ)上,根據(jù)自然語(yǔ)言所對(duì)應(yīng)的操作(如叩n),從自然語(yǔ)言中識(shí)別出該操作所需要的操作內(nèi)容(也就是識(shí)別出操作的所有操作數(shù)),在此基礎(chǔ)上,計(jì)算機(jī)才能執(zhí)行這個(gè)操作。每一個(gè)操作的操作數(shù)是有限的,它作為領(lǐng)域知識(shí)庫(kù)存放在計(jì)算機(jī)中。操作數(shù)的搜集一般由手工完成。期間需要注意到某些操作的操作內(nèi)容具有默認(rèn)值(DefaultValue),即用戶如果不提供這些內(nèi)容,則使用預(yù)先設(shè)定好的值來(lái)完成操作。如前面講述的文件操作領(lǐng)域中"打開"這個(gè)概念所表達(dá)的操作(opjpen),它需要兩個(gè)內(nèi)容,其一是待打開的文件名;其二是用于打開這個(gè)文件的軟件(也就是工具);其中第一個(gè)內(nèi)容是必須的(否則不知道打開哪個(gè)文件),而第二個(gè)內(nèi)容卻是可選的即,如果用戶指定了一個(gè)軟件來(lái)打開文件,則使用這個(gè)軟件打開;如果用戶沒(méi)有指定使用哪個(gè)軟件來(lái)打開文件,則,一方面,應(yīng)用系統(tǒng)可以設(shè)置一個(gè)默認(rèn)的軟件來(lái)打開文件;另一方面,如果應(yīng)用系統(tǒng)的平臺(tái)是Windows,則可以利用Windows系統(tǒng)的一個(gè)特點(diǎn)——也就是文件關(guān)聯(lián)技術(shù)——讓W(xué)indows選用一個(gè)最合適的軟件來(lái)打開這種文件(這是Windows的擴(kuò)展名與軟件綁定的技術(shù),比如一個(gè)文件的擴(kuò)展名為doc,則Windows知道啟動(dòng)MicrosoftWord軟件來(lái)打開它,這也是打開doc文件的最合適的軟件)。在技術(shù)實(shí)現(xiàn)上,可以調(diào)用WindowsAPI函數(shù)ShellExecute(Ex)函數(shù)來(lái)完成這個(gè)過(guò)程。操作內(nèi)容的類型和領(lǐng)域信息有關(guān),常用的類型有①普通文本(format_text)、②普通數(shù)字(format—number)、③日期(format一date)、④時(shí)間(format」ime)、貨幣(format—money)、⑥文件(format—file)、⑦禾呈序(format一program)等。從而操作op的操作數(shù)可以表示為其中,pk((Xk〈Nop)是一個(gè)操作內(nèi)容,表明需要的內(nèi)容以及類型;Nop是操作op的操作內(nèi)容數(shù)目。5、核心語(yǔ)意與計(jì)算機(jī)操作、操作數(shù)的綁定。在計(jì)算機(jī)中,目標(biāo)文本與其表達(dá)的概念都是以字符串形式存儲(chǔ)的,從而,從目標(biāo)文本中將它所表達(dá)的各個(gè)概念提取出來(lái)后,計(jì)算機(jī)所得到的仍然是字符串。因此,計(jì)算機(jī)將概念從目標(biāo)文本中提取出來(lái)后仍然不知道它們表達(dá)的具體語(yǔ)義(因?yàn)樗鼈內(nèi)匀皇亲址?。這里舉兩個(gè)簡(jiǎn)單的例子來(lái)說(shuō)明例日常遇見的幾個(gè)例子①請(qǐng)問(wèn)一^一等于幾?②請(qǐng)打開"自然語(yǔ)言理解講義,,這個(gè)文件。帶下劃線的這兩個(gè)概念在這兩個(gè)句子中分別起了關(guān)鍵的作用(相當(dāng)于謂詞)①"加"的語(yǔ)義是將前面一個(gè)數(shù)和后面一個(gè)數(shù)執(zhí)行"+"這個(gè)數(shù)學(xué)運(yùn)算,并返回其結(jié)果(結(jié)果是2);②"打開"的語(yǔ)義是讓計(jì)算機(jī)啟動(dòng)一個(gè)程序以讀取一個(gè)文件,并且將文件中包含的內(nèi)容和格式以可視化方式解釋出來(lái),顯示在屏幕上(具體啟動(dòng)哪個(gè)程序以及打開哪個(gè)文件,由句子提供的附加信息指明,有的信息可以使用默認(rèn)值,從而可能省略),這里待打開的文件是"自然語(yǔ)言理解講義"。然而目前大多數(shù)計(jì)算機(jī)卻不懂這么多!考慮計(jì)算機(jī)的存儲(chǔ)方式,例的①和②在計(jì)算機(jī)中都是以字符串存儲(chǔ),但它們到底代表什么涵義,該執(zhí)行什么操作,計(jì)算機(jī)是不知道的。雖然本發(fā)明實(shí)施例有了概念辭典,包含常用概念的定義,然而計(jì)算機(jī)在存儲(chǔ)這些概念以及它們的定義時(shí),依然需要字符串形式,也就是說(shuō),計(jì)算機(jī)要理解一個(gè)概念(設(shè)為Concept,在計(jì)算機(jī)中以字符串形式存儲(chǔ),相當(dāng)于理解這個(gè)字符串的語(yǔ)義),就必須理解它的定義(設(shè)為Define,在計(jì)算機(jī)中也以字符串形式存儲(chǔ),相當(dāng)于理解這個(gè)字符串的語(yǔ)義)。實(shí)現(xiàn)上,歸根結(jié)底,計(jì)算機(jī)需要理解一個(gè)字符串的語(yǔ)義。如圖8所示核心概念語(yǔ)義識(shí)別過(guò)程需要將核心概念與它對(duì)應(yīng)的軟件模塊聯(lián)系起來(lái)(也就是要建立自然語(yǔ)言語(yǔ)意與計(jì)算機(jī)動(dòng)作之間的映射關(guān)系)。因此先從商務(wù)領(lǐng)域信息中可以預(yù)先得知計(jì)算機(jī)需要執(zhí)行的操作,從而設(shè)計(jì)出相應(yīng)的軟件模塊。計(jì)算機(jī)操作通常通過(guò)一個(gè)計(jì)算機(jī)符號(hào)來(lái)表達(dá),這些符號(hào)在概念識(shí)別時(shí)需要與具體的概念聯(lián)系起來(lái),聯(lián)系的過(guò)程使用軟件"綁定"的方法來(lái)實(shí)現(xiàn),反映到計(jì)算機(jī)語(yǔ)言中,通過(guò)"結(jié)構(gòu)"來(lái)實(shí)現(xiàn)。表3是這個(gè)結(jié)構(gòu)表關(guān)鍵概念(字符串表示)對(duì)應(yīng)操作(op)對(duì)應(yīng)軟件模塊(module)表3表3關(guān)鍵概念、計(jì)算機(jī)操作、軟件模塊的綁定結(jié)構(gòu)。下面是文件操作領(lǐng)域的一個(gè)具體例子。例文件操作領(lǐng)域的幾個(gè)關(guān)鍵概念、操作以及對(duì)應(yīng)軟件模塊綁定結(jié)構(gòu)組織(l)計(jì)算機(jī)操作的定義(初步定義4個(gè),如下)opopen=打開文件op一closc=關(guān)l司文件op—edit=編輯文件op—print=打印文件OPSfile={op一open,op—close,op_edit,op_print}(2)設(shè)計(jì)出對(duì)應(yīng)的軟件模塊,如下module—open,module—close,module_edit,module—print(3)綁定結(jié)構(gòu)<table>tableseeoriginaldocumentpage31</column></row><table>操作數(shù)是和操作相關(guān)聯(lián)的,每一條操作的操作數(shù)不同,需要將操作數(shù)和對(duì)應(yīng)的操作聯(lián)系起來(lái);因此重新定義如下表5文件操作領(lǐng)域中幾個(gè)操作的綁定結(jié)構(gòu)(包含操作數(shù))<table>tableseeoriginaldocumentpage32</column></row><table>表5表5中,format—file,format—program等是前文講述的操作內(nèi)容類型。步驟10~11:建立好映射關(guān)系后,理解完整語(yǔ)意,系統(tǒng)采用句子模式方法和先驗(yàn)知識(shí)方法求得語(yǔ)意這二種方法結(jié)合起來(lái),來(lái)識(shí)別操作內(nèi)容。具體采用句子模式方法的過(guò)程如下首先搜集各個(gè)操作的各種句子模式,并將它們組織起來(lái)存放到知識(shí)庫(kù)中,并且使用跳字匹配有限狀態(tài)自動(dòng)機(jī)實(shí)現(xiàn)句子模式的識(shí)別,之后,按照該句子模式來(lái)識(shí)別命令文本中的操作內(nèi)容。這時(shí)AC機(jī)采用兩個(gè)關(guān)鍵算法(1)輸入時(shí),需要將跳字模式串拆分成普通模式串,然后加入到核心AC機(jī)中;(2)輸出時(shí),需要將輸出的普通模式串盡量組合成跳字模式串,組合的時(shí)候需要考慮輸出模式串的順序?;谙闰?yàn)知識(shí)方法求得語(yǔ)意的過(guò)程如下在自然語(yǔ)言命令文本中將核心概念識(shí)別出來(lái)后,從中可以查找出該核心概念對(duì)應(yīng)的操作,也可以查找出該操作需要的操作數(shù),以及對(duì)應(yīng)的軟件模塊。先驗(yàn)知識(shí)算法就是充分利用了操作內(nèi)容的格式這個(gè)信息,構(gòu)建了一個(gè)以所有的先驗(yàn)知識(shí)為模式串集合的AC機(jī),然后使用該AC機(jī)掃描命令文本,看是否有模式串輸出,如果有模式串輸出,則它就是識(shí)別出的先驗(yàn)知識(shí),否則,用戶沒(méi)有提供該信息。句子模式與語(yǔ)意首先,人工將商務(wù)領(lǐng)域中常用命令的語(yǔ)言形式抽象為句子模式,然后計(jì)算機(jī)開始分析用戶命令時(shí),試圖將用戶命令歸類到其中的一種句子模式,從而提取出其中的操作內(nèi)容。比如前面講述的op_open("打開文件,,)這個(gè)操作的常用句子模式有如下幾種A,打開+XXX(例句打開"數(shù)字地球"),如表6所示關(guān)鍵概念(操作,"打開")文件特征(XXX,"數(shù)字地球")表6<table>tableseeoriginaldocumentpage33</column></row><table>表7C,用+YYY+打開+XXX+這個(gè)文件(例句用Word打開'數(shù)字地球"這個(gè)文件),如表8所示<table>tableseeoriginaldocumentpage33</column></row><table>表8D,用+YYY+把+XXX+打開(例句用Word把"數(shù)字地球"打開),如表9所示<table>tableseeoriginaldocumentpage34</column></row><table>表9其中,XXX,YYY都是操作op—open的操作內(nèi)容,XXX表示待打開的文件,YYY表示用于打開這個(gè)文件的軟件(如果句子模式中缺少這個(gè)內(nèi)容,則使用默認(rèn)值)。例自然語(yǔ)言命令-"請(qǐng)打開'自然語(yǔ)言理解講義,這個(gè)文件";經(jīng)過(guò)句子模式匹配,發(fā)現(xiàn)它屬于A類型關(guān)鍵概念(操作,"打開")+文件特征("自然語(yǔ)言理解講義,,)從而可以從中識(shí)別出操作op—open("打開")的一個(gè)操作內(nèi)容用戶要打開的文件是"自然語(yǔ)言理解講義"(文件特征);另一個(gè)操作內(nèi)容(打開文件的軟件)在命令文本中未出現(xiàn),從而使用默認(rèn)值,即使用默認(rèn)的軟件(或者由Windows選擇一個(gè)軟件)來(lái)打開文件。本文中的算法并不改變AC機(jī)的內(nèi)部構(gòu)造和組配算法,而是以AC機(jī)作為算法的核心,在其外圍設(shè)計(jì)了一套算法,用于專門處理跳字匹配的情況,處理的思路包括兩個(gè)方面其一,將跳字串(句子模式)輸入到有限狀態(tài)自動(dòng)機(jī)中;其二,在有限狀態(tài)自動(dòng)機(jī)輸出后,將輸出的模式重新組織成跳字的串。在算法設(shè)計(jì)中,主要考慮了跳字模式中各個(gè)子模式的位置,并利用這種位置關(guān)系來(lái)將核心有限狀態(tài)自動(dòng)機(jī)的輸出重新組織,并輸出最終的調(diào)用者。假設(shè)一個(gè)跳字串A由3個(gè)子串組成(形式為Al.A2.A3),則在構(gòu)建AC機(jī)之前,需要將A1、A2、A3都作為模式串分別加入到核心AC機(jī)中,然后構(gòu)建核心AC機(jī),在對(duì)目標(biāo)文本的組配時(shí)候,如果核心AC機(jī)依次輸出了A1、A2、A3這3個(gè)模式串(位置上不一定緊鄰,然而輸出順序是至關(guān)重要的),則外圍的軟件重新將這3個(gè)模式串組合成跳字串輸出。這種結(jié)構(gòu)關(guān)系如圖9所示。在組配過(guò)程中,可能存在單個(gè)的A1、A2、A3模式串,此時(shí)它們將被該跳字AC機(jī)直接處理掉。同時(shí)對(duì)于核心AC機(jī)而言,如果某個(gè)模式串p被加入n次(不管p是普通串還是跳字串的子串),那么若目標(biāo)文本中出現(xiàn)了p這個(gè)串,則p在同一個(gè)偏移量將輸出n次,這也是這種結(jié)構(gòu)的跳字匹配有限狀態(tài)自動(dòng)機(jī)能夠正常工作的基本原則之一。按照前面的設(shè)計(jì)思路,SW-AC的兩個(gè)關(guān)鍵算法便是(l)輸入時(shí),需要將跳字模式串拆分成普通模式串,然后加入到核心AC機(jī)中;(2)輸出時(shí),需要將輸出的普通模式串盡量組合成跳字模式串,組合的時(shí)候需要考慮輸出模式串的順序。這樣,使用跳字匹配有限狀態(tài)自動(dòng)機(jī)就可以識(shí)別出句子模式,在識(shí)別出句子模式之后,就能夠按照前面講述的方法得到句子的語(yǔ)意。用先驗(yàn)知識(shí)求得語(yǔ)意除了基于句子模式實(shí)現(xiàn)自然語(yǔ)言文本識(shí)別外,本發(fā)明還采用了一些新的處理方法,而不局限于句子模式。可以利用每一個(gè)操作的先驗(yàn)知識(shí)來(lái)設(shè)計(jì)算法。在簡(jiǎn)化句子模式約束情況下,用戶表達(dá)命令將更加自然,計(jì)算機(jī)的實(shí)現(xiàn)算法也將更加靈活,此時(shí),需要充分利用各種先驗(yàn)知識(shí),比如操作內(nèi)容的數(shù)目、類型等。在自然語(yǔ)言命令文本中將關(guān)鍵概念識(shí)別出來(lái)后,可以查找出該關(guān)鍵概念對(duì)應(yīng)的操作,也可以查找出該操作需要的操作數(shù),以及對(duì)應(yīng)的軟件模塊。從而可以充分利用這些先驗(yàn)知識(shí),設(shè)計(jì)一定的算法,從命令文本中識(shí)別出操作數(shù)。法。一個(gè)操作有多個(gè)操作內(nèi)容,每一個(gè)有不同的類型,它們?cè)谧匀徽Z(yǔ)言中的表現(xiàn)形式也不盡相同,從而可以按照所需要的操作內(nèi)容類型,分別從命令文本中識(shí)別出這些內(nèi)容,比如文本類型(format一text)與日期類型(format_date)、時(shí)間類型(format」ime)都不相同。不同類型的操作內(nèi)容識(shí)別方法各異,在設(shè)計(jì)的時(shí)候需要充分考慮不同類型內(nèi)容的識(shí)別方法,識(shí)別流程如下算法依據(jù)先驗(yàn)知識(shí)(操作內(nèi)容類型不同)識(shí)別操作數(shù)流程(1)procedureParamRecognize(2)BEGIN(3)1:=0(4)FORI=1toOP.Number〃OP.Number就是操作OP的操作數(shù)數(shù)目(5)BEGIN(6)依據(jù)第I個(gè)操作內(nèi)容的類型,識(shí)別出第I個(gè)操作內(nèi)容(7)END(8)NEXTI(9)END依據(jù)類型識(shí)別操作內(nèi)容的方法能工作的一個(gè)基本假設(shè)就是每個(gè)操作的操作內(nèi)容的類型不同。也就是說(shuō),針對(duì)一條特定的操作OP,式中,各個(gè)操作內(nèi)容A,A'…,氣的類型都不相同,或者相同者很少。這個(gè)假設(shè)在很多應(yīng)用領(lǐng)域中是合理的,比如前面講述的"文件操作"領(lǐng)域中,每個(gè)操作所需要的操作數(shù)數(shù)目均為1或者2個(gè),而且對(duì)每一條操作,它的操作內(nèi)容類型有兩種①文件(format_file)、②程序(format_program)。算法中,試圖從輸入文本中識(shí)別出format_file、format—program格式的操作內(nèi)容,其中format—file格式的操作內(nèi)容是必須的,而format一program格式的操作內(nèi)容在每一條操作中都有默認(rèn)值,因此如果沒(méi)有成功識(shí)別出format一program格式的操作內(nèi)容,則可以使用默認(rèn)值。對(duì)于format一file格式的操作內(nèi)容識(shí)別,本發(fā)明實(shí)施例采取了近似匹配的方法實(shí)現(xiàn),將用戶輸入的命令文本與計(jì)算機(jī)本地存儲(chǔ)器中存儲(chǔ)的文件名進(jìn)行近似匹配,選擇一個(gè)與命令文本距離最小的文件返回即可(在后文中講述到,這個(gè)計(jì)算過(guò)程由"實(shí)例識(shí)別算法,,實(shí)現(xiàn))。一個(gè)更典型的例子是將自然語(yǔ)言理解應(yīng)用于股票交易,其中有"買"、"賣,,等操作,它們都需要3個(gè)操作內(nèi)容(這些都是股票領(lǐng)域的先驗(yàn)知識(shí))①股票名、②預(yù)期交易的價(jià)格、③交易的股數(shù),每一種操作內(nèi)容的格式都不同,分別為①"股票名"(format—text)、②貨幣價(jià)格(format_money)、以及③數(shù)字量(format—number),分析輸入文本時(shí),本發(fā)明實(shí)施例盡量從命令文本中識(shí)別這3種格式的操作內(nèi)容①股票名是個(gè)字符串,②預(yù)期交易價(jià)格是一個(gè)表示價(jià)格的數(shù)字量(可能是小數(shù),并且?guī)в性?、角、分等單?,而③股數(shù)則是一個(gè)整數(shù),一般以"手"作為單位(1手就是100股)。這三種格式的操作內(nèi)容識(shí)別都比較簡(jiǎn)單,算法流程如下算法股票交易中的操作內(nèi)容識(shí)別(1)procedureParamRecognizelnStock(2)BEGIN(3)FLOATprice:=按照貨幣識(shí)別算法,識(shí)別出價(jià)格(4)IF(Islnvalid(price》〃如果價(jià)格無(wú)效(5)BEGIN(6)MessageBox("請(qǐng)?zhí)峁┙灰坠﹥r(jià)格。")(7)RETURN(8)END(9)INTEGERcount:=按照數(shù)字識(shí)別算法,識(shí)別出股票交易數(shù)目(10)IF(IsI證lid(count))(11)BEGIN(12)MessageBox("請(qǐng)?zhí)峁┙灰讛?shù)量。")(13)RETURN(14)END(15)STRINGname:=按照股票名識(shí)別算法,識(shí)別出股票名(16)IF(IsInvalid(name))(17)BEGIN(18)MessageBox("請(qǐng)?zhí)峁┕善泵?。,?(19)RETURN(20)END(21)END步驟12:計(jì)算機(jī)操作通過(guò)操作本身和操作內(nèi)容組成的有序序列來(lái)表示,通過(guò)核心語(yǔ)意與周邊語(yǔ)意組成的有序序列來(lái)表示完整語(yǔ)意,多個(gè)概念組織成完整的語(yǔ)意,計(jì)算機(jī)理解完整語(yǔ)意并得出操作。大環(huán)境語(yǔ)境與小環(huán)境語(yǔ)境語(yǔ)境(Context),也叫上下文(也有人按照其英文形式翻譯為"文脈"),指的是人們使用自然語(yǔ)言交流時(shí)和交流有關(guān)的各種因素,即"環(huán)境"。認(rèn)為它包括兩個(gè)方面大環(huán)境和小環(huán)境。大環(huán)境指的是交流目的的預(yù)設(shè)、交流所在的領(lǐng)域、交流的話題等與整個(gè)交流過(guò)程密切相關(guān)的因素,這些因素是整個(gè)交流過(guò)程所處的環(huán)境,從而影響整個(gè)交流過(guò)程,也影響交流過(guò)程中的許多細(xì)節(jié),比如表達(dá)方式。小環(huán)境是指交流中的每一句話所處的語(yǔ)言環(huán)境,包括前文、后文、表達(dá)方式、表達(dá)的語(yǔ)義、語(yǔ)調(diào)等多方面的因素,因此小環(huán)境也就是人們交流的一部分內(nèi)容,它們已經(jīng)由交流雙方通過(guò)各種方式表達(dá)出來(lái)了。對(duì)于聽者,它有利于理解每一話語(yǔ)的確切語(yǔ)義,對(duì)于話者,它有利于交流的組織(表達(dá)方式等),這里,聽者和話者是相互的。對(duì)話過(guò)程中,小環(huán)境語(yǔ)境只是指那些交流雙方已經(jīng)表達(dá)出來(lái)的內(nèi)容,即"上文";文章方式的交流中,除了"上文,,外,每一話語(yǔ)的小環(huán)境語(yǔ)境還包括該文章中處于該話語(yǔ)后面的內(nèi)容,即"下文"。大環(huán)境將影響交流過(guò)程中雙方語(yǔ)義的表達(dá)、表達(dá)方式等,也影響交流的主題。小環(huán)境有利于聽者確切理解每一話語(yǔ)的語(yǔ)義,而且能消除由于話者的獨(dú)特表達(dá)方式等可能引起的誤解,從而達(dá)到歧義消解的目的,使得交流能順利進(jìn)行下去。由于語(yǔ)境的作用,在交流中,一些語(yǔ)言形式可能表達(dá)了它本身不存在的語(yǔ)義(或者說(shuō)通常情況下極少使用的語(yǔ)義),這在日常的交流中經(jīng)常遇到比如"555",它本身只是表達(dá)了一個(gè)數(shù)(就是介于554、556之間的那個(gè)自然數(shù)),由于一種香煙的牌子取名為"555",而且這種牌子的香煙也很出名,從而"555"在某些語(yǔ)境下指的就是這種香煙(如"555抽起來(lái)4艮香");另一方面,在漢語(yǔ)中發(fā)音中,"555"與"鳴鳴鳴,,諧音,通過(guò)鍵盤輸入起來(lái)比后者方便快捷,從而為了適應(yīng)網(wǎng)絡(luò)時(shí)代快速簡(jiǎn)潔的特點(diǎn),很多人在網(wǎng)絡(luò)上發(fā)布"鳴鳴鳴"的信息時(shí)就直接使用"555"來(lái)代替了(尤其是在BBS上),使得"555"又具有了這種語(yǔ)義,而且尤其使用于網(wǎng)絡(luò)上(如果在網(wǎng)絡(luò)上看見它單獨(dú)出現(xiàn),大多情況下都會(huì)認(rèn)為它其實(shí)就是"鳴嗚鳴"),用多了,人們?cè)诎l(fā)電子郵件、甚至寫信時(shí),也會(huì)使用"555"的這種語(yǔ)義,而對(duì)方也能明白這種意思。類似地,"911"也是一個(gè)很好的例子。事實(shí)上,大環(huán)境和小環(huán)境這兩種語(yǔ)境也沒(méi)有特別明確的界限,只是為了計(jì)算機(jī)處理的方便,本發(fā)明實(shí)施例將這兩種情況做了區(qū)分。4.1語(yǔ)境的獲取小環(huán)境語(yǔ)境本身就是交流的一部分,因此需要直接從交流的內(nèi)容中獲取,該過(guò)程需要計(jì)算機(jī)自動(dòng)實(shí)現(xiàn)。在實(shí)時(shí)對(duì)話中,它包含每一句話以及在它之前的所有對(duì)話內(nèi)容;在文章形式的交流中,則包含了整篇文章的內(nèi)容。這里需要重點(diǎn)考慮的是這些內(nèi)容的語(yǔ)義及其表達(dá)方式,尤其是語(yǔ)義,它對(duì)于使用語(yǔ)境實(shí)現(xiàn)語(yǔ)義排歧很有幫助。實(shí)現(xiàn)時(shí),可以將語(yǔ)義分析的各個(gè)層次的結(jié)果都作為語(yǔ)境來(lái)使用,語(yǔ)言表達(dá)形式也是語(yǔ)境的一部分。同時(shí)注意包含盡可能多的信息,比如對(duì)一篇文章,作者、標(biāo)題、摘要、關(guān)鍵詞、正文、參考文獻(xiàn),甚至文章發(fā)表的時(shí)間都可以作為語(yǔ)境來(lái)處理,也就是盡可能多地獲取各種信息。對(duì)于面對(duì)面的交流過(guò)程(口語(yǔ)交流),則除了語(yǔ)義外,話者的表達(dá)形式、語(yǔ)調(diào)、語(yǔ)速、語(yǔ)態(tài)、省略等信息都是很重要的。由于大環(huán)境語(yǔ)境本身的特點(diǎn),它可以提前處理好,并作為知識(shí)庫(kù)存儲(chǔ)起來(lái)(這部分工作可以計(jì)算機(jī)自動(dòng)實(shí)現(xiàn)或者人工搜集并建庫(kù))。如領(lǐng)域信息就是大環(huán)境語(yǔ)境的一部分,可以預(yù)先處理。實(shí)際的例子中,如用語(yǔ)音來(lái)控制自動(dòng)摘要的應(yīng)用系統(tǒng),可以提前搜集以下方面的信息待摘要的文檔所存儲(chǔ)的位置,摘要的默認(rèn)長(zhǎng)度(可以是百分?jǐn)?shù)或者具體值,或者根據(jù)原文內(nèi)容來(lái)確定),做摘要時(shí)可能的偏重設(shè)置,發(fā)出摘要命令的常用表達(dá)形式,某些習(xí)慣用語(yǔ)、簡(jiǎn)稱,模糊概念(比如,最新、最近)等等。有些信息使用人工搜集并建庫(kù)可能操作簡(jiǎn)單一些。有些系統(tǒng)是為特定領(lǐng)域設(shè)計(jì)的,只能在特定領(lǐng)域中工作。此時(shí),大環(huán)境中需要包含的一個(gè)重要內(nèi)容就是該領(lǐng)域的基本信息,比如常用語(yǔ)、簡(jiǎn)稱,表達(dá)形式,某些詞語(yǔ)在該領(lǐng)域中所具有的語(yǔ)義等,這些信息由人工搜集起來(lái)比較麻煩,而且不夠完善,此時(shí)可以由計(jì)算機(jī)自動(dòng)搜集這些信息(也就是學(xué)習(xí)),設(shè)計(jì)一種較好的學(xué)習(xí)算法,然后將該領(lǐng)域中大量典型的文章輸入計(jì)算機(jī)并作為例子來(lái)學(xué)習(xí),從而可以自動(dòng)搜集領(lǐng)域信息,而且學(xué)習(xí)結(jié)果可以逐漸積累,這樣省去了不少人工的工作,也不容易遺漏[93。4.2語(yǔ)境的表示語(yǔ)境的表示要以方便計(jì)算機(jī)使用為前提,并盡量便于人們閱讀。首先處理那些最常用、最需要的語(yǔ)境知識(shí)。這里,本發(fā)明仍然將語(yǔ)境分為大環(huán)境和小環(huán)境兩個(gè)方面來(lái)處理。1,大環(huán)境語(yǔ)境表示大環(huán)境語(yǔ)境主要包括領(lǐng)域知識(shí)、領(lǐng)域特色、交流的主題等,針對(duì)各種知識(shí)本發(fā)明實(shí)施例采取了不同方法來(lái)表示,而最主要的有兩種①使用"表,,存放領(lǐng)域中的特定術(shù)語(yǔ)的語(yǔ)義以及相關(guān)的知識(shí)[100[129],比如在計(jì)算機(jī)領(lǐng)域中,"病毒"、"網(wǎng)"、"面向?qū)ο?、"語(yǔ)言"等都具有特定的涵義,在別的領(lǐng)域中,它們可能表示別的語(yǔ)義,表示如表10所示領(lǐng)域中術(shù)語(yǔ)知識(shí)使用"表,,方式表達(dá)(以計(jì)算機(jī)應(yīng)用領(lǐng)域?yàn)槔?<table>tableseeoriginaldocumentpage41</column></row><table>目前網(wǎng)絡(luò)上流行的各種簡(jiǎn)寫、諧音等術(shù)語(yǔ)也可以組織成"表"的格式,以便于擴(kuò)充、修改、刪除,表的左列存放"術(shù)語(yǔ)"(如"555"),右列則存放網(wǎng)絡(luò)領(lǐng)域中該術(shù)語(yǔ)的涵義(如"鳴嗚鳴,痛苦的樣子,,)。為處理方便,表的左列經(jīng)過(guò)排序(Sort)處理,這樣查詢時(shí)采用二分查找算法能大大縮短查找時(shí)間,表的右列也要跟著左列重新排序,以保證和左列的對(duì)應(yīng)關(guān)系不變。②使用"規(guī)則,,表示表示具有推理性質(zhì)的語(yǔ)境知識(shí),這些推理限定于交流所處的領(lǐng)域。如關(guān)于導(dǎo)師與同學(xué)討論畢業(yè)論文的的例子中,一些大環(huán)境知識(shí)就使用"規(guī)則"的方式表示規(guī)則(10):時(shí)間緊、論文大部分宋完成交流主題偏重于抓緊論文工作等。規(guī)則(11):時(shí)間寬、論文大部W完成交流主題偏重于布置新課題等。2,小環(huán)境語(yǔ)境表示小環(huán)境語(yǔ)境主要處理的是交流的主題、話語(yǔ)語(yǔ)義、語(yǔ)言表達(dá)形式等,本系統(tǒng)采用的方式是直接將話語(yǔ)理解結(jié)果(即語(yǔ)義)作為數(shù)據(jù)結(jié)構(gòu)保存下來(lái),并從話語(yǔ)交流中提取出交流的主題。實(shí)時(shí)對(duì)話系統(tǒng)中只存在上文,主要處理的是上文中的交際話語(yǔ)以及語(yǔ)義、語(yǔ)言形式,以及由此執(zhí)行的操作和操作結(jié)果,采用框架的表示方式。如下是"自動(dòng)摘要系統(tǒng)實(shí)現(xiàn)"中兩條已執(zhí)行的用戶命令的框架表示,參見圖10所示4.3語(yǔ)境的使用計(jì)算機(jī)也可以仿照人的這些處理方式來(lái)處理。在本發(fā)明實(shí)施例的系統(tǒng)中,主要使用了語(yǔ)境信息來(lái)完成以下工作1,概念組配概念組配時(shí),用來(lái)組配出合適的概念表達(dá)形式,尤其是在組配概念形式時(shí),按照當(dāng)前語(yǔ)境信息來(lái)找出合適的概念形式組配,比如"研究生命"中的組配存在兩種基本形式,一種是"研究生l命",一種是"研究|生命",這里初步采用統(tǒng)計(jì)原文中它們出現(xiàn)的頻次來(lái)選擇。2,語(yǔ)義排歧這里充分利用了大環(huán)境語(yǔ)境,尤其是其中的領(lǐng)域知識(shí),用以對(duì)某些存在歧義的語(yǔ)言形式確定其語(yǔ)義,選擇和特定領(lǐng)域更相近的語(yǔ)義。3,從語(yǔ)境中提取信息這主要是針對(duì)對(duì)話過(guò)程。漢語(yǔ)中經(jīng)常存在省略成分,而它們一般能從語(yǔ)境信息中獲得,如前面講述的"自動(dòng)摘要系統(tǒng)實(shí)現(xiàn)"命令執(zhí)行的例子,用戶首先發(fā)出的命令是"請(qǐng)打開'自然語(yǔ)言理解講義,這個(gè)文件并做200字摘要",其中包含了足夠的操作內(nèi)容信息(執(zhí)行系統(tǒng)使用默認(rèn)值上海交大中英文自動(dòng)摘要系統(tǒng)),而后面一條命令"太短了,請(qǐng)?jiān)黾?00字"中,則省略了一些成分待摘要的文章,從語(yǔ)境中知道它依然是剛完成摘要的那篇文章,即"自然語(yǔ)言理解講義";執(zhí)行系統(tǒng)也省略了,這里也應(yīng)該是剛才使用的自動(dòng)摘要執(zhí)行系統(tǒng),即"上海交大中英文自動(dòng)摘要系統(tǒng)"。步驟13~14:按操作不同,從命令文本中識(shí)別操作內(nèi)容,定位內(nèi)容所指資源,資源定位有兩個(gè)內(nèi)容(1)確定文件在哪個(gè)目錄下;(2)確定文件的文件名是什么。主要就是遍歷目錄樹并匹配文件名的過(guò)程。通過(guò)算法實(shí)現(xiàn)。具體過(guò)程是使用有限狀態(tài)自動(dòng)機(jī)實(shí)現(xiàn)名稱中關(guān)鍵詞的提取,將關(guān)鍵詞詞典作為模式串集合,輸入到最長(zhǎng)匹配有限狀態(tài)自動(dòng)機(jī)中,然后使用有限狀態(tài)自動(dòng)機(jī)來(lái)實(shí)現(xiàn)"按需提取"將各個(gè)資源的各個(gè)屬性值都以模式串的形式加入到有限狀態(tài)自動(dòng)機(jī)中,然后構(gòu)建自動(dòng)機(jī),并用它掃描命令文本,則自動(dòng)機(jī)將輸出命令串中出現(xiàn)的資源屬性值。通過(guò)屬性值可以定位到相應(yīng)的資源。計(jì)算機(jī)執(zhí)行操作時(shí)的資源定位針對(duì)操作內(nèi)容的類型不同,需要不同的處理方法數(shù)值型(format—number)、日期(format一date)、時(shí)間(formattime)等類型的內(nèi)容只要識(shí)別出來(lái)就好了,而文件以及程序類型的內(nèi)容則需要在計(jì)算機(jī)中定位相應(yīng)的文件、程序,并調(diào)用它們;從這種意義上講,也可以將操作內(nèi)容分為直接型操作內(nèi)容(簡(jiǎn)稱為直接內(nèi)容)和間接型操作內(nèi)容(簡(jiǎn)稱為間接內(nèi)容)。這里,將與操作相關(guān)的數(shù)據(jù)統(tǒng)稱為"資源",間接內(nèi)容的定位過(guò)程稱為"資源定位"。直接內(nèi)容和間接內(nèi)容處理過(guò)程見圖11所示。圖中虛線箭頭指的是實(shí)線箭頭處所傳遞的內(nèi)容。為表述的方便,下文稱操作內(nèi)容所指向的資源為該操作內(nèi)容的資源,比如一個(gè)文件名所對(duì)應(yīng)的文件稱為該文件名的資源。間接內(nèi)容依據(jù)類型不同,所指資源位置也不同(可能是數(shù)據(jù)庫(kù)中某一數(shù)據(jù),或者文件系統(tǒng)中的文件或某個(gè)遠(yuǎn)程資源,如網(wǎng)絡(luò)資源,等),相應(yīng)的定位方法也不同(數(shù)據(jù)庫(kù)中資源要求打開數(shù)據(jù)庫(kù)并取得數(shù)據(jù);網(wǎng)絡(luò)上的資源需要到網(wǎng)絡(luò)上去搜索,等等)。這里講述本文中使用的本地文件系統(tǒng)中定位文件資源的方法,以及資源定位算法的設(shè)計(jì)。5.1資源搜索假設(shè)間接內(nèi)容所指資源是文件,此時(shí)資源定位有兩個(gè)內(nèi)容(l)確定文件在哪個(gè)目錄下;(2)確定文件的文件名是什么。計(jì)算機(jī)中,文件系統(tǒng)一般是按目錄形式組織的,而且目前流行的目錄采用樹形結(jié)構(gòu),樹的根結(jié)點(diǎn)即是文件系統(tǒng)的根目錄,樹的每一結(jié)點(diǎn)都是目錄,而且目錄下可以存放一定數(shù)目的文件,圖12是一典型的文件系統(tǒng)結(jié)構(gòu)圖。從而,定位文件的過(guò)程就是遍歷目錄樹并匹配文件名的過(guò)程,遍歷可以用隊(duì)列來(lái)實(shí)現(xiàn)。5.2資源庫(kù)前面講述了使用資源搜索的方法來(lái)定位間接內(nèi)容的資源,并以文件資源為例子,然而它有兩個(gè)明顯的不足(1)運(yùn)算速度慢資源定位需要在自然語(yǔ)言命令發(fā)出后在本地計(jì)算機(jī)或遠(yuǎn)程網(wǎng)絡(luò)上搜索,如果本地計(jì)算機(jī)中包含的各類資源較少,那么響應(yīng)速度可以滿足需要,然而如果本地計(jì)算機(jī)中包含的各種資源數(shù)量很大(比如文件系統(tǒng)中的文件多),則必然導(dǎo)致搜索速度降低,從而滿足不了要求;遠(yuǎn)程網(wǎng)絡(luò)搜索涉及到網(wǎng)絡(luò)等多個(gè)環(huán)節(jié),速度將更低;這里顯示的問(wèn)題是沒(méi)有對(duì)資源進(jìn)行預(yù)處理;(2)只能搜索簡(jiǎn)單的資源特性顯而易見,對(duì)資源直接表現(xiàn)出來(lái)的、易得的特性,搜索比較簡(jiǎn)單快捷,對(duì)那些復(fù)雜的、需經(jīng)過(guò)一定處理的特性,則搜索中必然存在大量運(yùn)算,大大降低了響應(yīng)速度,比如文件系統(tǒng)中的文件檢索,文件名是其表現(xiàn)出來(lái)的特性,搜索時(shí)算法較簡(jiǎn)單,然而如果搜索的判斷條件需要依據(jù)文件的作者、關(guān)鍵詞、文件的標(biāo)題、摘要、主題詞等較為復(fù)雜的特性,必然涉及對(duì)文件內(nèi)容的相應(yīng)處理,從而減慢響應(yīng)速度。對(duì)于(l),由于處理前未對(duì)各類資源進(jìn)行分類,導(dǎo)致了許多非相關(guān)資源上的搜索時(shí)間浪費(fèi),比如說(shuō),文本文件搜索,其中要搜索的文件并非程序文件、二進(jìn)制可執(zhí)行文件,如果能將搜索過(guò)程限定于文本文檔類,即可節(jié)省大量時(shí)間,對(duì)于同一類型的資源,如果能進(jìn)行排序或索引處理,則能顯著提高處理速度;對(duì)于(2),復(fù)雜特性需要的處理大都涉及到智能處理,由于目前計(jì)算機(jī)的智能水平仍然比較低下,因此由計(jì)算機(jī)在搜索過(guò)程中進(jìn)行處理必然花費(fèi)大量時(shí)間并且導(dǎo)致重復(fù)的工作(每次搜索都需要重復(fù)這些工作),如果這些智能處理能在搜索過(guò)程之前完成,則能節(jié)省大量的搜索時(shí)間。另外,資源的特性一般保持不變,如文檔的作者、文檔創(chuàng)建時(shí)間、關(guān)鍵詞等,因此,可以在使用前將資源的這些特性通過(guò)人工(或計(jì)算機(jī))處理好,搜索時(shí)直接調(diào)用即可,這樣就節(jié)省了大量的搜索處理中的工作,從而提高了響應(yīng)速度,同時(shí)又能處理資源的復(fù)雜特性。綜合(1)和(2)的較好解決方法是將資源建庫(kù),稱為資源庫(kù)。一方面,在建庫(kù)過(guò)程中,可以只處理感興趣的資源類型,對(duì)于其他資源,可以不存放到庫(kù)中(不同類型的資源也可以放入到不同的庫(kù)中),比如前面提到的文件,可以只將文字文檔處理到庫(kù)中,別的文件(如程序文件)則不作處理,這樣客觀上起到了資源分類的目的;另一方面,可以將資源的簡(jiǎn)單特性和復(fù)雜特性都預(yù)先處理好(可人工處理或使用計(jì)算機(jī)自動(dòng)處理或兩方面結(jié)合),存放到庫(kù)中,這樣搜索時(shí)可直接調(diào)用庫(kù)中的資源特性。而且,針對(duì)資源的特性,可以對(duì)庫(kù)中的資源進(jìn)行排序、索引等處理,從而提高計(jì)算機(jī)定位資源的速度。這里舉一個(gè)庫(kù)格式的例子,參見表n所示,文本文檔建庫(kù)結(jié)構(gòu)實(shí)例。該庫(kù)的結(jié)構(gòu)可用于文字文檔處理方面的應(yīng)用系統(tǒng)。<table>tableseeoriginaldocumentpage45</column></row><table>表11建庫(kù)的另一好處是可以對(duì)系統(tǒng)需要的資源進(jìn)行內(nèi)部分類(比如對(duì)于文字文檔,可以指明該文檔所屬的領(lǐng)域,如新聞、科技、散文等),這樣方便于系統(tǒng)處理。使用資源建庫(kù)方式帶來(lái)的一部分工作便是資源庫(kù)的維護(hù),主要是增、刪操作,由于資源的許多特性是不變的,因此可以將庫(kù)預(yù)先處理好,這個(gè)過(guò)程可以人工或計(jì)算機(jī)完成。5.3資源定位算法資源定位算法,是計(jì)算某個(gè)資源是否用戶所指的資源,屬于相對(duì)微觀的操作。一個(gè)資源有多方面的屬性,每個(gè)屬性值就是資源在該屬性方向上投影,人們?cè)谑褂米匀徽Z(yǔ)言來(lái)指定資源時(shí),總是通過(guò)指定資源的屬性值來(lái)實(shí)現(xiàn),且一般只指定資源的部分屬性值,而不是全部。從而資源定位時(shí),需務(wù)農(nóng)據(jù)資源的部分屬性值來(lái)識(shí)別資源。資源識(shí)別的過(guò)程就是依據(jù)資源的屬性來(lái)識(shí)別資源的過(guò)程,實(shí)現(xiàn)此功能的算法模塊,稱之為資源定位器。典型的資源如文檔,它具有文件名、路徑、標(biāo)題、作者、時(shí)間等屬性,如圖13所示,人們?cè)谥阜Q一個(gè)文檔資源時(shí),經(jīng)常使用它的標(biāo)題、作者、時(shí)間等屬性值,如"打開數(shù)字地球這篇文檔,,中就使用了標(biāo)題屬性值。資源及其屬性的兩條基本原則是(1)同一類型的不同資源,它們同一屬性的屬性值可以相同(然而任意兩個(gè)資源的所有屬性值不可能完全相同,否則就是同一資源)。如用戶指定了一個(gè)屬性值,則與之相關(guān)的資源都可能是用戶所指定的資源。(2)屬性之間不考慮順序,這是很顯然的。用戶在通過(guò)屬性來(lái)指定資源時(shí),一般也不考慮屬性之間的順序。曰常生活中,有些資源的名稱(這里,名稱也看作資源的特性之一,為名稱屬性)太長(zhǎng),不容易記憶,人們往往只記住了名稱的一部分字/詞,也只好使用這部分名稱來(lái)指定資源。這種情況下,人們記住的往往是名稱中的關(guān)鍵詞。如命令"把那篇數(shù)字什么的文檔給我,,中,用戶忘記了該文檔的全名,只記得其中包含了"數(shù)字"這個(gè)詞,且它很可能位于名稱的前面,于是使用"數(shù)字什么的"來(lái)指稱該文檔資源。此時(shí),職員將到文檔庫(kù)中尋找,當(dāng)他發(fā)現(xiàn)①"數(shù)字地球"文檔時(shí),顯然符合要求,因此被提取出來(lái),接著發(fā)現(xiàn)②"數(shù)字生活"文檔也符合要求,再次他發(fā)現(xiàn)③"奇怪的數(shù)字"文檔時(shí),也與命令相關(guān),只是相關(guān)度小些,于是他將提交這三篇文檔,并把③置于最后。細(xì)化一下,如果將資源的名稱看成一個(gè)對(duì)象(即名稱對(duì)象),而將該名稱中的關(guān)鍵詞(前文提到,用戶記住的往往是名稱中的關(guān)鍵詞)都提取出來(lái),分別作為名稱對(duì)象的未命名的屬性值,在不考慮名稱中關(guān)鍵詞之間的語(yǔ)序時(shí)(也即忽略未命名屬性間的順序),那么資源名稱的識(shí)別過(guò)程也可使用資源定位算法來(lái)實(shí)現(xiàn)。名稱中關(guān)鍵詞的提取算法比較簡(jiǎn)單,使用有限狀態(tài)自動(dòng)機(jī)就能實(shí)現(xiàn)。將關(guān)鍵詞詞典作為模式串集合,輸入到前面講述過(guò)的最長(zhǎng)匹配有限狀態(tài)自動(dòng)機(jī)中,然后構(gòu)建該有限狀態(tài)自動(dòng)機(jī),并使用它掃描資源名稱文本,則有限狀態(tài)自動(dòng)機(jī)將輸出資源名稱中出現(xiàn)的關(guān)鍵詞詞典中的關(guān)鍵詞,從而達(dá)到關(guān)鍵詞自動(dòng)抽取的目的。也就是說(shuō),關(guān)鍵詞的抽取過(guò)程(即名稱對(duì)象的屬性值構(gòu)建過(guò)程)可由計(jì)算機(jī)自動(dòng)實(shí)現(xiàn)。在發(fā)明中正是這樣實(shí)現(xiàn)的,并且為減少系統(tǒng)的規(guī)^^莫,直接將前面所述的概念詞典中概念的各個(gè)表達(dá)形式組合成關(guān)鍵詞典來(lái)使用。下面講述資源定位算法的設(shè)計(jì)。資源定位算法要解決兩個(gè)核心問(wèn)題其一,如何識(shí)別出命令文本中出現(xiàn)了資源的哪些屬性?其二,既然資源的屬性值可能相同,如何根據(jù)命令文本中出現(xiàn)的資源屬性值來(lái)區(qū)分用戶所指定的資源?命令文本中出現(xiàn)的資源屬性值的識(shí)別一種方法是按照資源的屬性類型,將命令文本中表示資源屬性的文本串劃分到不同的屬性類中,然后在各個(gè)屬性類中分別將各資源的該類屬性與命令文本中出現(xiàn)的表示該類型屬性的文本進(jìn)行匹配,舉個(gè)例子如下例命令"把馬戰(zhàn)凱寫的'自然語(yǔ)言講義,打開"分析開始,把"馬戰(zhàn)凱"這個(gè)文本串劃分為作者,而把"自然語(yǔ)言講義"這個(gè)文本串劃分為文檔標(biāo)題,然后依次在文檔庫(kù)作者欄匹配"馬戰(zhàn)凱"這個(gè)串,而在文檔標(biāo)題欄匹配"自然語(yǔ)言講義,,這個(gè)串,匹配結(jié)果可能是(1)文檔"自然語(yǔ)言講義"文檔標(biāo)題與作者均在命令文本中出現(xiàn);(2)文檔"數(shù)字識(shí)別方法"文檔標(biāo)題未在命令文本中出現(xiàn),而作者出現(xiàn)在命令文本中。這里使用有限狀態(tài)自動(dòng)機(jī)來(lái)實(shí)現(xiàn)"按需提取"將各個(gè)資源的各個(gè)屬性值都以模式串的形式加入到有限狀態(tài)自動(dòng)機(jī)中,然后構(gòu)建自動(dòng)機(jī),并用它掃描命令文本,則自動(dòng)機(jī)將輸出命令串中出現(xiàn)的資源屬性值。通過(guò)屬性值可以定位到相應(yīng)的資源。如將文檔資源的各屬性值作為模式串加入到AC機(jī)中后,使用AC機(jī)對(duì)輸入文本"把馬戰(zhàn)凱寫的'自然語(yǔ)言講義,打開"進(jìn)行掃描,則AC才幾將輸出(1)馬戰(zhàn)凱:作者屬性,所在資源:①"自然語(yǔ)言講義",②"數(shù)字識(shí)別方法"(2)自然語(yǔ)言講義:文檔標(biāo)題屬性,所在資源@"自然i吾言"i并義,,也就是說(shuō),命令文本中出現(xiàn)了資源"自然語(yǔ)言講義"的兩個(gè)屬性值作者屬性和標(biāo)題屬性,而同時(shí)出現(xiàn)了資源"數(shù)字識(shí)別方法"的一個(gè)屬性值作者屬性。該方法實(shí)現(xiàn)起來(lái)比較簡(jiǎn)單,在本系統(tǒng)中正是釆用了該方法,取得了較好的效果。步驟15:執(zhí)行模塊執(zhí)行,根據(jù)使用權(quán)值機(jī)制來(lái)判斷不同資源的多個(gè)屬性來(lái)識(shí)別用戶所指資源。首先計(jì)算出輸入的自然語(yǔ)言命令與各個(gè)資源的"距離",然后選擇"距離"最小的一個(gè)作為用戶所要操作的資源。根據(jù)出現(xiàn)的資源屬性值識(shí)別用戶所指資源不同資源的同一屬性的值可能相同,使得一個(gè)屬性值與多個(gè)資源關(guān)聯(lián),由于用戶的命令文本涉及到不同資源的多個(gè)屬性,從而需要根據(jù)這些屬性來(lái)識(shí)別用戶所指資源。本發(fā)明認(rèn)為,用戶命令文本中出現(xiàn)的資源屬性值所涉及的資源,都有可能成為用戶所特指的資源,只是可能性大小不同,因此本發(fā)明使用權(quán)值機(jī)制來(lái)判斷。首先計(jì)算出輸入的自然語(yǔ)言命令與各個(gè)資源的"距離",然后選擇"距離"最小的一個(gè)作為用戶所要操作的資源,算法過(guò)程模型如圖14所示。圖14中,S表示自然語(yǔ)言命令文本,Oj表示第i個(gè)資源,而Vy表示第i個(gè)資源的第j個(gè)屬性值,dis(S,Oj)表示S與Oi之間的距離,并且也用disi表示?,F(xiàn)假設(shè)系統(tǒng)中總共有m個(gè)資源,并且用戶操作的是第n個(gè)資源,那么而=min(cfo(S,O!),<92),…XS,A),…,(9附)}=min(tfc,壺2,…,壺4,…,dO(式5-3-1)因?yàn)榕c資源有關(guān)的距離計(jì)算都是通過(guò)資源的屬性值來(lái)實(shí)現(xiàn),因此(式2-6)中S與第k個(gè)資源之間的距離disk可計(jì)算如下二flfaOS,(^)二化OSH…,、)(5-3-2)同一類型的資源具有相同數(shù)目和類型的屬性,因此(式2-7)可以改進(jìn)如下^&0S,O》壺(51,]^,^,…,。(5-3誦3)這里N是這種類型資源中用戶感興趣的屬性數(shù)目。對(duì)于特定類型的資源,本發(fā)明實(shí)施例定義其各個(gè)屬性的權(quán)值,第i個(gè)屬性的權(quán)值定義如下=Ja,(該屬性值在命令文本中出現(xiàn))'=(該屬性值不在命令文本中出現(xiàn))()通常情況下,如果一個(gè)屬性值沒(méi)有在命令文本中出現(xiàn),則認(rèn)為它對(duì)于資源的識(shí)別貢獻(xiàn)為0,因此另A-o,當(dāng)然根據(jù)具體情況,也可以定義它為任意需要的值。下一步的工作,根據(jù)屬性值Vy是否在命令文本S中出現(xiàn),定義一.p(F,在s中出現(xiàn))"諷,"卜i一i(^不在s中出現(xiàn))(5_3一5)因此,(公式2-8)計(jì)算時(shí),首先計(jì)算出sign(S,Vij),并且按照相應(yīng)屬性的權(quán)值Wj,得出乘積sign(S,Vjj"Wj,然后將這些乘積按照一定的算法組織,得到(式2-8)的最終結(jié)果,如下^(5陽(yáng)3-6)有了這個(gè)結(jié)果,可以通過(guò)(式2-ll)來(lái)計(jì)算出最小距離的資源n,從而識(shí)別出用戶操作的資源。上面主要介紹了項(xiàng)目采取的"由淺入深、逐個(gè)領(lǐng)域地解決問(wèn)題"的自然語(yǔ)言理解課題的總體解決方案,在當(dāng)前階段,本發(fā)明實(shí)施例選擇了商務(wù)領(lǐng)域中的人機(jī)對(duì)話作為自然語(yǔ)言理解的突破口;其次描述了以概念為基礎(chǔ)的自然語(yǔ)言理解方法,包括改進(jìn)有限狀態(tài)自動(dòng)機(jī)實(shí)現(xiàn)了概念的組配、概念的識(shí)別、以及由概念得到完整語(yǔ)意的方法,提出了利用先驗(yàn)知識(shí)來(lái)幫助理解的方法;接著描述使用語(yǔ)境來(lái)輔助理解,本系統(tǒng)將語(yǔ)境分為大環(huán)境語(yǔ)境與小環(huán)境語(yǔ)境來(lái)處理,并分別描述了它們的獲取、表示和使用;最后闡述了計(jì)算機(jī)在獲得語(yǔ)意后執(zhí)行操作時(shí)的資源定位過(guò)程,提出并實(shí)現(xiàn)資源庫(kù)的方式來(lái)組織資源,并設(shè)計(jì)了資源定位算法來(lái)定位資源。步驟16:結(jié)果輸出呈現(xiàn),實(shí)現(xiàn)人機(jī)交互。基于上述方法本發(fā)明實(shí)施例人機(jī)交互智能系統(tǒng)結(jié)構(gòu),參見圖15所示,圖15示出了包括本發(fā)明系統(tǒng)在內(nèi)的網(wǎng)絡(luò)結(jié)構(gòu),包括中心智能處理服務(wù)平臺(tái)101、運(yùn)營(yíng)商子系統(tǒng)102、企業(yè)端子系統(tǒng)103和最終客戶104。其中,中心智能處理服務(wù)平臺(tái)101為本發(fā)明人機(jī)交互智能系統(tǒng)。在中心智能處理服務(wù)平臺(tái)101中,包括知識(shí)庫(kù)服務(wù)器1011,用于保存商務(wù)知識(shí)數(shù)據(jù)和管理系統(tǒng)常用數(shù)據(jù);人工智能引擎1012用于對(duì)用戶輸入的問(wèn)題進(jìn)行分析處理并獲取檢索提交的回答;數(shù)據(jù)統(tǒng)計(jì)分析單元1013,用于對(duì)用戶與人工智能引擎交互數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析。運(yùn)營(yíng)商子系統(tǒng)102,用于為企業(yè)商務(wù)機(jī)器人提供智能搜索、廣告精準(zhǔn)推送、Voip增值業(yè)務(wù)等功能。其中包括運(yùn)營(yíng)商商務(wù)門戶1021、廣告及增值業(yè)務(wù)服務(wù)器1022。由商務(wù)門戶網(wǎng)站和廣告及增值業(yè)務(wù)服務(wù)器組成,主要功能是一方面在商務(wù)門戶網(wǎng)站集合各企業(yè)信息、產(chǎn)品、視頻等信息,以及進(jìn)行新信息的發(fā)布、廣告的精準(zhǔn)推送。另一方面,利用VOIP和增值業(yè)務(wù)為廣大訪客服務(wù)(舉例訪客快速注冊(cè)送20積分,手機(jī)注冊(cè)送170積分,(填寫推薦碼再送30積分)的基礎(chǔ)上,只要注冊(cè)便再送5分鐘網(wǎng)絡(luò)電話通話時(shí)間。另外,還可以發(fā)送短信(類似中國(guó)移動(dòng)的飛信)。企業(yè)端子系統(tǒng)103,用于管理知識(shí)庫(kù)、FAQ、日志分析管理等,其中包括商務(wù)智能機(jī)器人1031、企業(yè)自主服務(wù)單元1032等。由WEB網(wǎng)眼引擎和企業(yè)網(wǎng)站服務(wù)器組成,實(shí)際應(yīng)用時(shí)把"商務(wù)智能機(jī)器人"嵌入到企業(yè)網(wǎng)站中。企業(yè)自身?yè)碛惺跈?quán)帳號(hào)可以在線管理和修改"商務(wù)智能機(jī)器人"后臺(tái)的企業(yè)商務(wù)知識(shí)庫(kù)和查詢?cè)L客的信息。如可以上傳企業(yè)文件、圖片、商務(wù)一見頻到后臺(tái)知識(shí)數(shù)據(jù)庫(kù)中。最終客戶104,通過(guò)企業(yè)網(wǎng)站或運(yùn)營(yíng)商商務(wù)門戶等與商務(wù)智能機(jī)器人進(jìn)行交互。最終客戶瀏覽企業(yè)網(wǎng)站或運(yùn)營(yíng)商商務(wù)門戶網(wǎng)站無(wú)需下載任何軟件,點(diǎn)擊"商務(wù)智能機(jī)器人"圖標(biāo)就可以直接通過(guò)網(wǎng)頁(yè)、即時(shí)通信軟件(MSN、QQ與"商務(wù)智能機(jī)器人"進(jìn)行在線咨詢、產(chǎn)品查詢、訂購(gòu)、觀看產(chǎn)品視頻演示、留言等一系列交互性智能操作。本發(fā)明的描述是為了示例和說(shuō)明起見而給出的,而并不是無(wú)遺漏的或者將本發(fā)明限于所公開的形式。很多修改和變化對(duì)于本領(lǐng)域的普通技術(shù)人員而言是顯然的。選擇和描述實(shí)施例是為了更好說(shuō)明本發(fā)明的原理和實(shí)際應(yīng)用,并且使本領(lǐng)域的普通技術(shù)人員能夠理解本發(fā)明從而設(shè)計(jì)適于特定用途的帶有各種修改的各種實(shí)施例。權(quán)利要求1.一種自然語(yǔ)言理解方法,其特征在于,包括接收到用戶輸入的自然語(yǔ)言后,將自然語(yǔ)言組配出概念語(yǔ)言符號(hào),將概念與概念語(yǔ)言符號(hào)關(guān)聯(lián)起來(lái);通過(guò)比對(duì)預(yù)設(shè)的概念辭典,從中選取最符合當(dāng)前語(yǔ)境的概念,判斷是否有歧義,如果有,則通過(guò)語(yǔ)料庫(kù)技術(shù)得出概念,進(jìn)入下一步;如果沒(méi)有,采用語(yǔ)意符合搭配原則直接得出概念,進(jìn)入下一步;概念識(shí)別并得出核心概念和周邊概念,核心概念通過(guò)計(jì)算機(jī)操作本身明確核心語(yǔ)意,周邊概念通過(guò)計(jì)算機(jī)操作內(nèi)容明確周邊語(yǔ)意;根據(jù)核心語(yǔ)義并結(jié)合周邊語(yǔ)義求得完整語(yǔ)義。2.根據(jù)權(quán)利要求l所述的方法,其特征在于,設(shè)置概念辭典,概念辭典主要包含概念之間以及概念的屬性之間的各種關(guān)系,概念與其語(yǔ)言符號(hào)之間的對(duì)應(yīng)關(guān)系;所述自然語(yǔ)言組配過(guò)程包括使用組配算法將概念辭典中包含的概念語(yǔ)言符號(hào)從原文中組配出來(lái)。3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述概念之間的關(guān)系包括概念之間的上下位、同義、反義、對(duì)義、整體與部分、屬性與宿主、材料與成品、主體與事件、內(nèi)容與事件關(guān)系。4.根據(jù)權(quán)利要求l所述的方法,其特征在于,所述選取最符合當(dāng)前語(yǔ)境的概念過(guò)程采用語(yǔ)意符合搭配原則和采用語(yǔ)境保持一致原則。5.根據(jù)權(quán)利要求1或4所述的方法,其特征在于,所述概念識(shí)別還包括利用數(shù)字量的識(shí)別算法,將文本中的數(shù)字量識(shí)別出來(lái)。6.根據(jù)權(quán)利要求l所述的方法,其特征在于,所述求得完整語(yǔ)義后還包括根據(jù)建立的自然語(yǔ)言語(yǔ)意與計(jì)算機(jī)操作之間的映射關(guān)系識(shí)別操作內(nèi)容;按操作不同,從命令文本中識(shí)別操作內(nèi)容,定位內(nèi)容所指資源;執(zhí)行操作,輸出結(jié)果并呈現(xiàn)。7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述自然語(yǔ)言語(yǔ)意與計(jì)算機(jī)動(dòng)作之間的映射關(guān)系的建立是通過(guò)核心語(yǔ)意與計(jì)算機(jī)操作、操作數(shù)進(jìn)行綁定實(shí)現(xiàn)。8.根據(jù)權(quán)利要求6所述的方法,其特征在于,釆用句子模式方法和先驗(yàn)知識(shí)方法求得語(yǔ)意這二種方法結(jié)合來(lái)識(shí)別操作內(nèi)容。9.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,所述采用句子模式方法的過(guò)程包括搜集各個(gè)操作的各種句子模式,并將它們組織起來(lái)存放到知識(shí)庫(kù)中,并且使用跳字匹配有限狀態(tài)自動(dòng)機(jī)實(shí)現(xiàn)句子模式的識(shí)別,之后,按照該句子模式來(lái)識(shí)別命令文本中的操作內(nèi)容。10.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于,所述資源定位包括確定文件在哪個(gè)目錄下;確定文件的文件名是什么。11.根據(jù)權(quán)利要求10所述的方法,其特征在于,所述確定文件目錄、確定文件名通過(guò)遍歷目錄樹并匹配文件名實(shí)現(xiàn),包括使用有限狀態(tài)自動(dòng)機(jī)實(shí)現(xiàn)名稱中關(guān)鍵詞的提取,將關(guān)鍵詞詞典作為模式串集合,輸入到最長(zhǎng)匹配有限狀態(tài)自動(dòng)機(jī)中,然后使用有限狀態(tài)自動(dòng)機(jī)來(lái)實(shí)現(xiàn)"按需提取"將各個(gè)資源的各個(gè)屬性值都以模式串的形式加入到有限狀態(tài)自動(dòng)機(jī)中,然后構(gòu)建自動(dòng)機(jī),并用它掃描命令文本,則自動(dòng)機(jī)將輸出命令串中出現(xiàn)的資源屬性值,通過(guò)屬性值定位到相應(yīng)的資源。12.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述計(jì)算機(jī)操作通過(guò)操作本身和操作內(nèi)容組成的有序序列來(lái)表示,通過(guò)核心語(yǔ)意與周邊語(yǔ)意組成的有序序列來(lái)表示完整語(yǔ)意,多個(gè)概念組織成完整的語(yǔ)意,計(jì)算機(jī)理解完整語(yǔ)意并得出操作。13.—種人機(jī)交互智能系統(tǒng),其特征在于,包括知識(shí)庫(kù)服務(wù)器,用于保存商務(wù)知識(shí)數(shù)據(jù)和管理系統(tǒng)常用數(shù)據(jù);人工智能引擎,用于對(duì)用戶輸入的問(wèn)題進(jìn)行分析處理并獲取檢索提交的回答;數(shù)據(jù)統(tǒng)計(jì)分析單元,用于對(duì)用戶與人工智能引擎交互數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析。全文摘要本發(fā)明公開一種自然語(yǔ)言理解方法,包括接收到用戶輸入的自然語(yǔ)言后,將自然語(yǔ)言組配出概念語(yǔ)言符號(hào),將概念與概念語(yǔ)言符號(hào)關(guān)聯(lián)起來(lái);通過(guò)比對(duì)預(yù)設(shè)的概念辭典,從中選取最符合當(dāng)前語(yǔ)境的概念,判斷是否有歧義,如果有,則通過(guò)語(yǔ)料庫(kù)技術(shù)得出概念,進(jìn)入下一步;如果沒(méi)有,采用語(yǔ)意符合搭配原則直接得出概念,進(jìn)入下一步;概念識(shí)別并得出核心概念和周邊概念,核心概念通過(guò)計(jì)算機(jī)操作本身明確核心語(yǔ)意,周邊概念通過(guò)計(jì)算機(jī)操作內(nèi)容明確周邊語(yǔ)意;根據(jù)核心語(yǔ)義并結(jié)合周邊語(yǔ)義求得完整語(yǔ)義。本發(fā)明還提供了一種基于上述方法的人機(jī)交互智能系統(tǒng)。對(duì)用戶輸入的自然語(yǔ)音進(jìn)行更準(zhǔn)確的識(shí)別,為用戶提供更加智能完善的服務(wù)。文檔編號(hào)G06F17/27GK101178705SQ200710195720公開日2008年5月14日申請(qǐng)日期2007年12月13日優(yōu)先權(quán)日2007年12月13日發(fā)明者吳建江,馬戰(zhàn)凱,黃莉莉申請(qǐng)人:中國(guó)電信股份有限公司