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