一種應用聚類方法和裝置與流程
2023-07-05 03:22:21 1
本發明涉及網際網路技術,尤其涉及一種應用聚類方法和裝置。
背景技術:
網際網路上的應用資源數量龐大,而且不斷地得到更新、擴充。而用戶面對這些紛繁複雜的應用資源時,如何方便、準確地找到目標類型的應用資源是當前面對的現實問題,而解決該問題的關鍵在於有效聚類同款應用。現有技術中,通常採用以下方法聚類同一款應用:抓取具有相同名稱的應用;簡單地去除應用中可以識別的版本信息;根據相同的應用名稱聚類所述應用。但是,這種方法的缺陷在於,同一款應用通常在不同站點所抓取的名稱差別很大,由此導致很多相同應用並沒有被合理地識別為同一款應用,導致用戶無法一次性獲取所需的應用資源。另外,有些應用雖然在不同站點所抓取的名稱相同或相似,但是實質內容存在很大區別,導致用戶下載某些應用資源後,得到的並不是與應用名稱相符的資源。
技術實現要素:
本發明的目的是提供一種應用聚類方法和裝置,可以有效聚類相同應用。根據本發明的一個方面,提供了一種應用聚類方法,該方法包括以下步驟:初始化所需的信息資源,獲取待聚類的多個應用外部名稱;基於已初始化的信息,下載應用並對其進行解析,獲取所解析的應用內部名稱;對所獲取的應用外部名稱以及所解析的應用內部名稱分別進行預處理;根據預處理結果,確定應用聚類的方式並進行應用聚類。根據本發明的另一個方面,還提供了一種應用聚類裝置,包括:信息初始化模塊,用於初始化所需的信息資源,獲取待聚類的多個應用外部名稱;應用獲取模塊,基於已初始化的信息,下載應用並對其進行解析,獲取所解析的應用內部名稱;名稱預處理模塊,用於對所獲取的應用外部名稱以及所解析的應用內部名稱分別進行預處理;應用聚類模塊,根據預處理結果,確定應用聚類的方式並進行應用聚類。與現有技術相比,本發明具有以下優點:1)本發明可以有效聚類相同的應用,可以在有限的終端(如手機、pad)屏幕上展示更豐富的信息,優化應用搜索結果,尤其是遊戲類應用的搜索結果;2)本發明提供的聚類方法可以集合更多應用相關信息,進而可以抽取出信息量更高的數據,提高檢索相關性。附圖說明通過閱讀參照以下附圖所作的對非限制性實施例所作的詳細描述,本發明的其它特徵、目的和優點將會變得更明顯:圖1為根據本發明一個優選實施例的應用聚類方法流程圖;圖2為根據本發明另一個優選實施例的應用聚類裝置的示意性框圖。具體實施方式下面結合附圖對本發明作進一步詳細描述。根據本發明的一個方面,提供了一種應用聚類方法。請參考圖1,圖1為根據本發明一個優選實施例的應用聚類方法流程圖。如圖1所示,本發明所提供的應用聚類方法包括以下步驟:步驟S101,初始化所需的信息資源,獲取待聚類的多個應用外部名稱。具體地,所述信息資源包括諸如同義詞表、應用信息列表、名稱映射表以及結果存儲表等類型的數據。所述初始化的步驟包括:a)加載同義詞表;其中,所述同義詞表是指其中包含有相同或相似含義的詞表資料庫,該資料庫可以由本實施例創建,也可以從第三方獲取。b)加載應用信息列表,包括應用外部名稱和應用下載連結;其中,所述應用信息列表通常由第三方提供(例如根據第三方提供的應用信息抓取相應的數據),包括應用外部名稱(如新浪微博v1.0、新浪微博綠色版、sinaweibo等)、應用下載連結信息等。其中,所述應用外部名稱在此不作約束,在實際情況中,所述第三方提供的外部名稱可能與應用信息列表所來自的站點描述不一致。c)初始化所述應用外部名稱和所解析的應用名稱的映射表;其中,所述解析的應用名稱如下文所述,在未得到所解析的應用名稱前,初始化所述應用外部名稱和將要得到的解析後應用名稱的映射表。通常,所述應用外部名稱和所解析的應用名稱是不一樣的,前者一般更具有描述性、內容更豐富,後者一般比較精簡。d)初始化應用聚類結果存儲表,並將該存儲表命名為cluster_map。步驟S102,基於已初始化的信息,下載所述應用並對其進行解析,獲取所解析的應用名稱。具體地,從已初始化的信息中,獲取應用信息列表並從中取出一個應用條目,根據應用信息列表中的應用下載連結下載該應用對應的應用包。進一步地,對該應用包進行解析,從中獲取所述應用解析後的內部名稱,在本實施例中,對應用包進行解析的方式以及所使用的解析工具不做限定。步驟S103,對所獲取的應用外部名稱以及所解析的應用名稱分別進行預處理。具體地,所述預處理具體包括:Ⅰ)分別過濾所述應用外部名稱以及所解析的應用名稱的版本信息;通常,所述由第三方提供的應用外部名稱含有版本信息,如v1.0等。在本實施例中,無論是應用外部名稱還是解析得到的應用名稱,都對其進行版本信息的過濾操作。過濾操作的方式包括但不限於利用模式匹配,查找並去除所述名稱中特定的版本信息(或特定字符串),如v1.0。Ⅱ)對所述已過濾的應用外部名稱以及所解析的應用名稱進行切詞、去除停用詞或/和字詞替換處理。其中,在本實施例中,切詞的方法在此不作限制。切詞後,對其中的停用詞/無用詞做去除處理。例如,去掉其中含「版」的詞,如去除詞語「綠色版」。進一步地,對於名稱中的某些詞,還需要進行替換處理,例如,將名稱為「sinaweibo」的字符串替換成中文名稱「新浪微博」。Ⅲ)對所述經過切詞處理並過濾的結果進行散列計算,分別將經過散列計算的結果命名為組id(組名稱標識)和內部id(內部名稱標識)。具體地,對經過上述步驟Ⅱ)處理過的結果進行散列計算,在本實施例中,對散列計算的方式在此不予限定,包括但不限於採用MD2、MD4、MD5或SHA-1散列算法。進一步地,分別將經過上述散列計算後的應用外部名稱以及所解析的應用名稱所對應的結果命名為組id和內部id。步驟S104,根據預處理結果,確定應用聚類的方式並進行應用聚類。具體地,根據所述應用外部名稱對所述多個應用進行聚類,以獲得第一聚類結果;然後,根據第一聚類結果中的所解析的應用名稱,對所述第一聚類結果中的各類進行合併,以獲得第二聚類結果。其中,所述聚類的方式包括但不限於:如果兩個類中的應用具有相同的所解析的應用名稱,則對這兩個類進行聚類。即,根據組id聚類應用,並將所有組id相同的數據標記為同一類,並將其保存在所述映射表中。由此,多個不同的內部id對應同一組id,即組id值相同的應用被標記為同一組;進一步根據內部id聚類應用,對於內部id相同而對應的組id不同的應用,將其合併成一類應用。進一步地,本發明所述的方法還包括:遍歷所有的應用列表,進行步驟S101到步驟S104的操作,以完成對所有應用列表中的應用的聚類。當然,所述領域的技術人員可以明白,本發明的上述方法或系統可以應用於各類應用的聚類。作為優選的實施例,可以將上述方法或系統應用於遊戲應用的聚類。與現有技術相比,本發明所提供的應用聚類方法具有以下優點:1)本發明可以有效針對不同類型的應用進行有效地聚類,尤其是針對遊戲類的應用聚類,效果更明顯;2)本發明通過對應用進行聚類,可以提升用戶的檢索和下載體驗。根據本發明的另一個方面,還提供了一種應用聚類裝置。請參考圖2所示,圖2為根據本發明一個優選實施例的應用聚類裝置示意圖。如圖2所示,該裝置包括:信息初始化模塊201,用於初始化所需的信息資源,獲取待聚類的多個應用外部名稱;應用獲取模塊202,基於已初始化的信息,下載應用並對其進行解析,獲取所解析的應用名稱;名稱預處理模塊203,用於對所獲取的應用外部名稱以及所解析的應用名稱分別進行預處理;應用聚類模塊204,根據預處理結果,確定應用聚類的方式並進行應用聚類。下面,將對本發明所提供的各模塊的具體工作過程進行詳細說明。其中,所述信息初始化模塊201初始化的信息資源包括諸如同義詞表、應用信息列表、名稱映射表以及結果存儲表等類型的數據。所述初始化的步驟包括:a)加載同義詞表;其中,所述同義詞表是指其中包含有相同或相似含義的詞表資料庫,該資料庫可以由本實施例創建,也可以從第三方獲取。b)加載應用信息列表,包括應用外部名稱和應用下載連結;其中,所述應用信息列表通常由第三方提供(例如根據第三方提供的應用信息抓取相應的數據),包括應用外部名稱(如新浪微博v1.0、新浪微博綠色版、sinaweibo等)、應用下載連結信息等。其中,所述應用外部名稱在此不作約束,在實際情況中,所述第三方提供的外部名稱可能與應用信息列表所來自的站點描述不一致。c)初始化所述應用外部名稱和所解析的應用名稱的映射表;其中,所述解析的應用名稱如下文所述,在未得到所解析的應用名稱前,初始化所述應用外部名稱和將要得到的解析後應用名稱的映射表。通常,所述應用外部名稱和所解析的應用名稱是不一樣的,前者一般更具有描述性、內容更豐富,後者一般比較精簡。d)初始化應用聚類結果存儲表,並將該存儲表命名為cluster_map。其中,所述應用獲取模塊202從已初始化的信息中,獲取應用信息列表並從中取出一個應用條目,根據應用信息列表中的應用下載連結下載該應用對應的應用包。進一步地,所述應用獲取模塊202對該應用包進行解析,從中獲取所述應用解析後的內部名稱,在本實施例中,對應用包進行解析的方式以及所使用的解析工具不做限定。其中,所述名稱預處理模塊203進行的預處理操作具體包括:Ⅰ)分別過濾所述應用外部名稱以及所解析的應用名稱的版本信息;通常,所述由第三方提供的應用外部名稱含有版本信息,如v1.0等。在本實施例中,無論是應用外部名稱還是解析得到的應用名稱,都對其進行版本信息的過濾操作。過濾操作的方式包括但不限於利用模式匹配,查找並去除所述名稱中特定的版本信息(或特定字符串),如v1.0。Ⅱ)對所述已過濾的應用外部名稱以及所解析的應用名稱進行切詞、去除停用詞或/和字詞替換處理。其中,在本實施例中,切詞的方法在此不作限制。切詞後,對其中的停用詞/無用詞做去除處理。例如,去掉其中含「版」的詞,如去除詞語「綠色版」。進一步地,對於名稱中的某些詞,還需要進行替換處理,例如,將名稱為「sinaweibo」的字符串替換成中文名稱「新浪微博」。Ⅲ)對所述經過切詞處理並過濾的結果進行散列計算,分別將經過散列計算的結果命名為組id(組名稱標識)和內部id(內部名稱標識)。具體地,對經過上述步驟Ⅱ)處理過的結果進行散列計算,在本實施例中,對散列計算的方式在此不予限定,包括但不限於採用MD2、MD4、MD5或SHA-1散列算法。進一步地,分別將經過上述散列計算後的應用外部名稱以及所解析的應用名稱所對應的結果命名為組id和內部id。其中,所述應用聚類模塊204根據所述應用外部名稱對所述多個應用進行聚類,以獲得第一聚類結果;然後,根據第一聚類結果中的所解析的應用名稱,對所述第一聚類結果中的各類進行合併,以獲得第二聚類結果。其中,所述聚類的方式包括但不限於:如果兩個類中的應用具有相同的所解析的應用名稱,則對這兩個類進行聚類。即,根據組id聚類應用,並將所有組id相同的數據標記為同一類,並將其保存在所述映射表中。由此,多個不同的內部id對應同一組id,即組id值相同的應用被標記為同一組;進一步根據內部id聚類應用,對於內部id相同而對應的組id不同的應用,將其合併成一類應用。進一步地,本發明提供的裝置還包括應用遍歷模塊,用於遍歷所有的應用列表。通過所述應用遍歷模塊對所有應用列表的遍歷,並通過上述其他各模塊的操作,可以完成所有應用列表中的應用聚類。本發明所提供的應用聚類裝置具有以下優點:本發明提供的方案不依賴於應用資源在不同站點所抓取的名稱,客觀聚類,滿足了應用搜索結果的統一性,確保應用資源的高效聚類,根據用戶的需求,得到準確的聚類結果,提升搜索效率。以上所揭露的僅為本發明的較佳實施例而已,當然不能以此來限定本發明之權利範圍,因此依本發明權利要求所作的等同變化,仍屬本發明所涵蓋的範圍。