本發(fā)明涉及信息分類技術領域,具體涉及一種應用列表聚類方法、裝置及計算設備。
背景技術:
隨著Android(安卓)、IOS等智能操作系統(tǒng)的普及,終端設備(如手機、平板電腦、筆記本電腦等用戶設備)所裝載的應用越來越多,為整理終端設備所裝載的應用情況,應用列表的概念運應而生;應用列表表示的是終端設備上所裝載的應用集合;每個應用可以有一個區(qū)分其他應用的應用標識(如應用名稱等),將終端設備上所裝載的所有應用的應用標識排序整理后,可形成一個有序的應用列表。
出于統(tǒng)計各終端設備所裝載的應用情況,結合各終端設備所裝載的應用情況、確定終端設備的軟硬件配置策略(如確定正研發(fā)的終端設備的軟硬件配置參數(shù))等目的,收集海量終端設備的應用列表,并對收集的海量終端設備的應用列表進行聚類,整理出海量終端設備的應用列表的類型,顯得尤為必要。
本發(fā)明的發(fā)明人研究發(fā)現(xiàn):對所收集的海量終端設備的應用列表進行聚類的關鍵點在于,從所收集的海量終端設備的應用列表中確定出相似、甚至相同的應用列表,并將相似、甚至相同的應用列表歸為一類;然而,由于終端設備的數(shù)量眾多,且一個終端設備對應有自身的一個應用列表,這使得在對應用列表進行聚類的過程中,存在大規(guī)模的數(shù)據(jù)計算對象,及較大工作量的數(shù)據(jù)計算過程;因此,如何提供一種數(shù)據(jù)計算工作量較小的應用列表聚類方案,成為本領域技術人員需要考慮的問題。
技術實現(xiàn)要素:
有鑒于此,本發(fā)明實施例提供一種應用列表聚類方法、裝置及計算設備,以使用較小的數(shù)據(jù)計算工作量,實現(xiàn)對應用列表進行聚類的目的。
為實現(xiàn)上述目的,本發(fā)明實施例提供如下技術方案:
一種應用列表聚類方法,包括:
獲取多個終端設備的應用列表;
對于各應用列表,以應用列表對應的有序應用標識為特征集合,基于Simhash算法確定各應用列表的特征集合所對應的指紋值;
將指紋值符合設定聚類要求的應用列表歸為一類。
本發(fā)明實施例還提供一種應用列表聚類裝置,包括:
列表獲取模塊,用于獲取多個終端設備的應用列表;
指紋值確定模塊,用于對于各應用列表,以應用列表對應的有序應用標識為特征集合,基于Simhash算法確定各應用列表的特征集合所對應的指紋值;
聚類模塊,用于將指紋值符合設定聚類要求的應用列表歸為一類。
本發(fā)明實施例還提供一種計算設備,包括上述所述的應用列表聚類裝置。
基于上述技術方案,本發(fā)明實施例提供的應用列表聚類方法,可獲取多個終端設備的應用列表;對于所獲取的各應用列表,以應用列表對應的有序應用標識為特征集合,基于Simhash算法確定出各應用列表的特征集合所對應的指紋值;從而將指紋值符合設定聚類要求的應用列表歸為一類,實現(xiàn)對所獲取的多個應用列表的聚類目的。本發(fā)明實施例采用Simhash算法,通過將應用列表的特征集合(特征集合由應用列表對應的有序應用標識構成)映射為指紋值,使得各應用列表的相似度可通過指紋值進行比對,進而實現(xiàn)了將指紋值符合設定聚類要求的應用列表歸為一類的目的;在應用列表聚類的過程中,各應用列表的指紋值的確定及指紋值的比對,所涉及的計算工作量均較小,且Simhash算法可以較低的計算量和存儲消耗實現(xiàn),因此本發(fā)明實施例在實現(xiàn)對應用列表進行聚類的過程中,極大的降低了數(shù)據(jù)計算工作量,以較小的數(shù)據(jù)計算工作量,實現(xiàn)了對應用列表進行聚類的目的。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為本發(fā)明實施例提供的應用列表聚類方法的流程圖;
圖2為本發(fā)明實施例提供的確定各應用列表的特征集合所對應的指紋值的方法流程圖;
圖3為本發(fā)明實施例提供的確定各應用列表的特征集合所對應的指紋值的另一方法流程圖;
圖4為本發(fā)明實施例提供的修改指令返回結果的方法流程圖;
圖5為本發(fā)明實施例提供的應用列表聚類裝置的結構框圖;
圖6為本發(fā)明實施例提供的指紋值確定模塊的結構框圖;
圖7為本發(fā)明實施例提供的設置單元的結構框圖;
圖8為本發(fā)明實施例提供的第一調整單元的結構框圖;
圖9為本發(fā)明實施例提供的第二調整單元的結構框圖;
圖10為本發(fā)明實施例提供的應用列表聚類裝置的另一結構框圖;
圖11為本發(fā)明實施例提供的應用列表聚類裝置的再一結構框圖;
圖12為本發(fā)明實施例提供的計算設備的硬件結構框圖。
具體實施方式
下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
圖1為本發(fā)明實施例提供的應用列表聚類方法的流程圖,該方法可應用于具有數(shù)據(jù)處理能力的計算設備中,計算設備可以為服務器,也可以為終端設備;參照圖1,該方法可以包括:
步驟S100、獲取多個終端設備的應用列表;
可選的,若計算設備為服務器,本發(fā)明實施例可設置終端設備將各自的 應用列表整理后上報至服務器,以使得服務器可收集到各終端設備的應用列表,實現(xiàn)多個終端設備的應用列表的獲取;
可選的,若計算設備為終端設備,則終端設備可在服務器收集到各終端設備的應用列表后,向服務器請求所收集到的各終端設備的應用列表,從而實現(xiàn)多個終端設備的應用列表的獲取;
可選的,本發(fā)明實施例也可使用第三方工具或應用檢測各終端設備的軟硬件接入環(huán)境屬性,從而基于該第三方工具或應用的檢測,可以累積獲得多個終端設備的應用列表。
步驟S110、對于各應用列表,以應用列表對應的有序應用標識為特征集合,基于Simhash算法確定各應用列表的特征集合所對應的指紋值;
其中,Simhash算法是在大文本重復識別中使用的一個方法,該方法主要是通過將對象的特征集合映射為一個固定長度的指紋(如簽名),將對象之間的相似度的度量轉化為指紋的漢明距離,通過這樣的方式,從而以較低的計算和存儲的消耗,實現(xiàn)對象之間的相似度的衡量;
具體在應用列表的相似度比對上,本發(fā)明實施例可以應用列表對應的有序應用標識為特征集合,從而基于Simhash算法將各應用列表的所述特征集合映射為一個固定長度的指紋,并且得出各應用列表的指紋值;進而通過指紋值的比對,實現(xiàn)應用列表的相似度的比對;
此處需要注意的是,應用列表的特征集合由應用列表中有序應用標識構成,本發(fā)明實施例可將應用列表的應用標識按照序數(shù),依序劃分為多個特征,其中,一個特征包含至少一個應用標識,各特征所包含的應用標識的個數(shù)相同;通過上述劃分出的多個特征可構成應用列表的特征集合;
如一個應用列表具有a1,a2,a3至a10共10個應用,以一個特征包含一個應用標識為例,則按照a1,a2,a3至a10的序數(shù),可將a1的應用標識視為第一個特征,將a2的應用標識視為第二個特征,以此類推,確定出10個特征,構成該應用列表的特征集合;
若一個特征包含多個應用標識,則本發(fā)明實施例可設置上一特征的最后一個應用標識,為下一特征的第一個應用標識;即第N個特征的最后一個應用標識,為第N+1個特征的第一個應用標識;
如一個應用列表具有a1,a2,a3至a10共10個應用,以一個特征包含二個 應用標識為例,則按照a1,a2,a3至a10的序數(shù),可將a1,a2的應用標識劃分為第一個特征,a2,a3的應用標識劃分為第二個特征,a3,a4的應用標識劃分為第三個特征,a4,a5的應用標識劃分為第四個特征,以此類推,確定出9個特征,構成該應用列表的特征集合。
步驟S120、將指紋值符合設定聚類要求的應用列表歸為一類。
可選的,符合設定聚類要求的指紋值可以為數(shù)值完全相同的指紋值,也可以為指紋值的差值在設定差值范圍內的指紋值;
以應用列表共有8個,分別為Y1~Y8為例,若Y1、Y2、Y5的指紋值相同,Y3、Y7的指紋值相同,Y4、Y6、Y8的指紋值相同,則可將應用列表Y1、Y2、Y5歸為一類,將應用列表Y3、Y7歸為一類,將應用列表Y4、Y6、Y8歸為一類,實現(xiàn)對多個終端設備的應用列表的聚類。
本發(fā)明實施例提供的應用列表聚類方法,可獲取多個終端設備的應用列表;對于所獲取的各應用列表,以應用列表對應的有序應用標識為特征集合,基于Simhash算法確定出各應用列表的特征集合所對應的指紋值;從而將指紋值符合設定聚類要求的應用列表歸為一類,實現(xiàn)對所獲取的多個應用列表的聚類目的。本發(fā)明實施例采用Simhash算法,通過將應用列表的特征集合(特征集合由應用列表對應的有序應用標識構成)映射為指紋值,使得各應用列表的相似度可通過指紋值進行比對,進而實現(xiàn)了將指紋值符合設定聚類要求的應用列表歸為一類的目的;在應用列表聚類的過程中,各應用列表的指紋值的確定及指紋值的比對,所涉及的計算工作量均較小,且Simhash算法可以較低的計算量和存儲消耗實現(xiàn),因此本發(fā)明實施例在實現(xiàn)對應用列表進行聚類的過程中,極大的降低了數(shù)據(jù)計算工作量,以較小的數(shù)據(jù)計算工作量,實現(xiàn)了對應用列表進行聚類的目的。
可選的,在本發(fā)明實施例中,圖1所示步驟S100中可由計算設備的接口收集終端設備的應用列表后,導入計算設備內的處理器等處理芯片中;同時,S110和步驟S120可由計算設備內的處理器等處理芯片實現(xiàn)。
可選的,基于Simhash算法確定各應用列表的特征集合所對應的指紋值的方式可如圖2示出,參照圖2,該方法可以包括:
步驟S200、設置各應用列表對應的f維的向量V,及各應用列表對應的f位的數(shù)值S;
可選的,在設置各應用列表對應的f維的向量V,及各應用列表對應的f位的數(shù)值S后,可統(tǒng)一各應用列表初始的向量V及數(shù)值S,以使得各應用列表初始的向量V和數(shù)值S處于同一基礎上;具體的,本發(fā)明實施例可初始化各應用列表對應的向量V為0,并初始化各應用列表對應的數(shù)值S為0;
顯然,也可初始化各應用列表對應的向量V統(tǒng)一為其他數(shù)值,初始化各應用列表對應的數(shù)值S統(tǒng)一為其他數(shù)值,僅需保證各應用列表初始化后的向量V是相同的,且各應用列表初始化后的數(shù)值S是相同的即可。
步驟S210、對于各應用列表,采用hash算法確定各特征的f位指紋b,一個所述特征由應用列表的至少一個應用標識構成;
可選的,在特征的選取上,本發(fā)明實施例可將應用列表的應用標識按照序數(shù),依序劃分為多個特征;其中,一個特征包含至少一個應用標識,且各特征所包含的應用標識的個數(shù)相同;通過上述劃分出的多個特征可構成應用列表的特征集合。
步驟S220、對于各應用列表,根據(jù)各特征的f位指紋b調整應用列表對應的f維的向量V,得到的各應用列表對應的f維的向量V的最終值;
可選的,根據(jù)各特征的f位指紋b調整應用列表對應的f維的向量V的方式的主要原則是:通過特征在應用列表中的序位,調整向量V中相應序位的元素的值,使得應用列表的向量V中的各元素,可與應用列表中序數(shù)相應的特征匹配上;基于此原則,根據(jù)各特征的f位指紋b調整應用列表對應的f維的向量V的方式可以有多種,本發(fā)明實施例并不作限制。
步驟S230、根據(jù)各應用列表對應的f維的向量V的最終值,確定各應用列表對應的數(shù)值S的最終值,以各應用列表對應的數(shù)值S的最終值作為各應用列表對應的指紋值。
可選的,根據(jù)各應用列表對應的f維的向量V的最終值調整對應的數(shù)值S的主要原則是:通過調整后的向量V中各序位元素的值,調整數(shù)值S中與元素序位相同的位置的數(shù)值,從而使得應用列表的數(shù)值S中的各位置的數(shù)值,可與應用列表的最終值的向量V中序數(shù)相應的元素值匹配上,進而使得應用列表對應的指紋值,能夠準確的表示出應用列表中有序應用標識的特征;基于此原則,根據(jù)各應用列表對應的f維的向量V的最終值,確定各應用列表對應的數(shù)值S的最終值的方式可以有多種,本發(fā)明實施例并不作限制。
可選的,圖3示出了本發(fā)明實施例提供的確定各應用列表的特征集合所對應的指紋值的另一方法流程圖,參照圖3,該方法可以包括:
步驟S300、設置各應用列表對應的f維的向量V,且初始化各應用列表對應的向量V為0,及設置各應用列表對應的f位的數(shù)值S,且初始化各應用列表對應的數(shù)值S為0;
可選的,步驟S300可以認為是圖2所示步驟S200的一種具體實現(xiàn)方式。
步驟S310、對于各應用列表,采用hash算法確定各特征的f位指紋b,一個所述特征由應用列表的至少一個應用標識構成;
步驟S320、對于各應用列表的第1至第f個特征,若第i個特征的指紋b的第i位為1,i為1至f的整數(shù),則在應用列表對應的向量V的第i個元素加上所述第i個特征對應的設定權重;若所述第i個特征的指紋b的第i位不為1,則在應用列表對應的向量V的第i個元素減去所述第i個特征對應的設定權重,得到各應用列表對應的f維的向量V的最終值;
可選的,步驟S320可以認為是圖2所示步驟S220的一種具體實現(xiàn);
可選的,本發(fā)明實施例可將特征在應用列表中的序位,與向量V的元素的序位匹配上,從而通過相同序位的特征的值調整向量V中的相應元素的值;具體的,若應用列表的第1至第f個特征中的任一特征T在應用列表中的序位為第i位,且該特征T的指紋b的第i位為1,則可將應用列表對應的向量V的第i個元素加上該特征T對應的設定權重(設定權重可選為1,具體可視實際情況設定),否則,若該特征T的指紋b的第i位不為1,則可將應用列表對應的向量V的第i個元素減去該特征T對應的設定權重;
對于應用列表的第1至第f個特征,執(zhí)行上述調整相應向量V的元素值的過程,可得到應用列表對應的f維的向量V的最終值。
步驟S330、若應用列表對應的向量V的最終值中第i個元素大于0,則將應用列表對應的數(shù)值S的第i位數(shù)值置為1;若應用列表對應的向量V的最終值中第i個元素不大于0,則將應用列表對應的數(shù)值S的第i位數(shù)值置為0,得到各應用列表對應的數(shù)值S的最終值,以各應用列表對應的數(shù)值S的最終值作為各應用列表對應的指紋值。
在確定了各應用列表對應的向量V的最終值后,可根據(jù)應用列表對應的向量V的最終值中各元素的值,調整應用列表對應的數(shù)值S中相應序位的數(shù)值; 具體的,對于向量V中的任一元素K,K的序位為第i位,若該第i位元素K的值大于0,則應用列表對應的數(shù)值S的第i位數(shù)值置為1,否則,若該第i位元素K的值不大于0,則應用列表對應的數(shù)值S的第i位數(shù)值置為0;
對于應用列表得到最終值的向量V的各元素,執(zhí)行上述調整相應的數(shù)值S的各位置的數(shù)值的過程,可得到應用列表對應的數(shù)值S的最終值。
可選的,不同終端設備的應用列表,會存在一定數(shù)量的共同應用;若將一個應用標識作為一個特征,并采用這種方式基于SimHash算法確定應用列表的特征集合所對應的指紋值,將導致指紋值重復的情況很多,而實際上這些存在一定數(shù)量的共同應用的應用列表還是有一定區(qū)別的;因此在本發(fā)明實施例中,一個特征(即構成應用列表的特征集合的基礎)可以包含多個應用標識;
即本發(fā)明實施例可將應用列表的應用標識按照序數(shù),依序劃分為多個特征;其中,各特征包含多個應用標識,各特征所包含的應用標識的個數(shù)相同,且第N個特征的最后一個應用標識,為第N+1特征的第一個應用標識;
以二元應用名稱作為一個特征(一個特征包含應用列表中依序排列的兩個應用標識,應用名稱為應用標識的一種)為例,假設應用列表中的應用名稱排列如下:
“android,com.android.backupconfirm,com.android.bluetooth,com.android.calendar,com.android.certinstaller,com.android.contacts,com.android.defcontainer”
則在本發(fā)明實施例中,可得到如下特征:
“android,com.android.backupconfirm”,“com.android.backupconfirm,com.android.bluetooth”,“com.android.bluetooth,com.android.calendar”“com.android.calendar,com.android.certinstaller”,“com.android.certinstaller,com.android.contacts”,“com.android.contacts,com.android.defcontainer”;
可以看出,本發(fā)明實施例在確定各特征時,是按照各特征包含個數(shù)相同的多個應用標識,且上一特征的最后一個應用標識,為下一特征的第一個應用標識的原則,將應用列表的應用標識按照序數(shù),依序劃分為多個特征。
可選的,在將指紋值符合設定聚類要求的應用列表歸為一類后,對于各類,本發(fā)明實施例可僅保留一個應用列表作為該類的應用列表的標準,而去 除該類中的其他應用列表;具體的,本發(fā)明可在將指紋值符合設定聚類要求的應用列表歸為一類后,在相同的類中保留一個應用列表,去除所述類中的其他應用列表;
如將應用列表Y1、Y2、Y5歸為一類后,可在Y1、Y2、Y5這一類中僅保留應用列表Y1,而去除應用列表Y2、Y5。
可選的,本發(fā)明實施例提供的應用列表聚類方法可應用于終端設備中,以使得終端設備在相同的類中保留一個應用列表后,確定出各類所保留的應用列表;顯然,本發(fā)明實施例提供的應用列表聚類方法也可應用于服務器中,由服務器將各類所保留的應用列表發(fā)送至終端設備,使得終端設備確定出各類所保留的應用列表;
在終端設備確定各類所保留的應用列表的基礎上,為避免病毒程序對終端設備本地應用列表的竊取,或者躲避對終端設備的某種檢測,在本發(fā)明實施例中,終端設備可在識別到獲取所述終端設備的原始應用列表的指令時,將所述指令的返回結果調整為聚類后的任一類所保留的應用列表,返回調整后的所述指令的返回結果,從而對所述指令的返回結果進行干擾,達到隱藏終端設備本地的應用列表的目的,以避免病毒程序對終端設備本地應用列表的竊取,或者躲避對終端設備的某種檢測;
圖4示出了本發(fā)明實施例提供的修改指令返回結果的方法流程圖,圖4所示方法可應用于終端設備,參照圖4,該方法可以包括:
步驟S400、終端設備在確定各類所保留的應用列表后,若識別到獲取所述終端設備的原始應用列表的指令,則根據(jù)所述指令進行hook,以將所述指令的返回結果調整為聚類后的任一類所保留的應用列表;
其中,hook又稱為鉤子,實質上是一個處理消息的程序段,通過系統(tǒng)調用可將hook掛入系統(tǒng)中;
可選的,步驟S400的觸發(fā)前提可以是所述指令由外部的輸入觸發(fā),如外部病毒程序觸發(fā)所述指令,從而使得終端設備識別到獲取所述終端設備的原始應用列表的指令;或者,檢測到外部設備對終端設備的某種檢測,從而使得終端設備識別到獲取所述終端設備的原始應用列表的指令;
顯然,為實現(xiàn)對終端設備本地的原始應用列表的隱藏的目的,本發(fā)明實施例也可在只要識別到獲取所述終端設備的原始應用列表的指令時,即根據(jù) 所述指令進行hook;
可選的,調整結果中所述聚類后的任一類所保留的應用列表,可以為與終端設備本地原始的應用列表不同的任一類所保留的應用列表。
步驟S410、返回調整后的所述指令的返回結果。
在具體應用中,本發(fā)明實施例可針對PackageManger管理器中的getInstalledApplications函數(shù)進行hook,當識別到獲取所述終端設備的原始應用列表的指令時,所述指令將調用getInstalledApplications函數(shù)獲取所述終端設備本地原始的應用列表;本發(fā)明實施例可在執(zhí)行了getInstalledApplications函數(shù)的調用,在返回getInstalledApplications函數(shù)的返回結果之前,先調用afterHookedMethod函數(shù),在afterHookedMethod函數(shù)中將getInstalledApplications函數(shù)的返回結果修改為,終端設備所確定的聚類后的任一類所保留的應用列表。
可選的,在本發(fā)明實施例中,圖4所示步驟S400和步驟S410可由終端設備內的處理器等處理芯片實現(xiàn)。
可選的,圖4所示方法可應用于躲避刷下載量檢測的場景,從而在識別到獲取所述終端設備的原始應用列表的指令時,修改所述指令的返回結果為聚類后的任一類所保留的應用列表,以使得所述終端設備返回的應用列表與真實用戶相一致,從而使得終端設備不容易被檢測工具識別為存在刷下載量的行為;顯然,躲避刷下載量檢測僅有本發(fā)明實施例的一個應用,本發(fā)明實施例也可應用于對病毒程序的干擾等場景。
本發(fā)明實施例在實現(xiàn)對應用列表進行聚類的過程中,極大的降低了數(shù)據(jù)計算工作量,以較小的數(shù)據(jù)計算工作量,實現(xiàn)了對應用列表進行聚類的目的。
下面對本發(fā)明實施例提供的應用列表聚類裝置進行介紹,下文描述的應用列表聚類裝置可與上文描述的應用列表聚類方法相互對應參照。
圖5為本發(fā)明實施例提供的應用列表聚類裝置的結構框圖,參照圖5,該應用列表聚類裝置可以包括:
列表獲取模塊100,用于獲取多個終端設備的應用列表;
指紋值確定模塊200,用于對于各應用列表,以應用列表對應的有序應用標識為特征集合,基于Simhash算法確定各應用列表的特征集合所對應的指紋值;
聚類模塊300,用于將指紋值符合設定聚類要求的應用列表歸為一類。
可選的,圖6示出了本發(fā)明實施例提供的指紋值確定模塊200的一種可選結構,參照圖6,指紋值確定模塊200可以包括:
設置單元210,用于設置各應用列表對應的f維的向量V,及各應用列表對應的f位的數(shù)值S;
指紋確定單元220,用于對于各應用列表,采用hash算法確定各特征的f位指紋b,一個所述特征由應用列表的至少一個應用標識構成;
第一調整單元230,用于對于各應用列表,根據(jù)各特征的f位指紋b調整應用列表對應的f維的向量V,得到的各應用列表對應的f維的向量V的最終值;
第二調整單元240,用于根據(jù)各應用列表對應的f維的向量V的最終值,確定各應用列表對應的數(shù)值S的最終值,以各應用列表對應的數(shù)值S的最終值作為各應用列表對應的指紋值。
可選的,圖7示出了本發(fā)明實施例提供的設置單元210的一種可選結構,參照圖7,設置單元210可以包括:
初始設置子單元211,用于設置各應用列表對應的f維的向量V,且初始化各應用列表對應的向量V為0,及設置各應用列表對應的f位的數(shù)值S,且初始化各應用列表對應的數(shù)值S為0。
可選的,圖8示出了本發(fā)明實施例提供的第一調整單元230的一種可選結構,參照圖8,第一調整單元230可以包括:
元素值調整子單元231,用于對于各應用列表的第1至第f個特征,若第i個特征的指紋b的第i位為1,i為1至f的整數(shù),則在應用列表對應的向量V的第i個元素加上所述第i個特征對應的設定權重;若所述第i個特征的指紋b的第i位不為1,則在應用列表對應的向量V的第i個元素減去所述第i個特征對應的設定權重,得到各應用列表對應的f維的向量V的最終值。
可選的,圖9示出了本發(fā)明實施例提供的第二調整單元240的一種可選結構,參照圖9,第二調整單元240可以包括:
數(shù)值調整子單元241,用于若應用列表對應的向量V的最終值中第i個元素大于0,則將應用列表對應的數(shù)值S的第i位數(shù)值置為1;若應用列表對應的向量V的最終值中第i個元素不大于0,則將應用列表對應的數(shù)值S的第i位數(shù)值置為0,得到各應用列表對應的數(shù)值S的最終值。
可選的,在本發(fā)明實施例中,可設置一個應用列表的應用標識按照序數(shù),依序劃分為多個特征;其中,各特征包含至少一個應用標識,且各特征所包含的應用標識的個數(shù)相同;
可選的,若所述各特征包含多個應用標識,則可設置上一特征的最后一個應用標識,為下一特征的第一個應用標識。
可選的,圖10示出了本發(fā)明實施例提供的應用列表聚類裝置的另一結構框圖,結合圖5和圖10所示,該裝置還可以包括:
保留模塊400,用于在將指紋值符合設定聚類要求的應用列表歸為一類后,在相同的類中保留一個應用列表,去除所述類中的其他應用列表。
可選的,本發(fā)明實施例提供的應用列表聚類裝置可應用于終端設備中,當終端設備存在干擾病毒程序對終端設備本地的原始應用列表的獲取目的,或者提交與真實用戶相一致的應用列表,以躲避刷下載量的檢測,等隱藏本地應用列表的目的時,本發(fā)明實施例可在終端設備識別到獲取所述終端設備的原始應用列表的指令時,對所述指令的返回結果進行修改;對應的,圖11示出了本發(fā)明實施例提供的應用列表聚類裝置的再一結構框圖,結合圖10和圖11所示,該裝置還可以包括:
Hook模塊500,用于終端設備在確定各類所保留的應用列表后,若識別到獲取所述終端設備的原始應用列表的指令,則根據(jù)所述指令進行hook,以將所述指令的返回結果調整為聚類后的任一類所保留的應用列表;
結果返回模塊600,用于返回調整后的所述指令的返回結果。
本發(fā)明實施例提供的應用列表聚類裝置,在實現(xiàn)對應用列表進行聚類的過程中,極大的降低了數(shù)據(jù)計算工作量,以較小的數(shù)據(jù)計算工作量,實現(xiàn)了對應用列表進行聚類的目的。
本發(fā)明實施例還提供一種計算設備,該計算設備可以為服務器,由服務器實現(xiàn)對應用列表的聚類;該計算設備也可以為終端設備,由終端設備實現(xiàn)對應用列表的聚類,及本地應用列表的隱藏(通過在識別到獲取終端設備的 原始應用列表的指令時,修改所述指令的返回結果實現(xiàn));在本發(fā)明實施例中,該計算設備可以包括上述所述的應用列表聚類裝置。
本發(fā)明實施例還提供有計算設備的硬件結構框圖,圖12為本發(fā)明實施例提供的計算設備的硬件結構框圖,參照圖12,該計算設備可以包括:處理器1,通信接口2,存儲器3和通信總線4;
其中處理器1、通信接口2、存儲器3通過通信總線4完成相互間的通信;
可選的,通信接口2可以為通信模塊的接口,如GSM模塊的接口;
處理器1,用于執(zhí)行程序;
存儲器3,用于存放程序;
程序可以包括程序代碼,所述程序代碼包括計算機操作指令。
處理器1可能是一個中央處理器CPU,或者是特定集成電路ASIC(Application Specific Integrated Circuit),或者是被配置成實施本發(fā)明實施例的一個或多個集成電路。
存儲器3可能包含高速RAM存儲器,也可能還包括非易失性存儲器(non-volatile memory),例如至少一個磁盤存儲器。
其中,程序可具體用于:
獲取多個終端設備的應用列表;
對于各應用列表,以應用列表對應的有序應用標識為特征集合,基于Simhash算法確定各應用列表的特征集合所對應的指紋值;
將指紋值符合設定聚類要求的應用列表歸為一類。
本說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。對于實施例公開的裝置而言,由于其與實施例公開的方法相對應,所以描述的比較簡單,相關之處參見方法部分說明即可。
專業(yè)人員還可以進一步意識到,結合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機軟件或者二者的結合來實現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術方案的特定應用和設計約束條件。專業(yè)技術人員可以對每個特定 的應用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應認為超出本發(fā)明的范圍。
結合本文中所公開的實施例描述的方法或算法的步驟可以直接用硬件、處理器執(zhí)行的軟件模塊,或者二者的結合來實施。軟件模塊可以置于隨機存儲器(RAM)、內存、只讀存儲器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動磁盤、CD-ROM、或技術領域內所公知的任意其它形式的存儲介質中。
對所公開的實施例的上述說明,使本領域專業(yè)技術人員能夠實現(xiàn)或使用本發(fā)明。對這些實施例的多種修改對本領域的專業(yè)技術人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實施例中實現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。