公开/公告号CN102693229A
专利类型发明专利
公开/公告日2012-09-26
原文格式PDF
申请/专利权人 腾讯科技(深圳)有限公司;
申请/专利号CN201110069330.2
发明设计人 陈培炫;
申请日2011-03-22
分类号G06F17/30;
代理机构广州三环专利代理有限公司;
代理人郝传鑫
地址 518057 广东省深圳市福田区振兴路赛格科技园2栋东403室
入库时间 2023-12-18 06:37:32
法律状态公告日
法律状态信息
法律状态
2016-01-20
专利申请权的转移 IPC(主分类):G06F17/30 登记生效日:20151228 变更前: 变更后: 申请日:20110322
专利申请权、专利权的转移
2016-01-20
授权
授权
2012-11-21
实质审查的生效 IPC(主分类):G06F17/30 申请日:20110322
实质审查的生效
2012-09-26
公开
公开
技术领域
本发明涉及软件技术领域,尤其涉及一种软件分析方法、软件推荐方法、软件分析装置及软件推荐装置。
背景技术
目前,电脑管理软件如360安全卫士、金山卫士、QQ电脑管家等都内置有软件管理的模块,该软件管理的模块将各种软件分门别类,当用户在其使用的终端(客户端)点击某个类别时,该软件管理的模块即将该类别下的软件列表提供给客户端,由客户端向用户展示该软件列表。其中,各个类别下的软件列表是由软件管理的模块通过对各种软件进行分析后完成排序的,现有的软件分析主要包含以下三种方式,其一为:分析软件的属性。软件管理的模块将电脑管理软件开发者自己经营的软件产品及投资伙伴的软件产品置前,将竞争对手的软件产品置后;其二为:分析软件的评分。软件管理的模块按用户对各种软件由高到低的评分进行排序;其三为:分析软件的发布时间。软件管理的模块按各种软件发布时间的先后顺序进行排序。
发明人发现,现有的软件分析方案并未考虑客户端的特性,即现有的软件分析方案既未考虑客户端属于哪种用户类别,也未考虑不同用户类别的客户端的软件安装情况,比如:针对所有客户端,软件管理的模块均提供相同的软件列表,即提供由上述软件分析方案得到的软件列表,这样造成软件的推荐无针对性,还可能造成软件列表中置前的软件客户端已安装,则客户端的用户即会忽略该推荐的软件列表,从而使得软件安装率下降,同时也损害了软件推广商的利益。
发明内容
本发明实施例所要解决的技术问题在于,提供一种软件分析方法、软件推荐方法、软件分析装置及软件推荐装置,可针对客户端的特性进行软件的分析和软件列表的排序,提高软件安装率。
为了解决上述技术问题,本发明实施例提供了一种软件分析方法,包括:
获取当前在线的各个客户端的软件安装信息;
根据各个客户端的软件安装信息,构建预设数量的特定软件的用户向量数据集;
基于聚类算法对所述用户向量数据集进行计算,获得至少一个用户类别;
计算每个用户类别的所述预设数量的特定软件的安装排行列表。
其中,所述获取当前在线的各个客户端的软件安装信息,包括:
读取当前在线的各个客户端的注册表,获得各个客户端的软件注册信息;
根据各个客户端的软件注册信息,确定各个客户端的软件安装信息。
其中,所述根据各个客户端的软件安装信息,构建预设数量的特定软件的用户向量数据集,包括:
根据各个客户端的软件安装信息,确定各个客户端对应的包含预设数量的特定软件安装情况的用户向量;
所有客户端对应的用户向量构成所述预设数量的特定软件的用户向量数据集。
其中,所述基于聚类算法对所述用户向量数据集进行计算,获得至少一个用户类别,包括:
从所述用户向量数据集中随机选取预定数量的用户向量作为预定数量的用户类别的聚类中心;
依次计算所述用户向量数据集中的每个用户向量与预定数量的聚类中心的距离;
将各个用户向量对应的客户端归入与各个用户向量距离最小的聚类中心所在的用户类别;
计算每个用户类别中的所有客户端对应的用户向量到所述客户端所在的用户类别的聚类中心的距离和;
判断所述距离和是否均小于预设的阈值,若判断结果为否,计算每个用户类别的所有客户端对应的用户向量的均值,将所述均值作为相应的用户类别的新的聚类中心,重复上述步骤,直至每个类别中所有客户端对应的用户向量到所述客户端所在的用户类别的聚类中心的距离和均小于预设的阈值为止。
其中,所述计算每个用户类别的所述预设数量的特定软件的安装排行列表,包括:
统计每个用户类别中的各个客户端关于所述预设数量的特定软件的安装情况;
根据所述统计结果,计算得到每个用户类别关于所述预设数量的特定软件的安装排行列表。
相应地,本发明实施例还提供了一种软件推荐方法,包括:
当接收到任一客户端的软件管理命令时,获取所述客户端的软件安装信息;
根据所述客户端的软件安装信息,确定所述客户端对应的包含预设数量的特定软件安装情况的用户向量;
根据所述客户端对应的用户向量,计算所述客户端所在的用户类别;
根据所述客户端的软件安装信息,对所述客户端所在的用户类别的所述预设数量的特定软件的安装排行列表进行筛选,生成软件推荐列表推荐给所述客户端进行显示。
其中,所述根据所述客户端对应的用户向量,计算所述客户端所在的用户类别,包括:
依次计算所述客户端对应的用户向量与所有用户类别的聚类中心的距离;
将所述客户端归入与所述客户端对应的用户向量距离最小的聚类中心所在的用户类别。
其中,所述根据所述客户端的软件安装信息,对所述客户端所在的用户类别的所述预设数量的特定软件的安装排行列表进行筛选,生成软件推荐列表推荐给所述客户端进行显示,包括:
根据所述客户端的软件安装信息,删除所述客户端所在的用户类别的所述预设数量的特定软件的安装排行列表中已被所述客户端安装的特定软件;
将删除后的特定软件的安装排行列表作为软件推荐列表推荐给所述客户端进行显示。
相应地,本发明实施例还提供了一种软件分析装置,包括:
获取模块,用于获取当前在线的各个客户端的软件安装信息;
构建模块,用于根据所述获取模块获取的各个客户端的软件安装信息,构建预设数量的特定软件的用户向量数据集;
聚类分析模块,用于基于聚类算法对所述构建模块构建的用户向量数据集进行计算,获得至少一个用户类别;
计算模块,用于计算所述聚类分析模块获得的每个用户类别的所述预设数量的特定软件的安装排行列表。
其中,所述获取模块包括:
读取单元,用于读取当前在线的各个客户端的注册表,获得各个客户端的软件注册信息;
确定单元,用于根据所述读取单元读取的各个客户端的软件注册信息,确定各个客户端的软件安装信息。
其中,所述构建模块包括:
向量确定单元,用于根据各个客户端的软件安装信息,确定各个客户端对应的包含预设数量的特定软件安装情况的用户向量;
构建单元,用于将所述向量确定单元确定的所有客户端对应的用户向量构成所述预设数量的特定软件的用户向量数据集。
其中,所述聚类分析模块包括:
中心选取单元,用于从所述用户向量数据集中随机选取预定数量的用户向量作为预定数量的用户类别的聚类中心;
距离计算单元,用于依次计算所述用户向量数据集中的每个用户向量与所述中心选取单元选取的预定数量的聚类中心的距离;
聚类单元,用于根据所述距离计算单元的计算结果,将各个用户向量对应的客户端归入与各个用户向量距离最小的聚类中心所在的用户类别;
距离和计算单元,用于计算所述聚类单元聚类得到的每个用户类别中的所有客户端对应的用户向量到所述客户端所在的用户类别的聚类中心的距离和;
判断单元,用于判断所述距离和计算单元计算得到的距离和是否均小于预设的阈值;
处理单元,用于当所述判断单元判断结果为否时,计算每个用户类别的所有客户端对应的用户向量的均值,将所述均值作为相应的用户类别的新的聚类中心,并将每个用户类别的新的聚类中心交给所述距离计算单元进行计算。
其中,所述计算模块包括:
统计单元,用于统计每个用户类别中的各个客户端关于所述预设数量的特定软件的安装情况;
排行计算单元,用于根据所述统计单元的统计结果,计算得到每个用户类别关于所述预设数量的特定软件的安装排行列表。
相应地,本发明实施例还提供了一种软件推荐装置,包括:
获取模块,用于当接收到任一客户端的软件管理命令时,获取所述客户端的软件安装信息;
向量确定模块,用于根据所述获取模块获取的所述客户端的软件安装信息,确定所述客户端对应的包含预设数量的特定软件安装情况的用户向量;
聚类计算模块,用于根据所述向量确定模块确定的所述客户端对应的用户向量,计算所述客户端所在的用户类别;
推荐模块,用于根据所述客户端的软件安装信息,对所述聚类计算模块计算得到的所述客户端所在的用户类别的所述预设数量的特定软件的安装排行列表进行筛选,生成软件推荐列表推荐给所述客户端进行显示。
其中,所述聚类计算模块包括:
距离计算单元,用于依次计算所述客户端对应的用户向量与所有用户类别的聚类中心的距离;
聚类单元,用于根据所述距离计算单元的计算结果,将所述客户端归入与所述客户端对应的用户向量距离最小的聚类中心所在的用户类别。
其中,所述推荐模块包括:
筛选单元,用于根据所述客户端的软件安装信息,删除所述客户端所在的用户类别的所述预设数量的特定软件的安装排行列表中已被所述客户端安装的特定软件;
推荐单元,用于将所述筛选单元删除后的特定软件的安装排行列表作为软件推荐列表推荐给所述客户端进行显示。
实施本发明实施例,具有如下有益效果:
1、本发明实施例根据当前在线的各个客户端的软件安装信息进行客户端的聚类分析,并计算得到每个用户类别关于预设数量的特定软件的安装排行列表,针对聚类后的各个客户端的特性以及软件安装信息进行特定软件的分析,得到针对该客户端的安装排行列表,这种针对客户端特性进行的个性化软件分析方案,可获得更多的软件安装率。
2、本发明实施例当接收到任一客户端的软件管理命令时,首先对该客户端进行聚类分析,得到该客户端所在的用户类别(即客户端特性),然后根据该客户端的现有软件安装信息,提供有针对性的软件推荐,可提高客户端的用户对推荐的软件的关注度,从而提高软件安装率,增加软件推广商的效益。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的软件分析装置的实施例的结构示意图;
图2为图1所示的获取模块的实施例的结构示意图;
图3为图1所示的构建模块的实施例的结构示意图;
图4为图1所示的聚类分析模块的实施例的结构示意图;
图5为图1所示的计算模块的实施例的结构示意图;
图6为本发明的软件分析方法的第一实施例的流程图;
图7为本发明的软件分析方法的第二实施例的流程图;
图8为本发明的软件推荐装置的实施例的结构示意图;
图9为图8所示的聚类计算模块的实施例的结构示意图;
图10为图8所示的推荐模块的实施例的结构示意图;
图11为本发明的软件推荐方法的第一实施例的流程图;
图12为本发明的软件推荐方法的第二实施例的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参见图1,为本发明的软件分析装置的实施例的结构示意图;所述装置包括:
获取模块101,用于获取当前在线的各个客户端的软件安装信息。
所述获取模块101用于获取当前正在使用电脑管理软件的软件管理服务的各个客户端的软件安装信息,比如:设定当前在线的客户端数量为M,其中,M为整数,M的取值根据实际情况进行确定。具体地,所述获取模块101通过读取该M个客户端的注册表,获得各个客户端的软件注册信息,然后通过软件注册信息即确定各个客户端的软件安装信息,该软件安装信息主要包括:已安装的软件名称、简介、类型,及软件安装的时间等等。
构建模块102,用于根据所述获取模块101获取的各个客户端的软件安装信息,构建预设数量的特定软件的用户向量数据集。
如前述,由于所述获取模块101获取的各个客户端的软件安装信息存在差异,如果对各个客户端的软件安装信息中出现的各个软件均进行考虑,这样获得的数据量过大,不利于软件的分析,因此,可以选取一定数量的大众软件作为特定软件来进行分析,如:可预设N款特定软件作为软件分析对象,其中N为整数,N的取值可根据实际需要进行设定。依上述例子,M个当前在线的客户端中,对于每一个客户端 ,根据所述获取模块101获取的该客户端的软件安装信息,所述构建模块102可确定该客户端关于N款特定软件的安装情况的N维向量,的第j分量表示客户端是否安装了N款特定软件中的软件,如果安装则,否则。
所述构建模块102为M个客户端中的每个客户端均构造一个对应的N维向量,则该M个N维向量则构成N款特定软件的用户向量数据集。
聚类分析模块103,用于基于聚类算法对所述构建模块102构建的用户向量数据集进行计算,获得至少一个用户类别。
所述聚类分析模块103在所述构建模块102构建得到的用户向量数据集的基础上,基于聚类算法对M个客户端进行聚类,获取至少一个用户类别。优选地,所述聚类分析模块103采用K-均值聚类算法进行聚类,其聚类过程具体为:首先设定聚类的数量,如可设定聚类的数量为K,即将M个客户端总共聚成K种用户类别,其中K为整数,K的取值可根据实际需要进行设定。其次,根据K-均值聚类算法,确定聚类的停止条件为:同一用户类别的所有用户向量到其对应的客户端所在用户类别的聚类中心的距离和小于某个阈值T,其中T的取值可根据实际需要进行设定。第三,从所述构建模块102构建的用户向量数据集中随机选取K个用户向量作为聚类的初始中心。第四,聚类;从所述用户向量数据集中依次取用户向量,分别计算每个用户向量与选取的K个聚类初始中心的距离,然后将每个用户向量对应的客户端归入与其距离最小的聚类初始中心所在的用户类别中。第五,计算聚类得到的每个用户类别中的所有客户端对应的用户向量到所述客户端所在的用户类别的聚类中心的距离和D是否小于阈值T,如果是,则聚类停止;否则,计算每个用户类别的所有客户端对应的用户向量的均值,将所述均值作为相应的用户类别的新的聚类中心,重复第四步的聚类过程,直至D小于T为止。
需要说明的是,经所述聚类分析模块103处理后,M个客户端被聚为K(K≥1)个用户类别。
计算模块104,用于计算所述聚类分析模块103获得的每个用户类别的所述预设数量的特定软件的安装排行列表。
具体实现中,所述聚类分析模块103将M个客户端聚为K个用户类别后,针对每一个用户类别下的客户端,所述计算模块104则统计该用户类别中每款特定软件的安装数量,并根据统计结果,计算得到每个用户类别关于N款特定软件的安装排行列表。可以理解的是,由于每个用户类别下的客户端对于N款特定软件的安装情况可能存在差异,针对每个用户类别的N款特定软件的安装排行列表也可能存在差异,比如:办公性质的用户类别中,安装办公类的特定软件的客户端数量可能比较多,安装家庭类的特定软件的客户端数量可能比较少;而在家用性质的用户类别中,安装家庭类的特定软件的客户端数量可能比较多,安装办公类的特定软件的客户端数量可能比较少;因此,所述计算模块104针对办公性质的用户类别计算得到的N款特定软件的安装排行列表与针对家用性质的用户类别计算得到的N款特定软件的安装排行列表可能存在差异。
需要说明的是,由于计算模块104是根据客户端的特性来获得各个客户端类别下的特定软件的安装排行列表的,因此,电脑管理软件针对不同特性的客户端,可通过对所述计算模块104得到的安装排行列表进行筛选来获得针对不同特性客户端的软件推荐列表,从而使得软件的推荐更有针对性,可获得更多的软件安装率。
需要说明的是,本发明实施例所述的客户端包括但不限于:电脑、智能手机、PDA(Personal Digital Assistant,掌上电脑)、IPAD等终端。
本发明实施例根据当前在线的各个客户端的软件安装信息进行客户端的聚类分析,并计算得到每个用户类别关于预设数量的特定软件的安装排行列表,针对聚类后的各个客户端的特性以及软件安装信息进行特定软件的分析,得到针对该客户端的安装排行列表,这种针对客户端特性进行的个性化软件分析方案,可获得更多的软件安装率。
为了更清楚地说明本发明,下面将对本发明的软件分析装置的各模块进行详细介绍。
请参见图2,为图1所示的获取模块的实施例的结构示意图;所述获取模块101包括:
读取单元111,用于读取当前在线的各个客户端的注册表,获得各个客户端的软件注册信息。
如前述,设定当前在线的客户端数量为M,其中,M为整数,M的取值根据实际情况进行确定。所述读取单元111则读取该M个客户端的注册表,获得各个客户端的软件注册信息。
确定单元112,用于根据所述读取单元111读取的各个客户端的软件注册信息,确定各个客户端的软件安装信息。
所述确定单元112根据所述读取单元111读取的各个客户端的软件注册信息,可确定出各个客户端的软件安装信息,该软件安装信息主要包括:已安装的软件名称、简介、类型,及软件安装的时间等等。
请参见图3,为图1所示的构建模块的实施例的结构示意图;所述构建模块102包括:
向量确定单元211,用于根据各个客户端的软件安装信息,确定各个客户端对应的包含预设数量的特定软件安装情况的用户向量。
如前述,由于所述获取模块101获取的各个客户端的软件安装信息存在差异,如果对各个客户端的软件安装信息中出现的各个软件均进行考虑,这样获得的数据量过大,不利于软件的分析,因此,可以选取一定数量的大众软件作为特定软件来进行分析,如:可预设N款特定软件作为软件分析对象,其中N为整数,N的取值可根据实际需要进行设定。依上述例子,M个当前在线的客户端中,对于每一个客户端,根据所述获取模块101获取的该客户端的软件安装信息,所述向量确定单元211可确定该客户端关于N款特定软件的安装情况的N维向量,的第j分量表示客户端是否安装了N款特定软件中的软件,如果安装则,否则。所述向量确定单元211为M个客户端中的每个客户端均构造一个对应的N维向量。
构建单元212,用于将所述向量确定单元211确定的所有客户端对应的用户向量构成所述预设数量的特定软件的用户向量数据集。
如前述,由于所述向量确定单元211为M个客户端中的每个客户端均确定一个对应的N维向量,则所述构建单元212即将该M个N维向量进行合并,构成N款特定软件的用户向量数据集。
请参见图4,为图1所示的聚类分析模块的实施例的结构示意图;所述聚类分析模块103包括:
中心选取单元311,用于从所述用户向量数据集中随机选取预定数量的用户向量作为预定数量的用户类别的聚类中心。
具体实现中,本实施例采用K-均值聚类算法进行聚类,其聚类过程具体为:首先设定聚类的数量,如可设定聚类的数量为K,即将M个客户端总共聚成K种用户类别,其中K为整数,K的取值可根据实际需要进行设定。其次,根据K-均值聚类算法,确定聚类的停止条件为:同一用户类别的所有用户向量到其其对应的客户端所在用户类别的聚类中心的距离和小于某个阈值T,其中T的取值可根据实际需要进行设定。之后,所述中心选取单元311从所述用户向量数据集中随机选取K个用户向量作为聚类的初始中心。
距离计算单元312,用于依次计算所述用户向量数据集中的每个用户向量与所述中心选取单元311选取的预定数量的聚类中心的距离。
具体实现中,所述距离计算单元312从所述用户向量数据集中依次取用户向量,分别计算每个用户向量与选取的K个聚类初始中心的距离。
聚类单元313,用于根据所述距离计算单元312的计算结果,将各个用户向量对应的客户端归入与各个用户向量距离最小的聚类中心所在的用户类别。
所述聚类单元313比较所述距离计算单元312计算得到的各个用户向量与K个聚类初始中心的距离,然后将每个用户向量对应的客户端归入与其距离最小的聚类初始中心所在的用户类别中。
距离和计算单元314,用于计算所述聚类单元313聚类得到的每个用户类别中的所有客户端对应的用户向量到所述客户端所在的用户类别的聚类中心的距离和。
判断单元315,用于判断所述距离和计算单元314计算得到的距离和是否均小于预设的阈值。
所述判断单元315判断所述距离和计算单元314计算得到的距离和D是否小于阈值T,如果判断结果为是,则停止聚类,完成用户的聚类过程;如果判断结果为否,则交由处理单元316进行处理。
处理单元316,用于当所述判断单元315判断结果为否时,计算每个用户类别的所有客户端对应的用户向量的均值,将所述均值作为相应的用户类别的新的聚类中心,并将每个用户类别的新的聚类中心交给所述距离计算单元312进行计算。
可以理解的是,所述处理单元316计算得到每个用户类别的新的聚类中心后,交由所述距离计算单元312重新进行计算,并重新交由所述聚类单元313、所述距离和计算单元314和所述判断单元315进行处理,直至所述判断单元315判断D小于T时停止,完成用户的聚类过程。
需要说明的是,经所述中心选取单元311、所述距离计算单元312、所述聚类单元313、所述距离和计算单元314、所述判断单元315、所述处理单元316的上述处理后,M个客户端被聚为K(K≥1)个用户类别。
请参见图5,为图1所示的计算模块的实施例的结构示意图;所述计算模块104包括:
统计单元411,用于统计每个用户类别中的各个客户端关于所述预设数量的特定软件的安装情况。
具体实现中, M个客户端被聚为K个用户类别后,针对每一个用户类别下的客户端,所述统计单元411统计该用户类别中每款特定软件的安装数量。
排行计算单元412,用于根据所述统计单元411的统计结果,计算得到每个用户类别关于所述预设数量的特定软件的安装排行列表。
所述排行计算单元412根据所述统计单元411的统计结果,计算得到每个用户类别关于N款特定软件的安装排行列表。可以理解的是,由于每个用户类别下的客户端对于N款特定软件的安装情况可能存在差异,所述排行计算单元412针对每个用户类别的N款特定软件的安装排行列表也可能存在差异,比如:办公性质的用户类别中,安装办公类的特定软件的客户端数量可能比较多,安装家庭类的特定软件的客户端数量可能比较少;而在家用性质的用户类别中,安装家庭类的特定软件的客户端数量可能比较多,安装办公类的特定软件的客户端数量可能比较少;因此,所述排行计算单元412针对办公性质的用户类别计算得到的N款特定软件的安装排行列表与针对家用性质的用户类别计算得到的N款特定软件的安装排行列表可能存在差异。
本发明实施例根据当前在线的各个客户端的软件安装信息进行客户端的聚类分析,并计算得到每个用户类别关于预设数量的特定软件的安装排行列表,针对聚类后的各个客户端的特性以及软件安装信息进行特定软件的分析,得到针对该客户端的安装排行列表,这种针对客户端特性进行的个性化软件分析方案,可获得更多的软件安装率。
为了更清楚地说明本发明,下面将对由所述软件分析装置所执行的软件分析方法进行详细介绍。
请参见图6,为本发明的软件分析方法的第一实施例的流程图;所述方法包括:
S101,获取当前在线的各个客户端的软件安装信息。
所述S101获取当前正在使用电脑管理软件的软件管理功能的各个客户端的软件安装信息,比如:设定当前在线的用户数量为M,其中,M为整数,M的取值根据实际情况进行确定。具体地,所述S101通过读取该M个用户的注册表,获得各个客户端的软件注册信息,然后通过软件注册信息即确定各个客户端的软件安装信息,该软件安装信息主要包括:已安装的软件名称、简介、类型,及软件安装的时间等等。
S102,根据各个客户端的软件安装信息,构建预设数量的特定软件的用户向量数据集。
如前述,由于所述S101获取的各个客户端的软件安装信息存在差异,如果对各个客户端的软件安装信息中出现的各个软件均进行考虑,这样获得的数据量过大,不利于软件的分析,因此,可以选取一些大众软件作为预设的特定软件来进行分析,如:可预设N款特定软件作为软件分析对象,其中N为整数,N的取值可根据实际需要进行设定。依上述例子,M个当前在线的用户中,对于每一个用户,根据所述S101获取的该用户的软件安装信息,所述S102可确定该用户关于N款特定软件的安装情况的N维向量,的第j分量表示用户是否安装了N款特定软件中的软件,如果安装则,否则。所述S102为M个用户中的每个用户均构造一个对应的N维向量,则该M个N维向量则构成N款特定软件的用户向量数据集。
S103,基于聚类算法对所述用户向量数据集进行计算,获得至少一个用户类别。
所述S103在所述S102构建得到的用户向量数据集的基础上,基于聚类算法对M个用户进行聚类,获取至少一个用户类别。优选地,所述S103采用K-均值聚类算法进行聚类,其聚类过程具体为:首先,设定聚类的数量,如可设定聚类的数量为K,即将M个用户总共聚成K种用户类别,其中K为整数,K的取值可根据实际需要进行设定。其次,根据K-均值聚类算法,确定聚类的停止条件为:同一用户类别的所有用户向量到其所在用户类别的聚类中心的距离和小于某个阈值T,其中T的取值可根据实际需要进行设定。第三,从所述S102构建的用户向量数据集中随机选取K个用户向量作为聚类的初始中心。第四,聚类;从所述用户向量数据集中依次取用户向量,分别计算每个用户向量与选取的K个聚类初始中心的距离,然后将每个用户向量归入与其距离最小的聚类初始中心所在的用户类别中。第五,计算聚类得到的每个用户类别中的所有用户对应的用户向量到所述用户所在的用户类别的聚类中心的距离和D是否小于阈值T,如果是,则聚类停止;否则,计算每个用户类别的所有用户对应的用户向量的均值,将所述均值作为相应的用户类别的新的聚类中心,重复第四步的聚类过程,直至D小于T为止。需要说明的是,经所述S103处理后,M个用户被聚为K(K≥1)个用户类别。
S104,计算每个用户类别的所述预设数量的特定软件的安装排行列表。
具体实现中,所述S103将M个用户聚为K个用户类别后,针对每一个用户类别下的用户,所述S104则统计该用户类别中每款特定软件的安装人数,并根据统计结果,计算得到每个用户类别关于N款特定软件的安装排行列表。可以理解的是,由于每个用户类别下的用户对于N款特定软件的安装情况可能存在差异,针对每个用户类别的N款特定软件的安装排行列表也可能存在差异,比如:办公性质的用户类别中,安装办公类的特定软件的用户数量可能比较多,安装家庭类的特定软件的用户数量可能比较少;而在家用性质的用户类别中,安装家庭类的特定软件的用户数量可能比较多,安装办公类的特定软件的用户数量可能比较少;因此,所述S104针对办公性质的用户类别计算得到的N款特定软件的安装排行列表与针对家用性质的用户类别计算得到的N款特定软件的安装排行列表可能存在差异。
需要说明的是,由于S104是根据用户的特性来获得各个用户类别下的特定软件的安装排行列表的,因此,电脑管理软件针对不同用户特性的用户,可通过对所述S104计算得到的安装排行列表进行筛选来获得针对不同特性用户的软件推荐列表,从而使得软件的推荐更有针对性,可获得更多的软件安装率。
本发明实施例根据当前在线的各个客户端的软件安装信息进行客户端的聚类分析,并计算得到每个用户类别关于预设数量的特定软件的安装排行列表,针对聚类后的各个客户端的特性以及软件安装信息进行特定软件的分析,得到针对该客户端的安装排行列表,这种针对客户端特性进行的个性化软件分析方案,可获得更多的软件安装率。
请参见图7,为本发明的软件分析方法的第二实施例的流程图;所述方法包括:
S201,读取当前在线的各个客户端的注册表,获得各个客户端的软件注册信息。
设定当前在线的客户端数量为M,其中,M为整数,M的取值根据实际情况进行确定。所述S201读取该M个客户端的注册表,获得各个客户端的软件注册信息。
S202,根据各个客户端的软件注册信息,确定各个客户端的软件安装信息。
所述S202根据所述S201读取的各个客户端的软件注册信息,可确定出各个客户端的软件安装信息,该软件安装信息主要包括:已安装的软件名称、简介、类型,及软件安装的时间等等。
本实施例中,所述S201-S202为上一实施例的S101的具体细化步骤。
S203,根据各个客户端的软件安装信息,确定各个客户端对应的包含预设数量的特定软件安装情况的用户向量。
如前述,由于所述S202得到的各个客户端的软件安装信息存在差异,如果对各个客户端的软件安装信息中出现的各个软件均进行考虑,这样获得的数据量过大,不利于软件的分析,因此,可以选取一定数量的大众软件作为特定软件来进行分析,如:可预设N款特定软件作为软件分析对象,其中N为整数,N的取值可根据实际需要进行设定。依上述例子,M个当前在线的客户端中,对于每一个客户端,根据所述S202获得的该客户端的软件安装信息,所述S203可确定该客户端关于N款特定软件的安装情况的N维向量,的第j分量表示客户端是否安装了N款特定软件中的软件,如果安装则,否则。所述S203为M个客户端中的每个客户端均构造一个对应的N维向量。
S204,所有客户端对应的用户向量构成所述预设数量的特定软件的用户向量数据集。
如前述,由于所述S203为M个客户端中的每个客户端均确定一个对应的N维向量,则所述S204即将该M个N维向量进行合并,构成N款特定软件的用户向量数据集。
本实施例中,所述S203-S204为上一实施例的S102的具体细化步骤。
S205,从所述用户向量数据集中随机选取预定数量的用户向量作为预定数量的用户类别的聚类中心。
具体实现中,本实施例采用K-均值聚类算法进行聚类,其聚类过程具体为:首先设定聚类的数量,如可设定聚类的数量为K,即将M个客户端总共聚成K种用户类别,其中K为整数,K的取值可根据实际需要进行设定。其次,根据K-均值聚类算法,确定聚类的停止条件为:同一用户类别的所有用户向量到其其对应的客户端所在用户类别的聚类中心的距离和小于某个阈值T,其中T的取值可根据实际需要进行设定。之后,所述S205从所述用户向量数据集中随机选取K个用户向量作为聚类的初始中心。
S206,依次计算所述用户向量数据集中的每个用户向量与预定数量的聚类中心的距离。
具体实现中,所述S206从所述用户向量数据集中依次取用户向量,分别计算每个用户向量与选取的K个聚类初始中心的距离。
S207,将各个用户向量对应的客户端归入与各个用户向量距离最小的聚类中心所在的用户类别。
所述S207比较所述S206计算得到的各个用户向量与K个聚类初始中心的距离,然后将每个用户向量对应的客户端归入与其距离最小的聚类初始中心所在的用户类别中。
S208,计算每个用户类别中的所有客户端对应的用户向量到所述客户端所在的用户类别的聚类中心的距离和。
S209,判断所述距离和是否均小于预设的阈值,若判断结果为否,转入S210;否则,转入S211。
S210,计算每个用户类别的所有客户端对应的用户向量的均值,将所述均值作为相应的用户类别的新的聚类中心;之后,转入S206。
本实施例中,所述S05-S210为上一实施例的S103的具体细化步骤。
S211,统计每个用户类别中的各个客户端关于所述预设数量的特定软件的安装情况。
具体实现中, M个客户端被聚为K个用户类别后,针对每一个用户类别下的客户端,所述S211统计该用户类别中每款特定软件的安装数量。
S212,根据所述统计结果,计算得到每个用户类别关于所述预设数量的特定软件的安装排行列表。
所述S212根据所述S211的统计结果,计算得到每个用户类别关于N款特定软件的安装排行列表。可以理解的是,由于每个用户类别下的客户端对于N款特定软件的安装情况可能存在差异,所述S212针对每个用户类别的N款特定软件的安装排行列表也可能存在差异,比如:办公性质的用户类别中,安装办公类的特定软件的客户端数量可能比较多,安装家庭类的特定软件的客户端数量可能比较少;而在家用性质的用户类别中,安装家庭类的特定软件的客户端数量可能比较多,安装办公类的特定软件的客户端数量可能比较少;因此,所述S212针对办公性质的用户类别计算得到的N款特定软件的安装排行列表与针对家用性质的用户类别计算得到的N款特定软件的安装排行列表可能存在差异。
本实施例中,所述S211-S212为上一实施例的S104的具体细化步骤。
本发明实施例根据当前在线的各个客户端的软件安装信息进行客户端的聚类分析,并计算得到每个用户类别关于预设数量的特定软件的安装排行列表,针对聚类后的各个客户端的特性以及软件安装信息进行特定软件的分析,得到针对该客户端的安装排行列表,这种针对客户端特性进行的个性化软件分析方案,可获得更多的软件安装率。
为了更清楚地说明本发明,下面将对本发明的软件推荐装置进行详细介绍。
请参见图8,为本发明的软件推荐装置的实施例的结构示意图;所述装置包括:
获取模块201,用于当接收到任一客户端的软件管理命令时,获取所述客户端的软件安装信息。
具体实现中,当任一客户端连接到服务器使用电脑管理软件的软件管理服务时,所述获取模块201即可接收到该客户端的软件管理命令,并获取该客户端的软件安装信息。所述获取模块201通过读取该客户端的注册表,获得该客户端的软件注册信息,然后通过软件注册信息即确定该客户端的软件安装信息,该软件安装信息主要包括:已安装的软件名称、简介、类型,及软件安装的时间等等。
向量确定模块202,用于根据所述获取模块201获取的所述客户端的软件安装信息,确定所述客户端对应的包含预设数量的特定软件安装情况的用户向量。
如前述,预设N款特定软件作为软件分析对象,其中N为整数,N的取值可根据实际需要进行设定。根据所述获取模块201获取的该客户端的软件安装信息,所述向量确定模块202可确定该客户端关于N款特定软件的安装情况的N维向量,的第j分量表示该客户端是否安装了N款特定软件中的软件,如果安装则,否则。
聚类计算模块203,用于根据所述向量确定模块202确定的所述客户端对应的用户向量,计算所述客户端所在的用户类别。
如前述,由于软件分析装置已对N款特性软件进行分析,得到的分析结果包括:K个用户类别以及每个用户类别关于N款特定软件的安装排行列表。所述聚类计算模块203首先获得K个用户类别的聚类中心(即每个用户类别下所有客户端对应的用户向量的均值),然后取所述向量确定模块202确定的所述客户端对应的用户向量,分别计算该用户向量与K个聚类中心的距离,将该客户端归入与该用户向量距离最小的聚类中心所在的用户类别中。
推荐模块204,用于根据所述客户端的软件安装信息,对所述聚类计算模块203计算得到的所述客户端所在的用户类别的所述预设数量的特定软件的安装排行列表进行筛选,生成软件推荐列表推荐给所述客户端进行显示。
所述推荐模块204根据所述客户端的软件安装信息,删除所述客户端所在的用户类别的所述N款特定软件的安装排行列表中已被所述客户端安装的特定软件,然后将所述筛选单元删除后的特定软件的安装排行列表作为软件推荐列表推荐给所述客户端进行显示,所述客户端即向本端的用户展示所述软件推荐列表。可以理解的是,若所述客户端已全部安装了N款特定软件,则所述推荐模块204提供给所述客户端的软件推荐列表中的项目为0。
需要说明的是,由于所述推荐模块204是根据客户端的特性来进行软件推荐的,因此,软件推荐列表中的项目以及项目排序根据不同特性的客户端具备不同的针对性,从而使得软件的推荐更有针对性,可获得更多的软件安装率。
本发明实施例当接收到任一客户端的软件管理命令时,首先对该客户端进行聚类分析,得到该客户端所在的用户类别(即客户端特性),然后根据该客户端的现有软件安装信息,提供有针对性的软件推荐,可提高客户端的用户对推荐的软件的关注度,从而提高软件安装率,增加软件推广商的效益。
需要说明的是,本发明实施例的软件分析装置和软件推荐装置可以合并电脑管理软件中内置的软件管理的模块,该软件管理的模块既具备软件分析功能,又具备软件推荐功能。
为了更清楚地说明本发明,下面将对本发明的所述软件推荐装置中的各模块进行详细介绍。
请参见图9,为图8所示的聚类计算模块的实施例的结构示意图;所述聚类计算模块203包括:
距离计算单元321,用于依次计算所述客户端对应的用户向量与所有用户类别的聚类中心的距离。
如前述,由于软件分析装置已对N款特性软件进行分析,得到的分析结果包括:K个用户类别以及每个用户类别关于N款特定软件的安装排行列表。所述距离计算单元321首先获得K个用户类别的聚类中心(即每个用户类别下所有用户对应的用户向量的均值),然后取所述客户端对应的用户向量,分别计算该用户向量与K个聚类中心的距离。
聚类单元322,用于根据所述距离计算单元321的计算结果,将所述客户端归入与所述客户端对应的用户向量距离最小的聚类中心所在的用户类别。
请参见图10,为图8所示的推荐模块的实施例的结构示意图;所述推荐模块204包括:
筛选单元421,用于根据所述客户端的软件安装信息,删除所述客户端所在的用户类别的所述预设数量的特定软件的安装排行列表中已被所述客户端安装的特定软件。
推荐单元422,用于将所述筛选单元421删除后的特定软件的安装排行列表作为软件推荐列表推荐给所述客户端进行显示。
本发明实施例提供有针对性的软件推荐,可提高客户端的用户对推荐的软件的关注度,从而提高软件安装率,增加软件推广商的效益。
为了更清楚地说明本发明,下面将对本发明的所述软件推荐装置所执行的软件推荐方法进行详细介绍。
请参见图11,为本发明的软件推荐方法的第一实施例的流程图;所述方法包括:
S301,当接收到任一客户端的软件管理命令时,获取所述客户端的软件安装信息。
具体实现中,当任一客户端连接到服务器使用电脑管理软件的软件管理服务时,所述S301即可接收到该客户端的软件管理命令,并获取该客户端的软件安装信息。所述S301通过读取该客户端的注册表,获得该客户端的软件注册信息,然后通过软件注册信息即确定该客户端的软件安装信息,该软件安装信息主要包括:已安装的软件名称、简介、类型,及软件安装的时间等等。
S302,根据所述客户端的软件安装信息,确定所述客户端对应的包含预设数量的特定软件安装情况的用户向量。
如前述,预设N款特定软件作为软件分析对象,其中N为整数,N的取值可根据实际需要进行设定。根据所述S301获取的该客户端的软件安装信息,所述S302可确定该客户端关于N款特定软件的安装情况的N维向量,的第j分量表示该客户端是否安装了N款特定软件中的软件,如果安装则,否则。
S303,根据所述客户端对应的用户向量,计算所述客户端所在的用户类别。
如前述,由于软件分析装置已对N款特性软件进行分析,得到的分析结果包括:K个用户类别以及每个用户类别关于N款特定软件的安装排行列表。所述S303首先获得K个用户类别的聚类中心(即每个用户类别下所有客户端对应的用户向量的均值),然后取所述S302确定的所述客户端对应的用户向量,分别计算该用户向量与K个聚类中心的距离,将该客户端归入与该用户向量距离最小的聚类中心所在的用户类别中。
S304,根据所述客户端的软件安装信息,对所述客户端所在的用户类别的所述预设数量的特定软件的安装排行列表进行筛选,生成软件推荐列表推荐给所述客户端进行显示。
所述S304根据所述客户端的软件安装信息,删除所述客户端所在的用户类别的所述N款特定软件的安装排行列表中已被所述客户端安装的特定软件,然后将所述筛选单元删除后的特定软件的安装排行列表作为软件推荐列表推荐给所述客户端进行显示,所述客户端即向本端的用户展示所述软件推荐列表。可以理解的是,若所述客户端已全部安装了N款特定软件,则所述S304提供给所述客户端的软件推荐列表中的项目为0。
需要说明的是,由于所述S304是根据客户端的特性来进行软件推荐的,因此,软件推荐列表中的项目以及项目排序根据不同特性的客户端具备不同的针对性,从而使得软件的推荐更有针对性,可获得更多的软件安装率。
本发明实施例当接收到任一客户端的软件管理命令时,首先对该客户端进行聚类分析,得到该客户端所在的用户类别(即客户端特性),然后根据该客户端的现有软件安装信息,提供有针对性的软件推荐,可提高客户端的用户对推荐的软件的关注度,从而提高软件安装率,增加软件推广商的效益。
请参见图12,为本发明的软件推荐方法的第二实施例的流程图;所述方法包括:
S401,当接收到任一客户端的软件管理命令时,获取所述客户端的软件安装信息。
S402,根据所述客户端的软件安装信息,确定所述客户端对应的包含预设数量的特定软件安装情况的用户向量。
本实施例中,所述S401-S402与上一实施例的S301-S302步骤相同,在此不赘述。
S403,依次计算所述客户端对应的用户向量与所有用户类别的聚类中心的距离。
如前述,由于软件分析装置已对N款特性软件进行分析,得到的分析结果包括:K个用户类别以及每个用户类别关于N款特定软件的安装排行列表。所述S403首先获得K个用户类别的聚类中心(即每个用户类别下所有用户对应的用户向量的均值),然后取所述客户端对应的用户向量,分别计算该用户向量与K个聚类中心的距离。
S404,将所述客户端归入与所述客户端对应的用户向量距离最小的聚类中心所在的用户类别。
本实施例中,所述S403-S404为上一实施例的S303的具体细化步骤。
S405,根据所述客户端的软件安装信息,删除所述客户端所在的用户类别的所述预设数量的特定软件的安装排行列表中已被所述客户端安装的特定软件。
S406,将删除后的特定软件的安装排行列表作为软件推荐列表推荐给所述客户端进行显示。
本实施例中,所述S405-S406为上一实施例的S304的具体细化步骤。
本发明实施例当接收到任一客户端的软件管理命令时,首先对该客户端进行聚类分析,得到该客户端所在的用户类别(即客户端特性),然后根据该客户端的现有软件安装信息,提供有针对性的软件推荐,可提高客户端的用户对推荐的软件的关注度,从而提高软件安装率,增加软件推广商的效益。
通过上述各实施例的描述,本发明实施例根据当前在线的各个客户端的软件安装信息进行客户端的聚类分析,并计算得到每个用户类别关于预设数量的特定软件的安装排行列表,针对聚类后的各个客户端的特性以及软件安装信息进行特定软件的分析,得到针对该客户端的安装排行列表,这种针对客户端特性进行的个性化软件分析方案,可获得更多的软件安装率;另外,本发明实施例当接收到任一客户端的软件管理命令时,首先对该客户端进行聚类分析,得到该客户端所在的用户类别(即客户端特性),然后根据该客户端的现有软件安装信息,提供有针对性的软件推荐,可提高客户端的用户对推荐的软件的关注度,从而提高软件安装率,增加软件推广商的效益。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。
机译: 段分析装置,推荐装置,段分析方法,推荐方法,段分析程序和推荐程序
机译: 具有打印装置推荐功能的打印作业分析方法和装置
机译: 利用增强现实自动推荐应用程序的装置及其能够自动将分析信息应用于推荐应用程序的方法