本發(fā)明涉及漢語自然語言處理、知識管理、自動問答領(lǐng)域,特別是涉及一種可視化流程圖的智能問答多輪交互方法和系統(tǒng)。
背景技術(shù):
基于上下文對話場景的多輪交互,是智能問答中的重要功能和巨大難題。在實(shí)際的應(yīng)用中,智能問答系統(tǒng)需要解決的問題很可能是一個(gè)復(fù)雜的流程型知識,而非簡單的一問一答形式。
例如,在電信行業(yè)中,對于問題“寬帶故障處理”,其標(biāo)準(zhǔn)答復(fù)是首先引導(dǎo)詢問或查詢用戶是否停機(jī)欠費(fèi),待用戶回應(yīng)后,再根據(jù)用戶不同的情況,進(jìn)一步引導(dǎo)詢問用戶的故障碼、設(shè)備狀態(tài)等多個(gè)條件,才能最終確定辦理方案,整個(gè)流程如圖1所示。對于智能問答系統(tǒng)而言,其目標(biāo)是可以通過多輪交互的方式,根據(jù)流程一步步引導(dǎo)用戶完成對話。因此,將復(fù)雜的引導(dǎo)和交互流程,簡單直觀地實(shí)現(xiàn)編輯、查看、管理功能,并可直接應(yīng)用于自助智能問答系統(tǒng),具有重要的價(jià)值。
要完成如上功能,需要實(shí)現(xiàn)三個(gè)目標(biāo):
1.將復(fù)雜流程進(jìn)行可視化編輯,明確流程圖中節(jié)點(diǎn)、連線的類別和功能;
2.當(dāng)交互流轉(zhuǎn)到某個(gè)節(jié)點(diǎn),需要智能問答系統(tǒng)主動提出詢問,引導(dǎo)用戶進(jìn)行選擇時(shí),系統(tǒng)能自動完成;
3.當(dāng)用戶做出應(yīng)答時(shí),需要智能問答系統(tǒng)在語義理解時(shí)增加約束條件,使智能問答系統(tǒng)能自動在流程可能達(dá)到的節(jié)點(diǎn)中進(jìn)行理解,從而保證理解的正確性。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問題:針對以上問題本發(fā)明提供了一種操作簡單直觀、有效結(jié)合流程知識管理和智能問答、識別性能好的基于可視化流程圖的智能問答多輪交互方法和系統(tǒng)。發(fā)明通過定義流程圖中節(jié)點(diǎn)、連線的類型,并采取自動化操作,從而實(shí)現(xiàn)了智能問答系統(tǒng)中的自動發(fā)起引導(dǎo)和限定范圍內(nèi)理解。
為了解決以上問題本發(fā)明采用了如下的技術(shù)方案:
一種基于可視化流程圖的智能問答多輪交互方法,其特征在于:包括以下步驟:
第1步,在引導(dǎo)型節(jié)點(diǎn)中,自動添加引導(dǎo)話術(shù):
在流程圖中,當(dāng)前引導(dǎo)型節(jié)點(diǎn)v可以流轉(zhuǎn)到的節(jié)點(diǎn)集合為V+={v1,v2,...,vm},那么,在節(jié)點(diǎn)v上,自動利用V+節(jié)點(diǎn)名信息為v產(chǎn)生引導(dǎo)話術(shù);
第2步,在應(yīng)答型節(jié)點(diǎn)中,進(jìn)行語義理解并保存補(bǔ)全的咨詢歷史:
第2.1步,當(dāng)用戶做出應(yīng)答時(shí),語義理解系統(tǒng)將用戶的自然語言輸入,映射到流程圖中的應(yīng)答型節(jié)點(diǎn),此時(shí)將限定節(jié)點(diǎn)的范圍,僅在系統(tǒng)上次流轉(zhuǎn)到的引導(dǎo)性節(jié)點(diǎn)v的后續(xù)節(jié)點(diǎn)V+中;
第2.2步,當(dāng)映射到具體的應(yīng)答型節(jié)點(diǎn)后,該節(jié)點(diǎn)會將用戶的咨詢進(jìn)行自動補(bǔ)全,將用戶的最近咨詢歷史,同當(dāng)前咨詢合并起來,作為完整的咨詢保存為最近的咨詢歷史;
為了完成語義理解,在兩類節(jié)點(diǎn)中將附帶有一系列語義文法,語義文法定義如下:
語義文法Semantic-Syntax為一個(gè)四元組:
Semantic-Syntax=<ID,Body>
其中,ID為文法的唯一性標(biāo)識,兩條不同的文法不能有相同的ID;
文法體Body是文法的核心元素,用于自然語言形式的匹配用戶問題;文法體Body是對自然語言表達(dá)的泛化,反之,自然語言可以稱作是文法體的具化;兩者之間存在多對多的映射關(guān)系;Body的上下文無關(guān)文法形式定義為:
上述定義中,各非終結(jié)符的含義如下:
1).Section:文法項(xiàng),一個(gè)文法體由以通配符’*’作為間隔的多個(gè)文法項(xiàng)組成;
2).Constant:常量型文法項(xiàng);
3).NeccessaryConstant:必選常量型文法項(xiàng),由詞類(WordClass)和常量詞集(Words)組成;
4).WordClass:詞類,為一組詞(Word)所組成的集合的名稱;詞類所具體包含的詞,可在文法體之外單獨(dú)進(jìn)行定義;
5).Words:常量詞集,為一組詞(Word)所組成的集合;
6).OptionalConstant:可選常量型文法項(xiàng);
7).Variable:變量型文法項(xiàng),由變量標(biāo)志符’?’,變量標(biāo)識(VariableID),變量名(VariableName)組成;
8).VariableID:變量標(biāo)識,唯一確定一條文法中的變量型文法項(xiàng);
9).VariableName:變量名,即變量型文法項(xiàng)的名稱;
各終結(jié)符的含義如下:
1).’*’:通配符;
2).’<’,‘>’:文法項(xiàng)括號;
3).’!’:詞類標(biāo)志符,表示其后為一個(gè)詞類;
4).’?’:變量標(biāo)志符,標(biāo)識其后為一個(gè)變量標(biāo)識和一個(gè)變量名;
5).’|’:邏輯或關(guān)系標(biāo)志符,標(biāo)識多個(gè)常量型文法間的“或”關(guān)系;
6).’(’,‘)’:變量名括號;
7).’[’,‘]’:可選文法項(xiàng)括號;
8).string:字符串常量
對于一個(gè)具體的文法體b,可以計(jì)算其余用戶咨詢q的匹配度,從而決定q是否映射到b所在的節(jié)點(diǎn);q與b的匹配分值Credit(b,q)考慮了兩個(gè)方面的特征,一是q被b所匹配的詞的加權(quán)比例,二是b被p所映射到的文法項(xiàng)的比例,具體定義為:
其中,M為q中映射到b中的分詞集合,M’=q-M,M’為q中未映射到b中的分詞集合,G為b的所有文法項(xiàng)中映射到b的文法項(xiàng)。對于M和M’中的某個(gè)詞w,IDF(w)體現(xiàn)了其在q中的重要程度,
IDF(w)=log(|所有節(jié)點(diǎn)附帶的文法體集合|/|常量詞中包含w的文法體集合|)(2)
0<ε<1是平滑因子;系統(tǒng)中優(yōu)選取值為0.1。
第3步,在智能問答系統(tǒng)各種,用戶可能會不按照系統(tǒng)給出的引導(dǎo)流程進(jìn)行應(yīng)答,而是轉(zhuǎn)移到另外一個(gè)話題;
系統(tǒng)如下判斷是否是進(jìn)行了話題轉(zhuǎn)移:將首先按照第2步中的方式進(jìn)行語義理解,記匹配得分為c1,如果匹配失敗,c1=0;同時(shí),也在取消理解的約束范圍,整個(gè)知識庫中理解,記最大的匹配得分為c2;整個(gè)知識庫包括多個(gè)流程型知識庫,每個(gè)流程型知識庫包括多個(gè)應(yīng)答節(jié)點(diǎn);如果c2-c1>max_credit_span,則認(rèn)為用戶轉(zhuǎn)移了話題,在我們的系統(tǒng)匯總,話題轉(zhuǎn)換的判斷閾值max_credit_span優(yōu)選取值為0.45。
一種基于可視化流程圖的智能問答多輪交互系統(tǒng),其特征在于:包括在引導(dǎo)型節(jié)點(diǎn)中,自動添加引導(dǎo)話術(shù)的模塊1;在應(yīng)答型節(jié)點(diǎn)中,自動添加語義理解限定范圍的模塊2;話題轉(zhuǎn)換判別模塊3。
有益效果:本發(fā)明借助將流程知識進(jìn)行圖形化管理并直接應(yīng)用于問答的系統(tǒng)和方法,包括對可視化流程圖中節(jié)點(diǎn)、邊的形式化表示和存儲,以及在節(jié)點(diǎn)、邊上通過自動添加語義理解約束條件、流程引導(dǎo)話術(shù)的方法,使得智能問答系統(tǒng)可以基于復(fù)雜的流程圖,對用戶的咨詢進(jìn)行自動應(yīng)答。在當(dāng)回復(fù)面臨多種選擇時(shí),可以主動向用戶提出多個(gè)引導(dǎo)條件;在用戶回復(fù)了簡略的應(yīng)答時(shí),可以在語義理解時(shí)自動增加約束條件,保證理解的正確。當(dāng)語義文法和自然語言咨詢匹配度計(jì)算平滑因子取值0.1,話題轉(zhuǎn)換的判斷閾值max_credit_span=0.45時(shí),系統(tǒng)可以取得98%的多輪交互精度,和87%的理解率。在多輪交互中,本方法可以有效解決上下文缺省問題,取得了較好的識別性能,已經(jīng)達(dá)到了實(shí)際應(yīng)用的目的。
附圖說明
圖1是本發(fā)明基于可視化流程圖的智能問答多輪交互方法和系統(tǒng)的工作流程圖。
圖2是兩種節(jié)點(diǎn)類型示例-密碼重置。
圖3是基于復(fù)雜流程型知識的交互場景示例-寬帶上網(wǎng)故障。
具體實(shí)施方式
為了能夠更清楚的說明本發(fā)明,以下定義并解釋如下的術(shù)語:
(1)智能問答系統(tǒng):一個(gè)可以接收用戶自然語言形式的輸入,在理解用戶意圖的基礎(chǔ)上,基于企業(yè)知識庫、數(shù)據(jù)庫等資源,自動給出回復(fù)的計(jì)算機(jī)系統(tǒng)。如果系統(tǒng)僅支持一問一答的形式,稱為單輪智能問答系統(tǒng);如果系統(tǒng)可以基于上下文對話場景進(jìn)行交互,稱為多輪交互式智能問答系統(tǒng)。
(2)自動引導(dǎo):在智能問答系統(tǒng)中,當(dāng)需要進(jìn)一步詢問用戶信息,才能做出下一步回答時(shí),所想用戶提出的詢問。
(3)語義理解:在智能問答系統(tǒng)中,對用戶自然語言形式的提問或應(yīng)答進(jìn)行分析,提取出用戶語言的結(jié)構(gòu)、意圖等信息的過程。語義理解可以帶有約束條件,例如,可以約束用戶上文的理解結(jié)果在一定范圍內(nèi)。
(4)用于智能問答的流程型知識圖:一個(gè)有向有環(huán)圖G=<V,E>,用于在多輪交互式智能問答中提供流轉(zhuǎn)規(guī)則,以及自動引導(dǎo)話術(shù)和最終的答復(fù)知識。E為有向邊集合,的元素有向邊e=<v1,v2>表示節(jié)點(diǎn)v1將流轉(zhuǎn)到節(jié)點(diǎn)v2,節(jié)點(diǎn)V則分為系統(tǒng)引導(dǎo)型用戶節(jié)點(diǎn)和應(yīng)答型節(jié)點(diǎn):
a)系統(tǒng)引導(dǎo)型節(jié)點(diǎn):當(dāng)多輪交互問答流轉(zhuǎn)到該節(jié)點(diǎn)時(shí),系統(tǒng)將主動向用戶發(fā)出引導(dǎo)咨詢,讓用戶給出回復(fù);
b)用戶應(yīng)答型節(jié)點(diǎn):用戶做出應(yīng)答時(shí),語義理解系統(tǒng)的目標(biāo)是將用戶的應(yīng)答,映射到一個(gè)用戶應(yīng)答型節(jié)點(diǎn)上,該應(yīng)答型節(jié)點(diǎn)下一步或者自動跳轉(zhuǎn)到唯一的一個(gè)系統(tǒng)引導(dǎo)性節(jié)點(diǎn),或者對用戶的應(yīng)答進(jìn)行答復(fù)。用戶應(yīng)答型節(jié)點(diǎn)包含節(jié)點(diǎn)名,如“重置寬帶密碼”、“重置手機(jī)密碼”等;
在圖2給出的示例中,我們給出了兩類節(jié)點(diǎn)的示例。
如圖1所示,一種基于可視化流程圖的智能問答多輪交互系統(tǒng)分為3個(gè)主要模塊:
模塊1:在引導(dǎo)型節(jié)點(diǎn)中,自動添加引導(dǎo)話術(shù)的模塊;
模塊2:在應(yīng)答型節(jié)點(diǎn)中,自動添加語義理解限定范圍的模塊;
模塊3:話題轉(zhuǎn)換判別模塊;
下面結(jié)合附圖和具體實(shí)施方式對本發(fā)明作進(jìn)一步詳細(xì)地說明。
模塊1:在引導(dǎo)型節(jié)點(diǎn)中,自動添加引導(dǎo)話術(shù)
假設(shè)當(dāng)前引導(dǎo)型節(jié)點(diǎn)v,在流程圖中,v可以流轉(zhuǎn)到的節(jié)點(diǎn)集合為V+={v1,v2,...,vm},那么,在節(jié)點(diǎn)v上,自動利用V+節(jié)點(diǎn)名信息為v產(chǎn)生引導(dǎo)話術(shù),例如:“請問您是重置寬帶密碼,還是重置手機(jī)密碼?”
模塊2:在應(yīng)答型節(jié)點(diǎn)中,進(jìn)行語義理解并保存補(bǔ)全的咨詢歷史:
1.當(dāng)用戶做出應(yīng)答時(shí),語義理解系統(tǒng)將用戶的自然語言輸入,映射到流程圖中的應(yīng)答型節(jié)點(diǎn),此時(shí)將限定節(jié)點(diǎn)的范圍,僅在系統(tǒng)上次流轉(zhuǎn)到的引導(dǎo)性節(jié)點(diǎn)v的后續(xù)節(jié)點(diǎn)V+中;
2.當(dāng)映射到具體的應(yīng)答型節(jié)點(diǎn)后,該節(jié)點(diǎn)會將用戶的咨詢進(jìn)行自動補(bǔ)全,將用戶的最近咨詢歷史,同當(dāng)前咨詢合并起來,作為完整的咨詢保存為最近的咨詢歷史。
例如,如果用戶首次詢問的是“如何重置密碼”,系統(tǒng)給出引導(dǎo)“請問您是重置寬帶密碼,還是重置手機(jī)密碼?”,用戶回答的是“前者”,則系統(tǒng)僅會在“重置寬帶密碼”、“重置手機(jī)密碼”兩個(gè)節(jié)點(diǎn)中進(jìn)行理解,會將用戶的回答補(bǔ)全為“如何重置密碼+寬帶”,保存為最近的咨詢歷史,如圖2所示。
為了完成語義理解,在兩類節(jié)點(diǎn)中將附帶有一系列語義文法,語義文法定義如下:
語義文法Semantic-Syntax為一個(gè)四元組:
Semantic-Syntax=<ID,Body>
其中,ID為文法的唯一性標(biāo)識,兩條不同的文法不能有相同的ID。如ID1=001,ID2=002;
文法體Body是文法的核心元素,用于自然語言形式的匹配用戶問題。文法體Body是對自然語言表達(dá)的泛化,反之,自然語言可以稱作是文法體的具化。兩者之間存在多對多的映射關(guān)系。Body的上下文無關(guān)文法形式定義為:
上述定義中,各非終結(jié)符的含義如下:
1).Section:文法項(xiàng),一個(gè)文法體由以通配符’*’作為間隔的多個(gè)文法項(xiàng)組成;
2).Constant:常量型文法項(xiàng);
3).NeccessaryConstant:必選常量型文法項(xiàng),由詞類(WordClass)和常量詞集(Words)組成;
4).WordClass:詞類,為一組詞(Word)所組成的集合的名稱;詞類所具體包含的詞,可在文法體之外單獨(dú)進(jìn)行定義;
5).Words:常量詞集,為一組詞(Word)所組成的集合;
6).OptionalConstant:可選常量型文法項(xiàng);
7).Variable:變量型文法項(xiàng),由變量標(biāo)志符’?’,變量標(biāo)識(VariableID),變量名(VariableName)組成;
8).VariableID:變量標(biāo)識,唯一確定一條文法中的變量型文法項(xiàng);
9).VariableName:變量名,即變量型文法項(xiàng)的名稱;
各終結(jié)符的含義如下:
1).’*’:通配符;
2).’<’,‘>’:文法項(xiàng)括號;
3).’!’:詞類標(biāo)志符,表示其后為一個(gè)詞類;
4).’?’:變量標(biāo)志符,標(biāo)識其后為一個(gè)變量標(biāo)識和一個(gè)變量名;
5).’|’:邏輯或關(guān)系標(biāo)志符,標(biāo)識多個(gè)常量型文法間的“或”關(guān)系;
6).’(’,‘)’:變量名括號;
7).’[’,‘]’:可選文法項(xiàng)括號;
8).string:字符串常量
對于一個(gè)具體的文法體b,可以計(jì)算其余用戶咨詢q的匹配度,從而決定q是否映射到b所在的節(jié)點(diǎn)。q與b的匹配分值Credit(b,q)考慮了兩個(gè)方面的特征,一是q被b所匹配的詞的加權(quán)比例,二是b被p所映射到的文法項(xiàng)的比例,具體定義為:
其中,M為q中映射到b中的分詞集合,M’=q-M,M’為q中未映射到b中的分詞集合,G為b的所有文法項(xiàng)中映射到b的文法項(xiàng)。對于M和M’中的某個(gè)詞w,IDF(w)體現(xiàn)了其在q中的重要程度,
IDF(w)=log(|所有節(jié)點(diǎn)附帶的文法體集合|/|常量詞中包含w的文法體集合|)(2)
0<ε<1是平滑因子,系統(tǒng)中取值為0.1。
模塊3:話題轉(zhuǎn)換判別
在智能問答系統(tǒng)各種,用戶可能會不按照系統(tǒng)給出的引導(dǎo)流程進(jìn)行應(yīng)答,而是轉(zhuǎn)移到另外一個(gè)話題。例如,到系統(tǒng)引導(dǎo)用戶“請問您是要重置寬帶密碼,還是重置手機(jī)密碼?“時(shí),用戶可能會回答“寬帶密碼和手機(jī)密碼有什么不同”。
系統(tǒng)如下判斷是否是進(jìn)行了話題轉(zhuǎn)移:將首先按照模塊2中的方式進(jìn)行語義理解,記匹配得分為c1,如果匹配失敗,c1=0;同時(shí),也在取消理解的約束范圍,整個(gè)知識庫中理解,記最大的匹配得分為c2。整個(gè)知識庫包括多個(gè)流程型知識庫,每個(gè)流程型知識庫包括多個(gè)應(yīng)答節(jié)點(diǎn)。如果c2-c1>max_credit_span,則認(rèn)為用戶轉(zhuǎn)移了話題。在我們的系統(tǒng)匯總,話題轉(zhuǎn)換的判斷閾值max_credit_span取值為0.45。
基于可視化流程圖的智能問答多輪交互方法和系統(tǒng)給出了如圖3所示的復(fù)雜流程型知識的交互場景示例-寬帶上網(wǎng)故障。
實(shí)驗(yàn)效果
經(jīng)過多個(gè)行業(yè)的實(shí)驗(yàn),當(dāng)語義文法和自然語言咨詢匹配度計(jì)算平滑因子取值0.1,話題轉(zhuǎn)換的判斷閾值max_credit_span=0.45時(shí),系統(tǒng)可以取得98%的多輪交互精度,和87%的理解率。因此,本發(fā)明取得了較好的識別性能,已經(jīng)達(dá)到了實(shí)際應(yīng)用的目的。