本發(fā)明涉及電數(shù)字數(shù)據(jù)處理和人工智能技術(shù)領(lǐng)域,尤其涉及一種智能問答方法及系統(tǒng)。
背景技術(shù):
在智能對話系統(tǒng)中,通常使用問題和問題匹配的方法尋找答案。在知識庫中保存問題和相應(yīng)的回答,當(dāng)用戶詢問一個問題A時,從知識庫中找到與問題A相似的問題B,然后將問題B的答案返回給用戶。通常通過關(guān)鍵詞比較計算兩個問題的相似度,即基于問題A和問題B的關(guān)鍵詞計算其相似度。為了提高召回率,通常不要求關(guān)鍵詞完全匹配,然而,這種方法這可能會引入錯誤。因為兩個問題中提取的關(guān)鍵詞可能有很高的相似度,但兩個問題中包含的人稱在句子中的順序不同,即施動人稱和受動人稱不同,問題A中的施動人稱為X1,受動人稱為Y1,而問題B中的施動人稱為X2,受動人稱為Y2,因此,如果忽略問題中包含的施動人稱和受動人稱不同問題,很可能給出問題的回答是不準(zhǔn)確的。例如,例如,question A:我喜歡你question B:你喜歡我,這兩個question的關(guān)鍵詞都是“我”“喜歡”“你”,因此會有很高的相似度,但是由于兩個句子中的施動人稱和受動人稱不同,導(dǎo)致其語義完全不同,因此很可能給出問題的回答不準(zhǔn)確。
因此,現(xiàn)有技術(shù)中的缺陷是,在智能對話系統(tǒng)中,無法根據(jù)問題中包含的施動人稱和受動人稱進行語義分析,導(dǎo)致給出的回答不準(zhǔn)確。
技術(shù)實現(xiàn)要素:
針對上述技術(shù)問題,本發(fā)明提供一種智能回答方法及系統(tǒng),通過人稱模型計算用戶提出問題中的施動人稱和受動人稱,根據(jù)知識庫中保存的問題及其施動人稱和受動人稱,在知識庫中去除與用戶提出的問題的施動人稱和受動人稱不一致的問題,進而匹配到與用戶提出問題相似的問題,并給出準(zhǔn)確的回答。
為解決上述技術(shù)問題,本發(fā)明提供的技術(shù)方案是:
第一方面,本發(fā)明提供一種智能回答方法,包括:
步驟S1,獲取知識庫,所述知識庫中存儲問題及對應(yīng)回答,根據(jù)預(yù)先建立的人稱模型計算所述問題的施動人稱和受動人稱,存入所述知識庫;
步驟S2,獲取用戶的問題,計算所述用戶問題的關(guān)鍵詞;
步驟S3,計算所述用戶問題的關(guān)鍵詞與所述知識庫中問題的關(guān)鍵詞的相似度,在所述知識庫中得到所述相似度為預(yù)設(shè)閾值的第一問題集合,并在所述知識庫中得到所述第一問題集合中問題對應(yīng)的施動人稱和受動人稱;
步驟S4,根據(jù)所述用戶的問題,通過所述人稱模型計算所述用戶的問題對應(yīng)的施動人稱和受動人稱;
步驟S5,將所述用戶的問題對應(yīng)的施動人稱和受動人稱與所述所述第一問題集合中問題對應(yīng)的施動人稱和受動人稱進行比較,將與所述用戶的問題對應(yīng)的施動人稱和受動人稱不一致的問題去除,得到第二問題集合;
步驟S6,根據(jù)所述第二問題集合,隨機取得一個問題作為匹配問題,所述匹配問題對應(yīng)的回答為所述用戶的問題的回答。
本發(fā)明的智能回答方法的技術(shù)方案為:獲取知識庫,所述知識庫中存儲問題及對應(yīng)回答,根據(jù)預(yù)先建立的人稱模型計算所述問題的施動人稱和受動人稱,存入所述知識庫;獲取用戶的問題,計算所述用戶問題的關(guān)鍵詞;計算所述用戶問題的關(guān)鍵詞與所述知識庫中問題的關(guān)鍵詞的相似度,在所述知識庫中得到所述相似度為預(yù)設(shè)閾值的第一問題集合,并在所述知識庫中得到所述第一問題集合中問題對應(yīng)的施動人稱和受動人稱;
根據(jù)所述用戶的問題,通過所述人稱模型計算所述用戶的問題對應(yīng)的施動人稱和受動人稱;將所述用戶的問題對應(yīng)的施動人稱和受動人稱與所述所述第一問題集合中問題對應(yīng)的施動人稱和受動人稱進行比較,將與所述用戶的問題對應(yīng)的施動人稱和受動人稱不一致的問題去除,得到第二問題集合;根據(jù)所述第二問題集合,隨機取得一個問題作為匹配問題,所述匹配問題對應(yīng)的回答為所述用戶的問題的回答。
本發(fā)明的智能問答方法,通過人稱模型計算用戶提出問題中的施動人稱和受動人稱,根據(jù)知識庫中保存的問題及其施動人稱和受動人稱,首先根據(jù)問題中的關(guān)鍵詞相似度得到第一問題集合,然后在知識庫中去除與用戶提出的問題的施動人稱和受動人稱不一致的問題,得到第二問題集合,在第二問題集合中匹配到相似的問題,并給出準(zhǔn)確的回答。
進一步地,所述語義模型的建立,具體為:
所述人稱模型的建立,具體為:
獲取訓(xùn)練語料,所述訓(xùn)練語料包括句子、施動人稱和受動人稱;
通過最大熵模型對所述訓(xùn)練語料進行訓(xùn)練,得到人稱模型。
進一步地,通過最大熵模型對所述訓(xùn)練語料進行訓(xùn)練,得到人稱模型,具體為:
獲取訓(xùn)練語料中的特征,所述特征為從所述句子、所述施動人稱和受動人稱中得到的特征序列;
對所述特征序列進行訓(xùn)練,得到人稱模型。
進一步地,所述特征包括二元特征,所述二元特征為句子中前后兩個字符形成的特征序列;句首的兩個字符,句尾的兩個字符,句首的三個字符,句尾的三個字符,句子中的第2個和第3個字符,句子中的倒數(shù)第2個和倒數(shù)第3個字符,句子中的字符被,句子中的字符把,句子中的字符跟、和、與、同,句首的人稱詞語,句子的分詞序列,句子的分詞及其詞性序列。
第二方面,本發(fā)明提供一種智能問答系統(tǒng),包括:
知識庫獲取模塊,用于獲取知識庫,所述知識庫中存儲問題及對應(yīng)回答,根據(jù)預(yù)先建立的人稱模型計算所述問題的施動人稱和受動人稱,存入所述知識庫;
關(guān)鍵詞獲取模塊,獲取用戶的問題,計算所述用戶問題的關(guān)鍵詞;
第一問題集合模塊,用于計算所述用戶問題的關(guān)鍵詞與所述知識庫中問題的關(guān)鍵詞的相似度,在所述知識庫中得到所述相似度為預(yù)設(shè)閾值的第一問題集合,并在所述知識庫中得到所述第一問題集合中問題對應(yīng)的施動人稱和受動人稱;
人稱模型計算模塊,用于根據(jù)所述用戶的問題,通過所述人稱模型計算所述用戶的問題對應(yīng)的施動人稱和受動人稱;
第二問題集合模塊,用于將所述用戶的問題對應(yīng)的施動人稱和受動人稱與所述所述第一問題集合中問題對應(yīng)的施動人稱和受動人稱進行比較,將與所述用戶的問題對應(yīng)的施動人稱和受動人稱不一致的問題去除,得到第二問題集合;
回答獲取模塊,用于根據(jù)所述第二問題集合,隨機取得一個問題作為匹配問題,所述匹配問題對應(yīng)的回答為所述用戶的問題的回答。
本發(fā)明的智能問答系統(tǒng)的技術(shù)方案為:先通過知識庫獲取模塊,用于獲取知識庫,所述知識庫中存儲問題及對應(yīng)回答,根據(jù)預(yù)先建立的人稱模型計算所述問題的施動人稱和受動人稱,存入所述知識庫;接著通過關(guān)鍵詞獲取模塊,獲取用戶的問題,計算所述用戶問題的關(guān)鍵詞;然后通過第一問題集合模塊,用于計算所述用戶問題的關(guān)鍵詞與所述知識庫中問題的關(guān)鍵詞的相似度,在所述知識庫中得到所述相似度為預(yù)設(shè)閾值的第一問題集合,并在所述知識庫中得到所述第一問題集合中問題對應(yīng)的施動人稱和受動人稱;
接著通過人稱模型計算模塊,用于根據(jù)所述用戶的問題,通過所述人稱模型計算所述用戶的問題對應(yīng)的施動人稱和受動人稱;然后通過第二問題集合模塊,用于將所述用戶的問題對應(yīng)的施動人稱和受動人稱與所述所述第一問題集合中問題對應(yīng)的施動人稱和受動人稱進行比較,將與所述用戶的問題對應(yīng)的施動人稱和受動人稱不一致的問題去除,得到第二問題集合;最后通過回答獲取模塊,用于根據(jù)所述第二問題集合,隨機取得一個問題作為匹配問題,所述匹配問題對應(yīng)的回答為所述用戶的問題的回答。
本發(fā)明的智能問答系統(tǒng),通過人稱模型計算用戶提出問題中的施動人稱和受動人稱,根據(jù)知識庫中保存的問題及其施動人稱和受動人稱,首先根據(jù)問題中的關(guān)鍵詞相似度得到第一問題集合,然后在知識庫中去除與用戶提出的問題的施動人稱和受動人稱不一致的問題,得到第二問題集合,在第二問題集合中匹配到相似的問題,并給出準(zhǔn)確的回答。
進一步地,還包括人稱模型建立模塊,用于:
獲取訓(xùn)練語料,所述訓(xùn)練語料包括句子、施動人稱和受動人稱;
通過最大熵模型對所述訓(xùn)練語料進行訓(xùn)練,得到人稱模型。
進一步地,所述人稱模型建立模塊,具體用于:
獲取訓(xùn)練語料中的特征,所述特征為從所述句子、所述施動人稱和受動人稱中得到的特征序列;
對所述特征序列進行訓(xùn)練,得到人稱模型。
進一步地,所述特征包括二元特征,所述二元特征為句子中前后兩個字符形成的特征序列;句首的兩個字符,句尾的兩個字符,句首的三個字符,句尾的三個字符,句子中的第2個和第3個字符,句子中的倒數(shù)第2個和倒數(shù)第3個字符,句子中的字符被,句子中的字符把,句子中的字符跟、和、與、同,句首的人稱詞語,句子的分詞序列,句子的分詞及其詞性序列。
附圖說明
為了更清楚地說明本發(fā)明具體實施方式或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對具體實施方式或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹。
圖1示出了本發(fā)明實施例所提供的一種智能問答方法的流程圖;
圖2示出了本發(fā)明實施例所提供的一種智能問答系統(tǒng)的示意圖。
具體實施方式
下面將結(jié)合附圖對本發(fā)明技術(shù)方案的實施例進行詳細的描述。以下實施例僅用于更加清楚地說明本發(fā)明的技術(shù)方案,因此只是作為示例,而不能以此來限制本發(fā)明的保護范圍。
實施例一
圖1示出了本發(fā)明實施例所提供的一種智能問答方法的流程圖;如圖1所示實施例一提供的一種智能問答方法,包括:
步驟S1,獲取知識庫,知識庫中存儲問題及對應(yīng)回答,根據(jù)預(yù)先建立的人稱模型計算問題的施動人稱和受動人稱,存入知識庫;
步驟S2,獲取用戶的問題,計算用戶問題的關(guān)鍵詞;
計算用戶問題的關(guān)鍵詞有兩種方法,一種方法是:
根據(jù)用戶的問題,對用戶的問題進行分詞和詞性標(biāo)注,得到指定詞;
將指定詞作為關(guān)鍵詞。
其中,指定詞包括動詞、名詞和人稱代詞;
另一種方法是:
根據(jù)用戶的問題,獲得用戶的問題中的分詞結(jié)果、詞性和依存句法;
根據(jù)分詞結(jié)果、詞性和依存句法,進行分析,得到分析結(jié)果;
根據(jù)分析結(jié)果,提取特征并訓(xùn)練最大熵模型,通過最大熵模型標(biāo)注關(guān)鍵詞。
步驟S3,計算用戶問題的關(guān)鍵詞與知識庫中問題的關(guān)鍵詞的相似度,在知識庫中得到相似度為預(yù)設(shè)閾值的第一問題集合,并在知識庫中得到第一問題集合中問題對應(yīng)的施動人稱和受動人稱;
步驟S4,根據(jù)用戶的問題,通過人稱模型計算用戶的問題對應(yīng)的施動人稱和受動人稱;
步驟S5,將用戶的問題對應(yīng)的施動人稱和受動人稱與第一問題集合中問題對應(yīng)的施動人稱和受動人稱進行比較,將與用戶的問題對應(yīng)的施動人稱和受動人稱不一致的問題去除,得到第二問題集合;
步驟S6,根據(jù)第二問題集合,隨機取得一個問題作為匹配問題,匹配問題對應(yīng)的回答為用戶的問題的回答。
本發(fā)明的智能回答方法的技術(shù)方案為:獲取知識庫,知識庫中存儲問題及對應(yīng)回答,根據(jù)預(yù)先建立的人稱模型計算問題的施動人稱和受動人稱,存入知識庫;獲取用戶的問題,計算用戶問題的關(guān)鍵詞;計算用戶問題的關(guān)鍵詞與知識庫中問題的關(guān)鍵詞的相似度,在知識庫中得到相似度為預(yù)設(shè)閾值的第一問題集合,并在知識庫中得到第一問題集合中問題對應(yīng)的施動人稱和受動人稱;
根據(jù)用戶的問題,通過人稱模型計算用戶的問題對應(yīng)的施動人稱和受動人稱;將用戶的問題對應(yīng)的施動人稱和受動人稱與第一問題集合中問題對應(yīng)的施動人稱和受動人稱進行比較,將與用戶的問題對應(yīng)的施動人稱和受動人稱不一致的問題去除,得到第二問題集合;根據(jù)第二問題集合,隨機取得一個問題作為匹配問題,匹配問題對應(yīng)的回答為用戶的問題的回答。
本發(fā)明的智能問答方法,通過人稱模型計算用戶提出問題中的施動人稱和受動人稱,根據(jù)知識庫中保存的問題及其施動人稱和受動人稱,首先根據(jù)問題中的關(guān)鍵詞相似度得到第一問題集合,然后在知識庫中去除與用戶提出的問題的施動人稱和受動人稱不一致的問題,得到第二問題集合,在第二問題集合中匹配到相似的問題,并給出準(zhǔn)確的回答。
需要說明的是,知識庫中存儲大量的問題,及問題對應(yīng)的回答,只有存儲的問題足夠多,才可以給用戶提供更準(zhǔn)確的回答。
具體地,語義模型的建立,具體為:
人稱模型的建立,具體為:
獲取訓(xùn)練語料,訓(xùn)練語料包括句子、施動人稱和受動人稱;
通過最大熵模型對訓(xùn)練語料進行訓(xùn)練,得到人稱模型。
具體地,通過最大熵模型對訓(xùn)練語料進行訓(xùn)練,得到人稱模型,具體為:
獲取訓(xùn)練語料中的特征,特征為從句子、施動人稱和受動人稱中得到的特征序列;
對特征序列進行訓(xùn)練,得到人稱模型。
通過最大熵模型將訓(xùn)練語料中表示受動人稱和施動人稱的特征進行提取訓(xùn)練,得到人稱模型,最大熵模型的優(yōu)點為:建模時,試驗者只需集中精力選擇特征,而不需要花費精力考慮如何使用這些特征;特征選擇靈活,且不需要額外的獨立假定或者內(nèi)在約束;模型應(yīng)用在不同領(lǐng)域時的可移植性強;可結(jié)合更豐富的信息。因此本發(fā)明中選用最大熵模型對訓(xùn)練語料進行訓(xùn)練,得到人稱模型。
具體地,特征包括二元特征,二元特征為句子中前后兩個字符形成的特征序列;句首的兩個字符,句尾的兩個字符,句首的三個字符,句尾的三個字符,句子中的第2個和第3個字符,句子中的倒數(shù)第2個和倒數(shù)第3個字符,句子中的字符被,句子中的字符把,句子中的字符跟、和、與、同,句首的人稱詞語,句子的分詞序列,句子的分詞及其詞性序列。
具體地,預(yù)設(shè)閾值為60%。經(jīng)驗證,在預(yù)設(shè)閾值為60%時,即相似度為60%時,在知識庫中得到的第一問題集合中的問題與用戶提出的問題相似。
圖2示出了本發(fā)明實施例所提供的一種智能問答系統(tǒng)的示意圖,如圖2所示,本發(fā)明實施例提供一種智能問答系統(tǒng)10,包括:
知識庫獲取模塊101,用于獲取知識庫,知識庫中存儲問題及對應(yīng)回答,根據(jù)預(yù)先建立的人稱模型計算問題的施動人稱和受動人稱,存入知識庫;
關(guān)鍵詞獲取模塊102,獲取用戶的問題,計算用戶問題的關(guān)鍵詞;
計算用戶問題的關(guān)鍵詞有兩種方法,一種方法是:
根據(jù)用戶的問題,對用戶的問題進行分詞和詞性標(biāo)注,得到指定詞;
將指定詞作為關(guān)鍵詞。
其中,指定詞包括動詞、名詞和人稱代詞;
另一種方法是:
根據(jù)用戶的問題,獲得用戶的問題中的分詞結(jié)果、詞性和依存句法;
根據(jù)分詞結(jié)果、詞性和依存句法,進行分析,得到分析結(jié)果;
根據(jù)分析結(jié)果,提取特征并訓(xùn)練最大熵模型,通過最大熵模型標(biāo)注關(guān)鍵詞。
第一問題集合模塊103,用于計算用戶問題的關(guān)鍵詞與知識庫中問題的關(guān)鍵詞的相似度,在知識庫中得到相似度為預(yù)設(shè)閾值的第一問題集合,并在知識庫中得到第一問題集合中問題對應(yīng)的施動人稱和受動人稱;
人稱模型計算模塊104,用于根據(jù)用戶的問題,通過人稱模型計算用戶的問題對應(yīng)的施動人稱和受動人稱;
第二問題集合模塊105,用于將用戶的問題對應(yīng)的施動人稱和受動人稱與第一問題集合中問題對應(yīng)的施動人稱和受動人稱進行比較,將與用戶的問題對應(yīng)的施動人稱和受動人稱不一致的問題去除,得到第二問題集合;
回答獲取模塊106,用于根據(jù)第二問題集合,隨機取得一個問題作為匹配問題,匹配問題對應(yīng)的回答為用戶的問題的回答。
本發(fā)明的智能問答系統(tǒng)10的技術(shù)方案為:先通過知識庫獲取模塊101,用于獲取知識庫,知識庫中存儲問題及對應(yīng)回答,根據(jù)預(yù)先建立的人稱模型計算問題的施動人稱和受動人稱,存入知識庫;接著通過關(guān)鍵詞獲取模塊102,獲取用戶的問題,計算用戶問題的關(guān)鍵詞;然后通過第一問題集合模塊103,用于計算用戶問題的關(guān)鍵詞與知識庫中問題的關(guān)鍵詞的相似度,在知識庫中得到相似度為預(yù)設(shè)閾值的第一問題集合,并在知識庫中得到第一問題集合中問題對應(yīng)的施動人稱和受動人稱;
接著通過人稱模型計算模塊104,用于根據(jù)用戶的問題,通過人稱模型計算用戶的問題對應(yīng)的施動人稱和受動人稱;然后通過第二問題集合模塊105,用于將用戶的問題對應(yīng)的施動人稱和受動人稱與第一問題集合中問題對應(yīng)的施動人稱和受動人稱進行比較,將與用戶的問題對應(yīng)的施動人稱和受動人稱不一致的問題去除,得到第二問題集合;最后通過回答獲取模塊106,用于根據(jù)第二問題集合,隨機取得一個問題作為匹配問題,匹配問題對應(yīng)的回答為用戶的問題的回答。
本發(fā)明的智能問答系統(tǒng)10,通過人稱模型計算用戶提出問題中的施動人稱和受動人稱,根據(jù)知識庫中保存的問題及其施動人稱和受動人稱,首先根據(jù)問題中的關(guān)鍵詞相似度得到第一問題集合,然后在知識庫中去除與用戶提出的問題的施動人稱和受動人稱不一致的問題,得到第二問題集合,在第二問題集合中匹配到相似的問題,并給出準(zhǔn)確的回答。
具體地,還包括人稱模型建立模塊,用于:
獲取訓(xùn)練語料,訓(xùn)練語料包括句子、施動人稱和受動人稱;
通過最大熵模型對訓(xùn)練語料進行訓(xùn)練,得到人稱模型。
具體地,人稱模型建立模塊,具體用于:
獲取訓(xùn)練語料中的特征,特征為從句子、施動人稱和受動人稱中得到的特征序列;
對特征序列進行訓(xùn)練,得到人稱模型。
通過最大熵模型將訓(xùn)練語料中表示受動人稱和施動人稱的特征進行提取訓(xùn)練,得到人稱模型,最大熵模型的優(yōu)點為:建模時,試驗者只需集中精力選擇特征,而不需要花費精力考慮如何使用這些特征;特征選擇靈活,且不需要額外的獨立假定或者內(nèi)在約束;模型應(yīng)用在不同領(lǐng)域時的可移植性強;可結(jié)合更豐富的信息。因此本發(fā)明中選用最大熵模型對訓(xùn)練語料進行訓(xùn)練,得到人稱模型。
具體地,特征包括二元特征,二元特征為句子中前后兩個字符形成的特征序列;句首的兩個字符,句尾的兩個字符,句首的三個字符,句尾的三個字符,句子中的第2個和第3個字符,句子中的倒數(shù)第2個和倒數(shù)第3個字符,句子中的字符被,句子中的字符把,句子中的字符跟、和、與、同,句首的人稱詞語,句子的分詞序列,句子的分詞及其詞性序列。
具體地,預(yù)設(shè)閾值為60%。經(jīng)驗證,在預(yù)設(shè)閾值為60%時,即相似度為60%時,在知識庫中得到的第一問題集合中的問題與用戶提出的問題相似。
實施例二
基于實施例一中的智能問答方法和智能問答系統(tǒng)10,進行智能問答過程的具體說明:
1、將問題(question)和回答(answer)加入知識庫,
例如:
2、通過關(guān)鍵詞進行索引;同時,根據(jù)人稱模型M計算question的施動人稱和受動人稱,存入知識庫中;
以上question的關(guān)鍵詞及施動人稱和受動人稱如下:
3、根據(jù)用戶提供的問題question A“我喜歡你”,計算其關(guān)鍵詞為“我喜歡你”;
4、根據(jù)關(guān)鍵詞,從知識庫中得到相似度為top n(預(yù)設(shè)閾值)的question集合CQS1(第一問題集合)。計算得到question A與知識庫中question的相似度(根據(jù)相同關(guān)鍵詞數(shù)/總關(guān)鍵詞數(shù)計算)如下:
5、根據(jù)用戶提供的問題question A“我喜歡你”,根據(jù)人稱模型M計算其施動人稱為第一人稱,受動人稱為第二人稱;
6、利用question A的施動人稱和受動人稱,從集合CQS1(第一問題集合)中過濾施動人稱和受動人稱不一致的question,得到集合CQS2(第二問題集合);CQS2集合如下:
相似的question 施動人稱 受動人稱
我喜歡你 第一人稱 第二人稱
我非常喜歡你 第一人稱 第二人稱
7、對于集合CQS2中的每一個問題,將其對應(yīng)的答案返回給用戶,因此用戶得到的答案是“我也喜歡你”或者“我也非常喜歡你”。
通過本發(fā)明的智能問答方法及系統(tǒng)進行智能回答,可根據(jù)問題的施動人稱和受動人稱,給用戶提供更準(zhǔn)確的回答。
最后應(yīng)說明的是:以上各實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述各實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分或者全部技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的范圍,其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求和說明書的范圍當(dāng)中。