本公開內(nèi)容的實(shí)施例一般性地涉及與計(jì)算機(jī)相關(guān)的技術(shù)領(lǐng)域,并且更特別地涉及一種在多個(gè)文檔中確定與目標(biāo)文檔相似的文檔集合的方法和裝置。
背景技術(shù):
相似文檔搜索對(duì)于內(nèi)容管理、內(nèi)容搜索和內(nèi)容推薦而言是非常有用的特征。在各種場(chǎng)景中,許多應(yīng)用都需要從海量的文檔中找出與目標(biāo)文檔相似的文檔集合。
典型的解決方案是逐個(gè)地計(jì)算需要確定的文檔與目標(biāo)文檔的相似度,然后返回滿足相似度準(zhǔn)則的那些文檔。例如,可以根據(jù)倒排索引來(lái)逐個(gè)地搜索關(guān)鍵詞,將各個(gè)關(guān)鍵詞搜索得到的文檔集合的交集確定為相似的文檔集合。但是,當(dāng)需要確定的文檔數(shù)目變得越來(lái)越大時(shí),這種方法花費(fèi)的時(shí)間將變得顯著,從而難以在用戶所給定的時(shí)間中完成該確定。此外,上述方法在性能上以及準(zhǔn)確度上也存在問題。
技術(shù)實(shí)現(xiàn)要素:
鑒于現(xiàn)有技術(shù)中存在的上述問題,本公開內(nèi)容的實(shí)施例的目的之一在于提供一種在多個(gè)文檔中確定與目標(biāo)文檔相似的文檔集合的方法和裝置,以解決現(xiàn)有技術(shù)中的上述以及其他的問題。
根據(jù)本公開內(nèi)容的第一方面,提供了一種在多個(gè)文檔中確定與目標(biāo)文檔相似的文檔集合的方法。該多個(gè)文檔和目標(biāo)文檔中均可以包括多個(gè)詞語(yǔ),每個(gè)詞語(yǔ)可以對(duì)應(yīng)于一個(gè)不同的整數(shù)。該方法可以包括:針對(duì)該多個(gè)文檔和目標(biāo)文檔中的每個(gè)文檔,基于與文檔相關(guān)聯(lián)的詞語(yǔ)集合來(lái)獲得與文檔相關(guān)聯(lián)的整數(shù)集合;根據(jù)預(yù)定轉(zhuǎn)換規(guī)則將與每個(gè)文檔相關(guān)聯(lián)的整數(shù)集合轉(zhuǎn)換為維度相同的向量;以及基于多個(gè)文檔的相應(yīng)向量與目標(biāo)文檔的向量之間的差異來(lái)確定相似的文檔集合。
在一些實(shí)施例中,該方法可以進(jìn)一步包括:根據(jù)多個(gè)預(yù)定轉(zhuǎn)換規(guī)則確定多個(gè)相似的文檔集合;以及將多個(gè)相似的文檔集合的交集確定為最終的相似文檔集合。
在一些實(shí)施例中,該方法可以進(jìn)一步包括:使用多維的向量矩陣來(lái)存儲(chǔ)多個(gè)文檔中的每個(gè)文檔的通過多個(gè)預(yù)定轉(zhuǎn)換規(guī)則得到的多個(gè)向量,每個(gè)預(yù)定轉(zhuǎn)換規(guī)則對(duì)應(yīng)于向量矩陣的一個(gè)不同維度,每個(gè)向量對(duì)應(yīng)于相應(yīng)維度上的一個(gè)坐標(biāo)值。
在一些實(shí)施例中,該方法可以進(jìn)一步包括:根據(jù)多個(gè)預(yù)定轉(zhuǎn)換規(guī)則,針對(duì)新的文檔得到相應(yīng)的多個(gè)向量;以及將所得到的多個(gè)向量存儲(chǔ)在向量矩陣中。在一些實(shí)施例中,該方法可以進(jìn)一步包括:使用哈希圖來(lái)存儲(chǔ)向量矩陣。
在一些實(shí)施例中,該方法可以進(jìn)一步包括:將每個(gè)維度上的與文檔的向量相對(duì)應(yīng)的坐標(biāo)值之外的坐標(biāo)值標(biāo)記為“空”。在這些實(shí)施例中,該方法可以進(jìn)一步包括:在確定相似的文檔集合的過程中不考慮被標(biāo)記為“空”的坐標(biāo)值。
在一些實(shí)施例中,預(yù)定轉(zhuǎn)換規(guī)則可以包括:針對(duì)整數(shù)集合中的每個(gè)整數(shù),獲得相應(yīng)的二進(jìn)制數(shù);取出相應(yīng)二進(jìn)制數(shù)的連續(xù)n位,其中n為大于零的整數(shù);將該連續(xù)n位轉(zhuǎn)換為十進(jìn)制數(shù)以替代相應(yīng)整數(shù)而形成新的整數(shù)集合;以及使用位圖法將該新的整數(shù)集合轉(zhuǎn)換為位長(zhǎng)度2n的位向量。在一些實(shí)施例中,該方法可以進(jìn)一步包括:根據(jù)多個(gè)預(yù)定轉(zhuǎn)換規(guī)則確定多個(gè)相似的文檔集合,其中多個(gè)預(yù)定轉(zhuǎn)換規(guī)則分別取出相應(yīng)二進(jìn)制數(shù)的互不交疊的多個(gè)連續(xù)n位,以得到相應(yīng)的位向量。在一些實(shí)施例中,位長(zhǎng)度可以是8的整數(shù)倍。
在一些實(shí)施例中,該方法可以進(jìn)一步包括:通過直接比較相似的文檔集合中的文檔的相關(guān)聯(lián)的詞語(yǔ)集合與所述目標(biāo)文檔的相關(guān)聯(lián)的詞語(yǔ)集合來(lái)確定更為精確的相似文檔子集。
在一些實(shí)施例中,基于多個(gè)文檔的相應(yīng)向量與目標(biāo)文檔的向量之間的差異來(lái)確定相似的文檔集合可以包括:將差異小于預(yù)定閾值的文檔集合確定為相似的文檔集合。在一些實(shí)施例中,確定所述相似的文檔集合可以包括:確定差異最小的前k個(gè)文檔,k為大于零的整數(shù)。
在一些實(shí)施例中,該方法可以進(jìn)一步包括:基于目標(biāo)文檔的向量和預(yù)定閾值,確定符合于預(yù)定閾值的向量的值區(qū)間;以及將向量落在所述值區(qū)間內(nèi)的文檔集合確定為相似的文檔集合。在一些實(shí)施例中,該方法可以進(jìn)一步包括:以一為步長(zhǎng)遞增預(yù)定閾值,以使相似的文檔集合包括預(yù)定數(shù)目的文檔。
在一些實(shí)施例中,與文檔相關(guān)聯(lián)的詞語(yǔ)集合可以包括文檔的關(guān)鍵詞集合。在一些實(shí)施例中,可以通過詞頻統(tǒng)計(jì)或者名稱實(shí)體提取增強(qiáng)算法來(lái)確定與文檔相關(guān)聯(lián)的詞語(yǔ)集合。
在一些實(shí)施例中,該方法可以進(jìn)一步包括:將向量添加到搜索引擎的索引段中,以用于通過搜索引擎對(duì)向量進(jìn)行搜索。
根據(jù)本公開內(nèi)容的第二方面,提供了一種在多個(gè)文檔中確定與目標(biāo)文檔相似的文檔集合的裝置。該多個(gè)文檔和目標(biāo)文檔中均包括多個(gè)詞語(yǔ),每個(gè)詞語(yǔ)對(duì)應(yīng)于一個(gè)不同的整數(shù)。該裝置可以包括:獲得單元,被配置為針對(duì)該多個(gè)文檔和目標(biāo)文檔中的每個(gè)文檔,基于與文檔相關(guān)聯(lián)的詞語(yǔ)集合來(lái)獲得與文檔相關(guān)聯(lián)的整數(shù)集合;轉(zhuǎn)換單元,被配置為根據(jù)預(yù)定轉(zhuǎn)換規(guī)則將與每個(gè)文檔相關(guān)聯(lián)的整數(shù)集合轉(zhuǎn)換為維度相同的向量;以及確定單元,被配置為基于該多個(gè)文檔的相應(yīng)向量與目標(biāo)文檔的向量之間的差異來(lái)確定相似的文檔集合。
根據(jù)本公開內(nèi)容的第三方面,提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),具有存儲(chǔ)在其上的計(jì)算機(jī)可讀程序指令,這些計(jì)算機(jī)可讀程序指令可以用于執(zhí)行根據(jù)第一方面的方法。
根據(jù)本公開內(nèi)容的第四方面,提供了一種計(jì)算機(jī)系統(tǒng),可以包括根據(jù)第二方面的裝置。
本公開內(nèi)容的實(shí)施例相對(duì)于現(xiàn)有技術(shù)的方法至少提供了以下的優(yōu)點(diǎn)。首先,在性能上,本公開內(nèi)容的實(shí)施例可以快速地確定相似文檔,即使是在文檔集合中的文檔數(shù)量非常大的時(shí)候。這是因?yàn)椋竟_內(nèi)容的實(shí)施例通過搜索相似的與文檔相關(guān)聯(lián)的向量(本文中也稱為指紋)組合可以得出可能相似的文本集合,從而縮減了最終需要精確計(jì)算更精確相似的文本集合。其次,在準(zhǔn)確度上,因?yàn)楸竟_內(nèi)容的實(shí)施例可以使用文檔中的所有關(guān)鍵詞來(lái)生成指紋,所以最終的結(jié)果比現(xiàn)有技術(shù)的方法(例如,lucene的more-like-this搜索方法)更加準(zhǔn)確。
附圖說明
通過參考附圖閱讀下文的詳細(xì)描述,本公開內(nèi)容的實(shí)施例的上述以及其他目的、特征和優(yōu)點(diǎn)將變得容易理解。在附圖中,以示例性而非限制性的方式示出了本公開內(nèi)容的若干實(shí)施例,其中:
圖1示意性地示出了從文檔轉(zhuǎn)換為數(shù)值化的詞語(yǔ)集合的過程。
圖2示意性地示出了根據(jù)本公開內(nèi)容的實(shí)施例的在多個(gè)文檔中確定與目標(biāo)文檔相似的文檔集合的方法的流程圖。
圖3示意性地示出了根據(jù)本公開內(nèi)容的實(shí)施例的從數(shù)值化的詞語(yǔ)集合中提取指紋的示意圖。
圖4示意性地示出了根據(jù)本公開內(nèi)容的實(shí)施例的利用文檔的二維指紋矩陣來(lái)表示本文的示意圖。
圖5示意性地示出了根據(jù)本公開內(nèi)容的實(shí)施例的利用文檔的二維指紋矩陣來(lái)搜索相似本文的示意圖。
圖6示意性地示出了根據(jù)本公開內(nèi)容的實(shí)施例的向文檔的三維指紋矩陣中添加新的文檔的示意圖。
圖7示意性地示出了根據(jù)本公開內(nèi)容的實(shí)施例的利用文檔的三維指紋矩陣來(lái)搜索相似文檔的示意圖。
圖8示意性地示出了根據(jù)本公開內(nèi)容的實(shí)施例的在多個(gè)文檔中確定與目標(biāo)文檔相似的文檔集合的裝置的框圖。
圖9示意性地示出了可以用來(lái)實(shí)現(xiàn)本公開內(nèi)容的實(shí)施例的示例性計(jì)算機(jī)系統(tǒng)/服務(wù)器的框圖。
具體實(shí)施方式
下面將參考附圖中所示出的若干示例性實(shí)施例來(lái)描述本公開內(nèi)容的原理和精神。應(yīng)當(dāng)理解,描述這些具體的實(shí)施例僅是為了使本領(lǐng)域的技術(shù)人員能夠更好地理解并實(shí)現(xiàn)本公開內(nèi)容,而并非以任何方式限制本公開內(nèi)容的范圍。
相似文檔搜索對(duì)于內(nèi)容管理、內(nèi)容搜索和內(nèi)容推薦而言是非常有用的特征??紤]到相似的文檔僅是文檔儲(chǔ)存庫(kù)中的少數(shù)文檔,一種可能的改進(jìn)是快速地得到可能相似的文檔集合,并且然后精確地對(duì)這些候選文檔進(jìn)行檢查。本公開內(nèi)容提出了利用指紋矩陣解決方案來(lái)實(shí)施這種構(gòu)思。
在詳細(xì)介紹本公開內(nèi)容之前,首先給出本公開內(nèi)容中的可能使用到的術(shù)語(yǔ)的定義。
在本公開內(nèi)容的上下文中,詞匯表是指文檔可能包含的所有詞語(yǔ)。在一些實(shí)施例中,能夠選擇不同的策略來(lái)減少詞匯表的大小,例如,可以選擇僅名詞、動(dòng)詞和重要的形容詞來(lái)構(gòu)造詞匯表。在本公開內(nèi)容的上下文中,文檔是詞匯表中的詞語(yǔ)的序列,在我們的模型中,文檔只是詞語(yǔ)的序列而不論標(biāo)點(diǎn)和符號(hào)。此外,在本公開內(nèi)容的上下文中,文檔和文檔可以互換地使用。
在本公開內(nèi)容的上下文中,關(guān)鍵詞集合是指文檔的關(guān)鍵詞的集合,其可以表示文檔的內(nèi)容。在本公開內(nèi)容的上下文中,數(shù)值化(numeration)方法能夠?qū)⒁粋€(gè)詞語(yǔ)映射為一個(gè)整數(shù)。最終,一個(gè)文檔能夠被表示為整數(shù)的集合??梢允褂胐n來(lái)標(biāo)示這個(gè)整數(shù)集合并且將它們視為文檔本身。在本公開內(nèi)容的上下文中,詞語(yǔ)集合(sow)是使用上述數(shù)值化方法對(duì)文檔的數(shù)字表示。sow包含整數(shù)集合,該整數(shù)集合表示一個(gè)文檔中的所有詞語(yǔ)而不論詞語(yǔ)在文檔中的重復(fù)次數(shù)和位置。圖1示意性地示出了從文檔轉(zhuǎn)換為數(shù)值化的詞語(yǔ)集合的過程。如圖1中所示出的,文檔101可以通過關(guān)鍵詞提取102得到關(guān)鍵詞集合103,關(guān)鍵詞集合103可以通過數(shù)值化104得到sow105。
在本公開內(nèi)容的上下文中,文檔差異被用來(lái)量化兩個(gè)文檔之間的差異。在一些實(shí)施例中,可以具有不同的策略來(lái)定義文檔差異函數(shù)。例如,在計(jì)算樣本之間的單方向差異的示例中,如果一個(gè)文檔d0具有關(guān)鍵詞{clinton,republican,vote,whitehouse},而另一文檔d1具有{swing,campaigns,clinton,republican,donald},那么d0到d1的文檔差異是diff(d0,d1)==2(d1不具有“vote”和“whitehouse”)而d1到d0的文檔差異是diff(d1,d0)=3(d0不具有“swing”、“campaigns”和“donald”)。
在本公開內(nèi)容的上下文中,文檔差異閾值被用來(lái)定義“兩個(gè)相似的文檔應(yīng)當(dāng)有多相似”。如在前面的示例中,如果將文檔差異閾值定義為2,則d1是d0的相似文檔,而d0不是d1的相似文檔。
確定相似文檔的問題可以表達(dá)為,給定一個(gè)文檔差異閾值m和目標(biāo)文檔dt,在儲(chǔ)存庫(kù)中找出相似的文檔集合simm(dt),該集合中的文檔與目標(biāo)文檔的文檔差異不大于閾值m。
simm(dt)={di|diff(dt,di)≤m,di∈repository}(0)對(duì)前k個(gè)相似文檔的搜索也是該問題的一部分,其是從公式(0)得出最為相似的k個(gè)文檔。
圖2示意性地示出了根據(jù)本公開內(nèi)容的實(shí)施例的在多個(gè)文檔中確定與目標(biāo)文檔相似的文檔集合的方法200的流程圖。在一些實(shí)施例中,該多個(gè)文檔和目標(biāo)文檔中均包括多個(gè)詞語(yǔ),每個(gè)詞語(yǔ)對(duì)應(yīng)于一個(gè)不同的整數(shù)。
本領(lǐng)域的技術(shù)人員可以理解,可以采用各種方法來(lái)將詞語(yǔ)映射為一個(gè)整數(shù)并且不同的詞語(yǔ)映射為不同的整數(shù),從而將文檔表示為不同整數(shù)的集合,本公開內(nèi)容在這個(gè)方面不受限制。
如圖2中所示出的,方法200在開始之后可以進(jìn)入步驟201。在步驟201中,可以針對(duì)多個(gè)文檔和目標(biāo)文檔中的每個(gè)文檔,基于與文檔相關(guān)聯(lián)的詞語(yǔ)集合來(lái)獲得與文檔相關(guān)聯(lián)的整數(shù)集合。
在一些實(shí)施例中,與文檔相關(guān)聯(lián)的詞語(yǔ)集合可以包括所述文檔的關(guān)鍵詞集合。在一些實(shí)施例中,可以通過詞頻統(tǒng)計(jì)或者名稱實(shí)體提取增強(qiáng)算法來(lái)確定與文檔相關(guān)聯(lián)的詞語(yǔ)集合。本領(lǐng)域的技術(shù)人員可以理解,一個(gè)文檔可能包含許多的細(xì)節(jié)和噪聲信息。需要某種提取和精化來(lái)得到文檔的主題信息。關(guān)鍵詞提取過程可以采用詞頻統(tǒng)計(jì)(tf)、名稱實(shí)體提取增強(qiáng)算法等等。這個(gè)部分并不為本公開內(nèi)容所關(guān)注,并且存在許多方法來(lái)得到我們想要的。
在一個(gè)特定的實(shí)施例中,為了具體說明本公開內(nèi)容的目的,給出了將與文檔相關(guān)聯(lián)的詞語(yǔ)集合轉(zhuǎn)換為整數(shù)集合的具體示例。在該具體示例中,d0具有相關(guān)聯(lián)的詞語(yǔ)集合{clinton,republican,vote,whitehouse},而另一d1具有相關(guān)聯(lián)的詞語(yǔ)集合{swing,campaigns,clinton,republican,donald}。按照一種預(yù)定的映射規(guī)則,可以將上述詞語(yǔ)集合如下地轉(zhuǎn)換為整數(shù)集合。
d0:{clinton,republican,vote,whitehouse}→d0:{44,17,28,6}
d1:{swing,campaigns,clinton,republican,donald}→
d1:{87,63,44,17,79}
其中,每個(gè)詞語(yǔ)所對(duì)應(yīng)的整數(shù)是預(yù)定義的。本公開內(nèi)容對(duì)于詞語(yǔ)如何映射為整數(shù)并不進(jìn)行限制,只需要存在這種預(yù)定的映射關(guān)系即可。
此外,本領(lǐng)域的技術(shù)人員可以理解,盡管上面使用了英文詞語(yǔ)作為示例來(lái)進(jìn)行說明,但是本公開內(nèi)容的實(shí)施例可以等同地應(yīng)用到其他語(yǔ)言的技術(shù)場(chǎng)景中。
接著,在完成步驟201之后,方法200可以進(jìn)入步驟202。在步驟202中,可以根據(jù)預(yù)定轉(zhuǎn)換規(guī)則將與每個(gè)文檔相關(guān)聯(lián)的整數(shù)集合轉(zhuǎn)換為維度相同的向量。在本公開內(nèi)容的上下文中,可以將與一個(gè)文檔相關(guān)聯(lián)的向量稱為該文檔的指紋,并且在本公開內(nèi)容的上下文中,“向量”可以與“指紋”互換地使用。本領(lǐng)域的技術(shù)人員可以理解,指紋在某種程度上是原有整數(shù)集合的抽象信息。因此,文檔的指紋可以用于確定相似的文檔集合。本領(lǐng)域的技術(shù)人員可以理解,盡管本文中主要采用位向量的形式來(lái)具體地闡述本公開內(nèi)容的實(shí)施例,但是根據(jù)預(yù)定轉(zhuǎn)換規(guī)則從整數(shù)集合轉(zhuǎn)換得到的其他向量也可以等同地被實(shí)施用于本公開的實(shí)施例。
在一些實(shí)施例中,方法200可以進(jìn)一步包括:根據(jù)多個(gè)預(yù)定轉(zhuǎn)換規(guī)則確定多個(gè)相似的文檔集合;以及將該多個(gè)相似的文檔集合的交集確定為最終的相似文檔集合。
本領(lǐng)域的技術(shù)人員可以理解,文檔的指紋雖然可以攜帶原有整數(shù)集合的信息,但是這種信息是具有局限性的。對(duì)于一種預(yù)定轉(zhuǎn)換規(guī)則而言,不同的整數(shù)集合可能對(duì)應(yīng)于相同的指紋。因此,為了使得方法200的結(jié)果更加準(zhǔn)確,可以使用多個(gè)不同的預(yù)定轉(zhuǎn)換規(guī)則針對(duì)某個(gè)文檔分別生成多個(gè)不同的指紋。通過不同的指紋可以分別得出不同的相似文檔集合。然后,可以將該多個(gè)相似的文檔集合的交集確定為最終的相似文檔集合,從而提高結(jié)果的準(zhǔn)確性。
圖3示意性地示出了根據(jù)本公開內(nèi)容的實(shí)施例的從數(shù)值化的詞語(yǔ)集合中提取指紋的示意圖。如圖3中所示出的,在確定與文檔相關(guān)聯(lián)的詞語(yǔ)集合(例如,關(guān)鍵詞集合)之后,可以該詞語(yǔ)集合表示為整數(shù)集合,在圖3中表示為sow301。接著,可以通過預(yù)定轉(zhuǎn)換規(guī)則從sow301中提取處多個(gè)指紋。這些指紋在圖3中表示為fp0302、fp1303、fpn304等等。此外,指紋也可以從原始文檔中提取。
這些指紋能夠幫助用戶快速地定位相似的文檔,用戶能夠選擇使用多個(gè)指紋來(lái)確保有效性和無(wú)冗余性。指紋轉(zhuǎn)換規(guī)則能夠?qū)⒉煌L(zhǎng)度的文檔或者整數(shù)集合的規(guī)格化為維度相同的向量,特別是位長(zhǎng)度相同的位向量。這意味著該過程將公平地保持與文檔相關(guān)聯(lián)的詞語(yǔ)集合中的每個(gè)詞語(yǔ)的信息,而無(wú)需粗略地切分詞語(yǔ)的數(shù)目。
在一些實(shí)施例中,方法200中的預(yù)定轉(zhuǎn)換規(guī)則可以包括:針對(duì)整數(shù)集合中的每個(gè)整數(shù),獲得相應(yīng)的二進(jìn)制數(shù);取出相應(yīng)二進(jìn)制數(shù)的連續(xù)n位,其中n為大于零的整數(shù);將所述連續(xù)n位轉(zhuǎn)換為十進(jìn)制數(shù)以替代相應(yīng)整數(shù)而形成新的整數(shù)集合;以及使用位圖法將所述新的整數(shù)集合轉(zhuǎn)換為位長(zhǎng)度2n的位向量。
在一些實(shí)施例中,可以根據(jù)多個(gè)預(yù)定轉(zhuǎn)換規(guī)則確定多個(gè)相似的文檔集合,其中所述多個(gè)預(yù)定轉(zhuǎn)換規(guī)則分別取出所述相應(yīng)二進(jìn)制數(shù)的互不交疊的多個(gè)連續(xù)n位,以得到相應(yīng)的位向量。
在一個(gè)特定的實(shí)施例中,二進(jìn)制表示的低2比特的段可以作為指紋-0的提取函數(shù),并且二進(jìn)制表示的2-3比特的段可以作為另一指紋-1的提取函數(shù)。
在該特定的實(shí)施例中,針對(duì)上文所給出的具體示例,可以存在如下的“指紋”提取過程。
在這種轉(zhuǎn)換中,位圖法bitmap的含義是,所得到的位向量中的1表示所轉(zhuǎn)換的整數(shù)集合中包括該位所代表的數(shù)字,0表示所轉(zhuǎn)換的整數(shù)集合中不包括該位所代表的數(shù)字。例如,{0,1,0,2}包括0、1、2,所以位向量01112的第一、二、三位為1,而{0,1,0,2}不包括3,所以位向量01112的第四位為0。
換句話說,在該特定的實(shí)施例中,文檔d0的“指紋”0可以是“01112”,而“指紋”1可以是“10112”。文檔d1的“指紋”0可以是“10112”,而“指紋”1可以是“10112”。從該示例可以看出,不同長(zhǎng)度的整數(shù)集合d0和d1最終被轉(zhuǎn)換為相同位長(zhǎng)度的位向量。這有利于在后續(xù)步驟中確定不同文檔的指紋之間的差異。在一些實(shí)施例中,位長(zhǎng)度可以是8的整數(shù)倍。
在一些實(shí)施例中,可以使用多維的向量矩陣來(lái)存儲(chǔ)所述多個(gè)文檔中的每個(gè)文檔的通過所述多個(gè)預(yù)定轉(zhuǎn)換規(guī)則得到的多個(gè)向量,每個(gè)預(yù)定轉(zhuǎn)換規(guī)則對(duì)應(yīng)于向量矩陣的一個(gè)不同維度,每個(gè)向量對(duì)應(yīng)于相應(yīng)維度上的一個(gè)坐標(biāo)值。在這些實(shí)施例中,如果指紋被存儲(chǔ)在指紋矩陣中,則該指紋矩陣中的每個(gè)點(diǎn)可以存儲(chǔ)具有相同指紋組合的文檔參考號(hào)的列表。
圖4示意性地示出了根據(jù)本公開內(nèi)容的實(shí)施例的利用文檔的二維指紋矩陣來(lái)表示本文的示意圖。如圖4中所示出的,針對(duì)上面的特定實(shí)施例,文檔d0和文檔d1可以使用它們各自的兩個(gè)指紋作為相應(yīng)維度上的坐標(biāo)值而存儲(chǔ)在指紋矩陣中。
除了使用二維指紋之外,在其他的實(shí)施例中,也可以使用更高維度的指紋矩陣來(lái)提供用以訪問這些指紋的快速搜索能力。如上文所述,指紋矩陣是使用每個(gè)指紋fpi作為其維度的矩陣。為了說明的目的,下文還給出了三維指紋的示例,這意味著在指紋提取過程中提取了三個(gè)不同的指紋。
圖6示意性地示出了根據(jù)本公開內(nèi)容的實(shí)施例的向文檔的三維指紋矩陣中添加新的文檔的示意圖。如圖6中所示出的,可以根據(jù)多個(gè)預(yù)定轉(zhuǎn)換規(guī)則,針對(duì)新的文檔得到相應(yīng)的多個(gè)向量,并且將所得到的多個(gè)向量存儲(chǔ)在向量矩陣中。
具體地,為了在指紋矩陣中插入新的文檔din,可以將這個(gè)文檔的參考號(hào)以指紋fpmatrix[fp0(din)][fp1(din)][fp2(din)]為坐標(biāo)添加到這個(gè)矩陣中。
在一些實(shí)施例中,可以將每個(gè)維度上的與文檔的向量相對(duì)應(yīng)的坐標(biāo)值之外的坐標(biāo)值標(biāo)記為“空”(blank)。例如,如果不存在任何文檔具有例如fp0=b的指紋值,則這個(gè)指紋值將被標(biāo)記為空??梢酝ㄟ^這個(gè)標(biāo)記來(lái)跳過指紋矩陣中的空坐標(biāo)值,從而可以加速相似文檔的搜索過程。因此,在一些實(shí)施例中,可以在確定相似的文檔集合的過程中不考慮被標(biāo)記為“空”的坐標(biāo)值。
在方法200中,可以使用文檔的指紋作為該文檔的定位符,這意味著僅需要花費(fèi)o(1)的時(shí)間來(lái)搜索某個(gè)文檔的指紋組合。此外,這種方式確保了具有相同指紋組合的文檔或者其參考號(hào)可以被放置在矩陣中的相同位置處。
進(jìn)一步地,可以存在兩種方式來(lái)存儲(chǔ)指紋矩陣。首先是原始存儲(chǔ),其完整地存儲(chǔ)整個(gè)指紋矩陣空間并且將文檔列表存儲(chǔ)在該簡(jiǎn)明指紋矩陣空間中。其次是哈希映射圖(hashmap)存儲(chǔ),它使用指紋組合作為它的關(guān)鍵碼(key)并且將指紋組合存儲(chǔ)在該映射圖中,這對(duì)于在稀疏情況中壓縮矩陣的大小是有用的。對(duì)于上面所提到的新文檔,可以將新文檔的指紋(fp0(din),fp1(din)...fpn(din))作為關(guān)鍵碼并且將它們存放到哈希映射圖中以壓縮矩陣空間。因此,在一些實(shí)施例中,可以使用哈希圖來(lái)存儲(chǔ)向量矩陣。
在這兩種存儲(chǔ)方式中,原始存儲(chǔ)方式在搜索時(shí)間上具有優(yōu)勢(shì),因?yàn)樗呛?jiǎn)明的矩陣并且對(duì)它的訪問是直接的,但是它浪費(fèi)了許多存儲(chǔ)空間來(lái)存儲(chǔ)空的指紋組合。相對(duì)照地,哈希映射圖存儲(chǔ)方式可以極大地壓縮該存儲(chǔ)空間。
接著,在完成步驟202之后,方法200可以進(jìn)入步驟203。在步驟203中,可以基于多個(gè)文檔的相應(yīng)向量與目標(biāo)文檔的向量之間的差異來(lái)確定相似的文檔集合。如上文所描述的,文檔的向量部分地體現(xiàn)了與文檔相關(guān)聯(lián)的詞語(yǔ)集合的信息。進(jìn)一步如上文所描述的,不論與文檔相關(guān)聯(lián)的詞語(yǔ)集合的詞語(yǔ)數(shù)目,文檔的向量都具有相同的維度。因此,通過比較不同文檔的向量,確定文檔的向量之間的差異,就可以確定出與目標(biāo)文檔相似的文檔集合。
在一些實(shí)施例中,步驟203可以進(jìn)一步包括:將差異小于預(yù)定閾值的文檔集合確定為相似的文檔集合。本領(lǐng)域的技術(shù)人員可以理解,該預(yù)定閾值可以根據(jù)具體的技術(shù)場(chǎng)景和要求進(jìn)行預(yù)先設(shè)置。通過調(diào)整該預(yù)定閾值,可以調(diào)整所確定的相似文檔集合與目標(biāo)文檔之間的相似度的高低,同時(shí)可以調(diào)整所確定的相似文檔集合中的文檔數(shù)目。
在一些場(chǎng)景中,在使用某個(gè)預(yù)定閾值的情況下,可能無(wú)法找到用戶所要求的預(yù)定數(shù)目的相似文檔。在這些場(chǎng)景中,可以以一為步長(zhǎng)來(lái)遞增該預(yù)定閾值,以使相似的文檔集合包括預(yù)定數(shù)目的文檔。
在確定相似文本的具體過程中,可以基于目標(biāo)文檔的向量和預(yù)定閾值,確定符合于預(yù)定閾值的向量的值區(qū)間,并且將向量落在值區(qū)間內(nèi)的文檔集合確定為相似的文檔集合。
下文通過圖5和圖7分別通過二維指紋矩陣和三位指紋矩陣來(lái)具體地闡述確定相似的文檔集合的過程。
圖5示意性地示出了根據(jù)本公開內(nèi)容的實(shí)施例的利用文檔的二維指紋矩陣來(lái)搜索相似本文的示意圖。
根據(jù)本公開內(nèi)容的實(shí)施例,在搜索相似本文的階段中,可以通過指紋組合來(lái)找出所有可能的相似文檔。在一個(gè)具體的示例中,可以假設(shè)目標(biāo)文檔為:dt:{clinton,campaigns,virginia,donald}={44,63,26,79},并且可以將文檔差異閾值m為1。
首先,可以計(jì)算dt的指紋如下:
類似地,提取函數(shù)fp1可以取出各個(gè)整數(shù)的二進(jìn)制表示的次低2位,然后使用類似的過程得出另一個(gè)位向量11002。
然后,可以根據(jù)目標(biāo)文檔的位向量以及文檔差異閾值m來(lái)構(gòu)造符合相似條件的文檔的可能指紋。在這個(gè)過程中,可以通配符“?”來(lái)表示該比特能夠是0或者1。此外,在構(gòu)造可能指紋的過程中,可以不考慮目標(biāo)文檔的指紋中為0的位,而僅需要考慮為1的位。如此,針對(duì)函數(shù)fp0可以得出用指紋表示的可能的相似文檔集合為:
圖5中所描繪的陰影區(qū)域表示了在二維的指紋矩陣中所表示的與目標(biāo)文檔dt相似的文檔所在的區(qū)域,該區(qū)域是通過兩個(gè)指紋所確定的可能相似文檔集合的交集。如圖5中所示出的,上文的具體示例中的文檔d0在該搜索范圍之外,并且文檔d1在該搜索范圍之中。這與實(shí)際地比較它們之間的相似度的結(jié)果是吻合的:diff(dt,d0)==3,diff(dt,d1)=1。
最終,可以通過傳統(tǒng)的方式檢查出d1中的關(guān)鍵詞滿足具體場(chǎng)景的相似度要求。上面的計(jì)算過程在文檔增加時(shí),成本將比逐個(gè)比較要少得多。因此,在一些實(shí)施例中,可以通過直接比較相似的文檔集合中的文檔的相關(guān)聯(lián)的詞語(yǔ)集合與目標(biāo)文檔的相關(guān)聯(lián)的詞語(yǔ)集合來(lái)確定更為精確的相似文檔子集。
圖7示意性地示出了根據(jù)本公開內(nèi)容的實(shí)施例的利用文檔的三維指紋矩陣來(lái)搜索相似文檔的示意圖。
如圖7中所示出的,搜索相似文檔的過程開始于針對(duì)目標(biāo)文檔的指紋計(jì)算:fp0(dt),fp1(dt),fp2(dt),...。然后,在閾值m內(nèi)的可能指紋將被計(jì)算:
如上文所描述的,在這個(gè)過程中,可以通過濾除具有空標(biāo)記的指紋來(lái)加速搜索。如果一個(gè)指紋被標(biāo)記了空標(biāo)記,這意味著沒有文檔具有該指紋,所以不需要搜索這些指紋。
針對(duì)多個(gè)指紋中的每個(gè)指紋進(jìn)行前面的步驟,然后可以得到所有的指紋相似的集合。然后,根據(jù)上文公式(4),可以得到根據(jù)多個(gè)指紋綜合得出的相似文本集合:
可以看出,通過本公開的實(shí)施例的方法,極大地縮減了需要進(jìn)行查詢的相似文檔的范圍,并且能夠進(jìn)行最終的相似度計(jì)算過程來(lái)濾除虛假肯定(false-positive)的情況。
此外,對(duì)于確定前k個(gè)最佳相似文本的問題,該問題在本公開內(nèi)容的模型中將會(huì)更加簡(jiǎn)單。從閾值m=0開始,在這種情況中,將會(huì)找到對(duì)于所使用的指紋而言的完全匹配。如果相似本文集合大小少于k個(gè),則可以逐一地放寬閾值m,同時(shí)查看結(jié)果的相似文本集合的大小是否足夠大。如果滿足了用于所需要的預(yù)定數(shù)目k,則可以返回該k個(gè)相似文檔。因此,在一些實(shí)施例中,方法200可以確定差異最小的前k個(gè)文檔,k為大于零的整數(shù)。
在一些實(shí)施例中,可以將向量添加到搜索引擎的索引段中,以用于通過搜索引擎對(duì)向量進(jìn)行搜索。本領(lǐng)域的技術(shù)人員可以理解,基于倒排索引(invertedindex)的傳統(tǒng)搜索引擎長(zhǎng)于一般性的搜索,如果對(duì)相似文檔搜索能夠與傳統(tǒng)搜索引擎進(jìn)行集成可能是一種有吸引力的特征。為了將本公開內(nèi)容的方法集成在搜索引擎中,可以將所有的指紋存儲(chǔ)在搜索引擎的索引字段中,在搜索階段,可以使用“與(and)”子句來(lái)搜索特定的指紋組合。
在完成步驟203之后,方法200可以結(jié)束。
在下文中,將給出與本公開內(nèi)容的實(shí)施例的方法有關(guān)的理論推導(dǎo),以證明本公開內(nèi)容的實(shí)施例的正確性和可行性。本領(lǐng)域的技術(shù)人員應(yīng)該理解,在下面的推導(dǎo)過程中,可能使用了特定的場(chǎng)景或者表述,這些特定的場(chǎng)景或者表述僅是為了說明而并不是限制本公開內(nèi)容的實(shí)施例。
在一般的場(chǎng)景中,文檔的sow可能由大量的比特集合來(lái)表示,所以需要使用詞匯表比特的大小來(lái)存儲(chǔ)sow。但是,文檔的sow通常是一個(gè)稀疏的比特集合,因?yàn)榕c整個(gè)詞匯表相比較,一個(gè)文檔的關(guān)鍵詞是非常少的。因此,本公開內(nèi)容替代地使用了整數(shù)集合dn={wn0,wn1,...,wnk}來(lái)表示文檔。
通常,每個(gè)(數(shù)學(xué))函數(shù)fp(x)可以具有如下的性質(zhì):
因此,在本公開的特定實(shí)施例中,可以使用比特段函數(shù)作為用于提取指紋的函數(shù)。在上文給出的具體示例中,關(guān)鍵詞集合d0:{clinton,republican,vote,whitehouse}的數(shù)值化形式可以為:d0={44,17,28,6}。在一些實(shí)施例中,該數(shù)值轉(zhuǎn)換可以基于慣用的詞匯表格。
基于上面的公式(1)和位向量的性質(zhì),容易得到以下公式:
bitdiff(fpi(d0),fpi(d1))≤diff(d0,d1)(2),
其中函數(shù)bittdiff(i0,i1)可以是針對(duì)i0是1而i1是0的比特組合進(jìn)行計(jì)數(shù)的函數(shù)。
可以定義具有與目標(biāo)文檔dt具有文檔差異閾值m的指紋相似集合:
基于上文的公式(0)和公式(2),相似文檔集合simm(dt)必須是
如果具有n個(gè)指紋,從上面的公式(3)可以得到:
通過上面的公式(4),能夠通過使用指紋相似集合的交集來(lái)縮減相似文檔集合的搜索范圍。
作為簡(jiǎn)要的總結(jié),本公開內(nèi)容提出了一種利用指紋矩陣的解決方案來(lái)找出相似文檔的新方法。這種方法確保了具有相同關(guān)鍵詞的文檔將以o(1)的速度被返回,該方法將容忍一些虛假肯定的文檔以便獲得更好性能。本公開內(nèi)容所提出的這種解決方案的主要步驟可以粗略地分為三個(gè)部分:第一,指紋提?。簩奈臋n中提取固定數(shù)目的指紋。每個(gè)指紋具有相同的位長(zhǎng)度,通常是基數(shù)8的整數(shù)個(gè)比特,例如8比特、32比特,等等。第二,指紋矩陣構(gòu)造:這些指紋將被存儲(chǔ)在指紋矩陣中。該矩陣的維度由指紋的固定數(shù)目來(lái)決定。第三,相似文檔搜索:將利用指紋矩陣來(lái)得到目標(biāo)文檔的相似文檔。
本公開內(nèi)容提出了一種以可接受的虛假肯定概率在文檔差異閾值條件內(nèi)快速地搜索所有文檔的機(jī)制。它針對(duì)每個(gè)文檔可以生成若干指紋,并且將這些指紋存儲(chǔ)在名為指紋矩陣的數(shù)據(jù)結(jié)構(gòu)中。在相似文檔搜索期間,指紋矩陣能夠以相當(dāng)快的速度縮減搜索的范圍。在搜索時(shí)間中,通過計(jì)算目標(biāo)文檔的指紋,指紋矩陣能夠快速地找出可能包含相似文檔的存儲(chǔ)區(qū),并且可以排除對(duì)不相似的路徑進(jìn)行遍歷。
圖8示意性地示出了根據(jù)本公開內(nèi)容的實(shí)施例的在多個(gè)文檔中確定與目標(biāo)文檔相似的文檔集合的裝置800的框圖。在一些實(shí)施例中,該多個(gè)文檔和目標(biāo)文檔中均可以包括多個(gè)詞語(yǔ),每個(gè)詞語(yǔ)可以對(duì)應(yīng)于一個(gè)不同的整數(shù)。在圖8中,使用虛線框來(lái)表示可選的單元。
本領(lǐng)域的技術(shù)人員可以理解,圖8中僅示出了裝置800中的與本公開的實(shí)施例緊密相關(guān)的單元或組件,在具體的實(shí)現(xiàn)中,裝置800可以包括使其能夠正常操作的其他功能單元或組件。此外,本領(lǐng)域的技術(shù)人員還可以理解,裝置800的各個(gè)單元之間可以存在必要的連接。
如圖8中所示出的,裝置800可以包括獲得單元801、轉(zhuǎn)換單元802、以及確定單元803。
在一些實(shí)施例中,獲得單元801可以被配置為針對(duì)多個(gè)文檔和目標(biāo)文檔中的每個(gè)文檔,基于與文檔相關(guān)聯(lián)的詞語(yǔ)集合來(lái)獲得與文檔相關(guān)聯(lián)的整數(shù)集合。在一些實(shí)施例中,與文檔相關(guān)聯(lián)的詞語(yǔ)集合可以包括文檔的關(guān)鍵詞集合。在一些實(shí)施例中,可以通過詞頻統(tǒng)計(jì)或者名稱實(shí)體提取增強(qiáng)算法來(lái)確定與文檔相關(guān)聯(lián)的詞語(yǔ)集合。
在一些實(shí)施例中,轉(zhuǎn)換單元802可以被配置為根據(jù)預(yù)定轉(zhuǎn)換規(guī)則將與每個(gè)文檔相關(guān)聯(lián)的整數(shù)集合轉(zhuǎn)換為維度相同的向量。確定單元803可以被配置為基于多個(gè)文檔的相應(yīng)向量與目標(biāo)文檔的向量之間的差異來(lái)確定相似的文檔集合。在一些實(shí)施例中,位長(zhǎng)度可以是8的整數(shù)倍。在一些實(shí)施例中,確定單元803可以進(jìn)一步被配置為:確定差異最小的前k個(gè)文檔,k為大于零的整數(shù)。
在一些實(shí)施例中,轉(zhuǎn)換單元802和確定單元803可以進(jìn)一步被配置為:根據(jù)多個(gè)預(yù)定轉(zhuǎn)換規(guī)則確定多個(gè)相似的文檔集合,以及將多個(gè)相似的文檔集合的交集確定為最終的相似文檔集合。
在一些實(shí)施例中,裝置800可以進(jìn)一步包括存儲(chǔ)單元804。存儲(chǔ)單元804可以被配置為使用多維的向量矩陣來(lái)存儲(chǔ)多個(gè)文檔中的每個(gè)文檔的通過多個(gè)預(yù)定轉(zhuǎn)換規(guī)則得到的多個(gè)向量,每個(gè)預(yù)定轉(zhuǎn)換規(guī)則對(duì)應(yīng)于向量矩陣的一個(gè)不同維度,每個(gè)向量對(duì)應(yīng)于相應(yīng)維度上的一個(gè)坐標(biāo)值。
在一些實(shí)施例中,轉(zhuǎn)換單元802可以進(jìn)一步被配置為根據(jù)多個(gè)預(yù)定轉(zhuǎn)換規(guī)則,針對(duì)新的文檔得到相應(yīng)的多個(gè)向量。在這些實(shí)施例中,存儲(chǔ)單元804可以進(jìn)一步被配置為,將所得到的多個(gè)向量存儲(chǔ)在向量矩陣中。
在一些實(shí)施例中,裝置800可以進(jìn)一步包括標(biāo)記單元805。標(biāo)記單元805可以被配置為將每個(gè)維度上的與文檔的向量相對(duì)應(yīng)的坐標(biāo)值之外的坐標(biāo)值標(biāo)記為“空”。在這些實(shí)施例中,確定單元803可以進(jìn)一步被配置為:在確定相似的文檔集合的過程中不考慮被標(biāo)記為“空”的坐標(biāo)值。
在一些實(shí)施例中,存儲(chǔ)單元804可以進(jìn)一步被配置為:使用哈希圖來(lái)存儲(chǔ)向量矩陣。
在一些實(shí)施例中,預(yù)定轉(zhuǎn)換規(guī)則可以包括:針對(duì)整數(shù)集合中的每個(gè)整數(shù),獲得相應(yīng)的二進(jìn)制數(shù);取出相應(yīng)二進(jìn)制數(shù)的連續(xù)n位,其中n為大于零的整數(shù);將該連續(xù)n位轉(zhuǎn)換為十進(jìn)制數(shù)以替代相應(yīng)整數(shù)而形成新的整數(shù)集合;以及使用位圖法將新的整數(shù)集合轉(zhuǎn)換為2n長(zhǎng)度的向量。
在一些實(shí)施例中,轉(zhuǎn)換單元802和確定單元803可以進(jìn)一步被配置為:根據(jù)多個(gè)預(yù)定轉(zhuǎn)換規(guī)則確定多個(gè)相似的文檔集合,其中該多個(gè)預(yù)定轉(zhuǎn)換規(guī)則分別取出相應(yīng)二進(jìn)制數(shù)的互不交疊的多個(gè)連續(xù)n位,以得到相應(yīng)的向量。
在一些實(shí)施例中,確定單元803可以進(jìn)一步被配置為:通過直接比較相似的文檔集合中的文檔的相關(guān)聯(lián)的詞語(yǔ)集合與目標(biāo)文檔的相關(guān)聯(lián)的詞語(yǔ)集合來(lái)確定更為精確的相似文檔子集。在一些實(shí)施例中,確定單元803可以進(jìn)一步被配置為:將差異小于預(yù)定閾值的文檔集合確定為相似的文檔集合。在一些實(shí)施例中,確定單元803可以進(jìn)一步被配置為:基于目標(biāo)文檔的向量和預(yù)定閾值,確定符合于預(yù)定閾值的向量的值區(qū)間;以及將向量落在該值區(qū)間內(nèi)的文檔集合確定為相似的文檔集合。
在一些實(shí)施例中,裝置800可以進(jìn)一步包括遞增單元806。遞增單元806可以被配置為以一為步長(zhǎng)遞增預(yù)定閾值,以使相似的文檔集合包括預(yù)定數(shù)目的文檔。
在一些實(shí)施例中,裝置800可以進(jìn)一步包括添加單元807。添加單元807可以被配置為將向量添加到搜索引擎的索引段中,以用于通過搜索引擎對(duì)向量進(jìn)行搜索。
圖9示意性地示出了可以用來(lái)實(shí)現(xiàn)本公開內(nèi)容的實(shí)施例的示例性計(jì)算機(jī)系統(tǒng)/服務(wù)器912的框圖。應(yīng)當(dāng)注意,圖9中所示出的計(jì)算機(jī)系統(tǒng)/服務(wù)器912僅是一種示例,不對(duì)本公開內(nèi)容的實(shí)施方式的功能和使用范圍進(jìn)行任何限制。
如圖9中所示出的,計(jì)算機(jī)系統(tǒng)/服務(wù)器912以通用計(jì)算設(shè)備的形式表現(xiàn)。計(jì)算機(jī)系統(tǒng)/服務(wù)器912的組件可以包括但不限于:一個(gè)或者多個(gè)處理器或者處理單元916,系統(tǒng)存儲(chǔ)器928,連接不同系統(tǒng)組件(包括系統(tǒng)存儲(chǔ)器928和處理單元916)的總線918。
總線918表示幾類總線結(jié)構(gòu)中的一種或多種,包括存儲(chǔ)器總線或者存儲(chǔ)器控制器,外圍總線,圖形加速端口,處理器或者使用多種總線結(jié)構(gòu)中的任意總線結(jié)構(gòu)的局域總線。舉例來(lái)說,這些體系結(jié)構(gòu)包括但不限于工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(isa)總線,微通道體系結(jié)構(gòu)(mac)總線,增強(qiáng)型isa總線、視頻電子標(biāo)準(zhǔn)協(xié)會(huì)(vesa)局域總線以及外圍組件互連(pci)總線。
計(jì)算機(jī)系統(tǒng)/服務(wù)器912典型地包括多種計(jì)算機(jī)系統(tǒng)可讀介質(zhì)。這些介質(zhì)可以是任何能夠被計(jì)算機(jī)系統(tǒng)/服務(wù)器912訪問的可用介質(zhì),包括易失性和非易失性介質(zhì),可移除的和不可移除的介質(zhì)。
系統(tǒng)存儲(chǔ)器928可以包括易失性存儲(chǔ)器形式的計(jì)算機(jī)系統(tǒng)可讀介質(zhì),例如,存儲(chǔ)器930和/或緩存器932。計(jì)算機(jī)系統(tǒng)/服務(wù)器912可以進(jìn)一步包括其他可移除/不可移除的、易失性/非易失性計(jì)算機(jī)系統(tǒng)存儲(chǔ)介質(zhì)。盡管圖9中未示出,但是可以提供用于對(duì)可移除非易失性磁盤(例如“軟盤”)讀寫的磁盤,以及對(duì)可移除非易失性光盤(例如cd-rom、dvd-rom或者其他光介質(zhì))讀寫的光盤。在這些情況下,每個(gè)磁盤可以通過一個(gè)或者多個(gè)數(shù)據(jù)介質(zhì)接口與總線918相連。存儲(chǔ)器928可以包括至少一個(gè)程序產(chǎn)品,該程序產(chǎn)品具有一組(例如至少一個(gè))程序模塊,這些程序模塊被配置以執(zhí)行本公開內(nèi)容的各實(shí)施方式的功能。
具有至少一個(gè)程序模塊942的程序/實(shí)用工具940,可以存儲(chǔ)在例如存儲(chǔ)器928中,這樣的程序模塊942包括但不限于:操作系統(tǒng)、一個(gè)或者多個(gè)應(yīng)用程序、其他程序模塊以及程序數(shù)據(jù),這些示例中的每一個(gè)或某種組合中可能包括網(wǎng)絡(luò)環(huán)境的實(shí)現(xiàn)。程序模塊942通常執(zhí)行本公開內(nèi)容所描述的實(shí)施方式中的功能和/或方法。
根據(jù)需要,計(jì)算機(jī)系統(tǒng)/服務(wù)器912也可以與一個(gè)或多個(gè)外部設(shè)備(例如顯示設(shè)備924、存儲(chǔ)設(shè)備914等)通信,還可與一個(gè)或者多個(gè)使得用戶能與該計(jì)算機(jī)系統(tǒng)/服務(wù)器912交互的設(shè)備通信,和/或與使得該計(jì)算機(jī)系統(tǒng)/服務(wù)器912能與一個(gè)或多個(gè)其他計(jì)算設(shè)備進(jìn)行通信的任何設(shè)備(例如網(wǎng)卡,調(diào)制解調(diào)器等等)通信。這種通信可以通過輸入/輸出(i/o)接口922進(jìn)行。并且,計(jì)算機(jī)系統(tǒng)/服務(wù)器912還可以通過網(wǎng)絡(luò)適配器920與一個(gè)或者多個(gè)網(wǎng)絡(luò)(例如局域網(wǎng)(lan),廣域網(wǎng)(wan)和/或公共網(wǎng)絡(luò),例如因特網(wǎng))通信。如圖所示,網(wǎng)絡(luò)適配器920通過總線918與計(jì)算機(jī)系統(tǒng)/服務(wù)器912的其他模塊通信。應(yīng)當(dāng)明白,盡管圖中未示出,可以結(jié)合計(jì)算機(jī)系統(tǒng)/服務(wù)器912使用其他硬件和/或軟件模塊,包括但不限于:微代碼、設(shè)備磁盤、冗余處理單元、外部磁盤驅(qū)動(dòng)陣列、raid系統(tǒng)、磁帶磁盤以及數(shù)據(jù)備份存儲(chǔ)系統(tǒng)等。
在對(duì)本公開內(nèi)容的實(shí)施例的描述中,術(shù)語(yǔ)“包括”及其類似用語(yǔ)應(yīng)當(dāng)理解為開放性包含,即“包括但不限于”。術(shù)語(yǔ)“基于”應(yīng)當(dāng)理解為“至少部分地基于”。術(shù)語(yǔ)“一個(gè)實(shí)施例”或“該實(shí)施例”應(yīng)當(dāng)理解為“至少一個(gè)實(shí)施例”。
應(yīng)當(dāng)注意,本公開內(nèi)容的實(shí)施例可以通過硬件、軟件或者軟件和硬件的結(jié)合來(lái)實(shí)現(xiàn)。硬件部分可以利用專用邏輯來(lái)實(shí)現(xiàn);軟件部分可以存儲(chǔ)在存儲(chǔ)器中,由適當(dāng)?shù)闹噶顖?zhí)行系統(tǒng),例如微處理器或者專用設(shè)計(jì)硬件來(lái)執(zhí)行。本領(lǐng)域的技術(shù)人員可以理解上述的設(shè)備和方法可以使用計(jì)算機(jī)可執(zhí)行指令和/或包含在處理器控制代碼中來(lái)實(shí)現(xiàn),例如在可編程的存儲(chǔ)器或者諸如光學(xué)或電子信號(hào)載體的數(shù)據(jù)載體上提供了這樣的代碼。
此外,盡管在附圖中以特定順序描述了本公開內(nèi)容的方法的操作,但是這并非要求或者暗示必須按照該特定順序來(lái)執(zhí)行這些操作,或是必須執(zhí)行全部所示的操作才能實(shí)現(xiàn)期望的結(jié)果。相反,流程圖中描繪的步驟可以改變執(zhí)行順序。附加地或備選地,可以省略某些步驟,將多個(gè)步驟組合為一個(gè)步驟執(zhí)行,和/或?qū)⒁粋€(gè)步驟分解為多個(gè)步驟執(zhí)行。還應(yīng)當(dāng)注意,根據(jù)本公開內(nèi)容的兩個(gè)或更多裝置的特征和功能可以在一個(gè)裝置中具體化。反之,上文描述的一個(gè)裝置的特征和功能可以進(jìn)一步劃分為由多個(gè)裝置來(lái)具體化。
雖然已經(jīng)參考若干具體實(shí)施例描述了本公開內(nèi)容,但是應(yīng)當(dāng)理解,本公開內(nèi)容不限于所公開的具體實(shí)施例。本公開內(nèi)容旨在涵蓋所附權(quán)利要求的精神和范圍內(nèi)所包括的各種修改和等效布置。