基于聊天大數(shù)據(jù)知識庫的機器人對話控制方法和系統(tǒng)的制作方法
【專利摘要】本發(fā)明涉及一種機器人對話控制方法和系統(tǒng),從預(yù)設(shè)聊天大數(shù)據(jù)知識庫中檢索與輸入語句匹配度最大且存在答復(fù)語句的語句作為檢索結(jié)果語句,將檢索結(jié)果語句的答復(fù)語句作為輸出語句并輸出。從包括多條類聊天語句以及多條聊天語句中至少一條聊天語句對應(yīng)的答復(fù)語句的聊天大數(shù)據(jù)知識庫中進(jìn)行搜索,不再從根據(jù)人工制作的語句以及答復(fù)語句建立的數(shù)據(jù)庫中進(jìn)行搜索,從而獲得的檢索結(jié)果語句以及其對應(yīng)的答復(fù)語句更符合實際用戶聊天的語句,提高合理性和真實性,且匹配度越大聊天語句與輸入語句越符合,采用與輸入語句匹配度最大的檢索結(jié)果語句對應(yīng)的答復(fù)語句回復(fù)用戶會更加合理和真實。
【專利說明】
基于聊天大數(shù)據(jù)知識庫的機器人對話控制方法和系統(tǒng)
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及人工智能技術(shù)領(lǐng)域,特別涉及一種基于聊天大數(shù)據(jù)知識庫的機器人對話控制方法和系統(tǒng)。
【背景技術(shù)】
[0002]隨著機器人技術(shù)的快速發(fā)展,用戶對聊天機器人功能的要求也越來越高。如果用戶與聊天機器人聊天時,分不清聊天的對象是人還是聊天機器人,則能通過圖靈測試,則說明該聊天機器人具備了人工智能,所以聊天機器人是人工智能的最重要內(nèi)容之一。
[0003]現(xiàn)有聊天機器人,都是基于回復(fù)知識庫對用戶的輸入語句進(jìn)行恢復(fù),知識庫中的數(shù)據(jù)表一般包含兩個基本字段,第一個字段是特征字符或詞句,第二個字段是自動回復(fù)的內(nèi)容,如圖1所示?;貜?fù)知識庫中的內(nèi)容需要人工增添或?qū)胧孪热斯ぶ谱骱玫幕貜?fù)文本。人工制作回復(fù)知識庫的成本非常高,而且無法羅列所有可能的自動回復(fù)的內(nèi)容,因此導(dǎo)致了現(xiàn)有聊天機器人只能對用戶的一些常用聊天輸入語句進(jìn)行有效的自動回復(fù),而如果用戶的其他聊天輸入語句在回復(fù)知識庫不存在相應(yīng)特征字符或詞句時,聊天機器人則不知道如何回答,而只能進(jìn)行無效的自動回答,譬如回答“哦”等,如圖2所示。而且因為回復(fù)知識庫是人工構(gòu)建的,并不是人們自然聊天中產(chǎn)生回復(fù)語句,所以有時只是構(gòu)建者自己構(gòu)造出來的回復(fù)語句,與人們真實的聊天回復(fù)語句有一定的差距,大大降低了機器人聊天回復(fù)的合理性和真實性。
【發(fā)明內(nèi)容】
[0004]基于此,有必要針對機器人回復(fù)語句的合理性和真實性較低的問題,提供一種提高機器人回復(fù)語句的有效性和真實性的基于聊天大數(shù)據(jù)知識庫的機器人對話控制方法和系統(tǒng)。
[0005]—種機器人對話控制方法,包括以下步驟:
[0006]獲取輸入語句;
[0007]從預(yù)設(shè)聊天大數(shù)據(jù)知識庫中檢索與所述輸入語句匹配度最大且存在答復(fù)語句的聊天語句作為檢索結(jié)果語句,其中,所述預(yù)設(shè)聊天大數(shù)據(jù)知識庫包括多條聊天語句以及所述多條聊天語句中至少一條聊天語句對應(yīng)的答復(fù)語句,且聊天語句與其對應(yīng)的答復(fù)語句分行存儲;
[0008]獲取所述檢索結(jié)果語句的答復(fù)語句作為輸出語句;
[0009]將所述輸出語句輸出。
[0010]本發(fā)明還提供一種機器人對話控制系統(tǒng),包括:
[0011]獲取模塊,用于獲取輸入語句;
[0012]第一檢索模塊,用于從預(yù)設(shè)聊天大數(shù)據(jù)知識庫中檢索與所述輸入語句匹配度最大且存在答復(fù)語句的聊天語句作為檢索結(jié)果語句,其中,所述預(yù)設(shè)聊天大數(shù)據(jù)知識庫包括多條聊天語句以及所述多條聊天語句中至少一條聊天語句對應(yīng)的答復(fù)語句,且聊天語句與其對應(yīng)的答復(fù)語句分行存儲;
[0013]第二檢索模塊,用于獲取所述檢索結(jié)果語句的答復(fù)語句作為輸出語句;
[0014]輸出模塊,用于將所述輸出語句輸出。
[0015]上述機器人對話控制方法和系統(tǒng),從預(yù)設(shè)聊天大數(shù)據(jù)知識庫中檢索與輸入語句匹配度最大且存在答復(fù)語句的語句作為檢索結(jié)果語句,并從預(yù)設(shè)聊天大數(shù)據(jù)知識庫中獲取檢索結(jié)果語句的答復(fù)語句作為輸出語句并輸出。從包括多條聊天語句以及多條聊天語句中至少一條聊天語句對應(yīng)的答復(fù)語句的聊天大數(shù)據(jù)知識庫中進(jìn)行搜索,不再是從根據(jù)人工制作的語句以及答復(fù)語句建立的數(shù)據(jù)庫中進(jìn)行搜索,獲得的檢索結(jié)果語句以及其對應(yīng)的答復(fù)語句更符合實際中用戶聊天的語句,從而更具有合理性和真實性,且檢索結(jié)果語句是聊天語句中具有答復(fù)語句且與輸入語句匹配度最大的語句,匹配度越大表示語句與輸入語句更符合,從而機器人采用與輸入語句匹配度最大的檢索結(jié)果語句的答復(fù)語句作為回復(fù)語句回復(fù)用戶會更加合理和真實。
【附圖說明】
[0016]圖1為現(xiàn)有機器人中回復(fù)知識庫中內(nèi)容導(dǎo)入圖;
[0017]圖2為現(xiàn)有機器人與用戶交互的示意圖;
[0018]圖3為一種實施方式的機器人對話控制方法的流程圖;
[0019]圖4為另一種實施方式的機器人對話控制方法的流程圖;
[0020]圖5為另一種實施方式的機器人對話控制方法的流程圖;
[0021]圖6為另一種實施方式的機器人對話控制方法中步驟S810的子流程圖;
[0022]圖7為本發(fā)明機器人與用戶交互的示意圖;
[0023]圖8為一種實施方式的機器人對話控制系統(tǒng)的模塊圖;
[0024]圖9為另一種實施方式的機器人對話控制系統(tǒng)的模塊圖;
[0025]圖10為另一種實施方式的機器人對話控制系統(tǒng)的模塊圖。
【具體實施方式】
[0026]請參閱圖3,提供一種實施方式的機器人對話控制方法,包括以下步驟:
[0027]S200:獲取輸入語句。
[0028]在用戶需要與機器人進(jìn)行交互時,用戶可向機器人輸入語句,從而機器人可獲取用戶的輸入語句,其中,輸入語句可以是文字和語音,甚至可以是視頻。在本實施例中,輸入語句為語音。且輸入語句可以是中文,也可以是英文或其他語言。機器人是指泛義的機器人,包括一切模擬人類行為或思想以及模擬其他生物的機械,也包括一些電腦程序,例如,qq聊天機器人程序等。
[0029]S400:從預(yù)設(shè)聊天大數(shù)據(jù)知識庫中檢索與輸入語句匹配度最大且存在答復(fù)語句的聊天語句作為檢索結(jié)果語句。
[0030]其中,預(yù)設(shè)聊天大數(shù)據(jù)知識庫包括多條聊天語句以及多條聊天語句中至少一條聊天語句對應(yīng)的答復(fù)語句。在本實施例中,聊天語句與其對應(yīng)的答復(fù)語句分行存儲。從預(yù)設(shè)聊天大數(shù)據(jù)知識庫中檢索出存在答復(fù)語句的聊天語句,并對檢索出的存在答復(fù)語句的聊天語句進(jìn)行篩選,獲得與輸入語句匹配度最大的聊天語句,將匹配度最大的聊天語句作為檢索結(jié)果語句。其中,檢索可通過調(diào)用聊天大數(shù)據(jù)知識庫的搜索引擎自動完成的。
[0031]S600:獲取檢索結(jié)果語句的答復(fù)語句作為輸出語句。
[0032]S800:將輸出語句輸出。
[0033]預(yù)設(shè)聊天大數(shù)據(jù)知識庫的多條聊天語句中與用戶的輸入語句匹配度最大的聊天語句的答復(fù)語句即是對該用戶的輸入語句的較為合理和真實的回復(fù)。從而,在確定檢索結(jié)果語句后,即可在預(yù)設(shè)聊天大數(shù)據(jù)知識庫中檢索出檢索結(jié)果語句的答復(fù)語句作為輸出語句,并將輸出語句輸出給用戶,實現(xiàn)機器人與用戶的交互。
[0034]上述機器人對話控制方法,從預(yù)設(shè)聊天大數(shù)據(jù)知識庫中檢索與輸入語句匹配度最大且存在答復(fù)語句的語句作為檢索結(jié)果語句,并從預(yù)設(shè)聊天大數(shù)據(jù)知識庫中獲取檢索結(jié)果語句的答復(fù)語句作為輸出語句并輸出。從包括多條聊天語句以及多條聊天語句中至少一條聊天語句對應(yīng)的答復(fù)語句的聊天大數(shù)據(jù)知識庫中進(jìn)行搜索,不再是從根據(jù)人工制作的語句以及答復(fù)語句建立的數(shù)據(jù)庫中進(jìn)行搜索,獲得的檢索結(jié)果語句以及其對應(yīng)的答復(fù)語句更符合實際中用戶聊天的語句,從而更具有合理性和真實性,且檢索結(jié)果語句是聊天語句中具有答復(fù)語句且與輸入語句匹配度最大的語句,匹配度越大表示語句與輸入語句更符合,從而機器人采用與輸入語句匹配度最大的檢索結(jié)果語句的答復(fù)語句作為回復(fù)語句回復(fù)用戶會更加合理和真實。
[0035]請參閱圖4,在其中一個實施例中,從預(yù)設(shè)聊天大數(shù)據(jù)知識庫中檢索與輸入語句匹配度最大且存在答復(fù)語句的聊天語句作為檢索結(jié)果語句的步驟S400包括:
[0036]S410:從預(yù)設(shè)聊天大數(shù)據(jù)知識庫中篩選存在答復(fù)語句的語句作為聊天語句集。
[0037]S420:通過編輯距離法或最大公共子串法對聊天語句集進(jìn)行篩選,獲得與輸入語句匹配度最大的聊天語句,將匹配度最大的聊天語句作為檢索結(jié)果語句。
[0038]其中,距離編輯法是指與輸入語句匹配度最大的聊天語句轉(zhuǎn)換為輸入語句時所需的插入、刪除和替換的總次數(shù)最少,最大公共子串法是指與輸入語句匹配度最大的聊天語句與輸入語句具有的最大公共子串最長。
[0039]預(yù)設(shè)聊天大數(shù)據(jù)知識庫中的聊天語句中存在答復(fù)語句且與用戶的輸入語句匹配度最大的語句的即是該用戶的輸入語句的最為合理的回復(fù),語句可以表示成字符串,語句匹配度的計算可以轉(zhuǎn)化為字符串匹配度或相似度的計算,從而,進(jìn)行匹配度計算的方法有多種,可以采用字符串匹配度或相似度算法,例如,編輯距離法,就是用來計算從原串轉(zhuǎn)換到目標(biāo)串所需要的最少的插入、刪除和替換的數(shù)目,即檢索輸入語句中轉(zhuǎn)換為輸入語句時所需的插入、刪除和替換的總次數(shù)最少的語句作為與輸入語句匹配度最大的語句,顯然當(dāng)一個語句編輯為另一個語句所需的插入、刪除和替換的次數(shù)越少,則匹配度越大。另一種方式是最大公共子串法,即兩個語句的最大公共子串越長,則這兩個語句匹配度越大。具體地,在獲取與輸入語句匹配度最大的聊天語句時,可忽略人稱進(jìn)行匹配,這樣可減小匹配時間,提高匹配效率,在后續(xù)可根據(jù)輸入語句的人稱,以及與輸入語句匹配度最大的聊天語句對應(yīng)的回復(fù)語句的人稱,對回復(fù)語句的人稱進(jìn)行變換輸出,以提高輸出語句的合理性。
[0040]請參閱圖5,在其中一個實施例中,獲取輸入語句的步驟S200之前還包括:
[0041 ] S110:獲取歷史聊天記錄。
[0042]S120:從歷史聊天記錄中獲取多條聊天語句以及多條聊天語句中至少一條聊天語句對應(yīng)的答復(fù)語句。
[0043]S130:將聊天語句以及與聊天語句對應(yīng)的答復(fù)語句以文件的形式或以數(shù)據(jù)庫的形式進(jìn)行存儲,構(gòu)建預(yù)設(shè)聊天大數(shù)據(jù)知識庫。
[0044]歷史聊天記錄為用戶在過去長時間內(nèi)進(jìn)行聊天產(chǎn)生的語句記錄,其中包括了多條聊天語句以及回復(fù)語句,即歷史聊天記錄是在海量的用戶在過去長時間積累的大量的聊天數(shù)據(jù)的基礎(chǔ)上形成的,即是根據(jù)大量歷史聊天數(shù)據(jù)構(gòu)建預(yù)設(shè)聊天大數(shù)據(jù)知識庫,從而聊天語句和其對應(yīng)的答復(fù)語句不再是人工制作的,是實際聊天過程中產(chǎn)生的,可提高聊天語句和其對應(yīng)的答復(fù)語句的合理性和真實性。具體地,步驟130具體為將聊天語句以及與聊天語句對應(yīng)的答復(fù)語句以文件的形式或以數(shù)據(jù)庫的形式進(jìn)行分行存儲,構(gòu)建預(yù)設(shè)聊天大數(shù)據(jù)知識庫,即預(yù)設(shè)聊天大數(shù)據(jù)知識庫可以用文本的形式對聊天語句與其對應(yīng)的答復(fù)語句進(jìn)行分行存儲,也可以采用數(shù)據(jù)庫的形式進(jìn)行分行存儲,每個聊天語句作為文件或數(shù)據(jù)庫中的一行,一個聊天語句的前一個聊天語句則存儲在該個聊天語句所在行的前一行,一個聊天語句的下一個聊天語句即是回復(fù)語句,則存儲在該個聊天語句所在行的后一行。文件的形式包括文本文件的形式以及語音文件的形式。
[0045]預(yù)設(shè)聊天大數(shù)據(jù)知識庫中的聊天語句獲取范圍包括人類對話數(shù)據(jù)或聊天數(shù)據(jù),包括但不限于互聯(lián)網(wǎng)聊天數(shù)據(jù)(例如,qq聊天數(shù)據(jù)、msn聊天數(shù)據(jù)以及skype聊天數(shù)據(jù)等)、移動互聯(lián)網(wǎng)聊天數(shù)據(jù)(例如,微信聊天數(shù)據(jù)以及手機短信聊天數(shù)據(jù)等)、論壇聊天數(shù)據(jù)(例如,天涯聊天數(shù)據(jù))、語音聊天數(shù)據(jù)(例如,電話聊天數(shù)據(jù)以及會議討論數(shù)據(jù)),即歷史聊天記錄包括但不限于互聯(lián)網(wǎng)聊天數(shù)據(jù)、移動互聯(lián)網(wǎng)聊天數(shù)據(jù)、論壇聊天數(shù)據(jù)、語音聊天數(shù)據(jù)以及人機聊天記錄,人機聊天記錄為用戶與機器人在聊天過程中的語句記錄,其中,skype是全球免費的語音溝通軟件,人類通過skype聊天產(chǎn)生的數(shù)據(jù)即為skype聊天數(shù)據(jù),這些聊天數(shù)據(jù)可以是文本、語音以及視頻等信息形式,這些聊天數(shù)據(jù)可以批量導(dǎo)入預(yù)設(shè)聊天大數(shù)據(jù)知識庫,也可以實時增量式地追加到預(yù)設(shè)聊天大數(shù)據(jù)知識庫。預(yù)設(shè)聊天大數(shù)據(jù)知識庫具備人類聊天語句的檢索引擎,該檢索引擎能進(jìn)行語句的模糊匹配,該檢索引擎支持文本、語音及視頻的檢索和模糊匹配,通過該檢索引擎可以從預(yù)設(shè)聊天大數(shù)據(jù)知識庫的多條聊天語句中檢索出與用戶的輸入語句匹配度最大的一個聊天語句??梢酝ㄟ^云存儲和云計算技術(shù)來提高預(yù)設(shè)聊天大數(shù)據(jù)知識庫及其檢索引擎的速度,即將預(yù)設(shè)聊天大數(shù)據(jù)知識庫進(jìn)行云存儲,預(yù)設(shè)聊天大數(shù)據(jù)知識庫中的聊天語句是有序的,在某一段聊天語句中,大部分聊天語句都有答復(fù)語句,只有聊天結(jié)束時的最后一個聊天語句沒有答復(fù)語句。
[0046]在其中一個實施例中,將輸出語句輸出的步驟S800包括:
[0047]S810:當(dāng)檢索結(jié)果語句的人稱與輸入語句的人稱不同時,將輸出語句的人稱進(jìn)行變換。
[0048]S820:將人稱變換后的聊天輸出語句輸出。
[0049]為了確保機器人給用戶的回復(fù)語句的合理性,需要對檢索結(jié)果語句的人稱與輸入語句的人稱進(jìn)行一致性判斷,由于檢索結(jié)果語句的答復(fù)語句是對檢索結(jié)果語句的回復(fù),當(dāng)檢索結(jié)果語句和輸入語句的人稱不同時,可能會導(dǎo)致檢索結(jié)果語句的答復(fù)語句作為輸入語句的回復(fù)時人稱不合理,從而,此時將輸出語句進(jìn)行人稱變換后輸出給用戶,提高機器人回復(fù)的合理性。
[0050]請參閱圖6,在其中一個實施例中,當(dāng)檢索結(jié)果語句的人稱與輸入語句的人稱不同時,將輸出語句的人稱進(jìn)行變換的步驟S810包括:
[0051]S811:當(dāng)輸入語句的主語為第一人稱以及檢索結(jié)果語句的主語為第二人稱時,將輸出語句中的主語變換為第二人稱;
[0052]S812:當(dāng)輸入語句的賓語為第一人稱以及檢索結(jié)果語句的賓語為第二人稱時,將輸出語句中的賓語變換為第二人稱;
[0053]S813:當(dāng)輸入語句的主語為第二人稱以及檢索結(jié)果語句的主語為第一人稱時,將輸出語句中的主語變換為第一人稱;
[0054]S814:當(dāng)輸入語句的賓語為第二人稱以及檢索結(jié)果語句的賓語為第一人稱時,將輸出語句中的賓語變換為第一人稱。當(dāng)輸入語句的主語的人稱為第二人稱,檢索結(jié)果語句的主語的人稱為第一人稱時,將輸出語句中主語的人稱變換成第一人稱后再輸出。即通過人稱變換使回復(fù)的輸出語句更合理化,使對話合理化。例如,輸入語句的主語的人稱是我時,表示是用戶自己,而與輸入語句最匹配的檢索結(jié)果語句中的主語的人稱為你,按照人類實際聊天的情況,檢索結(jié)果語句的答復(fù)語句是對檢索結(jié)果語句的回復(fù),檢索結(jié)果語句的答復(fù)語句的人稱一般為我,機器人在回復(fù)時,是對用戶的回復(fù),從而將輸出語句中的主語的人稱我變換成你,讓回復(fù)變得合理。同理,當(dāng)輸入語句的主語的人稱為第一人稱,檢索結(jié)果語句的主語的人稱為第二人稱時,將輸出語句的主語的人稱變換成第二人稱后再輸出,提高回復(fù)合理性。類似地,當(dāng)輸入語句的賓語的人稱與檢索結(jié)果語句的賓語的人稱不同時,將輸出語句的賓語的人稱進(jìn)行變換后再輸出,以提高機器人回復(fù)合理性。
[0055]可以理解,當(dāng)輸入語句的賓語為第一人稱以及檢索結(jié)果語句的賓語為第二人稱時,且當(dāng)輸出語句包括賓語時,將輸出語句中的賓語變換為第二人稱。當(dāng)輸入語句的賓語為第一人稱以及檢索結(jié)果語句的賓語為第二人稱時,且當(dāng)輸出語句不包括賓語但包括主語時,將輸出語句中的主語變換為第二人稱。
[0056]當(dāng)輸入語句的賓語為第二人稱以及檢索結(jié)果語句的賓語為第一人稱時,且當(dāng)輸出語句包括賓語時,將輸出語句中的賓語變換為第一人稱。當(dāng)輸入語句的賓語為第二人稱以及檢索結(jié)果語句的賓語為第一人稱時,且當(dāng)輸出語句不包括賓語但包括主語時,將輸出語句中的主語變換為第一人稱。下面以一具體實施對上述基于大數(shù)據(jù)搜索的人工智能聊天機器人方法加以說明。請參閱圖7,為機器人與人進(jìn)行交流的示意圖。
[0057]當(dāng)用戶跟機器人說“我肚子痛”,在預(yù)設(shè)聊天大數(shù)據(jù)知識庫中檢索到的最匹配的聊天語句有“我肚子痛,怎么辦?”,從而將“我肚子痛,怎么辦?”作為檢索結(jié)果語句。然后,從預(yù)設(shè)聊天大數(shù)據(jù)知識庫中檢索出聊天語句為“我肚子痛,怎么辦?”對應(yīng)的下一聊天語句“怎么了,為什么肚子痛?著涼了嗎?”回復(fù)給用戶。
[0058]當(dāng)用戶跟機器人說“我忘記你的名字了”,在預(yù)設(shè)聊天大數(shù)據(jù)知識庫中檢索到的最匹配的聊天語句有“你想不起我的名字了吧?”,從預(yù)設(shè)聊天大數(shù)據(jù)知識庫中檢索與“你想不起我的名字了吧?對應(yīng)的回復(fù)語句為“我的記性不如你好”作為輸出語句,由于輸入語句的主語為第一人稱,但檢索結(jié)果語句的主語為第二人稱,將輸出語句的主語變換為第二人稱,輸入語句的賓語為第二人稱,但檢索結(jié)果語句的賓語為第一人稱,將輸出語句的賓語變換為第一人稱,從而將輸出語句變換為“你的記性不如我好‘””輸出回復(fù)給用戶,以提高回復(fù)合理性。又或者,當(dāng)用戶跟機器人說“小明在找我”,在預(yù)設(shè)聊天大數(shù)據(jù)知識庫中檢索到的最匹配的聊天語句有“小王在找你”,從而將“小王在找你”作為檢索結(jié)果語句。然后,從預(yù)設(shè)聊天大數(shù)據(jù)知識庫中檢索出聊天語句為“小王在找你”對應(yīng)的下一聊天語句“好的,我現(xiàn)在就去”作為輸出語句,檢索結(jié)果語句與輸入語句的人稱是不同的,即輸入語句的賓語為第一人稱,檢索結(jié)果語句的賓語為第二人稱,由輸出語句不包括賓語,只包括主語,從而,將輸出語句的主語變換為第二人稱,得到“好的,你現(xiàn)在就去”,然后回復(fù)給用戶,提高回復(fù)合理性。
[0059]上述整個過程是機器人系統(tǒng)自動完成的。預(yù)設(shè)聊天大數(shù)據(jù)知識庫中的聊天語句可來源于大數(shù)據(jù)(譬如,qq聊天數(shù)據(jù)、微信聊天數(shù)據(jù)、skype聊天數(shù)據(jù)、msn聊天數(shù)據(jù)、會議討論數(shù)據(jù)、電話語音數(shù)據(jù)以及手機短信數(shù)據(jù)等),這些數(shù)據(jù)是在海量的人類在過去長時間積累的真實的聊天大數(shù)據(jù)的基礎(chǔ)上形成的。隨著人類聊天大數(shù)據(jù)越來越豐富,檢索結(jié)果語句與用戶的輸入語句的匹配度必然越來越高,從而使得聊天機器人的回復(fù)也就越來越合理,越來越真實,越來越能提高圖靈測試的通過率。因為用戶一般來說也是人類,所以人類的聊天習(xí)慣和內(nèi)容是相似的,所以從人類聊天大數(shù)據(jù)庫中檢索匹配的聊天語句是可行的方法,將人類真實的下一聊天語句回復(fù)給人類用戶是提高回復(fù)合理性和真實性的有效方法。
[0060]請參閱圖8,本發(fā)明還提供一種實施方式的機器人對話控制系統(tǒng),包括:
[0061 ]獲取模塊200:用于獲取輸入語句。
[0062]在用戶需要與機器人進(jìn)行交互時,用戶可向機器人輸入語句,從而機器人可獲取用戶的輸入語句,其中,輸入語句可以是文字和語音,甚至可以是視頻。在本實施例中,輸入語句為語音。且輸入語句可以是中文,也可以是英文或其他語言。機器人是指泛義的機器人,包括一切模擬人類行為或思想以及模擬其他生物的機械,也包括一些電腦程序,例如,qq聊天機器人程序等。
[0063]第一檢索模塊400:用于從預(yù)設(shè)聊天大數(shù)據(jù)知識庫中檢索與輸入語句匹配度最大且存在答復(fù)語句的聊天語句作為檢索結(jié)果語句。
[0064]其中,預(yù)設(shè)聊天大數(shù)據(jù)知識庫包括多條聊天語句以及多條聊天語句中至少一條聊天語句對應(yīng)的答復(fù)語句。在本實施例中,聊天語句與其對應(yīng)的答復(fù)語句分行存儲。從預(yù)設(shè)聊天大數(shù)據(jù)知識庫中檢索出存在答復(fù)語句的聊天語句,并對檢索出的存在答復(fù)語句的聊天語句進(jìn)行篩選,獲得與輸入語句匹配度最大的聊天語句,將匹配度最大的聊天語句作為檢索結(jié)果語句。其中,檢索可通過調(diào)用聊天大數(shù)據(jù)知識庫的搜索引擎自動完成的。
[0065]第二檢索模塊600:用于獲取檢索結(jié)果語句的答復(fù)語句作為輸出語句。
[0066]輸出模塊800:用于將輸出語句輸出。
[0067]預(yù)設(shè)聊天大數(shù)據(jù)知識庫的多條聊天語句中與用戶的輸入語句匹配度最大的聊天語句的答復(fù)語句即是對該用戶的輸入語句的較為合理和真實的回復(fù)。從而,在確定檢索結(jié)果語句后,即可在預(yù)設(shè)聊天大數(shù)據(jù)知識庫中檢索出檢索結(jié)果語句的答復(fù)語句作為輸出語句,并將輸出語句輸出給用戶,實現(xiàn)機器人與用戶的交互。
[0068]上述機器人對話控制系統(tǒng),從預(yù)設(shè)聊天大數(shù)據(jù)知識庫中檢索與輸入語句匹配度最大且存在答復(fù)語句的語句作為檢索結(jié)果語句,并從預(yù)設(shè)聊天大數(shù)據(jù)知識庫中獲取檢索結(jié)果語句的答復(fù)語句作為輸出語句并輸出。從包括多條聊天語句以及多條聊天語句中至少一條聊天語句對應(yīng)的答復(fù)語句的聊天大數(shù)據(jù)知識庫中進(jìn)行搜索,不再是從根據(jù)人工制作的語句以及答復(fù)語句建立的數(shù)據(jù)庫中進(jìn)行搜索,獲得的檢索結(jié)果語句以及其對應(yīng)的答復(fù)語句更符合實際中用戶聊天的語句,從而更具有合理性和真實性,且檢索結(jié)果語句是聊天語句中具有答復(fù)語句且與輸入語句匹配度最大的語句,匹配度越大表示語句與輸入語句更符合,從而機器人采用與輸入語句匹配度最大的檢索結(jié)果語句的答復(fù)語句作為回復(fù)語句回復(fù)用戶會更加合理和真實。
[0069]請參閱圖9,在其中一個實施例中,第一檢索模塊400包括:
[0070]第一篩選單元410:用于從預(yù)設(shè)聊天大數(shù)據(jù)知識庫中篩選存在答復(fù)語句的語句作為聊天語句集。
[0071]第二篩選單元420:用于通過編輯距離法或最大公共子串法對聊天語句集進(jìn)行篩選,獲得與輸入語句匹配度最大的聊天語句,將匹配度最大的聊天語句作為檢索結(jié)果語句。
[0072]其中,與輸入語句匹配度最大的聊天語句轉(zhuǎn)換為輸入語句時所需的插入、刪除和替換的總次數(shù)最少,或者,與輸入語句匹配度最大的聊天語句與輸入語句具有的最大公共子串最長。
[0073]預(yù)設(shè)聊天大數(shù)據(jù)知識庫中的聊天語句中存在答復(fù)語句且與用戶的輸入語句匹配度最大的語句的即是該用戶的輸入語句的最為合理的回復(fù),語句可以表示成字符串,語句匹配度的計算可以轉(zhuǎn)化為字符串匹配度或相似度的計算,從而,進(jìn)行匹配度計算的方法有多種,可以采用字符串匹配度或相似度算法,例如,編輯距離法,就是用來計算從原串轉(zhuǎn)換到目標(biāo)串所需要的最少的插入、刪除和替換的數(shù)目,即檢索輸入語句中轉(zhuǎn)換為輸入語句時所需的插入、刪除和替換的總次數(shù)最少的語句作為與輸入語句匹配度最大的語句,顯然當(dāng)一個語句編輯為另一個語句所需的插入、刪除和替換的次數(shù)越少,則匹配度越大。另一種方式是最大公共子串法,即兩個語句的最大公共子串越長,則這兩個語句匹配度越大。具體地,在獲取與輸入語句匹配度最大的聊天語句時,可忽略人稱進(jìn)行匹配,這樣可減小匹配時間,提高匹配效率,在后續(xù)可根據(jù)輸入語句的人稱,以及與輸入語句匹配度最大的聊天語句對應(yīng)的回復(fù)語句的人稱,對回復(fù)語句的人稱進(jìn)行變換輸出,以提高輸出語句的合理性。
[0074]請參閱圖10,在其中一個實施例中,上述機器人對話控制系統(tǒng)還包括:
[0075]記錄獲取模塊110,用于獲取歷史聊天記錄。
[0076]聊天語句獲取模塊120:用于從歷史聊天記錄中獲取多條聊天語句以及多條聊天語句中至少一條聊天語句對應(yīng)的答復(fù)語句。
[0077]構(gòu)建模塊130:用于將聊天語句以及與聊天語句對應(yīng)的答復(fù)語句以文件的形式或以數(shù)據(jù)庫的形式進(jìn)行存儲,構(gòu)建預(yù)設(shè)聊天大數(shù)據(jù)知識庫。
[0078]歷史聊天記錄為用戶在過去長時間內(nèi)進(jìn)行聊天產(chǎn)生的語句記錄,其中包括了多條聊天語句以及回復(fù)語句,即歷史聊天記錄是在海量的用戶在過去長時間積累的大量的聊天數(shù)據(jù)的基礎(chǔ)上形成的,即是根據(jù)大量歷史聊天數(shù)據(jù)構(gòu)建預(yù)設(shè)聊天大數(shù)據(jù)知識庫,從而聊天語句和其對應(yīng)的答復(fù)語句不再是人工制作的,是實際聊天過程中產(chǎn)生的,可提高聊天語句和其對應(yīng)的答復(fù)語句的合理性和真實性。具體地,構(gòu)建模塊130具體用于將聊天語句以及與聊天語句對應(yīng)的答復(fù)語句以文件的形式或以數(shù)據(jù)庫的形式進(jìn)行分行存儲,構(gòu)建預(yù)設(shè)聊天大數(shù)據(jù)知識庫,即預(yù)設(shè)聊天大數(shù)據(jù)知識庫可以用文本的形式對聊天語句與其對應(yīng)的答復(fù)語句進(jìn)行分行存儲,也可以采用數(shù)據(jù)庫的形式進(jìn)行分行存儲,每個聊天語句作為文件或數(shù)據(jù)庫中的一行,一個聊天語句的前一個聊天語句則存儲在該個聊天語句所在行的前一行,一個聊天語句的下一個聊天語句即是回復(fù)語句,則存儲在該個聊天語句所在行的后一行。文件的形式包括文本文件的形式以及語音文件的形式。
[0079]預(yù)設(shè)聊天大數(shù)據(jù)知識庫中的聊天語句獲取范圍包括人類對話數(shù)據(jù)或聊天數(shù)據(jù),包括但不限于互聯(lián)網(wǎng)聊天數(shù)據(jù)(例如,qq聊天數(shù)據(jù)、msn聊天數(shù)據(jù)以及skype聊天數(shù)據(jù)等)、移動互聯(lián)網(wǎng)聊天數(shù)據(jù)(例如,微信聊天數(shù)據(jù)以及手機短信聊天數(shù)據(jù)等)、論壇聊天數(shù)據(jù)(例如,天涯聊天數(shù)據(jù))、語音聊天數(shù)據(jù)(例如,電話聊天數(shù)據(jù)以及會議討論數(shù)據(jù)),即歷史聊天記錄包括但不限于互聯(lián)網(wǎng)聊天數(shù)據(jù)、移動互聯(lián)網(wǎng)聊天數(shù)據(jù)、論壇聊天數(shù)據(jù)、語音聊天數(shù)據(jù)以及人機聊天記錄,人機聊天記錄為用戶與機器人在聊天過程中的語句記錄,其中,skype是全球免費的語音溝通軟件,人類通過skype聊天產(chǎn)生的數(shù)據(jù)即為skype聊天數(shù)據(jù),這些聊天數(shù)據(jù)可以是文本、語音以及視頻等信息形式,這些聊天數(shù)據(jù)可以批量導(dǎo)入預(yù)設(shè)聊天大數(shù)據(jù)知識庫,也可以實時增量式地追加到預(yù)設(shè)聊天大數(shù)據(jù)知識庫。預(yù)設(shè)聊天大數(shù)據(jù)知識庫具備人類聊天語句的檢索引擎,該檢索引擎能進(jìn)行語句的模糊匹配,該檢索引擎支持文本、語音及視頻的檢索和模糊匹配,通過該檢索引擎可以從預(yù)設(shè)聊天大數(shù)據(jù)知識庫的多條聊天語句中檢索出與用戶的輸入語句匹配度最大的一個聊天語句??梢酝ㄟ^云存儲和云計算技術(shù)來提高預(yù)設(shè)聊天大數(shù)據(jù)知識庫及其檢索引擎的速度,即將預(yù)設(shè)聊天大數(shù)據(jù)知識庫進(jìn)行云存儲,預(yù)設(shè)聊天大數(shù)據(jù)知識庫中的聊天語句是有序的,在某一段聊天語句中,大部分聊天語句都有答復(fù)語句,只有聊天結(jié)束時的最后一個聊天語句沒有答復(fù)語句。
[0080]在其中一個實施例中,輸出模塊800包括:
[0081]人稱變換單元810:用于當(dāng)檢索結(jié)果語句的人稱與輸入語句的人稱不同時,將輸出語句的人稱進(jìn)行變換。
[0082]輸出單元820:用于將人稱變換后的聊天輸出語句輸出。
[0083]為了確保機器人給用戶的回復(fù)語句的合理性,需要對檢索結(jié)果語句的人稱與輸入語句的人稱進(jìn)行一致性判斷,由于檢索結(jié)果語句的答復(fù)語句是對檢索結(jié)果語句的回復(fù),當(dāng)檢索結(jié)果語句和輸入語句的人稱不同時,可能會導(dǎo)致檢索結(jié)果語句的答復(fù)語句作為輸入語句的回復(fù)時人稱不合理,從而,此時將輸出語句進(jìn)行人稱變換后輸出給用戶,提高機器人回復(fù)的合理性。
[0084]在其中一個實施例中,人稱變換單元810包括:
[0085]第一變換層,用于當(dāng)輸入語句的主語為第一人稱以及檢索結(jié)果語句的主語為第二人稱時,將輸出語句中的主語變換為第二人稱;
[0086]第二變換層,用于當(dāng)輸入語句的賓語為第一人稱以及檢索結(jié)果語句的賓語為第二人稱時,將輸出語句中的賓語變換為第二人稱;
[0087]第三變換層,用于當(dāng)輸入語句的主語為第二人稱以及檢索結(jié)果語句的主語為第一人稱時,將輸出語句中的主語變換為第一人稱;
[0088]第四變換層,用于當(dāng)輸入語句的賓語為第二人稱以及檢索結(jié)果語句的賓語為第一人稱時,將輸出語句中的賓語變換為第一人稱。當(dāng)輸入語句的主語的人稱為第二人稱,檢索結(jié)果語句的主語的人稱為第一人稱時,將輸出語句中主語的人稱變換成第一人稱后再輸出。即通過人稱變換使回復(fù)的輸出語句更合理化,使對話合理化。例如,輸入語句的主語的人稱是我時,表示是用戶自己,而與輸入語句最匹配的檢索結(jié)果語句中的主語的人稱為你,按照人類實際聊天的情況,檢索結(jié)果語句的答復(fù)語句是對檢索結(jié)果語句的回復(fù),檢索結(jié)果語句的答復(fù)語句的人稱一般為我,機器人在回復(fù)時,是對用戶的回復(fù),從而將輸出語句中的主語的人稱我變換成你,讓回復(fù)變得合理。同理,當(dāng)輸入語句的主語的人稱為第一人稱,檢索結(jié)果語句的主語的人稱為第二人稱時,將輸出語句的主語的人稱變換成第二人稱后再輸出,提高回復(fù)合理性。類似地,當(dāng)輸入語句的賓語的人稱與檢索結(jié)果語句的賓語的人稱不同時,將輸出語句的賓語的人稱進(jìn)行變換后再輸出,以提高機器人回復(fù)合理性。
[0089]可以理解,當(dāng)輸入語句的賓語為第一人稱以及檢索結(jié)果語句的賓語為第二人稱時,且當(dāng)輸出語句包括賓語時,將輸出語句中的賓語變換為第二人稱。當(dāng)輸入語句的賓語為第一人稱以及檢索結(jié)果語句的賓語為第二人稱時,且當(dāng)輸出語句不包括賓語但包括主語時,將輸出語句中的主語變換為第二人稱。
[0090]當(dāng)輸入語句的賓語為第二人稱以及檢索結(jié)果語句的賓語為第一人稱時,且當(dāng)輸出語句包括賓語時,將輸出語句中的賓語變換為第一人稱。當(dāng)輸入語句的賓語為第二人稱以及檢索結(jié)果語句的賓語為第一人稱時,且當(dāng)輸出語句不包括賓語但包括主語時,將輸出語句中的主語變換為第一人稱。以上實施例的各技術(shù)特征可以進(jìn)行任意的組合,為使描述簡潔,未對上述實施例中的各個技術(shù)特征所有可能的組合都進(jìn)行描述,然而,只要這些技術(shù)特征的組合不存在矛盾,都應(yīng)當(dāng)認(rèn)為是本說明書記載的范圍。
[0091]以上實施例僅表達(dá)了本發(fā)明的幾種實施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護范圍。因此,本發(fā)明專利的保護范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。
【主權(quán)項】
1.一種機器人對話控制方法,其特征在于,包括以下步驟: 獲取輸入語句; 從預(yù)設(shè)聊天大數(shù)據(jù)知識庫中檢索與所述輸入語句匹配度最大且存在答復(fù)語句的聊天語句作為檢索結(jié)果語句,其中,所述預(yù)設(shè)聊天大數(shù)據(jù)知識庫包括多條聊天語句以及所述多條聊天語句中至少一條聊天語句對應(yīng)的答復(fù)語句,且聊天語句與其對應(yīng)的答復(fù)語句分行存儲; 獲取所述檢索結(jié)果語句的答復(fù)語句作為輸出語句; 將所述輸出語句輸出。2.根據(jù)權(quán)利要求1所述的機器人對話控制方法,其特征在于,所述從預(yù)設(shè)聊天大數(shù)據(jù)知識庫中檢索與所述輸入語句匹配度最大且存在答復(fù)語句的聊天語句作為檢索結(jié)果語句的步驟包括: 從所述預(yù)設(shè)聊天大數(shù)據(jù)知識庫中篩選存在答復(fù)語句的語句作為聊天語句集; 通過編輯距離法或最大公共子串法對所述聊天語句集進(jìn)行篩選,獲得與所述輸入語句匹配度最大的聊天語句,將所述匹配度最大的聊天語句作為所述檢索結(jié)果語句。3.根據(jù)權(quán)利要求1所述的機器人對話控制方法,其特征在于,所述獲取輸入語句的步驟之前還包括: 獲取歷史聊天記錄; 從所述歷史聊天記錄中獲取多條聊天語句以及所述多條聊天語句中至少一條聊天語句對應(yīng)的回復(fù)語句; 將所述聊天語句以及與所述聊天語句對應(yīng)的回復(fù)語句以文件的形式或以數(shù)據(jù)庫的形式進(jìn)行存儲,構(gòu)建所述預(yù)設(shè)聊天大數(shù)據(jù)知識庫。4.根據(jù)權(quán)利要求1所述的機器人對話控制方法,其特征在于,所述將所述輸出語句輸出的步驟包括: 當(dāng)所述檢索結(jié)果語句的人稱與所述輸入語句的人稱不同時,將所述輸出語句的人稱進(jìn)行變換; 將所述人稱變換后的所述輸出語句輸出。5.根據(jù)權(quán)利要求4所述的機器人對話控制方法,其特征在于,所述當(dāng)所述檢索結(jié)果語句的人稱與所述輸入語句的人稱不同時,將所述輸出語句的人稱進(jìn)行變換的步驟包括: 當(dāng)所述輸入語句的主語為第一人稱以及所述檢索結(jié)果語句的主語為第二人稱時,將所述輸出語句中的主語變換為第二人稱; 當(dāng)所述輸入語句的賓語為第一人稱以及所述檢索結(jié)果語句的賓語為第二人稱時,將所述輸出語句中的賓語變換為第二人稱; 當(dāng)所述輸入語句的主語為第二人稱以及所述檢索結(jié)果語句的主語為第一人稱時,將所述輸出語句中的主語變換為第一人稱; 當(dāng)所述輸入語句的賓語為第二人稱以及所述檢索結(jié)果語句的賓語為第一人稱時,將所述輸出語句中的賓語變換為第一人稱。6.一種機器人對話控制系統(tǒng),其特征在于,包括: 獲取模塊,用于獲取輸入語句; 第一檢索模塊,用于從預(yù)設(shè)聊天大數(shù)據(jù)知識庫中檢索與所述輸入語句匹配度最大且存在答復(fù)語句的聊天語句作為檢索結(jié)果語句,其中,所述預(yù)設(shè)聊天大數(shù)據(jù)知識庫包括多條聊天語句以及所述多條聊天語句中至少一條聊天語句對應(yīng)的答復(fù)語句,且聊天語句與其對應(yīng)的答復(fù)語句分行存儲; 第二檢索模塊,用于獲取所述檢索結(jié)果語句的答復(fù)語句作為輸出語句; 輸出模塊,用于將所述輸出語句輸出。7.根據(jù)權(quán)利要求6所述的機器人對話控制系統(tǒng),其特征在于,所述第一檢索模塊包括: 第一篩選單元,用于從所述預(yù)設(shè)聊天大數(shù)據(jù)知識庫中篩選存在答復(fù)語句的語句作為聊天語句集; 第二篩選單元,用于通過編輯距離法或最大公共子串法對所述聊天語句集進(jìn)行篩選,獲得與所述輸入語句匹配度最大的聊天語句,將所述匹配度最大的聊天語句作為所述檢索結(jié)果語句。8.根據(jù)權(quán)利要求6所述的機器人對話控制系統(tǒng),其特征在于,還包括: 記錄獲取模塊,用于獲取歷史聊天記錄;聊天語句獲取模塊,用于從所述歷史聊天記錄中獲取多條聊天語句以及所述多條聊天語句中至少一條聊天語句對應(yīng)的答復(fù)語句; 構(gòu)建模塊,用于將所述聊天語句與所述聊天語句對應(yīng)的答復(fù)語句以文件的形式或以數(shù)據(jù)庫的形式進(jìn)行存儲,構(gòu)建所述預(yù)設(shè)聊天大數(shù)據(jù)知識庫。9.根據(jù)權(quán)利要求6所述的機器人對話控制系統(tǒng),其特征在于,所述輸出模塊包括: 人稱變換單元,用于當(dāng)所述檢索結(jié)果語句的人稱與所述輸入語句的人稱不同時,將所述輸出語句的人稱進(jìn)行變換; 輸出單元,用于將所述人稱變換后的所述聊天輸出語句輸出。10.根據(jù)權(quán)利要求9所述的機器人對話控制系統(tǒng),其特征在于,所述人稱變換單元包括: 第一變換層,用于當(dāng)所述輸入語句的主語為第一人稱以及所述檢索結(jié)果語句的主語為第二人稱時,將所述輸出語句中的主語變換為第二人稱; 第二變換層,用于當(dāng)所述輸入語句的賓語為第一人稱以及所述檢索結(jié)果語句的賓語為第二人稱時,將所述輸出語句中的賓語變換為第二人稱; 第三變換層,用于當(dāng)所述輸入語句的主語為第二人稱以及所述檢索結(jié)果語句的主語為第一人稱時,將所述輸出語句中的主語變換為第一人稱; 第四變換層,用于當(dāng)所述輸入語句的賓語為第二人稱以及所述檢索結(jié)果語句的賓語為第一人稱時,將所述輸出語句中的賓語變換為第一人稱。
【文檔編號】G06F17/30GK105975530SQ201610281403
【公開日】2016年9月28日
【申請日】2016年4月29日
【發(fā)明人】朱定局
【申請人】華南師范大學(xué)