專利名稱::一種自動問答系統(tǒng)及方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及計算語言學(xué),具體地說涉及一種自動問答系統(tǒng)。本發(fā)明同時提供一種自動問答方法,以及一種更新所述自動問答系統(tǒng)的推理知識庫的方法。
背景技術(shù):
:自動問答系統(tǒng)又稱QA(automaticQuestionAnswering)系統(tǒng),它采用自然語言處理技術(shù),一方面完成對用戶問題的分析處理;另一方面完成正確答案的生成。自動問答系統(tǒng)以自然語言理解技術(shù)為核心,涉及到計算語言學(xué)、信息科學(xué)和人工智能等多門學(xué)科,是計算機應(yīng)用研究的熱點之一。衡量自動問答系統(tǒng)的技術(shù)指標(biāo)主要包括自動問答系統(tǒng)的準(zhǔn)確率和自動問答系統(tǒng)的召回率。所謂自動問答系統(tǒng)的準(zhǔn)確率,是指自動問答系統(tǒng)做出正確應(yīng)答的次數(shù)占總共應(yīng)答次數(shù)的比率。例如用戶向自動問答系統(tǒng)輸入了100個句子,該自動問答系統(tǒng)做出了100次應(yīng)答,其中有20次是正確的,那么這個機器人系統(tǒng)的準(zhǔn)確率就是20%。自動問答系統(tǒng)的召回率,是指自動問答系統(tǒng)做出正確應(yīng)答的次數(shù)占知識庫中存在正確應(yīng)答數(shù)目的比率。例如用戶向機器人輸入了ioo個句子,機器人做出了100次應(yīng)答,其中有20次是正確的,但是用戶輸入的100個句子中,知識庫中只有其中25個句子的正確應(yīng)答存在,那么這個機器人系統(tǒng)的招回率就是80%。自然語言理解技術(shù)是實現(xiàn)自動問答系統(tǒng)的前提,它使計算機能夠理解和運用人類的自然語言,實現(xiàn)人與計算機之間基于自然語言的有效通信,直接影響自動問答系統(tǒng)的準(zhǔn)確率和召回率。人類使用的自然語言有數(shù)千種之多,每種自然語言都有各自的特點。自然語言理解技術(shù)必然與所針對的特定自然語言的特點密切相關(guān)?,F(xiàn)有的中文自動問答系統(tǒng)大多參考國外一些優(yōu)秀的英文自動問答系統(tǒng),采用簡單的模式匹配技術(shù)實現(xiàn)對自然語言的理解。但是與英文相比,中文具有用詞靈活、句法復(fù)雜多變的特點,并不適合簡單的模式匹配技術(shù),導(dǎo)致中文自動問答系統(tǒng)普遍存在中文知識庫的覆蓋面窄、系統(tǒng)的準(zhǔn)確率和招回率都很低的問題,對用戶體驗造成了傷害。例如,一種常用的中文自動問答系統(tǒng),其基本的算法就是從第一個詞開始,對用戶當(dāng)前輸入的句子和知識庫中預(yù)先存儲的句子進(jìn)行匹配,如果兩個詞相同就繼續(xù)下一個詞的匹配,中間可能利用任意詞通配符來忽略掉用戶輸入的句子中存在的一些不太關(guān)鍵的詞,重復(fù)這一過程直到整個用戶輸入的句子匹配完畢。如果匹配成功,就將知識庫中的句子所對應(yīng)的系統(tǒng)應(yīng)答返回給用戶。下面舉例說明采用上述簡單的模式匹配技術(shù)實現(xiàn)的中文自動問答系統(tǒng)的缺點。假設(shè)自動問答系統(tǒng)的推理知識庫中存在以下一組問答語句對,其中包括一個用戶輸入的自然語言句子(以下簡稱設(shè)定問句)和系統(tǒng)應(yīng)答(以下簡稱答句)*問答語句對一■設(shè)定問句你喜歡看春節(jié)聯(lián)歡晚會嗎?■答句是啊,你怎么知道的?當(dāng)用戶輸入"你喜歡看春節(jié)聯(lián)歡晚會嗎?"的時候,系統(tǒng)會找到這組問答語句對,并將該問答語句對的答句取出返回給用戶。但是,當(dāng)用戶輸入"你喜歡看春晚嗎?"的時候,因為"春晚"和"春節(jié)聯(lián)歡晚會"無法匹配成功,所以系統(tǒng)無法找到合適的回答,從而返回了錯誤的答句(可能是系統(tǒng)缺省的應(yīng)答)。但是實際上,"春晚"和"春節(jié)聯(lián)歡晚會"在語義上一致的,例子中的系統(tǒng)應(yīng)答就是用戶輸入的正確應(yīng)答。在該現(xiàn)有問答系統(tǒng)中解決這種問題,就必須在推理知識庫中再構(gòu)造一組問答語句對如下參問答語句對二■設(shè)定問句你喜歡看春晚嗎?■答句是啊,你怎么知道的?假如系統(tǒng)中有100個有關(guān)春節(jié)聯(lián)歡晚會的知識點,則每個知識點都必須構(gòu)造類似上面的兩組問答語句對。但是,由于中文的同義詞現(xiàn)象非常普遍,而且用詞靈活多變,所以通過增加更多的問答語句對來解決該問題,無論是從工作量還是系統(tǒng)效率的角度來看,都是不可接受的。從上述例子可以看出簡單的模式匹配技術(shù)會導(dǎo)致搭建推理知識庫的工作量巨大,且覆蓋面窄,系統(tǒng)的準(zhǔn)確率和招回率都很低,對用戶體驗造成了很大的傷害。
發(fā)明內(nèi)容針對上述缺陷,本發(fā)明解決的技術(shù)問題在于,提供一種自動問答系統(tǒng),該系統(tǒng)可以解決簡單的模式匹配方法造成的問題,減少搭建推理知識庫的工作量,提高系統(tǒng)的準(zhǔn)確率和召回率。該系統(tǒng)尤其適合中文等詞與詞之間沒有明顯分界的語言。本發(fā)明同時提供一種自動問答方法,以及一種更新推理知"i只庫的方法。本發(fā)明提供的自動問答系統(tǒng),包括接口單元、分詞單元、推理單元、語言知識庫、推理知識庫,還包括關(guān)鍵詞歸一化表,用于存儲同義關(guān)鍵詞的分組,并在每一組同義詞中確定一個關(guān)^t詞,作為該組同義詞的歸一化詞;的關(guān)鍵詞序列,并根據(jù)所獲得的關(guān)鍵詞,查詢所述關(guān)鍵詞歸一化表,獲得該關(guān)鍵詞序列的每一個關(guān)鍵詞的歸一化詞,從而獲得對應(yīng)于所述用戶輸入問句的歸一化詞序列,并將該歸一化詞序列輸出到所述推理單元;所述推理單元根據(jù)該歸一化詞序列查詢所述推理知識庫,找到與該歸一化詞序列具有相同關(guān)鍵詞序列的設(shè)定問句與所述用戶輸入問句匹配,并查詢該設(shè)定問句對應(yīng)的答句,將該答句作為系統(tǒng)應(yīng)答通過所述接口單元輸出。優(yōu)選地,該自動問答系統(tǒng)還包括推理知識庫生成子系統(tǒng),該子系統(tǒng)包括設(shè)定問句分詞單元,用于接收知識庫管理員輸入的設(shè)定問句,并根據(jù)所述語言知識庫存儲的關(guān)鍵詞信息對該問句進(jìn)行分詞,獲得對應(yīng)所述設(shè)定問句的關(guān)鍵詞序列;更新單元,用于接收所述設(shè)定問句的關(guān)鍵詞序列,以及管理員輸入的對所述設(shè)定問句的答句,將兩者的內(nèi)容以及對應(yīng)關(guān)系存儲到所述推理知識庫供所述推理單元查詢。優(yōu)選地,所述推理知識庫生成子系統(tǒng),還包括設(shè)定問句歸一化單元,用于接收所述設(shè)定問句分詞單元輸出的關(guān)鍵詞序列,并查詢所述關(guān)鍵詞歸一化表,獲得對應(yīng)于該關(guān)鍵詞序列的每一個關(guān)鍵詞的歸一化詞,形成歸一化的關(guān)鍵詞序列;所述更新單元接收的所述設(shè)定問句的關(guān)鍵詞序列是所述歸一化的關(guān)鍵詞序列。優(yōu)選地,所述設(shè)定問句歸一化單元使用與所述歸一化單元相同的關(guān)鍵詞歸一化表。優(yōu)選地,所述推理知識庫用于存儲問答語句對,每一個問答語句對包括設(shè)定問句和對應(yīng)的答句;并且所述設(shè)定問句采用關(guān)^:詞序列形式存儲,所述的關(guān)鍵詞中可以包含關(guān)鍵詞通配符。優(yōu)選地,,所述推理單元獲得的與用戶輸入問句的關(guān)鍵詞序列完全相同的設(shè)定問句,包括在若干位置上為任意詞通配符,而其他對應(yīng)位置的關(guān)鍵詞完全相同的設(shè)定問句。本發(fā)明同時提供一種自動問答的方法,應(yīng)用于具有語言知識庫、推理知識庫、以及關(guān)鍵詞歸一化表的系統(tǒng),該方法在接收用戶輸入問句后進(jìn)行下述處理71)對用戶輸入問句進(jìn)行分詞,獲得關(guān)鍵詞序列;72)對所述關(guān)鍵詞序列進(jìn)行歸一化處理;73)以歸一化處理后的關(guān)鍵詞序列作為依據(jù),查詢與該歸一化的關(guān)鍵詞序列具有完全相同的關(guān)鍵詞序列的設(shè)定問句;所述完全相同,包括關(guān)鍵詞相同和關(guān)鍵詞所處于的位置相同;74)根據(jù)所獲得的設(shè)定問句查找與該設(shè)定問句對應(yīng)的答句;75)將所述答句作為對所述用戶輸入問句的系統(tǒng)應(yīng)答輸出。優(yōu)選地,,所述步驟72)的歸一化處理根據(jù)關(guān)鍵詞歸一化表進(jìn)行。優(yōu)選地,,所述步驟73)的查詢過程,具體是按照使用歸一化的關(guān)鍵詞序列,在所述推理知識庫中查找與該關(guān)鍵詞序列頭一個關(guān)鍵詞具有相同關(guān)鍵詞的設(shè)定問句,將獲得的所有問句作為當(dāng)前結(jié)果集合;對下一個關(guān)鍵詞的查找以所述當(dāng)前結(jié)果集合為檢索范圍,進(jìn)行與上述步驟同樣的查找,直到所述關(guān)鍵詞序列的所有關(guān)鍵詞查找完畢。優(yōu)選地,,所述相同關(guān)^t詞,可以為任意詞通配符。優(yōu)選地,,所述步驟73)獲得的與該歸一化的關(guān)鍵詞序列具有完全相同的關(guān)鍵詞序列的設(shè)定問句可以為多個設(shè)定問句的結(jié)果集合;此時,所述步驟74)隨機選取將該結(jié)果集合中某一個設(shè)定問句對應(yīng)的答句作為系統(tǒng)應(yīng)答。優(yōu)選地,,若所述步驟73)無法獲得與用戶問句的歸一化的關(guān)鍵詞詞序列具有完全相同的關(guān)鍵詞序列的設(shè)定問句,則選擇一個缺省答句作為系統(tǒng)應(yīng)答,不進(jìn)行步驟74)、步驟75)。本發(fā)明進(jìn)一步提供一種更新自動問答系統(tǒng)的推理知識庫的方法,在接收知識庫管理員輸入的問答語句對后,進(jìn)行如下處理131)對所述設(shè)定問答語句對的設(shè)定問句進(jìn)行分詞,獲得對應(yīng)于該設(shè)定問句的關(guān)鍵詞序列;132)將上一步驟所獲得的關(guān)鍵詞序列進(jìn)行歸一化處理;133)將歸一化處理后的所述設(shè)定問句的關(guān)鍵詞序列,以及對應(yīng)于該設(shè)定問句的答句加入推理知識庫。優(yōu)選地,所述步驟132)進(jìn)行歸一化處理中,采用與系統(tǒng)應(yīng)答時相同的關(guān)鍵詞歸一化表。本發(fā)明的基本思路是,在所述自動問答系統(tǒng)和方法中,增加對關(guān)鍵詞的歸一化處理單元或者步驟,使用戶輸入語句中的關(guān)^t詞通過歸一化處理能夠轉(zhuǎn)化為推理知識庫中通用的關(guān)#:詞,從而通過同義關(guān)^:詞的歸一化減少推理知識庫中所需的問答語句對,減少搭建推理知識庫的工作量。首先,由于對句子中的關(guān)鍵詞進(jìn)行歸一化處理,使推理知識庫所需的問答語句對大幅減少,。在現(xiàn)有技術(shù)中,對于各種同義關(guān)鍵詞必須逐一建立問答語句對,才能實現(xiàn)正確問答。在本發(fā)明提供的方案中,將同義關(guān)鍵詞進(jìn)行歸一化的處理,使一組同義關(guān)鍵詞在不同的句子中能夠得到相同的歸一化處理。由于關(guān)鍵詞是有限的,而關(guān)鍵詞組成的句子是千變?nèi)f化、無窮無盡的,因此,在關(guān)鍵詞一級進(jìn)行歸一化處理后,將使需要建立的問答語句對大幅減少。例如,一組關(guān)鍵詞"出生地"、"老家"、"家鄉(xiāng)"、"故鄉(xiāng)"等經(jīng)過歸一化處理后,全部轉(zhuǎn)化為"出生地"。這樣,針對任何出現(xiàn)上述關(guān)鍵詞的句子都?xì)w一化為為"出生地"來處理,就會將原本需要搭建的牽涉該組詞語的的四組問答句轉(zhuǎn)變?yōu)橐唤M。減少搭建推理知識庫的工作量。其次,由于關(guān)鍵詞歸一化處理,使問答系統(tǒng)的內(nèi)容覆蓋面增加。在現(xiàn)有技術(shù)中,由于未進(jìn)行歸一化處理,對于每個同義詞都要建立不同的問答語句對才能夠獲得準(zhǔn)確的應(yīng)答,許多采用同義詞的具有相同內(nèi)涵的問題不可能都建立相應(yīng)的問答語句對。而本發(fā)明提供的系統(tǒng)和方法中,由于利用關(guān)鍵詞一化表,對各種問答語句對中出現(xiàn)的關(guān)鍵詞進(jìn)行歸一化,實際上增加了一個問答語句對的覆蓋面??梢哉J(rèn)為,在本發(fā)明提供的系統(tǒng)的推理知識庫中,增加一個問答語句對,相當(dāng)于現(xiàn)有技術(shù)下增加了若干問答語句對,這就使整個推理知識庫的覆蓋面大幅增加,因此,使該自動問答系統(tǒng)的準(zhǔn)確率和召回率等指標(biāo)相應(yīng)得以改善。再次,本發(fā)明的優(yōu)選方案中,由于使用了歸一化的方法構(gòu)造推理知識庫,使自動應(yīng)答的結(jié)果更加符合邏輯。在現(xiàn)有技術(shù)下,由于需要為一組同義詞中的不同詞搭建同樣結(jié)構(gòu)的問答語句對,由于信息管理的龐雜,不可能保證每個有相同含義的用戶輸入問句獲得相同的系統(tǒng)應(yīng)答,這使用戶感到自動問答系統(tǒng)在邏輯上不統(tǒng)一。本發(fā)明提供的系統(tǒng)和方法,則將具有相同含義的同義詞先進(jìn)行歸一化,再使用歸一化的詞構(gòu)造存入推理知識庫的問答語句對,這些問答語句對與經(jīng)過同樣的歸一化處理的用戶輸入問句進(jìn)行比較,就可以使具有相同含義的用戶輸入問句獲得同樣的系統(tǒng)應(yīng)答,使系統(tǒng)得以保持邏輯上的一致性。圖1是本發(fā)明第一實施例系統(tǒng)框圖2是本發(fā)明第二實施例提供的一種自動問答方法的流程圖;圖3是本發(fā)明第三實施例提供的一種更新推理知識庫的方法的流程圖。具體實施例方式請參看圖1,為本發(fā)明第一實施例系統(tǒng)框圖,該圖示出一種自動問答系統(tǒng)的組成單元及其相互關(guān)系。該實施例以中文為目標(biāo)語言,當(dāng)然,該系統(tǒng)也可以用于建立其他語言的自動問答系統(tǒng)。所述自動問答系統(tǒng)包括知識庫子系統(tǒng)10、問答子系統(tǒng)11、推理知識庫生成子系統(tǒng)12。所述知識庫子系統(tǒng)10為一個數(shù)據(jù)庫,用于分類存儲語言知識以及問答語句對等,以供所述問答子系統(tǒng)11查詢。所述問答子系統(tǒng)11用于接收用戶輸入問句,根據(jù)該用戶輸入問句,查找對應(yīng)于該用戶輸入問句對應(yīng)的答句,并將該答句輸出。所述推理知識庫生成子系統(tǒng)12,用于接收知識庫管理員輸入的問答語句對,并將該問答語句對進(jìn)行處理后,獲得歸一化的關(guān)鍵詞序列,用于更新所述知識庫子系統(tǒng)12中的推理知識庫中的問答語句對。以下對上述子系統(tǒng)進(jìn)行詳細(xì)地說明。所述知識庫子系統(tǒng)10包括語言知識庫101、關(guān)鍵詞歸一化表102、推理知識庫103。所述語言知識庫101內(nèi)存儲的是分詞所必需的知識,包括但不限于詞典(實際上就是以詞為基本單位的數(shù)據(jù)庫)以及詞頻等各種統(tǒng)計數(shù)據(jù)。詞典中存儲的詞,可以用于確定用戶輸入語句中包含的關(guān)鍵詞。尤其是對于中文,由于詞之間不具有明顯的分割,必須依據(jù)詞典中包含的詞對用戶輸入語句按順序進(jìn)行識別。這個過程稱為分詞,其基礎(chǔ)就是具有一個包含各種詞的數(shù)據(jù)庫(詞典)可供查詢,同時,為了提高分詞正確率,該語言知識庫還需要存儲詞頻信息,以便對同一語句可以進(jìn)行不同的分詞時,根據(jù)詞頻確定最合理的分詞結(jié)果。所述關(guān)鍵詞歸一化表102,用于存儲關(guān)鍵詞的分組,以及每組詞的歸一化詞。在存儲方式上,該關(guān)鍵詞歸一化表102采用表的形式,即包括若干表項,每條表項中記錄一組包括至少兩個詞的同義詞組,每一個表項中的同義詞組中都有一個詞被指定為該表項中所有其他同義詞的歸一化詞。舉例如下表所示<table>tableseeoriginaldocumentpage11</column></row><table><table>tableseeoriginaldocumentpage12</column></row><table>根據(jù)上述關(guān)鍵詞歸一化表的內(nèi)容就可以查找到任何一個詞是否具有歸一化詞,以及其具體的歸一化詞推理知識庫103,用于存儲用戶可能輸入的各種問答語句對,每一個問答語句對包括設(shè)定問句和對應(yīng)的答句。其中,每個設(shè)定問句都是經(jīng)過分詞和歸一化處理的關(guān)4建詞序列,可以對應(yīng)一個或多個應(yīng)答。存儲在推理知識庫103中的某一個設(shè)定問句由若干經(jīng)過歸一化處理的關(guān)鍵詞以及任意詞通配符等組成。所述問答子系統(tǒng)11包括接口單元111、分詞單元112、歸一化單元113、推理單元114。所述接口單元111用于實現(xiàn)該自動問答系統(tǒng)與用戶的交互,包括接收用戶輸入的用戶輸入問句,并將該用戶輸入問句輸出;以及接收所述推理單元114輸出的系統(tǒng)應(yīng)答,并輸出給用戶。所述分詞單元112,用于接收所述接口單元111輸出的用戶輸入問句,并根據(jù)所述語言知識庫101存儲的語言知識,對該用戶輸入問句進(jìn)行分詞,獲得與該用戶輸入問句對應(yīng)的關(guān)鍵詞序列。所述分詞單元112進(jìn)行分詞的方法有多種,一種可以采用的方案如下該分詞單元112首先將該用戶輸入問句的頭一個字作為待;險索詞,在所述語言知識庫101中查找以該字開始的詞,查找到該詞后,將語言知識庫101中該字開頭的所有詞作為檢索范圍,查找是否有與該字加上所述用戶輸入問句的下一個字或下若干個字完全符合的詞。所謂完全符合,指所有的字和字序全部相同。將這些詞(包括由頭一個字單獨組成的詞)全部找出,并在詞頻信息中查詢哪一個詞的詞頻最高,將詞頻最高的詞作為該用戶問句的第一個關(guān)鍵詞。獲得該關(guān)鍵詞后,從用戶輸入問句中該關(guān)鍵詞的下一個字開始,重復(fù)進(jìn)行上述檢索,直到將該用戶問句全部檢索完畢。將每一輪檢索獲得的關(guān)鍵詞順序排列,最終獲得一個關(guān)鍵詞序列,該關(guān)鍵詞序列就是與上述用戶輸入問句對應(yīng)的關(guān)鍵詞序列。所述歸一化單元113,用于接收所述分詞單元112輸出的關(guān)鍵詞序列,并將該關(guān)鍵詞序列的各個關(guān)鍵詞進(jìn)行歸一化處理后形成歸一化的關(guān)鍵詞序列輸出。所述歸一化處理是根據(jù)所述關(guān)鍵詞歸一化表102的內(nèi)容,在歸一化表102中逐一查詢所述關(guān)鍵詞序列的各關(guān)鍵詞所在的同義詞組,并將該同義詞組的歸一化詞代替該關(guān)鍵詞。經(jīng)過對上述關(guān)鍵詞序列的所有關(guān)鍵詞進(jìn)行上述歸一化處理后,就獲得一個新的關(guān)鍵詞序列,即歸一化的關(guān)鍵詞序列。所述推理單元114,用于接收所述歸一化單元114輸出的歸一化的關(guān)鍵詞序列,并將該關(guān)鍵詞序列中的關(guān)鍵詞按順序與推理知識庫103中存儲的問答語句對中的設(shè)定問句的關(guān)鍵詞序列進(jìn)行比對,查找到具有完全相同的關(guān)鍵詞序列的設(shè)定問句,該設(shè)定問句稱為與用戶問句匹配的設(shè)定問句。應(yīng)當(dāng)說明,上述完全相同還包括下列情況若設(shè)定問句在某個位置上采用通配符時,則相應(yīng)位置上的用戶輸入問句關(guān)鍵詞可以是任意詞,只要其他位置的關(guān)鍵詞相同,即可視為完全相同的關(guān)鍵詞序列。當(dāng)上述推理單元114查找到與用戶問句匹配的設(shè)定問句時,同時即可獲得與該設(shè)定問句對應(yīng)的答句。推理單元114將該答句作為系統(tǒng)應(yīng)答,通過所述接口單元111向用戶輸出,從而完成一次自動問答。所述推理知識庫生成子系統(tǒng)12,包括設(shè)定問句分詞單元121,設(shè)定問句歸一化單元122、更新單元123。所述設(shè)定問句分詞單元121,用于接收知識庫管理員輸入的問答語句對,并對該問答語句對中的設(shè)定問句進(jìn)行分詞,分詞的方法與前述分詞單元112中所述的分詞方法相同。經(jīng)過該單元處理后,最終獲得設(shè)定問句的關(guān)鍵詞序列。所述設(shè)定問句歸一化單元122,用于接收所述設(shè)定問句分詞單元121輸出的關(guān)鍵詞序列,并查詢所述關(guān)鍵詞歸一化表,獲得對應(yīng)于該關(guān)鍵詞序列的每一個關(guān)鍵詞的歸一化詞,形成歸一化的關(guān)^^A詞序列并輸出。具體進(jìn)行上述歸一化的方法與上述歸一化單元113的方法相同。所述更新單元123,用于接收所述設(shè)定問句歸一化單元122輸出的歸一化的關(guān)鍵詞序列,并將該關(guān)鍵詞序列與對應(yīng)的答句,輸出到所述推理知識庫103,實現(xiàn)對推理知識庫103的知識更新。所述推理知識庫103獲得的問答語句對,其形式為設(shè)定問句的歸一化的關(guān)鍵詞序列,以及對應(yīng)的答句。所述對應(yīng)的答句直接采用用戶輸入的答句,無需進(jìn)行分詞和歸一化的處理,因此,上述答句可以隨著所述設(shè)定問句的處理過程,由所述設(shè)定用戶分詞單元121對應(yīng)的傳給所述設(shè)定問句分詞單元122,再傳到所述更新單元123,最后存入所述推理知識庫103,只要保持與原來的設(shè)定問句的對應(yīng)關(guān)系即可。通過所述推理知識庫生成子系統(tǒng)12,知識庫管理員不斷增加推理知識庫103存儲的問答語句對,從而更新推理知識庫103的內(nèi)容,使推理知識庫103能夠不斷增加新的內(nèi)容,完善自動應(yīng)答系統(tǒng)。請參看圖2,該圖示出本發(fā)明第二實施例提供的一種自動問答方法的流程圖。該方法應(yīng)用于具有知識庫子系統(tǒng)的系統(tǒng)環(huán)境。所述知識庫子系統(tǒng)包括語言知識庫、關(guān)鍵詞歸一化表、推理知識庫等三種知識庫,上述三種知識庫的內(nèi)容與第一實施例相同,在此不再贅述。以下結(jié)合圖2詳細(xì)描述該自動問答方法。步驟S201,開始。步驟S202,接收用戶輸入的問句。用戶輸入問句的目的是獲得系統(tǒng)的應(yīng)答。步驟S203,對用戶輸入的問句進(jìn)行分詞。分詞的目的是將用戶輸入的問句轉(zhuǎn)化為關(guān)鍵詞序列,這是由于自動問答中對自然語言句子的識別,是采用與推理知識庫中的設(shè)定問句進(jìn)行關(guān)鍵詞比對的方法實現(xiàn)的,因此,首先需要將用戶輸入問句轉(zhuǎn)化為對應(yīng)的關(guān)^:詞序列才能進(jìn)行比較。具體的分詞方法,需要采用第一實施例中分詞單元所采用的方法,通過查閱語言知識庫存儲的詞典實現(xiàn)。由于中文詞與詞之間沒有明顯的標(biāo)記,因此根據(jù)詞典進(jìn)行分詞非常重要。步驟S204,對關(guān)鍵詞序列進(jìn)行歸一化處理。如前所述,自然語言中總是有很多同義詞或近義詞,由于進(jìn)行語句識別時,是以關(guān)鍵詞序列為標(biāo)準(zhǔn)進(jìn)行識別,每一個位置的關(guān)鍵詞必須相同,才會判斷用戶輸入問句與設(shè)定問句相同。對于一個同義詞組中的不同同義詞,可能需要構(gòu)造若干個設(shè)定問句才能夠保證同樣含義的用戶輸入問句獲得同樣的系統(tǒng)應(yīng)答。為此,有必要采用關(guān)鍵詞歸一化的方法,減少構(gòu)造問答語句對的數(shù)量,并且可以保證系統(tǒng)應(yīng)答在邏輯上的統(tǒng)一。步驟S205,設(shè)計#:器11=1;并設(shè)當(dāng)前結(jié)果集合為全部知識庫。在對用戶輸入問句歸一化處理完成后,獲得經(jīng)過歸一化的關(guān)鍵詞序列,可以開始與推理知識庫中存儲的問答語句對的設(shè)定問句進(jìn)行比較,以便找出與用戶輸入問句具有相同的關(guān)鍵詞序列的設(shè)定問句。比較的具體方法是,將所獲得的關(guān)鍵詞序列的關(guān)鍵詞按順序與推理知識庫中的設(shè)定問句的關(guān)鍵詞序列的關(guān)鍵詞進(jìn)行逐一比較,找出具有完全相同的關(guān)鍵詞序列的設(shè)定問句與用戶輸入問句匹配。本步驟的目的是為開始進(jìn)行上述比較進(jìn)行準(zhǔn)備。所述計數(shù)器用于對比較的關(guān)鍵詞的序號進(jìn)行計數(shù),首先將其設(shè)為1,也就是從第一個關(guān)鍵詞開始比較。比較的目的是找出具有完全相同的關(guān)鍵詞序列的設(shè)定問句,只要有一個關(guān)鍵詞不同,即可將該設(shè)定問句排除。本實施例采取逐步排除的方法,將同一位置上關(guān)鍵詞相同的設(shè)定問句作為待選的問句選出,而將其他設(shè)定問句排除,通過若干次的重復(fù),最終將會找出所需的設(shè)定問句。為此,需要設(shè)定一個當(dāng)前結(jié)果集合,用于記錄當(dāng)前尚未排除的設(shè)定問句。在比較剛剛開始時,該當(dāng)前結(jié)果集合設(shè)定為整個推理知識庫。步驟S206,取歸一化的關(guān)鍵詞序列的第n個詞為待查找詞。首先根據(jù)計數(shù)器的值,從所述歸一化的關(guān)鍵詞序列中確定待查找詞,將該待查找詞作為檢索依據(jù)。步驟S207,在當(dāng)前結(jié)果集合內(nèi)查找符合條件的設(shè)定問句,判斷是否查找成功;若是,則進(jìn)入S208;若否,則進(jìn)入S212。所述查找,具體是以步驟S206確定的待查找詞為檢索依據(jù),在當(dāng)前結(jié)果集合中,查找計數(shù)器值所指示的位置上,具有與該待查找詞相同的關(guān)鍵詞或者該位置為任意詞通配符的的所有設(shè)定問句。所述任意詞通配符,用于表示該設(shè)定問句的該位置可以為任何關(guān)鍵詞。推理知識庫中存在的問答語句對中,往往在句子中具有若干任意詞通配符,以便擴(kuò)大該問答語句對的覆蓋范圍。該位置的關(guān)鍵詞并不影響系統(tǒng)應(yīng)答。若查找到符合上述要求的設(shè)定問句,則可以繼續(xù)進(jìn)行查找。如果沒有找到,說明該推理知識庫中尚未建立所需的問答語句對,應(yīng)當(dāng)停止檢索。步驟S208,將找到的設(shè)定問句及其問答語句對作為當(dāng)前的結(jié)果集合。在步驟S207中找到合適的句子后,將所找到的問答語句對作為當(dāng)前的結(jié)果集合,以便確定后續(xù)進(jìn)一步比對時的檢索范圍。步驟S209,判斷用戶輸入問句關(guān)鍵詞序列是否已經(jīng)檢索完畢;若是,則進(jìn)入步驟S211;若否,則進(jìn)入步驟S210。若當(dāng)前用戶輸入問句已經(jīng)檢索完畢,則整個比較過程結(jié)束,若否,則需要對下一個關(guān)4建詞進(jìn)行比較。步驟S210,將n設(shè)置為n+l;返回步驟S206。該步驟將計數(shù)器的值加1,以便進(jìn)行下一個關(guān)鍵詞的比較。步驟S211,從匹配成功后的設(shè)定問句的結(jié)果集合中隨機選取一個設(shè)定問句對應(yīng)的答句作為系統(tǒng)應(yīng)答。進(jìn)入步驟S213。由于比較完畢后獲得的符合條件的結(jié)果集合中,可能有多個問答語句對,可以選擇其中之一的答句作為系統(tǒng)應(yīng)答。步驟S212,在系統(tǒng)缺省應(yīng)答中隨機選擇一個作為系統(tǒng)應(yīng)答。對于無法找到匹配成功的設(shè)定問句的情況,系統(tǒng)設(shè)定了缺省應(yīng)答,此時,可以從中選擇一個作為系統(tǒng)應(yīng)答。步驟S213,輸出系統(tǒng)應(yīng)答。步驟S214,結(jié)束。請參看圖3,該圖示出本發(fā)明第三實施例提供的一種更新推理知識庫的方法的流程圖。推理知識庫是獲得正確的系統(tǒng)應(yīng)答的關(guān)鍵,為此,需要經(jīng)常進(jìn)行更新。由于本發(fā)明采用對關(guān)鍵詞先歸一化再比對的方法進(jìn)行檢索,為此,否則容易導(dǎo)致匹配失敗以下根據(jù)圖3,對本實施例的更新推理知識庫的方法作一個詳細(xì)說明。步驟301,開始。步驟S302,接收知識庫管理員輸入的問答語句對。該問答語句對包括設(shè)定問句和對應(yīng)于該設(shè)定問句的答句。步驟S303,對所述設(shè)定問句進(jìn)行分詞,獲得對應(yīng)的關(guān)鍵詞序列。由于用戶輸入問句與設(shè)定問句比對時,是采用比較關(guān)鍵詞序列的方法進(jìn)行比對,所以,首先要將設(shè)定問句進(jìn)行分詞,獲得對應(yīng)的關(guān)鍵詞序列,以便以后直接用于比對。分詞需要根據(jù)語言知識庫進(jìn)行,該語言知識庫與對用戶輸入問句進(jìn)行分詞時的語言知識庫為同一個語言知識庫。步驟S304,對所述關(guān)鍵詞序列進(jìn)行歸一化處理。由于在進(jìn)行用戶輸入問句與設(shè)定問句比對時,首先對用戶輸入問句的關(guān)鍵詞序列進(jìn)行了歸一化處理,因此,對于推理知識庫的用戶問答語句對的設(shè)定問句也應(yīng)當(dāng)進(jìn)行歸一化處理。否則,如果所述推理知識庫的問答語句對使用的不是歸一化詞,就可能將許多可以匹配成功的句子漏匹配,降低匹配成功率。因此,存入推理知識庫的問答語句對的設(shè)定問句的關(guān)鍵詞序列必須進(jìn)行歸一化處理。步驟S305,將所獲得的設(shè)定問句的歸一化后的關(guān)鍵詞序列以及對應(yīng)于所述設(shè)定問句的答句加入推理知識庫。上述工作完成后,最終獲得一個歸一化的關(guān)鍵詞序列,該關(guān)鍵詞序列對應(yīng)于用戶問答語句對中的設(shè)定問句。將該關(guān)鍵詞序列以及對應(yīng)的答句存入推理知識庫,就可能在系統(tǒng)應(yīng)答時獲得正確的匹配,從而提高自動問答的成功率。步驟S306,結(jié)束。以上實施例分別提供了自動應(yīng)答系統(tǒng)和自動應(yīng)答方法、以及更新自動應(yīng)答所使用的推理知識庫的方法的優(yōu)選實施例,上述實施例主要以中文為目標(biāo)語言,也可以適用于其他語言,尤其是詞與詞之間缺少明顯分割的語言。上述實施例相互之間是獨立的。第一實施例提供的自動應(yīng)答系統(tǒng)可以在該系統(tǒng)所述的功能范圍內(nèi)以多種方法實現(xiàn)系統(tǒng)應(yīng)答;第二實施例的自動應(yīng)答方法也可以以多種系統(tǒng)來實現(xiàn),只要具有知識庫子系統(tǒng)的外部環(huán)境,可以使用多種系統(tǒng)實現(xiàn)該方法。所述第三實施例提供的更新推理知識庫的方法,同樣獨立于第一實施例的自動應(yīng)答系統(tǒng)和第二實施例的自動應(yīng)答方法。當(dāng)然,并不排除使用第一實施例的系統(tǒng)實現(xiàn)第二實施例的方法,以及使用第三實施例的方法更新第一實施例中的推理知識庫。以上所述僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當(dāng)指出,對于本
技術(shù)領(lǐng)域:
的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。權(quán)利要求1、一種自動問答系統(tǒng),包括接口單元、分詞單元、推理單元、語言知識庫、推理知識庫,其特征在于,還包括關(guān)鍵詞歸一化表,用于存儲同義關(guān)鍵詞的分組,并在每一組同義詞中確定一個關(guān)鍵詞,作為該組同義詞的歸一化詞;歸一化單元,用于接收所述分詞單元輸出的對用戶輸入問句分詞后產(chǎn)生的關(guān)鍵詞序列,并根據(jù)所獲得的關(guān)鍵詞,查詢所述關(guān)鍵詞歸一化表,獲得該關(guān)鍵詞序列的每一個關(guān)鍵詞的歸一化詞,從而獲得對應(yīng)于所述用戶輸入問句的歸一化詞序列,并將該歸一化詞序列輸出到所述推理單元;所述推理單元根據(jù)該歸一化詞序列查詢所述推理知識庫,找到與該歸一化詞序列具有相同關(guān)鍵詞序列的設(shè)定問句與所述用戶輸入問句匹配,并查詢該設(shè)定問句對應(yīng)的答句,將該答句作為系統(tǒng)應(yīng)答通過所述接口單元輸出。2、根據(jù)權(quán)利要求1所述的自動問答系統(tǒng),其特征在于,還包括推理知識庫生成子系統(tǒng),該子系統(tǒng)包括設(shè)定問句分詞單元,用于接收知識庫管理員輸入的設(shè)定問句,并根據(jù)所述語言知識庫存儲的關(guān)鍵詞信息對該問句進(jìn)行分詞,獲得對應(yīng)所述設(shè)定問句的關(guān)鍵詞序列;更新單元,用于接收所述設(shè)定問句的關(guān)鍵詞序列,以及管理員輸入的對所述設(shè)定問句的答句,將兩者的內(nèi)容以及對應(yīng)關(guān)系存儲到所述推理知識庫供所述推理單元查詢。3、根據(jù)權(quán)利要求2所述的自動問答系統(tǒng),其特征在于,所述推理知識庫生成子系統(tǒng),還包括設(shè)定問句歸一化單元,用于接收所述設(shè)定問句分詞單元輸出的關(guān)鍵詞序列,并查詢所述關(guān)鍵詞歸一化表,獲得對應(yīng)于該關(guān)鍵詞序列的每一個關(guān)鍵詞的歸一化詞,形成歸一化的關(guān)鍵詞序列;所述更新單元接收的所述設(shè)定問句的關(guān)鍵詞序列是所述歸一化的關(guān)鍵詞序列。4、根據(jù)權(quán)利要求3所述的自動問答系統(tǒng),其特征在于,所述設(shè)定問句歸一化單元使用與所述歸一化單元相同的關(guān)鍵詞歸一化表。5、根據(jù)權(quán)利要求1所述的自動問答系統(tǒng),其特征在于,所述推理知識庫用于存儲問答語句對,每一個問答語句對包括設(shè)定問句和對應(yīng)的答句;并且所述設(shè)定問句采用關(guān)鍵詞序列形式存儲,所述的關(guān)鍵詞中可以包含關(guān)鍵詞通配符。6、根據(jù)權(quán)利要求5所述的自動問答系統(tǒng),其特征在于,所述推理單元獲得的與用戶輸入問句的關(guān)鍵詞序列完全相同的設(shè)定問句,包括在若干位置上為任意詞通配符,而其他對應(yīng)位置的關(guān)^T建詞完全相同的設(shè)定問句。7、一種自動問答的方法,應(yīng)用于具有語言知識庫、推理知識庫、以及關(guān)鍵詞歸一化表的系統(tǒng),其特征在于,接收用戶輸入問句后進(jìn)行下述處理71)對用戶輸入問句進(jìn)行分詞,獲得關(guān)^t詞序列;72)對所述關(guān)鍵詞序列進(jìn)行歸一化處理;73)以歸一化處理后的關(guān)鍵詞序列作為依據(jù),查詢與該歸一化的關(guān)鍵詞序列具有完全相同的關(guān)鍵詞序列的設(shè)定問句;所述完全相同,包括關(guān)鍵詞相同和關(guān)鍵詞所處于的位置相同;74)根據(jù)所獲得的設(shè)定問句查找與該設(shè)定問句對應(yīng)的答句;75)將所述答句作為對所述用戶輸入問句的系統(tǒng)應(yīng)答輸出。8、根據(jù)權(quán)利要求7所述的自動應(yīng)答方法,其特征在于,所述步驟72)的歸一化處理根據(jù)關(guān)鍵詞歸一化表進(jìn)行。9、根據(jù)權(quán)利要求7所述的自動應(yīng)答方法,其特征在于,所述步驟73)的查詢過程,具體是按照使用歸一化的關(guān)鍵詞序列,在所述推理知識庫中查找與該關(guān)鍵詞序列頭一個關(guān)鍵詞具有相同關(guān)鍵詞的設(shè)定問句,將獲得的所有問句作為當(dāng)前結(jié)果集合;對下一個關(guān)鍵詞的查找以所述當(dāng)前結(jié)果集合為檢索范圍,進(jìn)行與上述步驟同樣的查找,直到所述關(guān)鍵詞序列的所有關(guān)鍵詞查找完畢。10、根據(jù)權(quán)利要求9所述的自動應(yīng)答方法,其特征在于,所述相同關(guān)鍵詞,可以為任意詞通配符。11、根據(jù)權(quán)利要求9所述的自動應(yīng)答方法,其特征在于,所述步驟73)獲得的與該歸一化的關(guān)鍵詞序列具有完全相同的關(guān)鍵詞序列的設(shè)定問句可以為多個設(shè)定問句的結(jié)果集合;此時,所述步驟74)隨機選取將該結(jié)果集合中某一個設(shè)定問句對應(yīng)的答句作為系統(tǒng)應(yīng)答。12、根據(jù)權(quán)利要求7所述的自動應(yīng)答方法,其特征在于,若所述步驟73)無法獲得與用戶問句的歸一化的關(guān)鍵詞詞序列具有完全相同的關(guān)鍵詞序列的設(shè)定問句,則選擇一個缺省答句作為系統(tǒng)應(yīng)答,不進(jìn)行步驟74)、步驟75)。13、一種更新自動問答系統(tǒng)的推理知識庫的方法,其特征在于,接收知識庫管理員輸入的問答語句對后,進(jìn)行如下處理131)對所述設(shè)定問答語句對的設(shè)定問句進(jìn)行分詞,獲得對應(yīng)于該設(shè)定問句的關(guān)鍵詞序列;132)將上一步驟所獲得的關(guān)鍵詞序列進(jìn)行歸一化處理;133)將歸一化處理后的所述設(shè)定問句的關(guān)鍵詞序列,以及對應(yīng)于該設(shè)定問句的答句加入推理知識庫。14、根據(jù)權(quán)利要求13所述的方法,其特征在于,所述步驟132)進(jìn)行歸一化處理中,采用與系統(tǒng)應(yīng)答時相同的關(guān)鍵詞歸一化表。全文摘要本發(fā)明公開一種自動問答系統(tǒng),包括接口單元、分詞單元、推理單元、語言知識庫、推理知識庫、關(guān)鍵詞歸一化表、歸一化單元,推理單元根據(jù)歸一化詞序列查詢所述推理知識庫,找到與該歸一化詞序列具有相同關(guān)鍵詞序列的設(shè)定問句對應(yīng)的答句,將該答句作為系統(tǒng)應(yīng)答通過所述接口單元輸出。本發(fā)明同時提供一種自動問答的方法,用于具有語言知識庫、推理知識庫、以及關(guān)鍵詞歸一化表的系統(tǒng),包括對用戶輸入問句進(jìn)行分詞;對分詞獲得的關(guān)鍵詞序列進(jìn)行歸一化;用歸一化后的關(guān)鍵詞序列查找具有完全相同的關(guān)鍵詞序列的設(shè)定問句;根據(jù)設(shè)定問句查找對應(yīng)的答句;將所述答句作為系統(tǒng)應(yīng)答輸出。本發(fā)明通過同義關(guān)鍵詞的歸一化減少搭建推理知識庫的工作量。文檔編號G06F17/00GK101097573SQ200610090738公開日2008年1月2日申請日期2006年6月28日優(yōu)先權(quán)日2006年6月28日發(fā)明者楊海松申請人:騰訊科技(深圳)有限公司