本發(fā)明的實(shí)施方式涉及自動(dòng)問答技術(shù)領(lǐng)域,更具體地,本發(fā)明的實(shí)施方式涉及一種問題匹配方法和裝置。
背景技術(shù):
本部分旨在為權(quán)利要求書中陳述的本發(fā)明的實(shí)施方式提供背景或上下文。此處的描述不因?yàn)榘ㄔ诒静糠种芯统姓J(rèn)是現(xiàn)有技術(shù)。
FAQ(Frequently Asked Questions,常見問題)問答系統(tǒng)當(dāng)中,預(yù)先根據(jù)常見問題,建立一個(gè)候選問題集,該候選問題集中的每個(gè)問題關(guān)聯(lián)相應(yīng)的答案。當(dāng)用戶提交問題后,在候選問題集中匹配與用戶提交的問題相似的問題,然后將匹配到的相似度較高的問題所關(guān)聯(lián)的答案推送給用戶,其中,常用的查找與用戶提交的問題相似的問題的方式為:
從用戶提交的問題中提取關(guān)鍵詞(或者關(guān)鍵詞同義詞),在候選問題集中的每個(gè)問題中匹配提取到的關(guān)鍵詞,如果在候選問題集的問題中匹配的到的關(guān)鍵詞越多,確定該問題與用戶提交的問題越相似,則該問題與用戶提交的問題的相似度越高。
但是,目前的這種匹配相似問題的方式,關(guān)鍵詞在不同的語(yǔ)境中可能會(huì)有不同的含義,并且僅根據(jù)單個(gè)問題與單個(gè)問題之間的相似度來(lái)匹配相似問題,此時(shí),僅根據(jù)關(guān)鍵詞從候選問題集中匹配到的與用戶提交的問題相似度較高的問題可能是錯(cuò)誤問題(與用戶提問的問題無(wú)關(guān)),因此,利用這種匹配相似問題的方式為用戶推送與用戶提交的問題相符的答案正確率較低。
技術(shù)實(shí)現(xiàn)要素:
現(xiàn)有技術(shù)中的基于關(guān)鍵詞匹配相似問題的方式,由于關(guān)鍵詞在不同的語(yǔ)境中可能會(huì)有不同的含義,并且僅根據(jù)單個(gè)問題與單個(gè)問題之間的相似度來(lái)匹配相似問題,此時(shí),僅根據(jù)關(guān)鍵詞從候選問題集中匹配到的與用戶提交的問題相似度較高的問題可能是錯(cuò)誤問題(與用戶提問的問題無(wú)關(guān)),從而造成為用戶推送與用戶提交的問題相符的答案的正確率較低。為此,非常需要一種改進(jìn)的問題匹配方法,來(lái)解決現(xiàn)有技術(shù)中存在的問題。
在本上下文中,本發(fā)明的實(shí)施方式期望提供一種問題匹配方法和裝置。
在本發(fā)明實(shí)施方式的第一方面中,提供了一種問題匹配方法,包括:
接收用戶提交的問題;
針對(duì)預(yù)設(shè)的每個(gè)問題集,計(jì)算該問題集與用戶提交的問題的相似度;
若所述相似度大于設(shè)定相似度閾值,確定該問題集中的待匹配問題與用戶提交的問題相匹配;
其中,同一問題集中保存至少兩個(gè)針對(duì)同一答案的待匹配問題。
在本發(fā)明實(shí)施方式的第二方面中,提供了一種問題匹配裝置,包括:
接收模塊,用于接收用戶提交的問題;
相似度計(jì)算模塊,用于針對(duì)預(yù)設(shè)的每個(gè)問題集,計(jì)算該問題集與用戶提交的問題的相似度;
確定模塊,用于若所述相似度大于設(shè)定相似度閾值,確定該問題集中的待匹配問題與用戶提交的問題相匹配;
其中,同一問題集中保存至少兩個(gè)針對(duì)同一答案的待匹配問題。
在本發(fā)明實(shí)施方式的第三方面中,提供了一種問題匹配設(shè)備,例如,可以包括存儲(chǔ)器和處理器,其中,處理器可以用于讀取存儲(chǔ)器中的程序,執(zhí)行下列過程:
接收用戶提交的問題;
針對(duì)預(yù)設(shè)的每個(gè)問題集,計(jì)算該問題集與用戶提交的問題的相似度;
若所述相似度大于設(shè)定相似度閾值,確定該問題集中的待匹配問題與用戶提交的問題相匹配;
其中,同一問題集中保存至少兩個(gè)針對(duì)同一答案的待匹配問題。
在本發(fā)明實(shí)施方式的第四方面中,提供了一種程序產(chǎn)品,其包括程序代碼,當(dāng)所述程序產(chǎn)品運(yùn)行時(shí),所述程序代碼用于執(zhí)行以下過程:
接收用戶提交的問題;
針對(duì)預(yù)設(shè)的每個(gè)問題集,計(jì)算該問題集與用戶提交的問題的相似度;
若所述相似度大于設(shè)定相似度閾值,確定該問題集中的待匹配問題與用戶提交的問題相匹配;
其中,同一問題集中保存至少兩個(gè)針對(duì)同一答案的待匹配問題。
根據(jù)本發(fā)明實(shí)施方式的問題匹配方法和裝置,預(yù)先設(shè)置多個(gè)問題集,每個(gè)問題集中保存至少兩個(gè)針對(duì)同一答案的待匹配問題,將用戶提交的問題與問題集進(jìn)行匹配,相比于現(xiàn)有技術(shù)中僅根據(jù)關(guān)鍵字進(jìn)行問題匹配的方式,能夠提高問題匹配的準(zhǔn)確性和可靠性。
附圖說(shuō)明
通過參考附圖閱讀下文的詳細(xì)描述,本發(fā)明示例性實(shí)施方式的上述以及其他目的、特征和優(yōu)點(diǎn)將變得易于理解。在附圖中,以示例性而非限制性的方式示出了本發(fā)明的若干實(shí)施方式,其中:
圖1示意性地示出了根據(jù)本發(fā)明實(shí)施方式的應(yīng)用場(chǎng)景示意圖;
圖2示意性地示出了根據(jù)本發(fā)明實(shí)施方式的問題匹配方法流程示意圖;
圖3示意性地示出了根據(jù)本發(fā)明實(shí)施方式的計(jì)算問題集與用戶提交的問題相似度的方法流程示意圖;
圖4示意性地示出了根據(jù)本發(fā)明實(shí)施方式的計(jì)算問題集中每個(gè)待匹配問題與用戶提交的問題的相似度的方法流程示意圖;
圖5示意性地示出了根據(jù)本發(fā)明實(shí)施方式的訓(xùn)練得到預(yù)設(shè)深度學(xué)習(xí)模型的方法流程示意圖;
圖6示意性地示出了根據(jù)本發(fā)明一實(shí)施例的問題匹配裝置的結(jié)構(gòu)示意圖;
圖7示意性地示出了根據(jù)本發(fā)明另一實(shí)施例的問題匹配裝置的結(jié)構(gòu)示意圖;
圖8示意性地示出了根據(jù)本發(fā)明再一實(shí)施例的用于問題匹配方法的程序產(chǎn)品示意圖。
在附圖中,相同或?qū)?yīng)的標(biāo)號(hào)表示相同或?qū)?yīng)的部分。
具體實(shí)施方式
下面將參考若干示例性實(shí)施方式來(lái)描述本發(fā)明的原理和精神。應(yīng)當(dāng)理解,給出這些實(shí)施方式僅僅是為了使本領(lǐng)域技術(shù)人員能夠更好地理解進(jìn)而實(shí)現(xiàn)本發(fā)明,而并非以任何方式限制本發(fā)明的范圍。相反,提供這些實(shí)施方式是為了使本公開更加透徹和完整,并且能夠?qū)⒈竟_的范圍完整地傳達(dá)給本領(lǐng)域的技術(shù)人員。
本領(lǐng)域技術(shù)人員知道,本發(fā)明的實(shí)施方式可以實(shí)現(xiàn)為一種系統(tǒng)、裝置、設(shè)備、方法或計(jì)算機(jī)程序產(chǎn)品。因此,本公開可以具體實(shí)現(xiàn)為以下形式,即:完全的硬件、完全的軟件(包括固件、駐留軟件、微代碼等),或者硬件和軟件結(jié)合的形式。
根據(jù)本發(fā)明的實(shí)施方式,提出了一種問題匹配方法和設(shè)備。
在本文中,需要理解的是,附圖中的任何元素?cái)?shù)量均用于示例而非限制,以及任何命名都僅用于區(qū)分,而不具有任何限制含義。
下面參考本發(fā)明的若干代表性實(shí)施方式,詳細(xì)闡釋本發(fā)明的原理和精神。
發(fā)明概述
本發(fā)明人發(fā)現(xiàn),現(xiàn)有技術(shù)中的基于關(guān)鍵詞匹配相似問題的方式,由于關(guān)鍵詞在不同的語(yǔ)境中可能會(huì)有不同的含義,并且僅根據(jù)單個(gè)問題與單個(gè)問題之間的相似度來(lái)匹配相似問題,此時(shí),僅根據(jù)關(guān)鍵詞從候選問題集中匹配到的與用戶提交的問題相似度較高的問題可能是錯(cuò)誤問題(與用戶提問的問題無(wú)關(guān)),從而造成為用戶推送與用戶提交的問題相符的答案的正確率較低。
為此,本發(fā)明提供了一種問題匹配方法和裝置,方法可以包括:接收用戶提交的問題;針對(duì)預(yù)設(shè)的每個(gè)問題集,計(jì)算該問題集與用戶提交的問題的相似度;若所述相似度大于設(shè)定相似度閾值,確定該問題集中的待匹配問題與用戶提交的問題相匹配;其中,同一問題集中保存至少兩個(gè)針對(duì)同一答案的待匹配問題。
在介紹了本發(fā)明的基本原理之后,下面具體介紹本發(fā)明的各種非限制性實(shí)施方式。
應(yīng)用場(chǎng)景總覽
首先參考圖1,如圖1所示,為本發(fā)明實(shí)施例提供的問題匹配方法的應(yīng)用場(chǎng)景示意圖,包括用戶10,用戶終端101和服務(wù)器102,其中,所述用戶終端101中可安裝相應(yīng)的根據(jù)用戶輸入的問題提供相應(yīng)答案的應(yīng)用程序。用戶10在用戶終端101中輸入問題并提交,服務(wù)器102接收用戶提交的問題;針對(duì)預(yù)設(shè)的每個(gè)問題集,計(jì)算該問題集與用戶提交的問題的相似度;若所述相似度大于設(shè)定相似度閾值,確定該問題集中的待匹配問題與用戶提交的問題相匹配;其中,同一問題集中保存至少兩個(gè)針對(duì)同一答案的待匹配問題。其中,用戶終端和服務(wù)器可通過因特網(wǎng)進(jìn)行通信。用戶終端可以為手機(jī)、平板電腦或者臺(tái)式電腦等。
示例性方法
下面結(jié)合圖1的應(yīng)用場(chǎng)景,參考圖2~圖5來(lái)描述根據(jù)本發(fā)明示例性實(shí)施方式的問題匹配方法。需要注意的是,本發(fā)明的實(shí)施方式可以應(yīng)用于適用的任何場(chǎng)景。
圖2為本發(fā)明提供的一種問題匹配方法的一實(shí)施例的流程示意圖,主要包括根據(jù)用戶提交的問題進(jìn)行相似問題匹配的流程,如圖2所示,本發(fā)明實(shí)施例提供的一種問題匹配方法,包括如下步驟:
步驟201,接收用戶提交的問題。
具體實(shí)施時(shí),用戶在問題輸入界面輸入其預(yù)提問的問題,并進(jìn)行提交,服務(wù)器側(cè)接收用戶提交的問題。
步驟202,針對(duì)預(yù)設(shè)的每個(gè)問題集,計(jì)算該問題集與用戶提交的問題的相似度。
具體實(shí)施時(shí),預(yù)先設(shè)置多個(gè)問題集,其中,同一問題集中保存至少兩個(gè)針對(duì)同一答案的待匹配問題,比如,問題集A中保存關(guān)于賬號(hào)注冊(cè)流程的待匹配問題,該問題集A中可保存問題1:賬號(hào)怎么注冊(cè);問題2:賬號(hào)注冊(cè)流程是什么;問題3:如何進(jìn)行賬號(hào)注冊(cè)。
本步驟中,計(jì)算每個(gè)問題集與用戶提交的問題的相似度,從而得到用戶提交的問題與每個(gè)問題集的相似度。
步驟203,判斷所述相似度是否大于設(shè)定相似度閾值,如果是,執(zhí)行步驟204,否則,執(zhí)行步驟205。
具體實(shí)施時(shí),預(yù)先設(shè)置相似度閾值,并判斷用戶提交的問題與各個(gè)問題集的相似度是否大于該相似度閾值。
步驟204,確定該問題集中的待匹配問題與用戶提交的問題相匹配。
其中,確定預(yù)設(shè)的各個(gè)問題集中,與用戶提交的問題的相似度大于相似度閾值的問題集中的待匹配問題與用戶提交的問題相匹配。具體實(shí)施時(shí),可將與用戶提交的問題相匹配的問題集中的待匹配問題反饋給用戶;接收到用戶選擇其中一個(gè)待匹配問題的指令時(shí),將用戶選擇的該待匹配問題對(duì)應(yīng)的答案反饋給用戶。
需要說(shuō)明的是,與用戶提交的問題的相似度大于預(yù)設(shè)相似度閾值的問題集可能包括多個(gè),也可能僅包括一個(gè),還有可能不存在與用戶提交的問題的相似度大于預(yù)設(shè)相似度閾值的問題集,當(dāng)包括多個(gè)時(shí),可按照與用戶提交的問題的相似度由大到小的順序?qū)⒃摱鄠€(gè)問題集反饋給用戶,以供用戶選擇其想要的問題并獲取相應(yīng)的答案。
步驟205,確定該問題集中的待匹配問題與用戶提交的問題不匹配。
其中,確定預(yù)設(shè)的各個(gè)問題集中,與用戶提交的問題的相似度不大于相似度閾值的問題集中的待匹配問題與用戶提交的問題不匹配。
利用圖1提供的問題匹配方式,預(yù)先設(shè)置多個(gè)問題集,每個(gè)問題集中保存至少兩個(gè)針對(duì)同一答案的待匹配問題,即將針對(duì)同一答案的問題的不同提問方式保存到同一問題集中,計(jì)算用戶提交的問題與問題集的相似度,對(duì)用戶提交的問題與問題集中的待匹配問題進(jìn)行匹配,即將用戶提交的問題同時(shí)與針對(duì)同一答案的多個(gè)問題進(jìn)行匹配,相比于現(xiàn)有技術(shù)中由于關(guān)鍵詞在不同的語(yǔ)境中可能會(huì)有不同的含義,并且僅根據(jù)單個(gè)問題與單個(gè)問題之間的相似度來(lái)匹配相似問題的方式,能夠提高問題匹配的準(zhǔn)確性和可靠性,進(jìn)而在一定程度上提高向用戶推送與用戶提交的問題相符的答案的正確率。
優(yōu)選地,針對(duì)每個(gè)問題集,可按照?qǐng)D3提供的內(nèi)容,計(jì)算該問題集與用戶提交的問題的相似度:
步驟301,計(jì)算該問題集中每個(gè)待匹配問題與用戶提交的問題的相似度。
本步驟中,分別該問題集中的每個(gè)待匹配問題與用戶提交的問題的相似度。具體實(shí)施時(shí),可利用現(xiàn)有的相似度計(jì)算方式計(jì)算待匹配問題與用戶提交的問題的相似度,這里不做限定。
步驟302,根據(jù)該問題集中每個(gè)待匹配問題與用戶提交的問題的相似度,計(jì)算該問題集與用戶提交的問題的相似度。
本步驟中,可計(jì)算該問題集中每個(gè)待匹配問題與用戶提交的問題的相似度的平均值,將該平均值作為該問題集與用戶提交的問題的相似度,也可以按照其他方式實(shí)施步驟302,這里不做限定。
優(yōu)選地,針對(duì)每個(gè)問題集,可采用以下公式,計(jì)算該問題集與用戶提交的問題的相似度:
其中,probi(Q,Pi)表示問題集Pi與用戶提交的問題Q的相似度,M表示問題集Pi中的待匹配問題的個(gè)數(shù),probi(Q,Pij)表示問題集Pi中的問題j與用戶提交的問題Q的相似度。
優(yōu)選地,可按照?qǐng)D4提供的內(nèi)容,計(jì)算該問題集中每個(gè)待匹配問題與用戶提交的問題的相似度:
步驟401,對(duì)用戶提交的問題進(jìn)行分詞處理,得到用戶詞序列。
步驟402,針對(duì)該問題集中的每個(gè)待匹配問題,對(duì)該待匹配問題進(jìn)行分詞處理,得到該待匹配問題對(duì)應(yīng)的待匹配詞序列。
步驟402和步驟402中,對(duì)問題進(jìn)行分詞處理的具體實(shí)施方式可參見現(xiàn)有技術(shù),這里不做詳述。也可以先執(zhí)行步驟402,后執(zhí)行步驟401,或者步驟401和步驟402同時(shí)執(zhí)行,這里不做限定。
步驟403,將用戶詞序列與該待匹配問題對(duì)應(yīng)的待匹配詞序列作為預(yù)設(shè)深度學(xué)習(xí)模型的輸入,確定所述預(yù)設(shè)深度學(xué)習(xí)模型的輸出。
本步驟中,預(yù)設(shè)深度學(xué)習(xí)模型,將用戶詞序列與待匹配問題詞序列作為該預(yù)設(shè)深度學(xué)習(xí)模型的輸入?yún)?shù),根據(jù)預(yù)設(shè)深度學(xué)習(xí)模型的輸入?yún)?shù)計(jì)算預(yù)設(shè)學(xué)習(xí)模型的輸出。
步驟404,將所述預(yù)設(shè)學(xué)習(xí)模型的輸出作為該待匹配問題與用戶提交的問題的相似度。
圖4提供的實(shí)施例,通過深度學(xué)習(xí)模型計(jì)算待匹配問題與用戶提交的問題的相似度,從而為獲得用戶提交的問題與該待匹配問題所屬的問題集的相似度提供前提。
具體的利用預(yù)設(shè)深度學(xué)習(xí)模型計(jì)算待匹配問題與用戶提交的問題的相似度的過程可參考下述過程:
1)輸入層處理:輸入用戶詞序列Q1和待匹配詞序列Pij1,并將各個(gè)詞序列轉(zhuǎn)化為詞的索引序列,其中,詞對(duì)應(yīng)的索引號(hào)可根據(jù)預(yù)設(shè)的詞典進(jìn)行查找。例如用戶詞序列Q1={w1,w2...,wl1},轉(zhuǎn)化為索引序列后為Q11={5,100...,40},同理待匹配詞序列Pij1也可處理索引序列。
2)詞嵌入層:根據(jù)用戶詞序列對(duì)應(yīng)的索引序列,在詞嵌入層取出對(duì)應(yīng)索引序列中索引號(hào)的詞向量,生成用戶問題矩陣。例如用戶詞序列對(duì)應(yīng)的索引序列為{2,5,6},依次取出詞嵌入層矩陣的第2行,第5行和第6行元素,并重新生成3*D矩陣,同理,待匹配詞序列Pij1也采用同樣的處理方式,用戶詞序列和待匹配問題詞序列Pij1經(jīng)過詞嵌入層后,輸出l1*D和l2*D矩陣,其中,l1為用戶提交的問題中詞語(yǔ)的個(gè)數(shù)、l2為待匹配問題中詞語(yǔ)的個(gè)數(shù),其中D為預(yù)先設(shè)定的值,詞嵌入層矩陣為預(yù)先設(shè)定的矩陣。
3)卷積層:卷積層由Nf(預(yù)設(shè)值)個(gè)H*D矩陣組成,設(shè)置卷積步長(zhǎng)為1,對(duì)從詞嵌入層輸出的矩陣,使用并列的Nf個(gè)H*D矩陣分別進(jìn)行卷積處理,分別輸出Nf個(gè)(l1-H+1)*D和(l2-H+1)*D矩陣,從而實(shí)現(xiàn)對(duì)用戶詞序列和待匹配問題詞序列Pij1的的卷積處理。其中,H小于輸入的問題中的詞語(yǔ)的個(gè)數(shù),卷積層參數(shù)需要在深度學(xué)習(xí)模型訓(xùn)練的過程中確定。
4)池化層:對(duì)卷積層輸出的Nf個(gè)(l1-H+1)*D矩陣中的每個(gè)矩陣求出最大值,輸出1*Nf向量,同理處理Nf個(gè)(l2-H+1)*D矩陣,輸出1*Nf向量。
5)線性層1:將池化層輸出的2個(gè)1*Nf向量拼接1*2Nf,并與線性層1的2Nf*K矩陣相乘,輸出1*K向量。其中,線性層參數(shù)需要在深度學(xué)習(xí)模型訓(xùn)練的過程中確定。
6)Sigmoid層1:非線性處理,將線性層1輸出的1*K輸出1*K維向量。
7)線性層2:將Sigmoid層1輸出的1*K維向量與線性層2的K*1矩陣相乘,輸出一個(gè)數(shù)值;
8)sigmoid層2:將線性層2輸出的數(shù)值處理后,得到待匹配問題Pij與用戶提交的問題Q的相似度。
上述處理過程僅為簡(jiǎn)單的介紹,詳細(xì)的處理過程以及每一層的具體實(shí)施過程可參見現(xiàn)有技術(shù),這里不做詳述。
優(yōu)選地,可按照?qǐng)D5提供的內(nèi)容,訓(xùn)練得到預(yù)設(shè)深度學(xué)習(xí)模型:
步驟501,利用待訓(xùn)練深度學(xué)習(xí)模型,分別計(jì)算樣本問題r與各個(gè)預(yù)設(shè)問題集的相似度。
步驟502,將當(dāng)前樣本問題r與各個(gè)預(yù)設(shè)問題集的相似度作為預(yù)設(shè)損失函數(shù)的輸入,確定預(yù)設(shè)損失函數(shù)的輸出。
步驟503,判斷所述預(yù)設(shè)損失函數(shù)的輸出是否小于設(shè)定損失閾值,如果是,執(zhí)行步驟505,否則,執(zhí)行步驟504。
步驟504,根據(jù)所述預(yù)設(shè)損失函數(shù)的輸出對(duì)待訓(xùn)練深度學(xué)習(xí)模型中的參數(shù)進(jìn)行更新,將所述待訓(xùn)練深度模型替換為參數(shù)更新后的待訓(xùn)練深度學(xué)習(xí)模型,并令r=r+1后,繼續(xù)執(zhí)行501。
本步驟中,另r=r+1后,繼續(xù)執(zhí)行上述利用待訓(xùn)練深度學(xué)習(xí)模型,分別計(jì)算樣本問題r與各個(gè)預(yù)設(shè)問題集的相似度的步驟。
其中,根據(jù)所述預(yù)設(shè)損失函數(shù)的輸出對(duì)待訓(xùn)練深度學(xué)習(xí)模型中的參數(shù)進(jìn)行更新,具體為對(duì)待訓(xùn)練深度學(xué)習(xí)模型中可在模型訓(xùn)練過程中進(jìn)行確定的參數(shù)進(jìn)行更新。
步驟505,確定所述待訓(xùn)練深度學(xué)習(xí)模型為預(yù)設(shè)深度學(xué)習(xí)模型。
圖5提供的實(shí)施例,通過多次迭代訓(xùn)練得到相對(duì)穩(wěn)定的待訓(xùn)練深度學(xué)習(xí)模型作為預(yù)設(shè)深度學(xué)習(xí)模型。
具體實(shí)施時(shí),預(yù)設(shè)損失函數(shù)為:
其中,probi(r,Pi)表示問題集Pi與樣本問題r的相似度,M表示問題集Pi中的待匹配問題的個(gè)數(shù),probi(r,Pij)表示問題集Pi中的問題j與樣本問題r的相似度,N表示問題集的個(gè)數(shù),ti等于0或1,當(dāng)ti=0時(shí)表明樣本問題r為負(fù)樣本,當(dāng)ti=1時(shí)表明樣本問題r為正樣本。
示例性設(shè)備
在介紹了本發(fā)明示例性實(shí)施方式的問題匹配方法之后,接下來(lái),參考圖6描述本發(fā)明示例性實(shí)施方式的問題匹配裝置。
圖6為本發(fā)明實(shí)施例提供的一種問題匹配裝置的結(jié)構(gòu)示意圖之一,如圖6所示,可以包括如下模塊:
接收模塊601,用于接收用戶提交的問題;
相似度計(jì)算模塊602,用于針對(duì)預(yù)設(shè)的每個(gè)問題集,計(jì)算該問題集與用戶提交的問題的相似度;
確定模塊603,用于若所述相似度大于設(shè)定相似度閾值,確定該問題集中的待匹配問題與用戶提交的問題相匹配;
其中,同一問題集中保存至少兩個(gè)針對(duì)同一答案的待匹配問題。
優(yōu)選地,所述相似度計(jì)算模塊602,包括:
第一計(jì)算單元6021,用于計(jì)算該問題集中每個(gè)待匹配問題與用戶提交的問題的相似度;
第二計(jì)算單元6022,用于根據(jù)該問題集中每個(gè)待匹配問題與用戶提交的問題的相似度,計(jì)算該問題集與用戶提交的問題的相似度。
優(yōu)選地,所述第二計(jì)算單元6022采用如下公式,計(jì)算該問題集與用戶提交的問題的相似度:
其中,probi(Q,Pi)表示問題集Pi與用戶提交的問題Q的相似度,M表示問題集Pi中的待匹配問題的個(gè)數(shù),probi(Q,Pij)表示問題集Pi中的問題j與用戶提交的問題Q的相似度。
優(yōu)選地,所述第一計(jì)算單元6021具體用于:
對(duì)用戶提交的問題進(jìn)行分詞處理,得到用戶詞序列;
針對(duì)該問題集中的每個(gè)待匹配問題,對(duì)該待匹配問題進(jìn)行分詞處理,得到該待匹配問題對(duì)應(yīng)的待匹配詞序列;
將用戶詞序列與該待匹配問題對(duì)應(yīng)的待匹配詞序列作為預(yù)設(shè)深度學(xué)習(xí)模型的輸入,確定所述預(yù)設(shè)深度學(xué)習(xí)模型的輸出;
將所述預(yù)設(shè)學(xué)習(xí)模型的輸出作為該待匹配問題與用戶提交的問題的相似度。
優(yōu)選地,本發(fā)明實(shí)施例提供的問題匹配裝置,還包括:
模型訓(xùn)練模塊604,用于采用如下方式訓(xùn)練得到預(yù)設(shè)深度學(xué)習(xí)模型:
利用待訓(xùn)練深度學(xué)習(xí)模型,分別計(jì)算樣本問題r與各個(gè)預(yù)設(shè)問題集的相似度;
將當(dāng)前樣本問題r與各個(gè)預(yù)設(shè)問題集的相似度作為預(yù)設(shè)損失函數(shù)的輸入,確定預(yù)設(shè)損失函數(shù)的輸出;
判斷所述預(yù)設(shè)損失函數(shù)的輸出是否小于設(shè)定損失閾值;
若否,根據(jù)所述預(yù)設(shè)損失函數(shù)的輸出對(duì)待訓(xùn)練深度學(xué)習(xí)模型中的參數(shù)進(jìn)行更新,將所述待訓(xùn)練深度模型替換為參數(shù)更新后的待訓(xùn)練深度學(xué)習(xí)模型,并令r=r+1后,繼續(xù)執(zhí)行上述利用待訓(xùn)練深度學(xué)習(xí)模型,分別計(jì)算樣本問題r與各個(gè)預(yù)設(shè)問題集的相似度的步驟;
若是,確定所述待訓(xùn)練深度學(xué)習(xí)模型為預(yù)設(shè)深度學(xué)習(xí)模型。
優(yōu)選地,所述預(yù)設(shè)損失函數(shù)為:
其中,probi(r,Pi)表示問題集Pi與樣本問題r的相似度,M表示問題集Pi中的待匹配問題的個(gè)數(shù),probi(r,Pij)表示問題集Pi中的問題j與樣本問題r的相似度,N表示問題集的個(gè)數(shù),ti等于0或1,當(dāng)ti=0時(shí)表明樣本問題r為負(fù)樣本,當(dāng)ti=1時(shí)表明樣本問題r為正樣本。
示例性設(shè)備
在介紹了本發(fā)明示例性實(shí)施方式的問題匹配方法和裝置之后,接下來(lái),介紹根據(jù)本發(fā)明的另一示例性實(shí)施方式的問題匹配裝置。
所屬技術(shù)領(lǐng)域的技術(shù)人員能夠理解,本發(fā)明的各個(gè)方面可以實(shí)現(xiàn)為系統(tǒng)、方法或程序產(chǎn)品。因此,本發(fā)明的各個(gè)方面可以具體實(shí)現(xiàn)為以下形式,即:完全的硬件實(shí)施方式、完全的軟件實(shí)施方式(包括固件、微代碼等),或硬件和軟件方面結(jié)合的實(shí)施方式,這里可以統(tǒng)稱為“電路”、“模塊”或“系統(tǒng)”。
在一些可能的實(shí)施方式中,根據(jù)本發(fā)明的問題匹配裝置可以至少包括至少一個(gè)處理單元、以及至少一個(gè)存儲(chǔ)單元。其中,所述存儲(chǔ)單元存儲(chǔ)有程序代碼,當(dāng)所述程序代碼被所述處理單元執(zhí)行時(shí),使得所述處理單元執(zhí)行本說(shuō)明書上述“示例性方法”部分中描述的根據(jù)本發(fā)明各種示例性實(shí)施方式的問題匹配方法中的步驟。例如,所述處理單元可以執(zhí)行如圖2中所示的步驟201,接收用戶提交的問題,步驟202,針對(duì)預(yù)設(shè)的每個(gè)問題集,計(jì)算該問題集與用戶提交的問題的相似度,步驟203,判斷所述相似度是否大于設(shè)定相似度閾值,如果是,執(zhí)行步驟204,否則,執(zhí)行步驟205,步驟204,確定該問題集中的待匹配問題與用戶提交的問題相匹配,步驟205,確定該問題集中的待匹配問題與用戶提交的問題不匹配。
下面參照?qǐng)D7來(lái)描述根據(jù)本發(fā)明的這種實(shí)施方式的問題匹配裝置70。圖7顯示的問題匹配裝置70僅僅是一個(gè)示例,不應(yīng)對(duì)本發(fā)明實(shí)施例的功能和使用范圍帶來(lái)任何限制。
如圖7所示,問題匹配裝置70以通用計(jì)算設(shè)備的形式表現(xiàn)。問題匹配裝置70的組件可以包括但不限于:上述至少一個(gè)處理單元701、上述至少一個(gè)存儲(chǔ)單元702、連接不同系統(tǒng)組件(包括處理單元701和存儲(chǔ)單元702)的總線703。
總線703表示幾類總線結(jié)構(gòu)中的一種或多種,包括存儲(chǔ)器總線或者存儲(chǔ)器控制器、外圍總線、處理器或者使用多種總線結(jié)構(gòu)中的任意總線結(jié)構(gòu)的局域總線。
存儲(chǔ)單元702可以包括易失性存儲(chǔ)器形式的可讀介質(zhì),例如隨機(jī)存取存儲(chǔ)器(RAM)7021和/或高速緩存存儲(chǔ)器7022,還可以進(jìn)一步包括只讀存儲(chǔ)器(ROM)7023。
存儲(chǔ)單元702還可以包括具有一組(至少一個(gè))程序模塊7024的程序/實(shí)用工具7025,這樣的程序模塊7024包括但不限于:操作系統(tǒng)、一個(gè)或者多個(gè)應(yīng)用程序、其它程序模塊以及程序數(shù)據(jù),這些示例中的每一個(gè)或某種組合中可能包括網(wǎng)絡(luò)環(huán)境的實(shí)現(xiàn)。
問題匹配裝置70也可以與一個(gè)或多個(gè)外部設(shè)備704(例如鍵盤、指向設(shè)備等)通信,還可與一個(gè)或者多個(gè)使得用戶能與問題匹配裝置70交互的設(shè)備通信,和/或與使得該問題匹配裝置70能與一個(gè)或多個(gè)其它計(jì)算設(shè)備進(jìn)行通信的任何設(shè)備(例如路由器、調(diào)制解調(diào)器等等)通信。這種通信可以通過輸入/輸出(I/O)接口705進(jìn)行。并且,問題匹配裝置70還可以通過網(wǎng)絡(luò)適配器706與一個(gè)或者多個(gè)網(wǎng)絡(luò)(例如局域網(wǎng)(LAN),廣域網(wǎng)(WAN)和/或公共網(wǎng)絡(luò),例如因特網(wǎng))通信。如圖7所示,網(wǎng)絡(luò)適配器706通過總線703與用于問題匹配的裝置70的其它模塊通信。應(yīng)當(dāng)理解,盡管圖中未示出,可以結(jié)合問題匹配裝置70使用其它硬件和/或軟件模塊,包括但不限于:微代碼、設(shè)備驅(qū)動(dòng)器、冗余處理單元、外部磁盤驅(qū)動(dòng)陣列、RAID系統(tǒng)、磁帶驅(qū)動(dòng)器以及數(shù)據(jù)備份存儲(chǔ)系統(tǒng)等。
示例性程序產(chǎn)品
在一些可能的實(shí)施方式中,本發(fā)明提供的問題匹配方法的各個(gè)方面還可以實(shí)現(xiàn)為一種程序產(chǎn)品的形式,其包括程序代碼,當(dāng)所述程序產(chǎn)品在計(jì)算機(jī)設(shè)備上運(yùn)行時(shí),所述程序代碼用于使所述計(jì)算機(jī)設(shè)備執(zhí)行本說(shuō)明書上述“示例性方法”部分中描述的根據(jù)本發(fā)明各種示例性實(shí)施方式的問題匹配方法中的步驟,例如,所述計(jì)算機(jī)設(shè)備可以執(zhí)行如圖2中所示的步驟201,接收用戶提交的問題,步驟202,針對(duì)預(yù)設(shè)的每個(gè)問題集,計(jì)算該問題集與用戶提交的問題的相似度,步驟203,判斷所述相似度是否大于設(shè)定相似度閾值,如果是,執(zhí)行步驟204,否則,執(zhí)行步驟205,步驟204,確定該問題集中的待匹配問題與用戶提交的問題相匹配,步驟205,確定該問題集中的待匹配問題與用戶提交的問題不匹配。
所述程序產(chǎn)品可以采用一個(gè)或多個(gè)可讀介質(zhì)的任意組合。可讀介質(zhì)可以是可讀信號(hào)介質(zhì)或者可讀存儲(chǔ)介質(zhì)??勺x存儲(chǔ)介質(zhì)例如可以是——但不限于——電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合??勺x存儲(chǔ)介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個(gè)或多個(gè)導(dǎo)線的電連接、便攜式盤、硬盤、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、可擦式可編程只讀存儲(chǔ)器(EPROM或閃存)、光纖、便攜式緊湊盤只讀存儲(chǔ)器(CD-ROM)、光存儲(chǔ)器件、磁存儲(chǔ)器件、或者上述的任意合適的組合。
如圖8所示,描述了根據(jù)本發(fā)明的實(shí)施方式的用于問題匹配的程序產(chǎn)品80,其可以采用便攜式緊湊盤只讀存儲(chǔ)器(CD-ROM)并包括程序代碼,并可以在終端設(shè)備上運(yùn)行。然而,本發(fā)明的程序產(chǎn)品不限于此,在本文件中,可讀存儲(chǔ)介質(zhì)可以是任何包含或存儲(chǔ)程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。
可讀信號(hào)介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號(hào),其中承載了可讀程序代碼。這種傳播的數(shù)據(jù)信號(hào)可以采用多種形式,包括——但不限于——電磁信號(hào)、光信號(hào)或上述的任意合適的組合??勺x信號(hào)介質(zhì)還可以是可讀存儲(chǔ)介質(zhì)以外的任何可讀介質(zhì),該可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。
可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括——但不限于——無(wú)線、有線、光纜、RF等等,或者上述的任意合適的組合。
可以以一種或多種程序設(shè)計(jì)語(yǔ)言的任意組合來(lái)編寫用于執(zhí)行本發(fā)明操作的程序代碼,所述程序設(shè)計(jì)語(yǔ)言包括面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言—諸如Java、C++等,還包括常規(guī)的過程式程序設(shè)計(jì)語(yǔ)言—諸如“C”語(yǔ)言或類似的程序設(shè)計(jì)語(yǔ)言。程序代碼可以完全地在用戶計(jì)算設(shè)備上執(zhí)行、部分地在用戶設(shè)備上執(zhí)行、作為一個(gè)獨(dú)立的軟件包執(zhí)行、部分在用戶計(jì)算設(shè)備上部分在遠(yuǎn)程計(jì)算設(shè)備上執(zhí)行、或者完全在遠(yuǎn)程計(jì)算設(shè)備或服務(wù)器上執(zhí)行。在涉及遠(yuǎn)程計(jì)算設(shè)備的情形中,遠(yuǎn)程計(jì)算設(shè)備可以通過任意種類的網(wǎng)絡(luò)——包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)—連接到用戶計(jì)算設(shè)備,或者,可以連接到外部計(jì)算設(shè)備(例如利用因特網(wǎng)服務(wù)提供商來(lái)通過因特網(wǎng)連接)。
應(yīng)當(dāng)注意,盡管在上文詳細(xì)描述中提及了裝置的若干單元或子單元,但是這種劃分僅僅是示例性的并非強(qiáng)制性的。實(shí)際上,根據(jù)本發(fā)明的實(shí)施方式,上文描述的兩個(gè)或更多單元的特征和功能可以在一個(gè)單元中具體化。反之,上文描述的一個(gè)單元的特征和功能可以進(jìn)一步劃分為由多個(gè)單元來(lái)具體化。
此外,盡管在附圖中以特定順序描述了本發(fā)明方法的操作,但是,這并非要求或者暗示必須按照該特定順序來(lái)執(zhí)行這些操作,或是必須執(zhí)行全部所示的操作才能實(shí)現(xiàn)期望的結(jié)果。附加地或備選地,可以省略某些步驟,將多個(gè)步驟合并為一個(gè)步驟執(zhí)行,和/或?qū)⒁粋€(gè)步驟分解為多個(gè)步驟執(zhí)行。
雖然已經(jīng)參考若干具體實(shí)施方式描述了本發(fā)明的精神和原理,但是應(yīng)該理解,本發(fā)明并不限于所公開的具體實(shí)施方式,對(duì)各方面的劃分也不意味著這些方面中的特征不能組合以進(jìn)行受益,這種劃分僅是為了表述的方便。本發(fā)明旨在涵蓋所附權(quán)利要求的精神和范圍內(nèi)所包括的各種修改和等同布置。