本發(fā)明涉及計(jì)算機(jī)處理技術(shù)領(lǐng)域,特別涉及一種基于minhash的集合相似度計(jì)算方法和系統(tǒng)。
背景技術(shù):
給定兩個(gè)集合A、B,Jaccard相似度是一種廣泛用來描述集合之間的相似度的算法,其公式表示如下:
對(duì)N個(gè)集合計(jì)算兩兩之間的相似度,需要計(jì)算N(N-1)/2次,復(fù)雜度為O(n2)。單次Jaccard相似度的計(jì)算速度則會(huì)比較關(guān)鍵,特別是如果集合比較大,計(jì)算Jaccard相似度則會(huì)相對(duì)比較耗時(shí),對(duì)計(jì)算資源也會(huì)有更大的壓力,比如,根據(jù)兩個(gè)節(jié)目之間的觀眾來計(jì)算節(jié)目之間的相似度,每個(gè)節(jié)目可能都會(huì)有百萬量級(jí)的觀眾,此時(shí)Jaccard相似度的計(jì)算就會(huì)比較費(fèi)時(shí)。
最小哈希(minhash)算法則是一種用來近似計(jì)算集合間的Jaccard相似度的方法,它首先對(duì)每個(gè)集合計(jì)算minhash簽名(或者minhash指紋),相當(dāng)于是對(duì)集合的降維,最后可以基于minash簽名來近似計(jì)算jaccard相似度。
minash算法的工作原理大致如下。例如:五個(gè)元素{a,b,c,d,e}的整體,有四個(gè)集合S1={a,d},S2={c},S3={b,d,e},S4={a,c,d}分別取部分元素組成集合,這四個(gè)集合用矩陣表示如下:
其中,每行代表一個(gè)元素,每列代表一個(gè)集合,集合中有該元素為1,沒有該元素則為0。
如果對(duì)上述矩陣的行排列隨機(jī)打散重新排列,如,重排后的行序列為:b、e、a、d、c,將這個(gè)隨機(jī)排列的過程定義為一個(gè)minhash函數(shù)(映射),可記為h(x),重新排列后的矩陣如下:
根據(jù)重新排列后的陣列來計(jì)算各集合對(duì)應(yīng)的minhash值,每個(gè)集合對(duì)該函數(shù)的minhash值為重新排列之后的第一個(gè)非0的行,即h(S1)=a,h(S2)=c,h(S3)=b,h(S4)=d。
minhash值和Jaccard相似度有著重要的聯(lián)系:兩個(gè)集合的隨機(jī)的一個(gè)行排列的minhash值相等的概率與兩個(gè)集合的Jaccard相似度相等,因而可以通過對(duì)行排列進(jìn)行多次隨機(jī)排列來來近似計(jì)算Jaccard相似度。
假設(shè)生成n組minhash函數(shù),H={h1,h2,...,hn},對(duì)于每個(gè)函數(shù)hi,集合A的minhash值為hi(A),對(duì)集合A的這一組minhash的值形成了該集合的minhash簽名,對(duì)于集合A,B,相似度的計(jì)算公式為:
其中,minhashsim(A,B)為結(jié)合A、B的相似度,q為A、B兩集合的minhash值相等的個(gè)數(shù)。通過minhash來近似計(jì)算Jaccard相似度的方式可以讓大大加快集合相似度的計(jì)算速度,且minhash函數(shù)越多就會(huì)越接近jaccard相似度。
然而,在實(shí)際操作中發(fā)現(xiàn),minhash的函數(shù)的生成過程是對(duì)行進(jìn)行隨機(jī)重新排列的過程,如果行數(shù)(整體元素?cái)?shù)量)比較多,則計(jì)算過程會(huì)比較復(fù)雜,與此同時(shí),這種重新的排列需要的計(jì)算時(shí)間也會(huì)越長,即minhash簽名過程耗時(shí)較長。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明旨在至少解決現(xiàn)有技術(shù)中存在的技術(shù)問題之一,提出了一種基于minhash的集合相似度計(jì)算方法和系統(tǒng)。
為實(shí)現(xiàn)上述目的,本發(fā)明提供了一種基于minhash的集合相似度計(jì)算方法,包括:
利用哈希函數(shù)將集合中的各元素映射為具有m個(gè)比特位長度的第一哈希值,其中,m為整數(shù);
建立2k個(gè)類組,每個(gè)類組對(duì)應(yīng)一個(gè)標(biāo)簽,該標(biāo)簽為具有k個(gè)比特位長度的第二哈希值,不同類組對(duì)應(yīng)的標(biāo)簽不同,其中,k為整數(shù),且k小于m;
對(duì)于任意一個(gè)集合,將該集合中的各元素對(duì)應(yīng)的第一哈希值分配至與其前k個(gè)比特位相同的標(biāo)簽所對(duì)應(yīng)的類組中;
根據(jù)分配結(jié)果確定該集合對(duì)應(yīng)于每個(gè)類組的最小哈希值,其中,若該類組中存在至少一個(gè)第一哈希值,則將該類組中最小的一個(gè)第一哈希值的后m-k個(gè)比特位的值作為該集合對(duì)應(yīng)于該類組的最小哈希值,若該類組中不存在第一哈希值,則該集合對(duì)應(yīng)于該類組的最小哈希值記為NULL;
將該集合對(duì)應(yīng)于每個(gè)類組的最小哈希值構(gòu)成數(shù)組,所述數(shù)組作為該集合的最小哈希簽名;
根據(jù)任意兩個(gè)集合的最小哈希簽名計(jì)算該兩個(gè)集合的相似度。
可選地,所述兩個(gè)集合分別為第一集合A和第二集合B;
第一集合的最小哈希簽名記為H(A)
H(A)={h1(A),h2(A),……,hn(A)}
第二集合的最小哈希簽名記為H(B)
H(B)={h1(B),h2(B),……,hn(B)}
其中,hi(A)為第一集合對(duì)應(yīng)第i個(gè)類組的最小哈希值,i為大于等于1且小于等于n的整數(shù),n取值等于2k;
計(jì)算兩個(gè)集合的相似度的步驟具體包括:
根據(jù)第一集合的最小哈希簽名H(A)和第二集合的最小哈希簽名H(B),統(tǒng)計(jì)第一集合的最小哈希簽名H(A)中滿足hi(A)等于hi(B)且hi(A)不等于NULL的hi(A)的數(shù)量,記為s;
根據(jù)第一集合的最小哈希簽名H(A)和第二集合的最小哈希簽名H(B),統(tǒng)計(jì)第一集合的最小哈希簽名H(A)中滿足hi(A)等于hi(B)且hi(A)等于NULL的hi(A)的數(shù)量,記為p;
根據(jù)如下公式:
計(jì)算第一集合A和第二集合B的相似度minhashsim(A,B)。
可選地,所述利用哈希函數(shù)將集合中的各元素映射為具有m個(gè)比特位長度的第一哈希值的步驟之后還包括:
對(duì)于任意一個(gè)集合,將該集合中各元素對(duì)應(yīng)的所述第一哈希值按照由小至大或由大至小的順序進(jìn)行排序。
為實(shí)現(xiàn)上述目的,本發(fā)明還提供了一種基于minhash的集合相似度計(jì)算系統(tǒng),包括:
哈希映射模塊,用于利用哈希函數(shù)將集合中的各元素映射為具有m個(gè)比特位長度的第一哈希值,其中,m為整數(shù);
類組建立模塊,用于建立2k個(gè)類組,每個(gè)類組對(duì)應(yīng)一個(gè)標(biāo)簽,該標(biāo)簽為具有k個(gè)比特位長度的第二哈希值,不同類組對(duì)應(yīng)的標(biāo)簽不同,其中,k為整數(shù),且k小于m;
分配模塊,用于對(duì)于任意一個(gè)集合,將該集合中的各元素對(duì)應(yīng)的第一哈希值分配至與其前k個(gè)比特位相同的標(biāo)簽所對(duì)應(yīng)的類組中;
最小哈希值確定模塊,用于根據(jù)分配結(jié)果確定該集合對(duì)應(yīng)于每個(gè)類組的最小哈希值,其中,若該類組中存在至少一個(gè)第一哈希值,則將該類組中最小的一個(gè)第一哈希值的后m-k個(gè)比特位的值作為該集合對(duì)應(yīng)于該類組的最小哈希值,若該類組中不存在第一哈希值,則該集合對(duì)應(yīng)于該類組的最小哈希值記為NULL;
最小哈希簽名生成模塊,用于將該集合對(duì)應(yīng)于每個(gè)類組的最小哈希值構(gòu)成數(shù)組,所述數(shù)組作為該集合的最小哈希簽名;
相似度計(jì)算模塊,用于根據(jù)任意兩個(gè)集合的最小哈希簽名計(jì)算該兩個(gè)集合的相似度。
可選地,所述兩個(gè)集合分別為第一集合A和第二集合B;
第一集合的最小哈希簽名記為H(A)
H(A)={h1(A),h2(A),……,hn(A)}
第二集合的最小哈希簽名記為H(A)
H(B)={h1(B),h2(B),……,hn(B)}
其中,hi(A)為第一集合對(duì)應(yīng)第i個(gè)類組的最小哈希值,i為大于等于1且小于等于n的整數(shù),n取值等于2k;
所述相似度計(jì)算模塊包括:
第一統(tǒng)計(jì)單元,用于根據(jù)第一集合的最小哈希簽名H(A)和第二集合的最小哈希簽名H(B),統(tǒng)計(jì)第一集合的最小哈希簽名H(A)中滿足hi(A)等于hi(B)且hi(A)不等于NULL的hi(A)的數(shù)量,記為s;
第二統(tǒng)計(jì)單元,用于根據(jù)第一集合的最小哈希簽名H(A)和第二集合的最小哈希簽名H(B),統(tǒng)計(jì)第一集合的最小哈希簽名H(A)中滿足hi(A)等于hi(B)且hi(A)等于NULL的hi(A)的數(shù)量,記為p;
計(jì)算單元,用于根據(jù)如下公式:
計(jì)算第一集合A和第二集合B的相似度minhashsim(A,B)。
可選地,還包括:排序模塊,用于在哈希映射模塊完成哈希映射后,對(duì)于任意一個(gè)集合,將該集合中各元素對(duì)應(yīng)的所述第一哈希值按照由小至大或由大至小的順序進(jìn)行排序。
本發(fā)明具有以下有益效果:
本發(fā)明提供了一種基于minhash的集合相似度計(jì)算方法和系統(tǒng),包括:利用哈希函數(shù)將集合中的各元素映射為具有m個(gè)比特位長度的第一哈希值,建立2k個(gè)類組,每個(gè)類組對(duì)應(yīng)一個(gè)標(biāo)簽,該標(biāo)簽為具有k個(gè)比特位長度的第二哈希值,不同類組對(duì)應(yīng)的標(biāo)簽不同;對(duì)于任意一個(gè)集合,將該集合中的各元素對(duì)應(yīng)的第一哈希值分配至與其前k個(gè)比特位相同的標(biāo)簽所對(duì)應(yīng)的類組中;根據(jù)分配結(jié)果確定該集合對(duì)應(yīng)于每個(gè)類組的最小哈希值,其中,若該類組中存在至少一個(gè)第一哈希值,則將該類組中最小的一個(gè)第一哈希值的后m-k個(gè)比特位的值作為該集合對(duì)應(yīng)于該類組的最小哈希值,若該類組中不存在第一哈希值,則該集合對(duì)應(yīng)于該類組的最小哈希值記為NULL;將該集合對(duì)應(yīng)于每個(gè)類組的最小哈希值構(gòu)成數(shù)組,數(shù)組作為該集合的最小哈希簽名;根據(jù)任意兩個(gè)集合的最小哈希簽名計(jì)算該兩個(gè)集合的相似度。本發(fā)明的技術(shù)方案可大大提升最小哈希簽名速度,從而使得集合相似度計(jì)算的速度大大提升。
附圖說明
圖1為本發(fā)明實(shí)施例一提供的一種基于minhash的集合相似度計(jì)算方法的流程圖;
圖2為本發(fā)明實(shí)施例二提供的一種基于minhash的集合相似度計(jì)算系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為使本領(lǐng)域的技術(shù)人員更好地理解本發(fā)明的技術(shù)方案,下面結(jié)合附圖對(duì)本發(fā)明提供的一種基于minhash的集合相似度計(jì)算方法和系統(tǒng)進(jìn)行詳細(xì)描述。
圖1為本發(fā)明實(shí)施例一提供的一種基于minhash的集合相似度計(jì)算方法的流程圖,如圖1所示,該集合相似度計(jì)算方法包括:
步驟S1、利用哈希函數(shù)將集合中的各元素映射為具有m個(gè)比特位長度的第一哈希值。
在步驟S1中,將通過哈希函數(shù)將集合中的各元素映射為具有固定長度的第一哈希值,其中,第一哈希值的比特位數(shù)大于等于64,即m≥64。
步驟S2、建立2k個(gè)類組,每個(gè)類組對(duì)應(yīng)一個(gè)標(biāo)簽。
在步驟S2中,建立2k個(gè)類組,且為每個(gè)類組設(shè)置一個(gè)對(duì)應(yīng)標(biāo)簽,該標(biāo)簽為具有k個(gè)比特位長度的第二哈希值,其中,k為整數(shù),且k小于m,不同類組對(duì)應(yīng)的標(biāo)簽不同,該2k個(gè)標(biāo)簽可表示如下:
[000...000]
[000...001]
......
[111...110]
[111...111]
步驟S3、對(duì)于任意一個(gè)集合,將該集合中的各元素對(duì)應(yīng)的第一哈希值分配至與其前k個(gè)比特位相同的標(biāo)簽所對(duì)應(yīng)的類組中。
在步驟S3中,針對(duì)某一個(gè)集合,根據(jù)該集合中的各元素對(duì)應(yīng)的第一哈希值的前k個(gè)比特位,將各第一哈希值分配至與其前k個(gè)比特位相同的標(biāo)簽所對(duì)應(yīng)的類組中。
步驟S4、根據(jù)分配結(jié)果確定該集合對(duì)應(yīng)于每個(gè)類組的最小哈希值。
在步驟S4中,針對(duì)已經(jīng)完成分配的某個(gè)集合,對(duì)于2k個(gè)類組,若該類組中存在至少一個(gè)第一哈希值,則將該類組中的各第一哈希值(假定第一哈希值為無符號(hào)數(shù))進(jìn)行比較(或?qū)⒏鞯谝还V档暮髆-k個(gè)比特位的值進(jìn)行比較),確定出該類組中最小的一個(gè)第一哈希值,并將該最小的一個(gè)第一哈希值的后m-k個(gè)比特位的值作為該集合對(duì)應(yīng)于該類組的最小哈希值;若該類組中不存在第一哈希值,則該集合對(duì)應(yīng)于該類組的最小哈希值記為NULL(表示為空)。
步驟S5、將該集合對(duì)應(yīng)于每個(gè)類組的最小哈希值構(gòu)成數(shù)組,數(shù)組作為該集合的最小哈希簽名。
在步驟S5中,根據(jù)步驟S4得到的集合對(duì)應(yīng)于每個(gè)類組的最小哈希值,構(gòu)成一個(gè)數(shù)組,該數(shù)字為對(duì)應(yīng)的集合的最小哈希簽名。
在本發(fā)明中,通過上述步驟S1到步驟S5即可完成對(duì)集合的最小哈希簽名。在實(shí)際應(yīng)用中發(fā)現(xiàn),本發(fā)明中的最小哈希簽名的計(jì)算速度極快,經(jīng)測(cè)試,比現(xiàn)有技術(shù)中的最小哈希簽名的計(jì)算速度要快100倍以上。
步驟S6、根據(jù)任意兩個(gè)集合的最小哈希簽名計(jì)算該兩個(gè)集合的相似度。
在步驟S6中,若兩個(gè)集合分別為第一集合A和第二集合B,第一集合的最小哈希簽名記為H(A);
H(A)={h1(A),h2(A),……,hn(A)}
第二集合的最小哈希簽名記為H(B)
H(B)={h1(B),h2(B),……,hn(B)}
其中,hi(A)為第一集合對(duì)應(yīng)第i個(gè)類組的最小哈希值,i為大于等于1且小于等于n的整數(shù),n取值等于2k。
步驟S6具體包括:
步驟S601、根據(jù)第一集合的最小哈希簽名H(A)和第二集合的最小哈希簽名H(B),統(tǒng)計(jì)第一集合的最小哈希簽名H(A)中滿足hi(A)等于hi(B)且hi(A)不等于NULL的hi(A)的數(shù)量,記為s。
在步驟S601中,統(tǒng)計(jì)第一集合的最小哈希簽名H(A)中同時(shí)滿足如下兩個(gè)條件(1、(2的hi(A)的數(shù)量s。
需要說明的是,在步驟S6中,也可以統(tǒng)計(jì)第二集合的最小哈希簽名H(B)中滿足hi(B)等于hi(A)且hi(B)不等于NULL的hi(B)的數(shù)量。
步驟S602、根據(jù)第一集合的最小哈希簽名H(A)和第二集合的最小哈希簽名H(B),統(tǒng)計(jì)第一集合的最小哈希簽名H(A)中滿足hi(A)等于hi(B)且hi(A)等于NULL的hi(A)的數(shù)量,記為p。
在步驟S602中,統(tǒng)計(jì)第一集合的最小哈希簽名H(A)中同時(shí)滿足如下兩個(gè)條件(3、(4的hi(A)的數(shù)量s。
需要說明的是,在步驟S6中,也可以統(tǒng)計(jì)第二集合的最小哈希簽名H(B)中滿足hi(B)等于hi(A)且hi(B)等于NULL的hi(B)的數(shù)量。
步驟S603、根據(jù)如下公式:
計(jì)算第一集合A和第二集合B的相似度minhashsim(A,B)。
在步驟S603中,n-p表示最小哈希簽名的真實(shí)維度,即:如果某個(gè)類組,兩個(gè)集合(第一集合和第二集合)在該類組下都沒有任何可分配的元素(第一哈希值),則該類組相對(duì)于兩個(gè)集合無效,兩個(gè)集合無需針對(duì)該類組進(jìn)行比較。
本實(shí)施例中,可選地,在步驟S1和步驟S3之間還包括:步驟S1'。
步驟S1'、對(duì)于任意一個(gè)集合,將該集合中各元素對(duì)應(yīng)的第一哈希值按照由小至大或由大至小的順序進(jìn)行排序。
在本發(fā)明中,通過在步驟S3之前對(duì)集合中各元素對(duì)應(yīng)的第一哈希值進(jìn)行排序,可有效提升步驟S3中對(duì)第一哈希值的分配速度。此外,通過將集合中各元素對(duì)應(yīng)的第一哈希值進(jìn)行排序,還可保證處于相同類組中的第一哈希值是連續(xù)的,從而可有效提升步驟S4中確定類組中最小的一個(gè)第一哈希值的速度。
本發(fā)明實(shí)施例一提供了一種基于minhash的集合相似度計(jì)算方法,可大大提升最小哈希簽名速度,從而使得集合相似度計(jì)算的速度大大提升。
實(shí)施例二
圖2為本發(fā)明實(shí)施例二提供的一種基于minhash的集合相似度計(jì)算系統(tǒng)的結(jié)構(gòu)示意圖,如圖2所示,該集合相似度計(jì)算系統(tǒng)用于實(shí)現(xiàn)上述實(shí)施例一中的集合相似度計(jì)算方法,該集合相似度計(jì)算系統(tǒng)包括:哈希映射模塊1、類組建立模塊2、分配模塊3、最小哈希值確定模塊4、最小哈希簽名生成模塊5、相似度計(jì)算模塊6。
其中,哈希映射模塊1用于利用哈希函數(shù)將集合中的各元素映射為具有m個(gè)比特位長度的第一哈希值,其中,m為整數(shù)。
類組建立模塊2用于建立2k個(gè)類組,每個(gè)類組對(duì)應(yīng)一個(gè)標(biāo)簽,該標(biāo)簽為具有k個(gè)比特位長度的第二哈希值,不同類組對(duì)應(yīng)的標(biāo)簽不同,其中,k為整數(shù),且k小于m。
分配模塊3用于對(duì)于任意一個(gè)集合,將該集合中的各元素對(duì)應(yīng)的第一哈希值分配至與其前k個(gè)比特位相同的標(biāo)簽所對(duì)應(yīng)的類組中。
最小哈希值確定模塊4用于根據(jù)分配結(jié)果確定該集合對(duì)應(yīng)于每個(gè)類組的最小哈希值,其中,若該類組中存在至少一個(gè)第一哈希值,則將該類組中最小的一個(gè)第一哈希值的后m-k個(gè)比特位的值作為該集合對(duì)應(yīng)于該類組的最小哈希值,若該類組中不存在第一哈希值,則該集合對(duì)應(yīng)于該類組的最小哈希值記為NULL。
最小哈希簽名生成模塊5用于將該集合對(duì)應(yīng)于每個(gè)類組的最小哈希值構(gòu)成數(shù)組,數(shù)組作為該集合的最小哈希簽名。
相似度計(jì)算模塊6用于根據(jù)任意兩個(gè)集合的最小哈希簽名計(jì)算該兩個(gè)集合的相似度。
需要說明的是,對(duì)于本實(shí)施例中的哈希映射模塊1用于執(zhí)行上述實(shí)施例一中的步驟S1,本實(shí)施例中的類組建立模塊2用于執(zhí)行上述實(shí)施例一中的步驟S2,本實(shí)施例中的分配模塊3用于執(zhí)行上述實(shí)施例一中的步驟S3,本實(shí)施例中的最小哈希值確定模塊4用于執(zhí)行上述實(shí)施例一中的步驟S4,本實(shí)施例中的最小哈希簽名生成模塊5用于執(zhí)行上述實(shí)施例一中的步驟S5,本實(shí)施例中的相似度計(jì)算模塊6用于執(zhí)行上述實(shí)施例一中的步驟S6。對(duì)于各模塊的具體工作過程,可參見上述實(shí)施例一中相應(yīng)內(nèi)容,此處不再贅述。
可選地,兩個(gè)集合分別為第一集合A和第二集合B;
第一集合的最小哈希簽名記為H(A)
H(A)={h1(A),h2(A),……,hn(A)}
第二集合的最小哈希簽名記為H(B)
H(B)={h1(B),h2(B),……,hn(B)}
其中,hi(A)為第一集合對(duì)應(yīng)第i個(gè)類組的最小哈希值,i為大于等于1且小于等于n的整數(shù),n取值等于2k。
相似度計(jì)算模塊包括6:第一統(tǒng)計(jì)單元601、第二統(tǒng)計(jì)單元602和計(jì)算單元603。
其中,第一統(tǒng)計(jì)單元601用于根據(jù)第一集合的最小哈希簽名H(A)和第二集合的最小哈希簽名H(B),統(tǒng)計(jì)第一集合的最小哈希簽名H(A)中滿足hi(A)等于hi(B)且hi(A)不等于NULL的hi(A)的數(shù)量,記為s。
第二統(tǒng)計(jì)單元602用于根據(jù)第一集合的最小哈希簽名H(A)和第二集合的最小哈希簽名H(B),統(tǒng)計(jì)第一集合的最小哈希簽名H(A)中滿足hi(A)等于hi(B)且hi(A)等于NULL的hi(A)的數(shù)量,記為p。
計(jì)算單元603用于根據(jù)如下公式:
計(jì)算第一集合A和第二集合B的相似度minhashsim(A,B)。
需要說明的是,對(duì)于本實(shí)施例中的第一統(tǒng)計(jì)單元601用于執(zhí)行上述實(shí)施例一中的步驟S601,本實(shí)施例中的第二統(tǒng)計(jì)單元602用于執(zhí)行上述實(shí)施例一中的步驟S602,本實(shí)施例中的計(jì)算單元603用于執(zhí)行上述實(shí)施例一中的步驟S603。對(duì)于各單元的具體工作過程,可參見上述實(shí)施例一中相應(yīng)內(nèi)容,此處不再贅述。
可選地,該集合相似度計(jì)算系統(tǒng)還包括:排序模塊7,排序模塊7用于在哈希映射模塊1完成哈希映射后,對(duì)于任意一個(gè)集合,將該集合中各元素對(duì)應(yīng)的第一哈希值按照由小至大或由大至小的順序進(jìn)行排序。
本實(shí)施例中的排序模塊用于執(zhí)行上述實(shí)施例一中的步驟S1',具體內(nèi)容可參見上述實(shí)施例一中的描述。
本發(fā)明實(shí)施例二提供了一種基于minhash的集合相似度計(jì)算系統(tǒng),可大大提升最小哈希簽名速度,從而使得集合相似度計(jì)算的速度大大提升。
可以理解的是,以上實(shí)施方式僅僅是為了說明本發(fā)明的原理而采用的示例性實(shí)施方式,然而本發(fā)明并不局限于此。對(duì)于本領(lǐng)域內(nèi)的普通技術(shù)人員而言,在不脫離本發(fā)明的精神和實(shí)質(zhì)的情況下,可以做出各種變型和改進(jìn),這些變型和改進(jìn)也視為本發(fā)明的保護(hù)范圍。