本發(fā)明的實施方式涉及人機(jī)交互領(lǐng)域,更具體地,本發(fā)明的實施方式涉及多輪會話交互方法、多輪會話交互裝置以及計算機(jī)可讀存儲介質(zhì)。
背景技術(shù):
本部分旨在為權(quán)利要求書中陳述的本發(fā)明的實施方式提供背景或上下文。此處的描述不因為包括在本部分中就承認(rèn)是現(xiàn)有技術(shù)。
基于一定的對話規(guī)則,允許人機(jī)進(jìn)行多輪會話,從而讓機(jī)器理解用戶的深層意圖并提供反饋一直是人機(jī)交互領(lǐng)域所努力的方向。
目前,已經(jīng)出現(xiàn)了少許人機(jī)多輪會話方法。典型地,現(xiàn)有技術(shù)中國發(fā)明專利申請CN104408639A公開了一種多輪會話交互方法和系統(tǒng),以實現(xiàn)系統(tǒng)動作具有樹形層次依賴關(guān)系的任務(wù)型會話。該多輪會話交互方法包括:接收用戶需求信息;將所述用戶需求信息向預(yù)置在本地的多個需求結(jié)構(gòu)樹中各節(jié)點包含的標(biāo)準(zhǔn)需求進(jìn)行映射,在所述需求結(jié)構(gòu)樹中,每個節(jié)點包含的標(biāo)準(zhǔn)需求是其子節(jié)點包含的標(biāo)準(zhǔn)需求的上位需求;若所述多個需求結(jié)構(gòu)樹中存在一個節(jié)點,其包含的所述標(biāo)準(zhǔn)需求被所述用戶需求信息命中,則輸出被命中的非葉子節(jié)點的子節(jié)點包含的標(biāo)準(zhǔn)需求內(nèi)容,或者輸出被命中的葉子節(jié)點對應(yīng)的會話信息。據(jù)專利申請文件記載,該專利申請的技術(shù)方案不僅實現(xiàn)了有樹形層次依賴關(guān)系的任務(wù)型會話任務(wù)交互,而且提高了標(biāo)準(zhǔn)需求被命中的可能性。
然而,專利申請CN104408639A公開的技術(shù)方案存在著明顯的不足。該技術(shù)方案中業(yè)務(wù)(即“需求”)與算法過于耦合,同樣的算法難以應(yīng)用于多個不同的業(yè)務(wù),編程人員需要針對不同的業(yè)務(wù)花費(fèi)大量編程時間。例如其中的關(guān)鍵環(huán)節(jié)“需求結(jié)構(gòu)樹”需要根據(jù)業(yè)務(wù)定制構(gòu)建。為實現(xiàn)多輪會話,需要針對不同的業(yè)務(wù)分別構(gòu)建不同的算法,這使得該種多輪會話交互方法難以大規(guī)模應(yīng)用。
技術(shù)實現(xiàn)要素:
由于現(xiàn)有技術(shù)中業(yè)務(wù)(即“需求”)與算法過于耦合,同樣的算法難以應(yīng)用于多個不同的業(yè)務(wù),編程人員需要針對不同的業(yè)務(wù)花費(fèi)大量編程時間,因此,現(xiàn)有技術(shù)很難實現(xiàn)拓展以及規(guī)?;瘧?yīng)用。
在現(xiàn)有技術(shù)中,必須根據(jù)不同的業(yè)務(wù)逐個定制算法,以盡可能實現(xiàn)多輪次的人機(jī)會話,這是非常令本領(lǐng)域技術(shù)人員煩惱的過程。
為此,非常需要一種新的多輪會話交互技術(shù)方案,以使多輪會話交互技術(shù)具備可拓展性,提高多輪會話的構(gòu)建效率,從而實現(xiàn)多輪會話交互技術(shù)的規(guī)?;瘧?yīng)用。
在本上下文中,本發(fā)明的實施方式期望提供一種多輪會話交互方法、裝置以及計算機(jī)可讀存儲介質(zhì)。
在本發(fā)明實施方式的第一方面中,提供了一種多輪會話交互方法,該方法包括:接收終端用戶需求信息;根據(jù)終端用戶需求信息判斷終端用戶意圖所對應(yīng)的目標(biāo)函數(shù);調(diào)用所述目標(biāo)函數(shù);獲取所述目標(biāo)函數(shù)的第1級關(guān)聯(lián)函數(shù),并獲取所述第1級關(guān)聯(lián)函數(shù)對應(yīng)的第一觸發(fā)表達(dá);向所述終端用戶發(fā)送所述第一觸發(fā)表達(dá),并根據(jù)接收到的所述終端用戶針對所述第一觸發(fā)表達(dá)的回應(yīng),判斷是否調(diào)用所述第1級關(guān)聯(lián)函數(shù)。
在本發(fā)明的一個實施例中,該多輪會話交互方法還包括:當(dāng)調(diào)用第N級關(guān)聯(lián)函數(shù)時,獲取所述第N級關(guān)聯(lián)函數(shù)的第N+1級關(guān)聯(lián)函數(shù),并獲取所述第N+1級關(guān)聯(lián)函數(shù)對應(yīng)的第二觸發(fā)表達(dá);向所述終端用戶發(fā)送所述第二觸發(fā)表達(dá),并根據(jù)接收到的所述終端用戶針對所述第二觸發(fā)表達(dá)的回應(yīng),判斷是否調(diào)用所述第N+1級關(guān)聯(lián)函數(shù),其中,N為自然數(shù)。
在本發(fā)明的另一實施例中,該多輪會話交互方法還包括:根據(jù)終端用戶需求信息提取所述目標(biāo)函數(shù)的參數(shù)信息,如果終端用戶需求信息中缺少所述目標(biāo)函數(shù)的參數(shù)信息,則獲取所述目標(biāo)函數(shù)對應(yīng)的第一參數(shù)獲取表達(dá);向所述終端用戶發(fā)送所述第一參數(shù)獲取表達(dá),并根據(jù)所述終端用戶針對所述第一參數(shù)獲取表達(dá)的回應(yīng),獲取缺少的該目標(biāo)函數(shù)的參數(shù)信息。
在本發(fā)明的又一個實施例中,該多輪會話交互方法還包括:根據(jù)終端用戶需求信息和N級關(guān)聯(lián)函數(shù)的處理結(jié)果,提取所述第N+1級關(guān)聯(lián)函數(shù)的參數(shù)信息,如果終端用戶需求信息和N級關(guān)聯(lián)函數(shù)的處理結(jié)果中缺少該第N+1級關(guān)聯(lián)函數(shù)的參數(shù)信息,則獲取所述第N+1級關(guān)聯(lián)函數(shù)對應(yīng)的第二參數(shù)獲取表達(dá);向所述終端用戶發(fā)送所述第二參數(shù)獲取表達(dá),并根據(jù)所述終端用戶針對所述第二參數(shù)獲取表達(dá)的回應(yīng),獲取缺少的所述第N+1級關(guān)聯(lián)函數(shù)的參數(shù)信息。
優(yōu)選地,所述函數(shù)具有統(tǒng)一的定義規(guī)范。
更優(yōu)選地,所述統(tǒng)一的定義規(guī)范包括:所述函數(shù)本身、所述函數(shù)的觸發(fā)表達(dá)以及所述函數(shù)的參數(shù)獲取表達(dá)。
在本發(fā)明的再一個實施例中,該多輪會話交互方法還包括:通過可視化編程的方式建立所述目標(biāo)函數(shù)和所述第1級關(guān)聯(lián)函數(shù)之間的關(guān)聯(lián)關(guān)系,和/或所述第N級關(guān)聯(lián)函數(shù)和所述第N+1級關(guān)聯(lián)函數(shù)之間的關(guān)聯(lián)關(guān)系。
優(yōu)選地,所述可視化編程的方式包括:在可視化編程界面中,響應(yīng)于連接線的拖拽操作,建立函數(shù)之間的關(guān)聯(lián)關(guān)系。
在本發(fā)明實施方式的第二方面中,提供了一種多輪會話交互裝置,包括:接收模塊,用于接收終端用戶需求信息;判斷模塊,用于根據(jù)終端用戶需求信息判斷終端用戶意圖所對應(yīng)的目標(biāo)函數(shù);調(diào)用模塊,用于調(diào)用所述目標(biāo)函數(shù);獲取模塊,用于獲取所述目標(biāo)函數(shù)的第1級關(guān)聯(lián)函數(shù),并獲取所述第1級關(guān)聯(lián)函數(shù)對應(yīng)的第一觸發(fā)表達(dá);第一關(guān)聯(lián)模塊,用于向所述終端用戶發(fā)送所述第一觸發(fā)表達(dá),并根據(jù)接收到的所述終端用戶針對所述第一觸發(fā)表達(dá)的回應(yīng),判斷是否調(diào)用所述第1級關(guān)聯(lián)函數(shù)。
在本發(fā)明的一個實施例中,該多輪會話交互裝置還包括:第二關(guān)聯(lián)模塊,用于當(dāng)調(diào)用第N級關(guān)聯(lián)函數(shù)時,獲取所述第N級關(guān)聯(lián)函數(shù)的第N+1級關(guān)聯(lián)函數(shù),并獲取所述第N+1級關(guān)聯(lián)函數(shù)對應(yīng)的第二觸發(fā)表達(dá);向所述終端用戶發(fā)送所述第二觸發(fā)表達(dá),并根據(jù)接收到的所述終端用戶針對所述第二觸發(fā)表達(dá)的回應(yīng),判斷是否調(diào)用所述第N+1級關(guān)聯(lián)函數(shù),其中,N為自然數(shù)。
在本發(fā)明的另一個實施例中,該多輪會話交互裝置還包括:第一參數(shù)模塊,用于根據(jù)終端用戶需求信息提取所述目標(biāo)函數(shù)的參數(shù)信息,如果終端用戶需求信息中缺少所述目標(biāo)函數(shù)的參數(shù)信息,則獲取所述目標(biāo)函數(shù)對應(yīng)的第一參數(shù)獲取表達(dá);向所述終端用戶發(fā)送所述第一參數(shù)獲取表達(dá),并根據(jù)所述終端用戶針對所述第一參數(shù)獲取表達(dá)的回應(yīng),獲取缺少的該目標(biāo)函數(shù)的參數(shù)信息。
在本發(fā)明的又一個實施例中,該多輪會話交互裝置還包括:第二參數(shù)模塊,用于根據(jù)終端用戶需求信息和N級關(guān)聯(lián)函數(shù)的處理結(jié)果,提取所述第N+1級關(guān)聯(lián)函數(shù)的參數(shù)信息,如果終端用戶需求信息和N級關(guān)聯(lián)函數(shù)的處理結(jié)果中缺少該第N+1級關(guān)聯(lián)函數(shù)的參數(shù)信息,則獲取所述第N+1級關(guān)聯(lián)函數(shù)對應(yīng)的第二參數(shù)獲取表達(dá);向所述終端用戶發(fā)送所述第二參數(shù)獲取表達(dá),并根據(jù)所述終端用戶針對所述第二參數(shù)獲取表達(dá)的回應(yīng),獲取缺少的所述第N+1級關(guān)聯(lián)函數(shù)的參數(shù)信息。
優(yōu)選地,所述函數(shù)具有統(tǒng)一的定義規(guī)范。
更優(yōu)選地,所述統(tǒng)一的定義規(guī)范包括:所述函數(shù)本身、所述函數(shù)的觸發(fā)表達(dá)以及所述函數(shù)的參數(shù)獲取表達(dá)。
在本發(fā)明的再一個實施例中,該多輪會話交互裝置還包括:設(shè)置關(guān)聯(lián)關(guān)系模塊,用于通過可視化編程的方式建立所述目標(biāo)函數(shù)和所述第1級關(guān)聯(lián)函數(shù)之間的關(guān)聯(lián)關(guān)系,和/或所述第N級關(guān)聯(lián)函數(shù)和所述第N+1級關(guān)聯(lián)函數(shù)之間的關(guān)聯(lián)關(guān)系。
優(yōu)選地,所述設(shè)置關(guān)聯(lián)關(guān)系模塊包括:拖拽子模塊,用于在可視化編程界面中,響應(yīng)于連接線的拖拽操作,建立函數(shù)之間的關(guān)聯(lián)關(guān)系。
在本發(fā)明實施方式的第三方面中,提供了一種計算機(jī)可讀存儲介質(zhì),其上存儲有計算機(jī)程序,該程序被處理器執(zhí)行時實現(xiàn)下述步驟:接收終端用戶需求信息;根據(jù)終端用戶需求信息判斷終端用戶意圖所對應(yīng)的目標(biāo)函數(shù);調(diào)用所述目標(biāo)函數(shù);獲取所述目標(biāo)函數(shù)的第1級關(guān)聯(lián)函數(shù),并獲取所述第1級關(guān)聯(lián)函數(shù)對應(yīng)的第一觸發(fā)表達(dá);向所述終端用戶發(fā)送所述第一觸發(fā)表達(dá),并根據(jù)接收到的所述終端用戶針對所述第一觸發(fā)表達(dá)的回應(yīng),判斷是否調(diào)用所述第1級關(guān)聯(lián)函數(shù)。
根據(jù)本發(fā)明實施方式的多輪會話交互方法、多輪會話交互裝置以及計算機(jī)可讀存儲介質(zhì),通過將不同的業(yè)務(wù)關(guān)聯(lián)起來,實現(xiàn)了自定義的多業(yè)務(wù)組合;通過統(tǒng)一的函數(shù)定義規(guī)范去除了現(xiàn)有技術(shù)中業(yè)務(wù)與算法的高度耦合,從而實現(xiàn)了多輪會話交互技術(shù)的大規(guī)模、多場景應(yīng)用,極大地提高了多輪會話的構(gòu)建效率,將多輪會話交互技術(shù)提升到了一個新的高度。
附圖說明
通過參考附圖閱讀下文的詳細(xì)描述,本發(fā)明示例性實施方式的上述以及其他目的、特征和優(yōu)點將變得易于理解。在附圖中,以示例性而非限制性的方式示出了本發(fā)明的若干實施方式,其中:
圖1示意性地示出了根據(jù)本發(fā)明實施方式的可以在其中實現(xiàn)的應(yīng)用場景;
圖2示意性地示出了根據(jù)本發(fā)明一實施例的多輪會話交互方法的流程圖;以及
圖3示意性地示出了根據(jù)本發(fā)明一實施例的多輪會話交互裝置的結(jié)構(gòu)示意圖。
在附圖中,相同或?qū)?yīng)的標(biāo)號表示相同或?qū)?yīng)的部分。
具體實施方式
下面將參考若干示例性實施方式來描述本發(fā)明的原理和精神。應(yīng)當(dāng)理解,給出這些實施方式僅僅是為了使本領(lǐng)域技術(shù)人員能夠更好地理解進(jìn)而實現(xiàn)本發(fā)明,而并非以任何方式限制本發(fā)明的范圍。相反,提供這些實施方式是為了使本公開更加透徹和完整,并且能夠?qū)⒈竟_的范圍完整地傳達(dá)給本領(lǐng)域的技術(shù)人員。
本領(lǐng)域技術(shù)技術(shù)人員知道,本發(fā)明的實施方式可以實現(xiàn)為一種系統(tǒng)、裝置、設(shè)備、方法或計算機(jī)程序產(chǎn)品。因此,本公開可以具體實現(xiàn)為以下形式,即:完全的硬件、完全的軟件(包括固件、駐留軟件、微代碼等),或者硬件和軟件結(jié)合的形式。
根據(jù)本發(fā)明的實施方式,提出了一種多輪會話交互方法和多輪會話交互裝置。
在本文中,需要理解的是,所涉及的術(shù)語業(yè)務(wù)在一定環(huán)境下可以等同于人機(jī)對話領(lǐng)域的服務(wù)、需求以及功能等術(shù)語。此外,附圖中的任何元素數(shù)量均用于示例而非限制,以及任何命名都僅用于區(qū)分,而不具有任何限制含義。
下面參考本發(fā)明的若干代表性實施方式,詳細(xì)闡釋本發(fā)明的原理和精神。
本發(fā)明人發(fā)現(xiàn),在人機(jī)交互領(lǐng)域,現(xiàn)有技術(shù)存在著很多不足?,F(xiàn)有技術(shù)方案中業(yè)務(wù)(即“需求”)與算法過于耦合,同樣的算法難以應(yīng)用于多個不同的業(yè)務(wù),編程人員需要針對不同的業(yè)務(wù)花費(fèi)大量編程時間。例如現(xiàn)有技術(shù)中的關(guān)鍵環(huán)節(jié)“需求結(jié)構(gòu)樹”需要根據(jù)業(yè)務(wù)定制構(gòu)建。為實現(xiàn)多輪會話,需要針對不同的業(yè)務(wù)分別構(gòu)建不同的算法,這使得該種多輪會話交互方法難以大規(guī)模應(yīng)用。
為此,非常需要一種新的多輪會話交互技術(shù)方案,以使多輪會話交互技術(shù)具備可拓展性,提高多輪會話的構(gòu)建效率,從而實現(xiàn)多輪會話交互技術(shù)的規(guī)?;瘧?yīng)用。為實現(xiàn)此目的,本發(fā)明實施方式通過將不同的業(yè)務(wù)關(guān)聯(lián)起來,實現(xiàn)了自定義的多業(yè)務(wù)組合;本發(fā)明設(shè)置統(tǒng)一的函數(shù)定義規(guī)范去除了現(xiàn)有技術(shù)中業(yè)務(wù)與算法的高度耦合,從而實現(xiàn)了多輪會話交互技術(shù)的大規(guī)模、多場景應(yīng)用,極大地提高了多輪會話的構(gòu)建效率,將多輪會話交互技術(shù)提升到了一個新的高度。
在介紹了本發(fā)明的基本原理之后,下面具體介紹本發(fā)明的各種非限制性實施方式。
應(yīng)用場景總覽
首先參考圖1,示意性地示出了根據(jù)本發(fā)明實施方式在手機(jī)上實現(xiàn)的應(yīng)用場景。
圖1中,終端用戶在利用例如手機(jī)終端這樣的智能終端進(jìn)行人機(jī)交互。終端用戶通過語音或文字輸入需求信息后,手機(jī)終端通過訪問服務(wù)器或本地數(shù)據(jù)庫針對終端用戶輸入的需求信息進(jìn)行響應(yīng)。手機(jī)終端也能夠根據(jù)終端用戶輸入的需求信息輸出有關(guān)信息對終端用戶進(jìn)行引導(dǎo)。通過多輪次的信息交互,滿足終端用戶獲取目標(biāo)信息的需求。本發(fā)明不對智能終端的具體表現(xiàn)形式進(jìn)行限定,該智能終端可以表現(xiàn)為臺式計算機(jī)、筆記本電腦、手機(jī)、車載導(dǎo)航儀、智能手表等多種類型的智能終端。
示例性方法
下面結(jié)合圖1的應(yīng)用場景,參考圖2來描述根據(jù)本發(fā)明示例性實施方式的多輪會話交互方法。需要注意的是,上述應(yīng)用場景僅是為了便于理解本發(fā)明的精神和原理而示出,本發(fā)明的實施方式在此方面不受任何限制。相反,本發(fā)明的實施方式可以應(yīng)用于適用的任何場景。
圖2為本發(fā)明提供的多輪會話交互方法的一個實施例的方法流程圖,該方法的執(zhí)行主體可以是具有多輪會話功能的交互裝置。如圖2所示,該多輪會話交互方法具體可以包括:
S210,接收終端用戶需求信息。
需求信息本質(zhì)上是終端用戶輸入的信息,需求信息可以是各種形式的,例如,語音、文字以及圖片等中的一種或多種。作為示例,需求信息可能是終端用戶輸入的文字信息“幫我查下附近的酒店”,需求信息可能是終端用戶輸入的一幅圖像,也可能是終端用戶輸入的一段語音。
S220,根據(jù)終端用戶需求信息判斷終端用戶意圖所對應(yīng)的目標(biāo)函數(shù)。
以終端用戶輸入的文字信息“幫我查下附近的酒店”為例,在接收終端用戶需求信息“幫我查下附近的酒店”后,分析終端用戶的意圖以及根據(jù)該意圖判斷對應(yīng)的目標(biāo)函數(shù)。
根據(jù)終端用戶輸入的需求信息分析終端用戶的意圖(意圖分析,intention recognition)的實現(xiàn)方式可以有多種,本發(fā)明對此不進(jìn)行限定。例如,本發(fā)明中分析終端用戶的意圖可以通過深度學(xué)習(xí)實現(xiàn),也可以通過語義分析實現(xiàn),也可以通過其他任何意圖分析技術(shù)實現(xiàn)。
在分析需求信息“幫我查下附近的酒店”后,可以確定終端用戶意圖是“附近的酒店”。根據(jù)該終端用戶意圖,匹配與之對應(yīng)的目標(biāo)函數(shù),比如,酒店函數(shù)。其中,酒店函數(shù)可以是預(yù)先設(shè)定好的。具體的匹配方法可以是多樣的,可以根據(jù)終端用戶意圖“附近的酒店”進(jìn)行整體關(guān)聯(lián),也可以根據(jù)終端用戶意圖“附近的酒店”中的部分信息(例如,“酒店”)進(jìn)行關(guān)聯(lián)。
S230,調(diào)用所述目標(biāo)函數(shù)。
步驟S220中已經(jīng)確定了目標(biāo)函數(shù),即酒店函數(shù)。本步驟中,根據(jù)終端用戶需求信息和/或終端用戶意圖運(yùn)行確定了的目標(biāo)函數(shù)。以需求信息“幫我查下附近的酒店”和終端用戶意圖“附近的酒店”為例,酒店函數(shù)將據(jù)此執(zhí)行并調(diào)用相關(guān)酒店數(shù)據(jù)庫中的信息并輸出相關(guān)信息呈現(xiàn)給終端用戶,作為示例,輸出的相關(guān)信息可以是“最近的酒店是漢皇大酒店,位于新北區(qū)南浦路30號,聯(lián)系電話099-56450000”。相關(guān)信息呈現(xiàn)方式可以是語音、文字、圖片等一種或多種形式,本發(fā)明對此不進(jìn)行限定。
S240,獲取所述目標(biāo)函數(shù)的第1級關(guān)聯(lián)函數(shù),并獲取所述第1級關(guān)聯(lián)函數(shù)對應(yīng)的第一觸發(fā)表達(dá)。
其中,關(guān)聯(lián)函數(shù)是與目標(biāo)函數(shù)具有相關(guān)性的函數(shù)。這種相關(guān)性可以是人為設(shè)置的,也就是說目標(biāo)函數(shù)所對應(yīng)的關(guān)聯(lián)函數(shù)是可以任意設(shè)定的。
在S230中,目標(biāo)函數(shù)酒店函數(shù)運(yùn)行并輸出了相關(guān)信息“最近的酒店是漢皇大酒店,位于新北區(qū)南浦路30號,聯(lián)系電話099-56450000”。
例如,酒店函數(shù)的第1級關(guān)聯(lián)函數(shù)可以是撥號函數(shù)。雖然終端用戶沒有明確需要撥號預(yù)定酒店,但考慮到終端用戶有這種潛在需求,可以獲取該撥號函數(shù),并獲取該撥號函數(shù)對應(yīng)的觸發(fā)表達(dá)。作為示例,該觸發(fā)表達(dá)可以是“是否需要撥打酒店聯(lián)系電話?”
S250,向所述終端用戶發(fā)送所述第一觸發(fā)表達(dá),并根據(jù)接收到的所述終端用戶針對所述第一觸發(fā)表達(dá)的回應(yīng),判斷是否調(diào)用所述第1級關(guān)聯(lián)函數(shù)。
在步驟S240中,已經(jīng)獲取了目標(biāo)函數(shù)酒店函數(shù)的第1級關(guān)聯(lián)函數(shù)及其對應(yīng)的觸發(fā)表達(dá)。本步驟中,向終端用戶發(fā)送觸發(fā)表達(dá),以確定終端用戶是否需要這種潛在需求。以終端用戶需要撥號預(yù)定酒店這一潛在需求為例,可以向終端用戶發(fā)送觸發(fā)表達(dá)“是否需要撥打酒店聯(lián)系電話?”,如果終端用戶給出了肯定答復(fù)則調(diào)用撥號函數(shù),撥出酒店號碼“099-56450000”;否則不調(diào)用。
在本發(fā)明的一個實施方式中,本實施例還可以有步驟S310(未示出):
S310:當(dāng)調(diào)用第N級關(guān)聯(lián)函數(shù)時,獲取所述第N級關(guān)聯(lián)函數(shù)的第N+1級關(guān)聯(lián)函數(shù),并獲取所述第N+1級關(guān)聯(lián)函數(shù)對應(yīng)的第二觸發(fā)表達(dá);向所述終端用戶發(fā)送所述第二觸發(fā)表達(dá),并根據(jù)接收到的所述終端用戶針對所述第二觸發(fā)表達(dá)的回應(yīng),判斷是否調(diào)用所述第N+1級關(guān)聯(lián)函數(shù),其中,N為自然數(shù)。
其中,第N級關(guān)聯(lián)函數(shù)是與第N+1級關(guān)聯(lián)函數(shù)具有相關(guān)性的函數(shù)。這種相關(guān)性可以是人為設(shè)置的,也就是說第N級關(guān)聯(lián)函數(shù)所對應(yīng)的關(guān)聯(lián)函數(shù)是可以任意設(shè)定的。
繼續(xù)以上文中終端用戶輸入的需求信息“幫我查下附近的酒店”為例。在終端用戶對觸發(fā)表達(dá)“是否需要撥打酒店聯(lián)系電話?”給予肯定答復(fù)并調(diào)用撥號函數(shù)時,可以獲取該第1級關(guān)聯(lián)函數(shù)撥號函數(shù)的第2級關(guān)聯(lián)函數(shù),并獲取該第2級關(guān)聯(lián)函數(shù)對應(yīng)的觸發(fā)表達(dá)。
作為示例,該第2級關(guān)聯(lián)函數(shù)可以是導(dǎo)航函數(shù);該第2級關(guān)聯(lián)函數(shù)導(dǎo)航函數(shù)對應(yīng)的觸發(fā)表達(dá)可以是“是否需要從當(dāng)前位置至酒店的導(dǎo)航路線?”。
向終端用戶發(fā)送觸發(fā)表達(dá)“是否需要從當(dāng)前位置至酒店的導(dǎo)航路線?”以確定終端用戶是否需要這種潛在需求。如果終端用戶給出了肯定答復(fù)則調(diào)用第2級關(guān)聯(lián)函數(shù)導(dǎo)航函數(shù),呈現(xiàn)從終端用戶所在的當(dāng)前位置至酒店的導(dǎo)航路線。
依此規(guī)律,在調(diào)用第2級關(guān)聯(lián)函數(shù)導(dǎo)航函數(shù)時,可以獲取第2級關(guān)聯(lián)函數(shù)導(dǎo)航函數(shù)的第3級關(guān)聯(lián)函數(shù),并獲取該第3級關(guān)聯(lián)函數(shù)的觸發(fā)表達(dá)。作為示例,該第3級關(guān)聯(lián)函數(shù)可以是娛樂函數(shù);該第3級關(guān)聯(lián)函數(shù)娛樂函數(shù)對應(yīng)的觸發(fā)表達(dá)可以是“是否需要了解酒店附近的娛樂場所?”。向終端用戶發(fā)送該觸發(fā)表達(dá)并獲得終端用戶肯定答復(fù)后,調(diào)用該第3級關(guān)聯(lián)函數(shù)娛樂函數(shù),將酒店周邊的娛樂場所信息呈現(xiàn)給終端用戶。
依此規(guī)律,可以繼續(xù)上述步驟,直至終端用戶停止會話。
在本發(fā)明的一個實施方式中,本實施例還可以有步驟S410(未示出):
S410:根據(jù)終端用戶需求信息提取所述目標(biāo)函數(shù)的參數(shù)信息,如果終端用戶需求信息中缺少所述目標(biāo)函數(shù)的參數(shù)信息,則獲取所述目標(biāo)函數(shù)對應(yīng)的第一參數(shù)獲取表達(dá);向所述終端用戶發(fā)送所述第一參數(shù)獲取表達(dá),并根據(jù)所述終端用戶針對所述第一參數(shù)獲取表達(dá)的回應(yīng),獲取缺少的該目標(biāo)函數(shù)的參數(shù)信息。
很多時候,終端用戶給出的需求信息是零散的、不全面的。這個時候盡管能夠分析出終端用戶的意圖和實際需求,但仍難以給出符合終端用戶實際需要的準(zhǔn)確信息。因此,有必要向終端用戶確認(rèn)有關(guān)信息。
繼續(xù)以以上文中終端用戶輸入的需求信息“幫我查下附近的酒店”為例。盡管確定了終端用戶意圖是“附近的酒店”,但實際生活中,附近可能有多家星級不同的酒店。為準(zhǔn)確判斷終端用戶的需求層次,也為了提高會話效率,可以在酒店函數(shù)中設(shè)置星級參數(shù),從而過濾掉部分酒店信息。由于終端用戶沒有輸入任何有關(guān)酒店星級的信息,則可以獲取并向終端用戶發(fā)送酒店函數(shù)對應(yīng)的參數(shù)獲取表達(dá)“請問您需要查詢幾星級的酒店?”。隨后,可以根據(jù)終端用戶針對該參數(shù)獲取表達(dá)的回應(yīng),從中獲取酒店函數(shù)的星級參數(shù)信息。
在本發(fā)明的一個實施方式中,本實施例還可以有步驟S510(未示出):
S510:根據(jù)終端用戶需求信息和第N級關(guān)聯(lián)函數(shù)的處理結(jié)果,提取所述第N+1級關(guān)聯(lián)函數(shù)的參數(shù)信息,如果終端用戶需求信息和第N級關(guān)聯(lián)函數(shù)的處理結(jié)果中缺少該第N+1級關(guān)聯(lián)函數(shù)的參數(shù)信息,則獲取所述第N+1級關(guān)聯(lián)函數(shù)對應(yīng)的第二參數(shù)獲取表達(dá);向所述終端用戶發(fā)送所述第二參數(shù)獲取表達(dá),并根據(jù)所述終端用戶針對所述第二參數(shù)獲取表達(dá)的回應(yīng),獲取缺少的所述第N+1級關(guān)聯(lián)函數(shù)的參數(shù)信息。
其中,在本發(fā)明中,當(dāng)N為0時,該N級關(guān)聯(lián)函數(shù)即為目標(biāo)函數(shù)。
繼續(xù)以上文中終端用戶輸入的需求信息“幫我查下附近的酒店”為例。第2級關(guān)聯(lián)函數(shù)導(dǎo)航函數(shù)可以設(shè)置有交通工具參數(shù)。第2級關(guān)聯(lián)函數(shù)導(dǎo)航函數(shù)的交通工具參數(shù)信息可以從終端用戶需求信息“幫我查下附近的酒店”和第1級關(guān)聯(lián)函數(shù)撥號函數(shù)的處理結(jié)果中獲取。由于第1級關(guān)聯(lián)函數(shù)撥號函數(shù)只有“電話已撥通”和“電話未撥通”兩種處理結(jié)果,因此終端用戶需求信息“幫我查下附近的酒店”和第1級關(guān)聯(lián)函數(shù)的處理結(jié)果中缺少該第2級關(guān)聯(lián)函數(shù)導(dǎo)航函數(shù)的交通工具參數(shù)信息。
此時,可以獲取第2級關(guān)聯(lián)函數(shù)導(dǎo)航函數(shù)對應(yīng)的參數(shù)獲取表達(dá)“您打算以哪種交通工具前往酒店?”并向終端用戶發(fā)送,然后從終端用戶的回應(yīng)中獲取該缺少的第2級關(guān)聯(lián)函數(shù)導(dǎo)航函數(shù)的交通工具參數(shù)信息。
在本實施例中,目標(biāo)函數(shù)和第N級關(guān)聯(lián)函數(shù)(統(tǒng)稱為“函數(shù)”)都可以具有統(tǒng)一的函數(shù)定義規(guī)范。優(yōu)選地,這種統(tǒng)一的函數(shù)定義規(guī)范包括:函數(shù)本體、函數(shù)的觸發(fā)表達(dá)以及函數(shù)的參數(shù)獲取表達(dá)。此處,為說明之便,與函數(shù)相連的觸發(fā)表達(dá)、參數(shù)獲取表達(dá)可以理解為函數(shù)定義規(guī)范的一部分,盡管在理論上,與函數(shù)相連的觸發(fā)表達(dá)、參數(shù)獲取表達(dá)并不屬于函數(shù)的一部分。
例如,統(tǒng)一的函數(shù)定義規(guī)范可以如下:
//觸發(fā)表達(dá)
//參數(shù)獲取表達(dá)(如有參數(shù))
函數(shù)(類型1參數(shù)a,類型2參數(shù)b,...){
函數(shù)執(zhí)行主體;
返回數(shù)據(jù)結(jié)構(gòu)體(如有);
}
為方便說明,此處“//”并不是注釋語言,而是說明與函數(shù)相連的觸發(fā)表達(dá)和參數(shù)獲取表達(dá)(如有參數(shù))。
以導(dǎo)航業(yè)務(wù)為例,所需的一個參數(shù)信息可以是指定地點,函數(shù)執(zhí)行主體則會給出到指定地點的導(dǎo)航路徑。其中,觸發(fā)表達(dá)可以為“是否需要導(dǎo)航到這里?”;參數(shù)獲取表達(dá)可以為“請問是要去什么地方?”。
統(tǒng)一的函數(shù)定義規(guī)范解放了函數(shù)開發(fā)人員,借此函數(shù)開發(fā)人員不需要針對不同的業(yè)務(wù)分別構(gòu)建不同的算法。從而,本發(fā)明克服了現(xiàn)有技術(shù)中業(yè)務(wù)與算法高度耦合的重大缺陷,使得業(yè)務(wù)人員能夠?qū)W⒂跇I(yè)務(wù)邏輯的開發(fā)與定制、函數(shù)開發(fā)人員能夠?qū)W⒂趦?yōu)化函數(shù)規(guī)范本身。簡而言之,專業(yè)的人做專業(yè)的事使得人機(jī)對話的效率和質(zhì)量由此得以提升到新的高度。
在本發(fā)明的一個實施方式中,本實施例還可以有步驟S610(未示出):
S610:通過可視化編程的方式建立所述目標(biāo)函數(shù)和所述第1級關(guān)聯(lián)函數(shù)之間的關(guān)聯(lián)關(guān)系,和/或所述第N級關(guān)聯(lián)函數(shù)和所述第N+1級關(guān)聯(lián)函數(shù)之間的關(guān)聯(lián)關(guān)系。
在本實施例中,可以通過可視化編程的方式建立所述目標(biāo)函數(shù)和所述第1級關(guān)聯(lián)函數(shù)之間的關(guān)聯(lián)關(guān)系,和/或所述第N級關(guān)聯(lián)函數(shù)和所述第N+1級關(guān)聯(lián)函數(shù)之間的關(guān)聯(lián)關(guān)系。簡言之,也就是函數(shù)之間的關(guān)聯(lián)關(guān)系。
如前文所述,目標(biāo)函數(shù)和第1級關(guān)聯(lián)函數(shù)之間的關(guān)聯(lián)關(guān)系可以是人為設(shè)定的,第N級關(guān)聯(lián)函數(shù)和所述第N+1級關(guān)聯(lián)函數(shù)之間的關(guān)聯(lián)關(guān)系也可以是人為設(shè)定的。這樣做的好處是,可以實現(xiàn)多輪會話的自定義業(yè)務(wù)組合。也就是說,業(yè)務(wù)人員以及函數(shù)開發(fā)人員可以根據(jù)業(yè)務(wù)需要在不同函數(shù)之間建立關(guān)聯(lián)關(guān)系,從而實現(xiàn)了多輪會話的擴(kuò)展應(yīng)用。作為一種優(yōu)選方案,在不同函數(shù)之間建立關(guān)聯(lián)關(guān)系可以通過可視化編程的方式實現(xiàn)。這里的“可視”,指的是無須編程,僅通過直觀的操作方式即可完成界面的設(shè)計、建立不同函數(shù)之間的關(guān)聯(lián)關(guān)系??梢暬幊痰幕局R為相關(guān)領(lǐng)域技術(shù)人員所熟知,本文對此不再贅述。
作為一種更優(yōu)選的方案,通過可視化編程的方式實現(xiàn)不同函數(shù)之間建立關(guān)聯(lián)關(guān)系可以在可視化編程界面中通過拖拽連接線等類似的操作,將函數(shù)之間的關(guān)聯(lián)關(guān)系建立起來。
優(yōu)選的,可以由函數(shù)開發(fā)人員(例如編程人員)按照上述統(tǒng)一的函數(shù)定義規(guī)范開發(fā)和提供函數(shù),由智能會話服務(wù)方將符合統(tǒng)一函數(shù)定義規(guī)范的函數(shù)提供給企業(yè)客戶(如上文中的業(yè)務(wù)人員)使用,由企業(yè)客戶根據(jù)自己的業(yè)務(wù)需求、選擇合適的函數(shù),并根據(jù)實際業(yè)務(wù)需求采用上述可視化編程的方式建立函數(shù)之間的關(guān)聯(lián)關(guān)系、定制符合業(yè)務(wù)需要的業(yè)務(wù)邏輯,智能會話服務(wù)方根據(jù)企業(yè)客戶定制的函數(shù)關(guān)聯(lián)關(guān)系,向企業(yè)客戶的終端用戶提供智能會話服務(wù),根據(jù)終端終端用戶的請求、為終端終端用戶提供智能會話服務(wù)。
優(yōu)選的,所述目標(biāo)函數(shù)可以有一個以上的第1級關(guān)聯(lián)函數(shù)、以及所述第N級關(guān)聯(lián)函數(shù)可以有一個以上的第N+1級關(guān)聯(lián)函數(shù),即目標(biāo)函數(shù)可以有多個第1級關(guān)聯(lián)函數(shù),第N級關(guān)聯(lián)函數(shù)可以有多個第N+1級關(guān)聯(lián)函數(shù);在這種情況下,系統(tǒng)判斷目標(biāo)函數(shù)有多個第1級關(guān)聯(lián)函數(shù)的情況下,可以將該多個第1級關(guān)聯(lián)函數(shù)分別對應(yīng)的觸發(fā)表達(dá)發(fā)送給終端用戶,由終端用戶進(jìn)行選擇,選擇其中一個或多個第1級關(guān)聯(lián)函數(shù)進(jìn)行觸發(fā);同理,系統(tǒng)判斷第N級關(guān)聯(lián)函數(shù)有多個第N+1級關(guān)聯(lián)函數(shù)的情況下,可以將該多個第N+1級關(guān)聯(lián)函數(shù)的情況下分別對應(yīng)的觸發(fā)表達(dá)發(fā)送給終端用戶,由終端用戶進(jìn)行選擇,選擇其中一個或多個第N+1級關(guān)聯(lián)函數(shù)進(jìn)行觸發(fā)。
示例性設(shè)備
在介紹了本發(fā)明示例性實施方式的方法之后,接下來,參考圖3對本發(fā)明示例性實施方式的多輪會話交互裝置進(jìn)行說明。
本發(fā)明一實施例的多輪會話交互裝置主要包括:接收模塊,用于接收終端用戶需求信息;判斷模塊,用于根據(jù)終端用戶需求信息判斷終端用戶意圖所對應(yīng)的目標(biāo)函數(shù);調(diào)用模塊,用于調(diào)用所述目標(biāo)函數(shù);獲取模塊,用于獲取所述目標(biāo)函數(shù)的第1級關(guān)聯(lián)函數(shù),并獲取所述第1級關(guān)聯(lián)函數(shù)對應(yīng)的第一觸發(fā)表達(dá);第一關(guān)聯(lián)模塊,用于向所述終端用戶發(fā)送所述第一觸發(fā)表達(dá),并根據(jù)接收到的所述終端用戶針對所述第一觸發(fā)表達(dá)的回應(yīng),判斷是否調(diào)用所述第1級關(guān)聯(lián)函數(shù)。此外,該裝置還可以包括第二關(guān)聯(lián)模塊、第一參數(shù)模塊、第二參數(shù)模塊以及設(shè)置關(guān)聯(lián)關(guān)系模塊中的一個或多個。
如圖3所示,該多輪會話交互裝置主要包括:
接收模塊710,用于接收終端用戶需求信息。
需求信息本質(zhì)上是終端用戶輸入的信息,需求信息可以是各種形式的,例如,語音、文字以及圖片等中的一種或多種。作為示例,需求信息可能是終端用戶輸入的文字信息“幫我查下附近的酒店”,需求信息可能是終端用戶輸入的一幅圖像,也可能是終端用戶輸入的一段語音。
判斷模塊720,用于根據(jù)終端用戶需求信息判斷終端用戶意圖所對應(yīng)的目標(biāo)函數(shù)。
以終端用戶輸入的文字信息“幫我查下附近的酒店”為例,在接收終端用戶需求信息“幫我查下附近的酒店”后,分析終端用戶的意圖以及根據(jù)該意圖判斷對應(yīng)的目標(biāo)函數(shù)。
根據(jù)終端用戶輸入的需求信息分析終端用戶的意圖(意圖分析,intention recognition)的實現(xiàn)方式可以有多種,本發(fā)明對此不進(jìn)行限定。例如,本發(fā)明中分析終端用戶的意圖可以通過深度學(xué)習(xí)實現(xiàn),也可以通過語義分析實現(xiàn),也可以通過其他任何意圖分析技術(shù)實現(xiàn)。
在分析需求信息“幫我查下附近的酒店”后,可以確定終端用戶意圖是“附近的酒店”。根據(jù)該終端用戶意圖,匹配與之對應(yīng)的目標(biāo)函數(shù),比如,酒店函數(shù)。其中,酒店函數(shù)可以是預(yù)先設(shè)定好的。具體的匹配方法可以是多樣的,可以根據(jù)終端用戶意圖“附近的酒店”進(jìn)行整體關(guān)聯(lián),也可以根據(jù)終端用戶意圖“附近的酒店”中的部分信息(例如,“酒店”)進(jìn)行關(guān)聯(lián)。
調(diào)用模塊730,用于調(diào)用所述目標(biāo)函數(shù)。
判斷模塊720中已經(jīng)確定了目標(biāo)函數(shù),即酒店函數(shù)。在本模塊中,根據(jù)終端用戶需求信息和/或終端用戶意圖運(yùn)行確定了的目標(biāo)函數(shù)。以需求信息“幫我查下附近的酒店”和終端用戶意圖“附近的酒店”為例,酒店函數(shù)將據(jù)此執(zhí)行并調(diào)用相關(guān)酒店數(shù)據(jù)庫中的信息并輸出相關(guān)信息呈現(xiàn)給終端用戶,作為示例,輸出的相關(guān)信息可以是“最近的酒店是漢皇大酒店,位于新北區(qū)南浦路30號,聯(lián)系電話099-56450000”。相關(guān)信息呈現(xiàn)方式可以是語音、文字、圖片等一種或多種形式,本發(fā)明對此不進(jìn)行限定。
獲取模塊740,用于獲取所述目標(biāo)函數(shù)的第1級關(guān)聯(lián)函數(shù),并獲取所述第1級關(guān)聯(lián)函數(shù)對應(yīng)的第一觸發(fā)表達(dá)。
其中,關(guān)聯(lián)函數(shù)是與目標(biāo)函數(shù)具有相關(guān)性的函數(shù)。這種相關(guān)性可以是人為設(shè)置的,也就是說目標(biāo)函數(shù)所對應(yīng)的關(guān)聯(lián)函數(shù)是可以任意設(shè)定的。
在調(diào)用模塊730中,目標(biāo)函數(shù)酒店函數(shù)運(yùn)行并輸出了相關(guān)信息“最近的酒店是漢皇大酒店,位于新北區(qū)南浦路30號,聯(lián)系電話099-56450000”。
例如,酒店函數(shù)的第1級關(guān)聯(lián)函數(shù)可以是撥號函數(shù)。雖然終端用戶沒有明確需要撥號預(yù)定酒店,但考慮到終端用戶有這種潛在需求,可以獲取該撥號函數(shù),并獲取該撥號函數(shù)對應(yīng)的觸發(fā)表達(dá)。作為示例,該觸發(fā)表達(dá)可以是“是否需要撥打酒店聯(lián)系電話?”
第一關(guān)聯(lián)模塊750,用于向所述終端用戶發(fā)送所述第一觸發(fā)表達(dá),并根據(jù)接收到的所述終端用戶針對所述第一觸發(fā)表達(dá)的回應(yīng),判斷是否調(diào)用所述第1級關(guān)聯(lián)函數(shù)。
在獲取模塊740中,已經(jīng)獲取了目標(biāo)函數(shù)酒店函數(shù)的第1級關(guān)聯(lián)函數(shù)及其對應(yīng)的觸發(fā)表達(dá)。在本模塊中,向終端用戶發(fā)送觸發(fā)表達(dá),以確定終端用戶是否需要這種潛在需求。以終端用戶需要撥號預(yù)定酒店這一潛在需求為例,可以向終端用戶發(fā)送觸發(fā)表達(dá)“是否需要撥打酒店聯(lián)系電話?”,如果終端用戶給出了肯定答復(fù)則調(diào)用撥號函數(shù),撥出酒店號碼“099-56450000”;否則不調(diào)用。
在本發(fā)明的一個實施方式中,本實施例還可以有第二關(guān)聯(lián)模塊810:
第二關(guān)聯(lián)模塊810,用于當(dāng)調(diào)用第N級關(guān)聯(lián)函數(shù)時,獲取所述第N級關(guān)聯(lián)函數(shù)的第N+1級關(guān)聯(lián)函數(shù),并獲取所述第N+1級關(guān)聯(lián)函數(shù)對應(yīng)的第二觸發(fā)表達(dá);向所述終端用戶發(fā)送所述第二觸發(fā)表達(dá),并根據(jù)接收到的所述終端用戶針對所述第二觸發(fā)表達(dá)的回應(yīng),判斷是否調(diào)用所述第N+1級關(guān)聯(lián)函數(shù),其中,N為自然數(shù)。
其中,第N級關(guān)聯(lián)函數(shù)是與第N+1級關(guān)聯(lián)函數(shù)具有相關(guān)性的函數(shù)。這種相關(guān)性可以是人為設(shè)置的,也就是說第N級關(guān)聯(lián)函數(shù)所對應(yīng)的關(guān)聯(lián)函數(shù)是可以任意設(shè)定的。
繼續(xù)以上文中終端用戶輸入的需求信息“幫我查下附近的酒店”為例。在終端用戶對觸發(fā)表達(dá)“是否需要撥打酒店聯(lián)系電話?”給予肯定答復(fù)并調(diào)用撥號函數(shù)時,可以獲取該第1級關(guān)聯(lián)函數(shù)撥號函數(shù)的第2級關(guān)聯(lián)函數(shù),并獲取該第2級關(guān)聯(lián)函數(shù)對應(yīng)的觸發(fā)表達(dá)。
作為示例,該第2級關(guān)聯(lián)函數(shù)可以是導(dǎo)航函數(shù);該第2級關(guān)聯(lián)函數(shù)導(dǎo)航函數(shù)對應(yīng)的觸發(fā)表達(dá)可以是“是否需要從當(dāng)前位置至酒店的導(dǎo)航路線?”。
向終端用戶發(fā)送觸發(fā)表達(dá)“是否需要從當(dāng)前位置至酒店的導(dǎo)航路線?”以確定終端用戶是否需要這種潛在需求。如果終端用戶給出了肯定答復(fù)則調(diào)用第2級關(guān)聯(lián)函數(shù)導(dǎo)航函數(shù),呈現(xiàn)從終端用戶所在的當(dāng)前位置至酒店的導(dǎo)航路線。
依此規(guī)律,在調(diào)用第2級關(guān)聯(lián)函數(shù)導(dǎo)航函數(shù)時,可以獲取第2級關(guān)聯(lián)函數(shù)導(dǎo)航函數(shù)的第3級關(guān)聯(lián)函數(shù),并獲取該第3級關(guān)聯(lián)函數(shù)的觸發(fā)表達(dá)。作為示例,該第3級關(guān)聯(lián)函數(shù)可以是娛樂函數(shù);該第3級關(guān)聯(lián)函數(shù)娛樂函數(shù)對應(yīng)的觸發(fā)表達(dá)可以是“是否需要了解酒店附近的娛樂場所?”。向終端用戶發(fā)送該觸發(fā)表達(dá)并獲得終端用戶肯定答復(fù)后,調(diào)用該第3級關(guān)聯(lián)函數(shù)娛樂函數(shù),將酒店周邊的娛樂場所信息呈現(xiàn)給終端用戶。
依此規(guī)律,可以繼續(xù)上述步驟,直至終端用戶停止會話。
在本發(fā)明的一個實施方式中,本實施例還可以有第一參數(shù)模塊:
第一參數(shù)模塊,用于根據(jù)終端用戶需求信息提取所述目標(biāo)函數(shù)的參數(shù)信息,如果終端用戶需求信息中缺少所述目標(biāo)函數(shù)的參數(shù)信息,則獲取所述目標(biāo)函數(shù)對應(yīng)的第一參數(shù)獲取表達(dá);向所述終端用戶發(fā)送所述第一參數(shù)獲取表達(dá),并根據(jù)所述終端用戶針對所述第一參數(shù)獲取表達(dá)的回應(yīng),獲取缺少的該目標(biāo)函數(shù)的參數(shù)信息。
很多時候,終端用戶給出的需求信息是零散的、不全面的。這個時候盡管能夠分析出終端用戶的意圖和實際需求,但仍難以給出符合終端用戶實際需要的準(zhǔn)確信息。因此,有必要向終端用戶確認(rèn)有關(guān)信息。
繼續(xù)以以上文中終端用戶輸入的需求信息“幫我查下附近的酒店”為例。盡管確定了終端用戶意圖是“附近的酒店”,但實際生活中,附近可能有多家星級不同的酒店。為準(zhǔn)確判斷終端用戶的需求層次,也為了提高會話效率,可以在酒店函數(shù)中設(shè)置星級參數(shù),從而過濾掉部分酒店信息。由于終端用戶沒有輸入任何有關(guān)酒店星級的信息,則可以獲取并向終端用戶發(fā)送酒店函數(shù)對應(yīng)的參數(shù)獲取表達(dá)“請問您需要查詢幾星級的酒店?”。隨后,可以根據(jù)終端用戶針對該參數(shù)獲取表達(dá)的回應(yīng),從中獲取酒店函數(shù)的星級參數(shù)信息。
在本發(fā)明的一個實施方式中,本實施例還可以有第二參數(shù)模塊:
第二參數(shù)模塊,用于根據(jù)終端用戶需求信息和第N級關(guān)聯(lián)函數(shù)的處理結(jié)果,提取所述第N+1級關(guān)聯(lián)函數(shù)的參數(shù)信息,如果終端用戶需求信息和第N級關(guān)聯(lián)函數(shù)的處理結(jié)果中缺少該第N+1級關(guān)聯(lián)函數(shù)的參數(shù)信息,則獲取所述第N+1級關(guān)聯(lián)函數(shù)對應(yīng)的第二參數(shù)獲取表達(dá);向所述終端用戶發(fā)送所述第二參數(shù)獲取表達(dá),并根據(jù)所述終端用戶針對所述第二參數(shù)獲取表達(dá)的回應(yīng),獲取缺少的所述第N+1級關(guān)聯(lián)函數(shù)的參數(shù)信息。
其中,在本發(fā)明中,當(dāng)N為0時,該N級關(guān)聯(lián)函數(shù)即為目標(biāo)函數(shù)。
繼續(xù)以上文中終端用戶輸入的需求信息“幫我查下附近的酒店”為例。第2級關(guān)聯(lián)函數(shù)導(dǎo)航函數(shù)可以設(shè)置有交通工具參數(shù)。第2級關(guān)聯(lián)函數(shù)導(dǎo)航函數(shù)的交通工具參數(shù)信息可以從終端用戶需求信息“幫我查下附近的酒店”和第1級關(guān)聯(lián)函數(shù)撥號函數(shù)的處理結(jié)果中獲取。由于第1級關(guān)聯(lián)函數(shù)撥號函數(shù)只有“電話已撥通”和“電話未撥通”兩種處理結(jié)果,因此終端用戶需求信息“幫我查下附近的酒店”和第1級關(guān)聯(lián)函數(shù)的處理結(jié)果中缺少該第2級關(guān)聯(lián)函數(shù)導(dǎo)航函數(shù)的交通工具參數(shù)信息。
此時,可以獲取第2級關(guān)聯(lián)函數(shù)導(dǎo)航函數(shù)對應(yīng)的參數(shù)獲取表達(dá)“您打算以哪種交通工具前往酒店?”并向終端用戶發(fā)送,然后從終端用戶的回應(yīng)中獲取該缺少的第2級關(guān)聯(lián)函數(shù)導(dǎo)航函數(shù)的交通工具參數(shù)信息。
在本實施例中,目標(biāo)函數(shù)和第N級關(guān)聯(lián)函數(shù)(統(tǒng)稱為“函數(shù)”)都可以具有統(tǒng)一的函數(shù)定義規(guī)范。優(yōu)選地,這種統(tǒng)一的函數(shù)定義規(guī)范包括:函數(shù)本體、函數(shù)的觸發(fā)表達(dá)以及函數(shù)的參數(shù)獲取表達(dá)。此處,為說明之便,與函數(shù)相連的觸發(fā)表達(dá)、參數(shù)獲取表達(dá)可以理解為函數(shù)定義規(guī)范的一部分,盡管在理論上,與函數(shù)相連的觸發(fā)表達(dá)、參數(shù)獲取表達(dá)并不屬于函數(shù)的一部分。
例如,統(tǒng)一的函數(shù)定義規(guī)范可以如下:
//觸發(fā)表達(dá)
//參數(shù)獲取表達(dá)(如有參數(shù))
函數(shù)(類型1參數(shù)a,類型2參數(shù)b,...){
函數(shù)執(zhí)行主體;
返回數(shù)據(jù)結(jié)構(gòu)體(如有);
}
為方便說明,此處“//”并不是注釋語言,而是說明與函數(shù)相連的觸發(fā)表達(dá)和參數(shù)獲取表達(dá)(如有參數(shù))。
以導(dǎo)航業(yè)務(wù)為例,所需的一個參數(shù)信息可以是指定地點,函數(shù)執(zhí)行主體則會給出到指定地點的導(dǎo)航路徑。其中,觸發(fā)表達(dá)可以為“是否需要導(dǎo)航到這里?”;參數(shù)獲取表達(dá)可以為“請問是要去什么地方?”
統(tǒng)一的函數(shù)定義規(guī)范解放了編程人員,借此編程人員不需要針對不同的業(yè)務(wù)分別構(gòu)建不同的算法。從而,本發(fā)明克服了現(xiàn)有技術(shù)中業(yè)務(wù)與算法高度耦合的重大缺陷,使得業(yè)務(wù)人員能夠?qū)W⒂跇I(yè)務(wù)開發(fā),編程人員能夠?qū)W⒂趦?yōu)化函數(shù)規(guī)范本身。簡而言之,專業(yè)的人做專業(yè)的事使得人機(jī)對話的效率和質(zhì)量由此得以提升到新的高度。
在本發(fā)明的一個實施方式中,本實施例還可以有設(shè)置關(guān)聯(lián)關(guān)系模塊:
設(shè)置關(guān)聯(lián)關(guān)系模塊,用于通過可視化編程的方式建立所述目標(biāo)函數(shù)和所述第1級關(guān)聯(lián)函數(shù)之間的關(guān)聯(lián)關(guān)系,和/或所述第N級關(guān)聯(lián)函數(shù)和所述第N+1級關(guān)聯(lián)函數(shù)之間的關(guān)聯(lián)關(guān)系。
在本實施例中,可以通過可視化編程的方式建立所述目標(biāo)函數(shù)和所述第1級關(guān)聯(lián)函數(shù)之間的關(guān)聯(lián)關(guān)系,和/或所述第N級關(guān)聯(lián)函數(shù)和所述第N+1級關(guān)聯(lián)函數(shù)之間的關(guān)聯(lián)關(guān)系。簡言之,也就是函數(shù)之間的關(guān)聯(lián)關(guān)系。
如前文所述,目標(biāo)函數(shù)和第1級關(guān)聯(lián)函數(shù)之間的關(guān)聯(lián)關(guān)系可以是人為設(shè)定的,第N級關(guān)聯(lián)函數(shù)和所述第N+1級關(guān)聯(lián)函數(shù)之間的關(guān)聯(lián)關(guān)系也可以是人為設(shè)定的。這樣做的好處是,可以實現(xiàn)多輪會話的自定義業(yè)務(wù)組合。也就是說,業(yè)務(wù)人員以及編程人員可以根據(jù)業(yè)務(wù)需要在不同函數(shù)之間建立關(guān)聯(lián)關(guān)系,從而實現(xiàn)了多輪會話的擴(kuò)展應(yīng)用。作為一種優(yōu)選方案,在不同函數(shù)之間建立關(guān)聯(lián)關(guān)系可以通過可視化編程的方式實現(xiàn)。這里的“可視”,指的是無須編程,僅通過直觀的操作方式即可完成界面的設(shè)計、建立不同函數(shù)之間的關(guān)聯(lián)關(guān)系??梢暬幊痰幕局R為相關(guān)領(lǐng)域技術(shù)人員所熟知,本文對此不再贅述。
優(yōu)選地,設(shè)置關(guān)聯(lián)關(guān)系模塊可以包括:
拖拽子模塊,用于在可視化編程界面中,響應(yīng)于連接線的拖拽操作,建立函數(shù)之間的關(guān)聯(lián)關(guān)系。
作為一種更優(yōu)選的方案,通過可視化編程的方式實現(xiàn)不同函數(shù)之間建立關(guān)聯(lián)關(guān)系可以在可視化編程界面中通過拖拽連接線等類似的操作,將函數(shù)之間的關(guān)聯(lián)關(guān)系建立起來。
優(yōu)選的,可以由函數(shù)開發(fā)人員(例如編程人員)按照上述統(tǒng)一的函數(shù)定義規(guī)范開發(fā)和提供函數(shù),由智能會話服務(wù)方將符合統(tǒng)一函數(shù)定義規(guī)范的函數(shù)提供給企業(yè)客戶(如上文中的業(yè)務(wù)人員)使用,由企業(yè)客戶根據(jù)自己的業(yè)務(wù)需求、選擇合適的函數(shù),并根據(jù)實際業(yè)務(wù)需求采用上述可視化編程的方式建立函數(shù)之間的關(guān)聯(lián)關(guān)系、定制符合業(yè)務(wù)需要的業(yè)務(wù)邏輯,智能會話服務(wù)方根據(jù)企業(yè)客戶定制的函數(shù)關(guān)聯(lián)關(guān)系,向企業(yè)客戶的終端用戶提供智能會話服務(wù),根據(jù)終端終端用戶的請求、為終端終端用戶提供智能會話服務(wù)。
優(yōu)選的,所述目標(biāo)函數(shù)可以有一個以上的第1級關(guān)聯(lián)函數(shù)、以及所述第N級關(guān)聯(lián)函數(shù)可以有一個以上的第N+1級關(guān)聯(lián)函數(shù),即目標(biāo)函數(shù)可以有多個第1級關(guān)聯(lián)函數(shù),第N級關(guān)聯(lián)函數(shù)可以有多個第N+1級關(guān)聯(lián)函數(shù);在這種情況下,系統(tǒng)判斷目標(biāo)函數(shù)有多個第1級關(guān)聯(lián)函數(shù)的情況下,可以將該多個第1級關(guān)聯(lián)函數(shù)分別對應(yīng)的觸發(fā)表達(dá)發(fā)送給終端用戶,由終端用戶進(jìn)行選擇,選擇其中一個或多個第1級關(guān)聯(lián)函數(shù)進(jìn)行觸發(fā);同理,系統(tǒng)判斷第N級關(guān)聯(lián)函數(shù)有多個第N+1級關(guān)聯(lián)函數(shù)的情況下,可以將該多個第N+1級關(guān)聯(lián)函數(shù)的情況下分別對應(yīng)的觸發(fā)表達(dá)發(fā)送給終端用戶,由終端用戶進(jìn)行選擇,選擇其中一個或多個第N+1級關(guān)聯(lián)函數(shù)進(jìn)行觸發(fā)。
本發(fā)明實施方式的計算機(jī)可讀存儲介質(zhì)一個具體例子例如為光盤,其上存儲有計算機(jī)程序(即程序產(chǎn)品),該程序被處理器執(zhí)行時,會實現(xiàn)上述方法實施方式中所記載的各步驟,其中包括:
接收終端用戶需求信息;
根據(jù)終端用戶需求信息判斷終端用戶意圖所對應(yīng)的目標(biāo)函數(shù);
調(diào)用所述目標(biāo)函數(shù);
獲取所述目標(biāo)函數(shù)的第1級關(guān)聯(lián)函數(shù),并獲取所述第1級關(guān)聯(lián)函數(shù)對應(yīng)的第一觸發(fā)表達(dá);
向所述終端用戶發(fā)送所述第一觸發(fā)表達(dá),并根據(jù)接收到的所述終端用戶針對所述第一觸發(fā)表達(dá)的回應(yīng),判斷是否調(diào)用所述第1級關(guān)聯(lián)函數(shù)。
應(yīng)當(dāng)注意,盡管在上文詳細(xì)描述中提及了多輪會話交互裝置的若干模塊或子模塊,但是這種劃分僅僅并非強(qiáng)制性的。實際上,根據(jù)本發(fā)明的實施方式,上文描述的兩個或更多模塊的特征和功能可以在一個模塊中具體化。反之,上文描述的一個模塊的特征和功能可以進(jìn)一步劃分為由多個模塊來具體化。
此外,盡管在附圖中以特定順序描述了本發(fā)明方法的操作,但是,這并非要求或者暗示必須按照該特定順序來執(zhí)行這些操作,或是必須執(zhí)行全部所示的操作才能實現(xiàn)期望的結(jié)果。附加地或備選地,可以省略某些步驟,將多個步驟合并為一個步驟執(zhí)行,和/或?qū)⒁粋€步驟分解為多個步驟執(zhí)行。
雖然已經(jīng)參考若干具體實施方式描述了本發(fā)明的精神和原理,但是應(yīng)該理解,本發(fā)明并不限于所公開的具體實施方式,對各方面的劃分也不意味著這些方面中的特征不能組合以進(jìn)行受益,這種劃分僅是為了表述的方便。本發(fā)明旨在涵蓋所附權(quán)利要求的精神和范圍內(nèi)所包括的各種修改和等同布置。