本發(fā)明涉及人機(jī)對話技術(shù)領(lǐng)域,尤其涉及一種基于上下文的人機(jī)對話方法。
背景技術(shù):
目前人機(jī)對話方法為機(jī)器獲取用戶輸入的問題,然后通過自然語言理解模塊對問題進(jìn)行語義理解,根據(jù)語義給出相應(yīng)的回答。這種方法存在的一個弊端是,若用戶給出的問題信息不全,但又與之前問題相關(guān)時,只根據(jù)當(dāng)前問題的語義獲取的答案效果并不能符合預(yù)期效果,也即這樣的回答并不符合實際人與人的對話過程。
技術(shù)實現(xiàn)要素:
鑒于上述技術(shù)問題,本發(fā)明提供一種基于上下文的人機(jī)對話方法,在理解用戶問題時,結(jié)合上下文來理解問題,這樣可以提升對用戶問題語義理解的準(zhǔn)確度。
本發(fā)明解決上述技術(shù)問題的主要技術(shù)方案為:
一種基于上下文的人機(jī)對話方法,其特征在于,包括:
接收客戶端發(fā)送的用戶問題,對所述用戶問題進(jìn)行分詞以得到若干分詞數(shù)據(jù);
將所述分詞數(shù)據(jù)與預(yù)存于服務(wù)器中與上下文主題對應(yīng)的優(yōu)先查詢模板相匹配,以確定與所述用戶問題對應(yīng)的上下文主題,且所述確定的上下文主題中包含查詢所需要的關(guān)鍵項集合;
根據(jù)所述確定的上下文主題從所述分詞數(shù)據(jù)中提取查詢所需要的關(guān)鍵詞集合;若所述分詞數(shù)據(jù)中不完全包含所述關(guān)鍵詞集合中的所有關(guān)鍵詞,則從所述確定的上下文主題的關(guān)鍵項集合中提取與缺失的關(guān)鍵詞對應(yīng)的關(guān)鍵項;
根據(jù)所述確定的上下文主題、所述關(guān)鍵詞集合和所述與缺失的關(guān)鍵詞對應(yīng)的關(guān)鍵項,從服務(wù)器的數(shù)據(jù)庫中獲取相應(yīng)的答案回復(fù)至客戶端。
優(yōu)選的,上述的基于上下文的人機(jī)對話方法,其中,若所述分詞數(shù)據(jù)與所述優(yōu)先查詢模板無法匹配時:
將所述分詞數(shù)據(jù)與預(yù)存于服務(wù)器中與上下文主題對應(yīng)的問題查詢模板相匹配,以確定與所述用戶問題對應(yīng)的上下文主題;以及
繼續(xù)提取所述關(guān)鍵詞集合。
優(yōu)選的,上述的基于上下文的人機(jī)對話方法,其中,將所述關(guān)鍵詞集合替換所述關(guān)鍵項集合中對應(yīng)的關(guān)鍵項。
優(yōu)選的,上述的基于上下文的人機(jī)對話方法,其中,若所述分詞數(shù)據(jù)與所述問題查詢模板無法匹配時:
將所述分詞數(shù)據(jù)與所有的主題模板相匹配,以確定所述用戶問題的主題;以及
從所述分詞數(shù)據(jù)中提取所述用戶問題的關(guān)鍵詞,并根據(jù)所述關(guān)鍵詞和所述主題,從所述數(shù)據(jù)庫中獲取相應(yīng)的答案回復(fù)至客戶端。
優(yōu)選的,上述的基于上下文的人機(jī)對話方法,其中,將所述主題作為一新主題替換所述服務(wù)器中存儲的最早的上下文主題,并將所述用戶問題的關(guān)鍵詞作為所述新主題的關(guān)鍵項。
優(yōu)選的,上述的基于上下文的人機(jī)對話方法,其中,若所述分詞數(shù)據(jù)與所有的所述主題模板均無法匹配時:
將所述分詞數(shù)據(jù)與服務(wù)器中的預(yù)存問題相匹配,并選取匹配度最高的預(yù)存問題的答案回復(fù)至客戶端。
優(yōu)選的,上述的基于上下文的人機(jī)對話方法,其中,若所述分詞數(shù)據(jù)與服務(wù)器中的所述預(yù)存問題均無法匹配時,選取所述數(shù)據(jù)庫中預(yù)先存儲的其他無關(guān)回答作為答案回復(fù)至客戶端。
上述技術(shù)方案具有如下優(yōu)點或有益效果:
本發(fā)明將從客戶端接收到的用戶問題進(jìn)行分詞,得到組成用戶問題的各個詞匯數(shù)據(jù),然后將這些詞匯數(shù)據(jù)與預(yù)存于服務(wù)器中的與上下文主題對應(yīng)的優(yōu)先查詢模板、問題查詢模板或者所有的主題模板相匹配;并從這些詞匯數(shù)據(jù)中提取用戶問題的關(guān)鍵詞集合,與包含于確定的上下文主題的關(guān)鍵項集合匹配對應(yīng),根據(jù)關(guān)鍵詞和關(guān)鍵項,從數(shù)據(jù)庫中獲取相應(yīng)的答案作為回答回復(fù)至客戶端。通過這種結(jié)合上下文信息來理解用戶問題的方法,可以有效提升對于用戶問題的語義的理解準(zhǔn)確性,從而提升回答的準(zhǔn)確度。
附圖說明
參考所附附圖,以更加充分地描述本發(fā)明的實施例。然而,所附附圖僅用于說明和闡述,并不構(gòu)成對本發(fā)明范圍的限制。
圖1為本發(fā)明的基于上下文的人機(jī)對話的流程圖。
具體實施方式
在下文的描述中,給出了大量具體的細(xì)節(jié)以便提供對本發(fā)明更為徹底的理解。當(dāng)然除了這些詳細(xì)描述外,本發(fā)明還可以具有其他實施方式。
參照圖1,本發(fā)明的基于上下文的人機(jī)對話方法,包括:
第一步,接收客戶端發(fā)送的用戶問題,對用戶問題進(jìn)行分詞以得到若干分詞數(shù)據(jù)(分詞數(shù)據(jù)包括用于表示用戶問題所屬句型的句型數(shù)據(jù)和用于表示用戶問題關(guān)鍵信息的關(guān)鍵詞數(shù)據(jù));
第二步,將分詞數(shù)據(jù)(例如抽取其中的句型數(shù)據(jù))與預(yù)存于服務(wù)器中與上下文主題對應(yīng)的優(yōu)先查詢模板相匹配,以確定與用戶問題對應(yīng)的上下文主題,且該確定的上下文主題中包含查詢所需要的關(guān)鍵項集合;
第三步,根據(jù)確定的上下文主題從分詞數(shù)據(jù)中提取查詢所需要的關(guān)鍵詞集合(也即代表用戶問題關(guān)鍵信息的關(guān)鍵詞數(shù)據(jù)),若分詞數(shù)據(jù)中不完全包含查詢所需要的關(guān)鍵詞集合中的所有關(guān)鍵詞,則從上一步確定的上下文主題的關(guān)鍵項集合中提取與缺失的關(guān)鍵詞對應(yīng)的關(guān)鍵項;
第四步,根據(jù)上述確定的上下文主題、關(guān)鍵詞集合和與缺失的關(guān)鍵詞對應(yīng)的關(guān)鍵項,從服務(wù)器的數(shù)據(jù)庫中獲取相應(yīng)的答案回復(fù)至客戶端。
進(jìn)一步的,在第二步中,若分詞數(shù)據(jù)與優(yōu)先查詢模板無法匹配時,再將分詞數(shù)據(jù)與預(yù)存于服務(wù)器中與上下文主題對應(yīng)的問題查詢模板相匹配,以確定與用戶問題對應(yīng)的上下文主題;并繼續(xù)后面的提取關(guān)鍵詞集合等步驟。
對應(yīng)地,確定與用戶問題匹配的上下文主題后,將用戶問題的關(guān)鍵詞集合替換該確定的上下文主題的關(guān)鍵項集合中對應(yīng)的關(guān)鍵項。
再進(jìn)一步的,在第二步中,若分詞數(shù)據(jù)與預(yù)存于服務(wù)器中與上下文主題對應(yīng)的問題查詢模板也無法匹配時,將分詞數(shù)據(jù)與所有的主題模板相匹配,以確定用戶問題的主題;并從分詞數(shù)據(jù)中提取用戶問題的關(guān)鍵詞,然后根據(jù)關(guān)鍵詞和主題,從數(shù)據(jù)庫中獲取相應(yīng)的答案回復(fù)至客戶端。
對應(yīng)地,將該匹配的主題作為一新主題替換服務(wù)器中存儲的最早的上下文主題,并將用戶問題的關(guān)鍵詞作為該新主題的關(guān)鍵項。
繼續(xù),若分詞數(shù)據(jù)與上述所有的主題模板均無法匹配時,則將分詞數(shù)據(jù)與服務(wù)器中的預(yù)存問題相匹配,并選取匹配度最高的預(yù)存問題的答案回復(fù)至客戶端。
最后,若分詞數(shù)據(jù)與服務(wù)器中的所有的預(yù)存問題均無法匹配時,則選取數(shù)據(jù)庫中預(yù)先存儲的其他無關(guān)回答(例如詼諧的幽默的回答,以轉(zhuǎn)移話題)作為答案回復(fù)至客戶端。
需要注意的是,上述提及的關(guān)鍵詞集合指的是查詢所需要的不同字段的值的集合,例如“天氣”主題中查詢字段為“城市”、“日期”,而對應(yīng)的上下文主題中已存儲的關(guān)鍵項為“北京”、“今天”,用戶問題為“那上海呢”中的關(guān)鍵詞為“上海”,缺失的是“日期”的值,則從關(guān)鍵項中取“今天”,組成關(guān)鍵詞集合“上海”,“今天”。
下面結(jié)合三個具體的實施例詳細(xì)闡述本發(fā)明的基于上下文的人機(jī)對話方法。
實施例一:
與存儲的上下文主題對應(yīng)的優(yōu)先查詢模板相匹配的情形:
已存儲的主題中有“家庭信息”,關(guān)鍵項為:爸爸、電話。
用戶發(fā)出問題:“那媽媽呢”。
服務(wù)器接收到用戶問題“那媽媽呢”,將用戶問題分詞得到:“那”、“媽媽”、“呢”三個分詞數(shù)據(jù);
將“那”、“媽媽”、“呢”與存儲的上下文主題對應(yīng)的優(yōu)先查詢模板“那...呢”匹配;
從用戶問題中提取模板查詢所需關(guān)鍵詞“媽媽”,從存儲的上下文主題中獲取關(guān)鍵項“電話”;
根據(jù)該上下文主題設(shè)定的語義是要獲取媽媽的電話,則從數(shù)據(jù)庫中獲取相應(yīng)的答案回復(fù)至客戶端;
并將關(guān)鍵詞“媽媽”替換已存儲的關(guān)鍵項“爸爸”。
實施例二:
與存儲的上下文主題對應(yīng)的問題查詢模板匹配的情形:
已存儲的主題中有“家庭信息”,關(guān)鍵項為:爸爸、電話。
用戶發(fā)出問題:“你能告訴我媽媽的嗎”。
服務(wù)器接收到用戶問題“你能告訴我媽媽的嗎”,將該用戶問題分詞得到:“你”、“能”、“告訴”、“我”、“媽媽”、“的”、“嗎”這幾個分詞數(shù)據(jù);
將“你”、“能”、“告訴”、“我”、“媽媽”、“的”、“嗎”與存儲的上下文主題對應(yīng)的優(yōu)先查詢模板沒能匹配;
再將“你”、“能”、“告訴”、“我”、“媽媽”、“的”、“嗎”與存儲的上下文主題對應(yīng)的問題查詢模板“告訴我...的...”匹配;
從用戶問題中提取模板查詢所需關(guān)鍵詞“媽媽”,并從存儲的上下文主題中獲取關(guān)鍵項“電話”;
根據(jù)主題設(shè)定的語義是要獲取媽媽的電話,則從數(shù)據(jù)庫中獲取相應(yīng)的答案回復(fù)至客戶端;
并將關(guān)鍵詞“媽媽”替換已存儲的關(guān)鍵項“爸爸”。
實施例三
與所有主題模板進(jìn)行匹配的情形:
已存儲的主題中有“家庭信息”,關(guān)鍵字為:爸爸、電話。
用戶若問“北京天氣今天怎么樣”。
服務(wù)器接收用戶問題“北京天氣今天怎么樣”,將問題分詞得到:“北京”、“天氣”、“今天”、“怎么樣”幾個分詞數(shù)據(jù);
將“北京”、“天氣”、“今天”、“怎么樣”與存儲的上下文主題對應(yīng)的優(yōu)先查詢模板沒能匹配;
再將“北京”、“天氣”、“今天”、“怎么樣”與存儲的上下文主題對應(yīng)的問題查詢模板也沒能匹配;
繼續(xù)將“北京”、“天氣”、“今天”、“怎么樣”與所有主題模板進(jìn)行匹配,發(fā)現(xiàn)與“天氣”主題中“...天氣怎么樣”可以匹配;
則從用戶問題中獲取模板查詢所需關(guān)鍵詞“北京”;
根據(jù)主題設(shè)定的語義是要“獲取北京今天的天氣預(yù)報”,則從數(shù)據(jù)庫中獲取天氣查詢鏈接,從而查詢得到答案;
最后將“家庭信息”主題刪除,存儲“天氣”主題,并將該主題的關(guān)鍵項存儲為“北京”,“今天”。
綜上所述,本發(fā)明公開的一種基于上下文的人機(jī)對話方法,將從客戶端接收到的用戶問題進(jìn)行分詞,得到組成用戶問題的各個詞匯數(shù)據(jù),然后將這些詞匯數(shù)據(jù)與預(yù)存于服務(wù)器中的與上下文主題對應(yīng)的優(yōu)先查詢模板、問題查詢模板或者所有的主題模板相匹配;并從這些詞匯數(shù)據(jù)中提取用戶問題的關(guān)鍵詞集合,與包含于確定的上下文主題的關(guān)鍵項集合匹配對應(yīng),根據(jù)關(guān)鍵詞和關(guān)鍵項,從數(shù)據(jù)庫中獲取相應(yīng)的答案作為回答回復(fù)至客戶端。通過這種結(jié)合上下文信息來理解用戶問題的方法,可以有效提升對于用戶問題的語義的理解準(zhǔn)確性,從而提升回答的準(zhǔn)確度。
對于本領(lǐng)域的技術(shù)人員而言,閱讀上述說明后,各種變化和修正無疑將顯而易見。因此,所附的權(quán)利要求書應(yīng)看作是涵蓋本發(fā)明的真實意圖和范圍的全部變化和修正。在權(quán)利要求書范圍內(nèi)任何和所有等價的范圍與內(nèi)容,都應(yīng)認(rèn)為仍屬本發(fā)明的意圖和范圍內(nèi)。