專利名稱:模糊數(shù)據(jù)搜索方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)搜索方法,尤其涉及一種模糊數(shù)據(jù)搜索方法和裝置。
背景技術(shù):
隨著信息時代的到來,需要處理的數(shù)據(jù)海量增長。如何高效處理這些數(shù)據(jù)成為亟待解決的問題之一。在數(shù)據(jù)處理之中,經(jīng)常要在海量數(shù)據(jù)之中搜索所需的數(shù)據(jù),因此如何既迅速又準(zhǔn)確地搜索、定位數(shù)據(jù)對于數(shù)據(jù)的高效處理至關(guān)重要。
現(xiàn)有技術(shù)中存在多種數(shù)據(jù)搜索方法,但是這些方法中有些效率太低,有些命中率不高,有些實現(xiàn)起來過于復(fù)雜。并且有些數(shù)據(jù)搜索方法必須預(yù)先知道數(shù)據(jù)是哪一類數(shù)據(jù),然后才能根據(jù)這類數(shù)據(jù)的一些特有信息進行統(tǒng)計。例如,對于圖像數(shù)據(jù)可以基于顏色、輪廓、對比度等參數(shù)進行搜索,但是這種搜索方法就不能用于音頻數(shù)據(jù)的搜索,因而普適性不夠。
通常來說,現(xiàn)有的數(shù)據(jù)搜索方法主要采用逐一比較的方式,也就是說,將待搜索的源數(shù)據(jù)與作為比較標(biāo)準(zhǔn)的模式數(shù)據(jù)逐個比較,計算它們之間的相似度。如果相似度達(dá)到預(yù)先設(shè)定的要求,則停止搜索;否則將源數(shù)據(jù)向后移動,重新進行新一輪比較,直到匹配到所需數(shù)據(jù)或者直到源數(shù)據(jù)比較完畢。這種方法效率比較低,也不夠靈活。
發(fā)明內(nèi)容
針對上述問題,本發(fā)明旨在實現(xiàn)簡單、易于完成,并兼顧搜索速度和命中率的模糊數(shù)據(jù)搜索。
根據(jù)本發(fā)明的第一方面,提供一種模糊數(shù)據(jù)搜索方法,所述方法包括以下步驟基于第一比較步長和第一相似度閾值對源數(shù)據(jù)和模式數(shù)據(jù)進行預(yù)匹配;若預(yù)匹配通過,則基于第二比較步長和第二相似度閾值對源數(shù)據(jù)中通過預(yù)匹配的數(shù)據(jù)段和模式數(shù)據(jù)進行精匹配;其中,所述第一比較步長不小于第二比較步長。
在第一方面中,優(yōu)選地,所述預(yù)匹配包括步驟基于所述第一比較步長計算源數(shù)據(jù)和模式數(shù)據(jù)的距離;根據(jù)所述距離確定數(shù)據(jù)相似度;將所述數(shù)據(jù)相似度與第一相似度閾值比較,以確定預(yù)匹配是否通過;若預(yù)匹配沒有通過,則將源數(shù)據(jù)的比較起始位置向后移一位,繼續(xù)進行預(yù)匹配。
優(yōu)選地,所述精匹配包括步驟基于所述第二比較步長計算源數(shù)據(jù)中通過預(yù)匹配的數(shù)據(jù)段和模式數(shù)據(jù)的距離;根據(jù)所述距離確定數(shù)據(jù)相似度;將所述數(shù)據(jù)相似度與第二相似度閾值比較,以確定精匹配是否通過;若精匹配沒有通過,則將源數(shù)據(jù)的比較起始位置向后移一位,繼續(xù)進行預(yù)匹配。
優(yōu)選地,所述第一比較步長大于第二比較步長。
優(yōu)選地,所述第一相似度閾值等于第二相似度閾值。
優(yōu)選地,所述距離根據(jù)源數(shù)據(jù)與相應(yīng)模式數(shù)據(jù)之間的數(shù)據(jù)差值的絕對值除以一常數(shù)來計算。
優(yōu)選地,所述距離根據(jù)源數(shù)據(jù)與相應(yīng)模式數(shù)據(jù)之間的數(shù)據(jù)差值的絕對值除以相應(yīng)模式數(shù)據(jù)來計算。
優(yōu)選地,數(shù)據(jù)相似度是所述距離小于一閾值的數(shù)據(jù)數(shù)目占總比較數(shù)目的比例。
優(yōu)選地,數(shù)據(jù)相似度根據(jù)下式計算數(shù)據(jù)相似度=1-(∑距離)/比較過的數(shù)據(jù)總數(shù)。
根據(jù)第二方面,提供一種模糊數(shù)據(jù)搜索裝置,所述裝置包括預(yù)匹配裝置,用于基于第一比較步長和第一相似度閾值對源數(shù)據(jù)和模式數(shù)據(jù)進行預(yù)匹配;精匹配裝置,用于在預(yù)匹配通過的情況下,基于第二比較步長和第二相似度閾值對源數(shù)據(jù)中通過預(yù)匹配的數(shù)據(jù)段和模式數(shù)據(jù)進行精匹配;其中,所述第一比較步長不小于第二比較步長。
本發(fā)明通過設(shè)置和調(diào)節(jié)相似度閾值來調(diào)節(jié)搜索命中率,通過設(shè)置和調(diào)節(jié)比較步長來調(diào)節(jié)搜索速度,并采用兩輪匹配的方式來提高搜索效率。這樣,使得搜索過程能夠兼顧速度和命中率,并且簡單易行,從而克服了現(xiàn)有技術(shù)中的不足。
為更好地理解本發(fā)明,下面結(jié)合附圖和具體實施方式
對本發(fā)明作進一步說明。附圖中圖1顯示了本發(fā)明數(shù)據(jù)搜索方法的總體流程;圖2顯示了預(yù)匹配的詳細(xì)流程;圖3示出精匹配的詳細(xì)流程。
具體實施例方式
為了便于描述,需要對本文中提到的幾個術(shù)語進行解釋和說明。但是應(yīng)當(dāng)注意,這樣的解釋僅僅出于說明的目的,并不意于對本發(fā)明進行任何形式的限定。
首先,本文所指的數(shù)據(jù)可以是任意類型的數(shù)據(jù),比如可以是一幅圖像的點陣數(shù)據(jù),一段音頻的采樣數(shù)據(jù),還可以是壓縮過的數(shù)據(jù),如JPEG數(shù)據(jù)。并且,在對數(shù)據(jù)進行處理之前,預(yù)先并不需要知道它屬于哪類數(shù)據(jù)。以上提到的數(shù)據(jù)搜索,是指從源數(shù)據(jù)中搜索與模式數(shù)據(jù)相似的數(shù)據(jù)的過程,因此,模式數(shù)據(jù)是作為比較標(biāo)準(zhǔn)的數(shù)據(jù),而搜索到的數(shù)據(jù)稱為匹配數(shù)據(jù)。
為了兼顧命中率和搜索效率,本發(fā)明的搜索方法設(shè)置了兩個相似度閾值和兩個比較步長,通過調(diào)節(jié)兩個相似度閾值來調(diào)節(jié)命中率,通過調(diào)節(jié)兩個比較步長來調(diào)節(jié)搜索速度。此外,搜索時采用預(yù)匹配和精匹配的結(jié)合來提高搜索效率。
圖1顯示了本發(fā)明數(shù)據(jù)搜索方法的總體流程。如圖所示,在進行數(shù)據(jù)搜索匹配之前,在步驟100先要設(shè)置搜索的參數(shù)比較步長和相似度閾值。比較步長指比較過程中,數(shù)據(jù)每次向后移動的位數(shù)。與比較步長相對應(yīng)的另一可選參數(shù)是比較密度,它們之間滿足關(guān)系比較步長=1/比較密度。例如,若20個數(shù)據(jù)中抽出5個進行比較,則比較密度為25%,比較步長為4。在本發(fā)明的各實施方案中,可根據(jù)需要任選比較步長或比較密度作為搜索參數(shù)。通常,預(yù)匹配所用的比較步長不小于精匹配所用的比較步長。為達(dá)到更快的搜索效果,優(yōu)選地,預(yù)匹配所用的比較步長大于精匹配所用的比較步長。相似度閾值是判斷匹配是否通過的比較標(biāo)準(zhǔn),由于要進行預(yù)匹配和精匹配兩輪匹配,因此需設(shè)置兩個相似度閾值??蛇x地,預(yù)匹配所用的相似度閾值和精匹配所用的相似度閾值相等。
設(shè)置搜索參數(shù)之后,搜索方法即進入步驟102預(yù)匹配階段。在此過程中,主要基于第一比較步長將源數(shù)據(jù)與模式數(shù)據(jù)進行比較,基于第一相似度閾值判斷所比較的源數(shù)據(jù)是否通過預(yù)匹配。如圖中步驟103所示,若預(yù)匹配未通過,則將源數(shù)據(jù)比較位置向后移動一位,重新進行預(yù)匹配;若預(yù)匹配通過,則進入步驟104精匹配階段。在精匹配過程中,基于第二比較步長將通過預(yù)匹配的源數(shù)據(jù)的數(shù)據(jù)段和模式數(shù)據(jù)進行比較,基于第二相似度閾值判斷所比較的源數(shù)據(jù)是否通過精匹配。其中,通過預(yù)匹配的源數(shù)據(jù)的數(shù)據(jù)段指的是源數(shù)據(jù)中從步驟103中的源數(shù)據(jù)比較起始位置開始,到模式數(shù)據(jù)總長度為止的源數(shù)據(jù)的那段數(shù)據(jù)。在步驟105,若精匹配未通過,則將源數(shù)據(jù)比較位置向后移動一位,重新進行預(yù)匹配;若精匹配通過,則認(rèn)為搜索成功。
圖2顯示了預(yù)匹配的詳細(xì)流程,具體示出了預(yù)匹配中源數(shù)據(jù)和模式數(shù)據(jù)的比較過程和相似度判斷過程。如圖2所示,首先在步驟200將源數(shù)據(jù)比較起始位置設(shè)為1,也就是說,將要從第一個源數(shù)據(jù)開始進行比較。然后在步驟202,將源數(shù)據(jù)當(dāng)前比較位置設(shè)為等于源數(shù)據(jù)比較起始位置。接下來,在步驟204,將模式數(shù)據(jù)當(dāng)前比較位置設(shè)為1,即將要從模式數(shù)據(jù)的第一個數(shù)據(jù)開始比較。在步驟206,判斷模式數(shù)據(jù)的當(dāng)前比較位置是否大于模式數(shù)據(jù)的長度。在第一次循環(huán)開始時,判斷結(jié)果必然為否,則方法進入步驟208,計算源數(shù)據(jù)當(dāng)前比較位置的數(shù)據(jù)與模式數(shù)據(jù)當(dāng)前比較位置的數(shù)據(jù)之間的距離。
之后,在步驟210,判斷模式數(shù)據(jù)當(dāng)前比較位置是否等于模式數(shù)據(jù)的長度。若判斷結(jié)果為否,則進入步驟211,將源數(shù)據(jù)當(dāng)前比較位置和模式數(shù)據(jù)當(dāng)前比較位置均向后移動第一比較步長,然后回到步驟206進行判斷。若移動第一比較步長之后當(dāng)前比較位置仍不大于模式數(shù)據(jù)的長度,則繼續(xù)對新的當(dāng)前比較位置的源數(shù)據(jù)和模式數(shù)據(jù)計算數(shù)據(jù)之間的距離,直到步驟206或210的判斷中有一個結(jié)果為是,則進入步驟212,計算數(shù)據(jù)的相似度。也就是說,將源數(shù)據(jù)與相應(yīng)位置的模式數(shù)據(jù)進行比較,計算數(shù)據(jù)的距離,然后源數(shù)據(jù)和模式數(shù)據(jù)的比較位置均向后移動第一比較步長,直到比較位置達(dá)到或超過模式數(shù)據(jù)的長度。
源數(shù)據(jù)與模式數(shù)據(jù)之間的距離可以采用多種方式計算,只要能夠表征出兩數(shù)據(jù)之間的差異程度。例如,可以定義數(shù)據(jù)距離為距離=兩數(shù)據(jù)差的絕對值/常數(shù),該常數(shù)可以根據(jù)需要而設(shè)定。比如在數(shù)據(jù)是16進制數(shù)據(jù)的情況下,該常數(shù)可以設(shè)為255(FF)。也可以將數(shù)據(jù)距離定義為距離=兩數(shù)據(jù)差的絕對值/相應(yīng)的模式數(shù)據(jù)。本領(lǐng)域技術(shù)人員將會意識到,其他適當(dāng)?shù)臄?shù)據(jù)距離的定義也可以用于步驟208中,來計算兩數(shù)據(jù)間的距離。
在模式數(shù)據(jù)的比較位置達(dá)到或超過模式數(shù)據(jù)長度時,即步驟206或步驟210判斷結(jié)果為是的時候,方法進入步驟212,基于這一輪預(yù)匹配中計算的所有距離計算數(shù)據(jù)相似度。數(shù)據(jù)相似度的計算可根據(jù)需要,并且相應(yīng)于數(shù)據(jù)距離計算公式而采用多種方式。例如,可以定義數(shù)據(jù)相似度=1-(∑距離)/比較過的數(shù)據(jù)總數(shù)。本領(lǐng)域技術(shù)人員在本說明書的教導(dǎo)下,也可以得出其他的相似度計算的替代方式。例如,如果考慮非常接近或者相等數(shù)據(jù)所占的比例,可以將相似度定義為數(shù)據(jù)距離小于某一閾值的數(shù)據(jù)數(shù)目在所有比較數(shù)據(jù)中所占的比例。
得出數(shù)據(jù)相似度之后,進入步驟214,將該相似度與第一相似度閾值進行比較,以該比較結(jié)果為依據(jù),判斷預(yù)匹配是否通過。若216的判斷結(jié)果是預(yù)匹配未通過,則進入步驟217,將源數(shù)據(jù)的比較起始位置向后移1位,并返回到步驟202,開始新一輪預(yù)匹配。若判斷結(jié)果是通過預(yù)匹配,則認(rèn)為所比較的那段源數(shù)據(jù)有可能就是所要搜索的數(shù)據(jù),于是進入到精匹配過程,進行進一步的比較。
圖3示出精匹配的詳細(xì)流程。精匹配的執(zhí)行過程與預(yù)匹配相似,只是每次比較數(shù)據(jù),計算數(shù)據(jù)距離之后移動第二比較步長到下一比較數(shù)據(jù)。可選地,第二比較步長等于1。也就是說,在精匹配中,可對通過預(yù)匹配的數(shù)據(jù)段與模式數(shù)據(jù)進行逐一比較。基于比較的距離計算相似度之后,將該相似度與第二相似度閾值進行比較,以判斷精匹配是否通過。若精匹配通過,則認(rèn)為找到了匹配數(shù)據(jù);若精匹配未通過,則將源數(shù)據(jù)比較起始位置后移一位,回到預(yù)匹配步驟,具體地,回到圖2中的步驟202,重新進行預(yù)匹配。在精匹配過程中,數(shù)據(jù)間距離和相似度的計算方式可以分別與圖2中步驟208和212的計算方式相同。當(dāng)然,本領(lǐng)域技術(shù)人員也可以根據(jù)需要采用與預(yù)匹配過程不同的方式計算這兩個參數(shù)。
下面通過示例說明本發(fā)明搜索方法的執(zhí)行過程。假設(shè)源數(shù)據(jù)的十六進制形式為12 43 44 55 FE 45 A9 23 44 65 88 97 00 99 89 48,假設(shè)模式數(shù)據(jù)的十六進制形式為44 55 FF 45 A7 28。
根據(jù)本發(fā)明的搜索方法,為了在源數(shù)據(jù)中找到與模式數(shù)據(jù)相匹配的數(shù)據(jù),需要進行預(yù)匹配和精匹配兩輪搜索。首先設(shè)定例如,第一比較步長為2,第二比較步長為1,第一相似度閾值和第二相似度閾值均為0.95。接著開始預(yù)匹配過程。
(1)第一輪預(yù)匹配源數(shù)據(jù)比較起始位置和當(dāng)前比較位置的數(shù)據(jù)為12,模式數(shù)據(jù)當(dāng)前比較位置的數(shù)據(jù)為44。在本實施例中,距離計算公式采用數(shù)據(jù)差的絕對值/常數(shù),該常數(shù)取為FF。于是計算得出12與44的距離D=|12-44|/FF接著,源數(shù)據(jù)比較位置和模式數(shù)據(jù)比較位置均向后移動第一比較步長,即向后移2位。此時,模式數(shù)據(jù)的當(dāng)前比較位置移到了第3個數(shù)據(jù),依然小于模式數(shù)據(jù)總長度6,因此繼續(xù)比較。在該位置上,源數(shù)據(jù)和模式數(shù)據(jù)的比較數(shù)據(jù)分別為44和FF,同理,可以得出這兩個數(shù)據(jù)的距離D=|44-FF|/FF。繼續(xù)向后移動2位,比較源數(shù)據(jù)中的FE和模式數(shù)據(jù)中的A7,計算其數(shù)據(jù)間距離D=|FE-A7|/FF。之后,繼續(xù)將比較位置向后移動2位,此時模式數(shù)據(jù)比較位置移到了第7位,已經(jīng)大于其總長度,所以進入到附圖2中的步驟212,開始計算相似度。在本實施例中,采用數(shù)據(jù)相似度=1-(∑距離)/比較過的數(shù)據(jù)總數(shù)的計算方法,從而得出
相似度=1-(|12-44|+|44-FF|+|FE-A7|)/FF/3=0.576其中兩個等號之間為十六進制形式。將該相似度與第一相似度閾值0.95進行比較,顯然,相似度未達(dá)到閾值,因此認(rèn)為預(yù)匹配沒有通過。于是,將源數(shù)據(jù)比較起始位置后移一位,開始第二輪預(yù)匹配。
(2)第二輪預(yù)匹配此時,源數(shù)據(jù)比較起始位置上的數(shù)據(jù)為43。由于比較步長為2,因此,這一輪預(yù)匹配中將會選擇源數(shù)據(jù)中的43 55 45與模式數(shù)據(jù)中的44 FF A7分別進行比較,計算其距離。與第一輪預(yù)匹配相似,基于數(shù)據(jù)距離計算出數(shù)據(jù)相似度為相似度=1-(|43-44|+|55-FF|+|45-A7|)/FF/3=0.648顯然,該相似度依然未達(dá)到第一相似度閾值,因此,第二輪預(yù)匹配也沒有通過。于是,繼續(xù)將源數(shù)據(jù)比較起始位置后移一位,開始新一輪預(yù)匹配。
(3)第三輪預(yù)匹配此時,源數(shù)據(jù)比較起始位置上的數(shù)據(jù)為44。與第一輪預(yù)匹配的流程相似,這一輪將會選擇源數(shù)據(jù)中的44 FE A9與模式數(shù)據(jù)中的44 FFA7分別進行比較。根據(jù)比較得出的數(shù)據(jù)距離,可以計算出數(shù)據(jù)相似度為相似度=1-(|44-44|+|FE-FF|+|A9-A7|)/FF/3=0.988將該相似度與第一相似度閾值0.95進行比較。由于該相似度已經(jīng)超過設(shè)定的閾值,因此認(rèn)為預(yù)匹配通過,方法進入到精匹配過程。
(4)在精匹配階段,由于第二比較步長為1,因此將通過預(yù)匹配的源數(shù)據(jù)的數(shù)據(jù)段與模式數(shù)據(jù)逐一進行比較,逐一計算數(shù)據(jù)間距離。這時應(yīng)該比較的源數(shù)據(jù)的數(shù)據(jù)段為44 55 FE 45 A9 23,應(yīng)該比較的模式數(shù)據(jù)為44 55 FF 45 A7 28,兩組數(shù)據(jù)的相似度為
相似度=1-(|44-44|+|55-55|+|FE-FF|+|45-45|+|A9-A7|+|23-28|)/FF/6=0.988將該相似度與第二相似度閾值0.95進行比較。由于計算得出的相似度已超過第二相似度閾值,于是認(rèn)為,精匹配也通過,目前的數(shù)據(jù)段即為匹配數(shù)據(jù)。
雖然以上給出了實施本發(fā)明方法的具體例子,但是應(yīng)該理解,該例子僅出于示意的目的,而非意圖對本發(fā)明進行任何形式的限定。本領(lǐng)域技術(shù)人員可以在說明書的教導(dǎo)之下,對示例性的實施方案做出多種變體和改動。這些變體和改動均落入本申請要求保護的范圍之內(nèi)。本發(fā)明僅由所附的權(quán)利要求書限定。
權(quán)利要求
1.一種模糊數(shù)據(jù)搜索方法,包括以下步驟基于第一比較步長和第一相似度閾值對源數(shù)據(jù)和模式數(shù)據(jù)進行預(yù)匹配;若預(yù)匹配通過,則基于第二比較步長和第二相似度閾值對源數(shù)據(jù)中通過預(yù)匹配的數(shù)據(jù)段和模式數(shù)據(jù)進行精匹配;其中,所述第一比較步長不小于第二比較步長。
2.如權(quán)利要求1所述的方法,其特征在于,所述預(yù)匹配包括步驟基于所述第一比較步長計算源數(shù)據(jù)和模式數(shù)據(jù)的距離;根據(jù)所述距離確定數(shù)據(jù)相似度;將所述數(shù)據(jù)相似度與第一相似度閾值比較,以確定預(yù)匹配是否通過;若預(yù)匹配沒有通過,則將源數(shù)據(jù)的比較起始位置向后移一位,繼續(xù)進行預(yù)匹配。
3.如權(quán)利要求1所述的方法,其特征在于,所述精匹配包括步驟基于所述第二比較步長計算源數(shù)據(jù)中通過預(yù)匹配的數(shù)據(jù)段和模式數(shù)據(jù)的距離;根據(jù)所述距離確定數(shù)據(jù)相似度;將所述數(shù)據(jù)相似度與第二相似度閾值比較,以確定精匹配是否通過;若精匹配沒有通過,則將源數(shù)據(jù)的比較起始位置向后移一位,繼續(xù)進行預(yù)匹配。
4.如權(quán)利要求1至3中任一項所述的方法,其特征在于,所述第一比較步長大于第二比較步長。
5.如權(quán)利要求1至3中任一項所述的方法,其特征在于,所述第一相似度閾值等于第二相似度閾值。
6.如權(quán)利要求2或3所述的方法,其特征在于,所述距離根據(jù)源數(shù)據(jù)與相應(yīng)模式數(shù)據(jù)之間的數(shù)據(jù)差值的絕對值除以一常數(shù)來計算。
7.如權(quán)利要求2或3所述的方法,其特征在于,所述距離根據(jù)源數(shù)據(jù)與相應(yīng)模式數(shù)據(jù)之間的數(shù)據(jù)差值的絕對值除以相應(yīng)模式數(shù)據(jù)來計算。
8.如權(quán)利要求2或3所述的方法,其特征在于,數(shù)據(jù)相似度是所述距離小于一閾值的數(shù)據(jù)數(shù)目占總比較數(shù)目的比例。
9.如權(quán)利要求2或3所述的方法,其特征在于,數(shù)據(jù)相似度根據(jù)下式計算數(shù)據(jù)相似度=1-(∑距離)/比較過的數(shù)據(jù)總數(shù)。
10.一種模糊數(shù)據(jù)搜索裝置,包括預(yù)匹配裝置,用于基于第一比較步長和第一相似度閾值對源數(shù)據(jù)和模式數(shù)據(jù)進行預(yù)匹配;精匹配裝置,用于在預(yù)匹配通過的情況下,基于第二比較步長和第二相似度閾值對源數(shù)據(jù)中通過預(yù)匹配的數(shù)據(jù)段和模式數(shù)據(jù)進行精匹配;其中,所述第一比較步長不小于第二比較步長。
全文摘要
本發(fā)明公開了一種模糊數(shù)據(jù)搜索方法和裝置,所述方法包括以下步驟基于第一比較步長和第一相似度閾值對源數(shù)據(jù)和模式數(shù)據(jù)進行預(yù)匹配;若預(yù)匹配通過,則基于第二比較步長和第二相似度閾值對源數(shù)據(jù)中通過預(yù)匹配的數(shù)據(jù)段和模式數(shù)據(jù)進行精匹配;其中,所述第一比較步長不小于第二比較步長。本發(fā)明能夠?qū)崿F(xiàn)簡單、易于完成,并兼顧搜索速度和命中率的模糊數(shù)據(jù)搜索。
文檔編號G06F17/30GK101086743SQ20071011943
公開日2007年12月12日 申請日期2007年7月24日 優(yōu)先權(quán)日2007年7月24日
發(fā)明者占文靜, 游明琦 申請人:北京中星微電子有限公司