【发明内容】
基于此,有必要提供一种能提高软件推荐成功率的软件推荐方法。
一种软件推荐方法,包括以下步骤:
服务器创建用户群特征库,所述用户群特征库中存储了用户群类别和对应的用户群判别特征;
客户端提取用户的特征信息,并将所述用户的特征信息提交到所述服务器;
所述服务器将所述用户的特征信息与所述用户群特征库中的用户群判别特征进行匹配,确定所述用户所属的用户群类别;
所述服务器根据所述确定的用户群类别向所述用户推荐软件。
优选的,所述服务器创建用户群特征库的步骤包括:
选取样本用户;
对所述样本用户进行分类,得到所述样本用户的初始类别;
获取所述样本用户的特征信息;
根据所述初始类别和用户的特征信息创建用户群特征库。
优选的,所述获取样本用户的特征信息的步骤为:
获取样本用户的用户信息,提取所述用户信息中与软件相关的特征信息;
所述根据所述初始类别和用户的特征信息创建用户群特征库的步骤为:
根据所述初始类别对所述用户的特征信息进行聚类分析;
根据聚类分析结果获取用户群类别、对应的用户群判别特征及所述用户群判别特征的参考值;
将所述用户群类别、对应的用户群判别特征及所述用户群判别特征的参考值存储在用户群特征库中。
优选的,所述服务器将所述用户的特征信息与所述用户群特征库中的用户群判别特征进行匹配,确定所述用户所属的用户群类别的步骤为:
获取所述用户的特征信息中的特征值;
计算所述特征值与各类用户群类别对应的所述用户群判别特征的参考值之间的距离;
获取最小的所述距离对应的用户群类别,为所述用户所属的用户群类别。
优选的,所述方法还包括:
所述服务器设置与所述用户群类别对应的软件推荐列表;
所述服务器根据所述确定的用户群类别向所述用户推荐软件的步骤为:
根据所述确定的用户群类别选取对应的软件推荐列表;
从所述软件推荐列表中筛选出所述用户未安装的或比用户安装的软件版本更新的软件推荐给所述用户。
此外,还有必要提供一种能提高软件推荐成功率的软件推荐***。
一种软件推荐***,包括服务器和与所述服务器进行数据交互的客户端,所述服务器包括:
创建模块,用于创建用户群特征库,所述用户群特征库中存储了用户群类别和对应的用户群判别特征;
所述客户端包括:信息提取模块,用于提取用户的特征信息,并将所述用户的特征信息提交到所述服务器;
所述服务器还包括:
匹配模块,用于将所述用户的特征信息与所述用户群特征库中的用户群判别特征进行匹配,确定所述用户所属的用户群类别;
推荐模块,用于根据所述确定的用户群类别向所述用户推荐软件。
优选的,所述创建模块包括:
样本选取模块,用于选取样本用户;
初始分类模块,用于对所述样本用户进行分类,得到所述样本用户的初始类别;
特征信息获取模块,用于获取所述样本用户的特征信息;
特征库创建子模块,用于根据所述初始类别和用户的特征信息创建用户群特征库。
优选的,所述特征信息获取模块还用于获取所述样本用户的用户信息,提取所述用户信息中与软件相关的特征信息;
所述特征库创建子模块包括:
聚类分析模块,用于根据所述初始类别对所述用户的特征信息进行聚类分析;
用户群类别获取模块,用于根据聚类分析结果获取用户群类别、对应的用户群判别特征及所述用户群判别特征的参考值;
用户群特征库,用于存储所述用户群类别、对应的用户群判别特征及所述用户群判别特征的参考值。优选的,所述匹配模块包括:
特征值获取模块,用于获取所述用户的特征信息中的特征值;
距离计算模块,用于计算所述特征值与各类所述用户群判别特征的参考值之间的距离;
用户类别确定模块,用于获取最小的所述距离对应的用户群类别,为所述用户所属的用户群类别。
优选的,所述服务器还包括:
设置模块,用于设置与所述用户群类别对应的软件推荐列表;
所述推荐模块包括:
列表选取模块,用于根据所述确定的用户群类别选取对应的软件推荐列表;
筛选模块,用于从所述软件推荐列表中筛选出所述用户未安装的或比用户安装的软件版本更新的软件推荐给所述用户。
上述软件推荐方法和***,通过将客户端提取的用户的特征信息与服务器中的用户群特征库中的用户群判别特征进行匹配,来确定用户所属的用户群类别,然后向用户推荐与用户群类别对应的软件。由于不同的用户群类别所感兴趣的软件不同,根据用户的特征信息向用户推荐其所属用户群类别对应的软件,能够提高用户接受推荐软件的可能性,从而提高软件推荐的成功率。
【具体实施方式】
如图1所示,在一个实施例中,一种软件推荐方法,包括以下步骤:
步骤S10,服务器创建用户群特征库,用户群特征库中存储了用户群类别和对应的用户群判别特征。
用户群类别是对大量的用户进行分类后所得到的多种类别,如游戏用户类、学生用户类等。用户群判别特征是指用于判别用户所属的用户群类别的特征,例如,学生用户类的判别特征可以是安装的上网类软件的个数、安装的娱乐类软件的个数、安装的学习类软件的个数、使用软件的时间段等。
步骤S20,客户端提取用户的特征信息,并将用户的特征信息提交到服务器。
在用户使用各种软件的过程中,客户端记录用户的原始信息,例如已装软件列表、软件的安装时间、软件的使用频率、软件的升级频率、用户浏览网页记录等。客户端从记录的原始信息中提取特征信息,所提取的特征信息可用于确定用户所属用户群类别。具体的,特征信息包括各类软件数目、软件安装时间、各类软件使用频率、各类软件升级频率、各类网页浏览时长等,其中,软件的类别可以是上网类、娱乐类、游戏类、学习类等。
在一个实施例中,可以由客户端从用户的原始信息中提取出用于确定用户所属用户群类别的特征信息,并将提取的特征信息提交到服务器。在另一个实施例中,客户端也可直接将用户的原始信息提交到服务器,由服务器从用户的原始信息中提取特征信息。
步骤S30,服务器将用户的特征信息与用户群特征库中的用户群判别特征进行匹配,确定用户所属的用户群类别。
具体的,服务器获取与用户特征信息最匹配的用户群判别特征,则该判别特征对应的用户群类别即为用户所属的用户群类别。
步骤S40,服务器根据确定的用户群类别向用户推荐软件。
不同的用户群类别可以设置推荐不同的软件,例如,对于游戏用户类,则推荐游戏类软件,对于办公用户类,则推荐办公类软件。
上述软件推荐方法,通过将客户端提取的用户的特征信息与服务器中的用户群特征库中的用户群判别特征进行匹配,来确定用户所属的用户群类别,然后向用户推荐与用户群类别对应的软件。由于不同的用户群类别所感兴趣的软件不同,根据用户的特征信息向用户推荐其所属用户群类别对应的软件,能够提高用户接受推荐软件的可能性,从而提高软件推荐的成功率。
如图2所示,在一个实施例中,服务器创建用户群特征库的具体过程为:
步骤S110,选取样本用户。
服务器从存储的用户数据中选取部分用户作为样本用户,选取的样本用户尽可能涉及到不同的类别,如网吧用户类、学生用户类、儿童用户类、老年人用户类、软件开发用户类、游戏用户类等。
步骤S120,对样本用户进行分类,得到样本用户的初始类别。
步骤S130,获取样本用户的特征信息。
服务器中存储的用户数据包括用户的原始信息,因此需从原始信息中提取用户的特征信息,包括各类软件数目、软件安装时间、各类软件使用频率、各类软件升级频率、各类网页浏览时长等。
步骤S140,根据初始类别和用户的特征信息创建用户群特征库。
如图3所示,在另一个实施例中,服务器创建用户群特征库的具体过程为:
步骤S101,选取样本用户。
步骤S102,对样本用户进行分类,得到样本用户的初始类别。
步骤S103,获取样本用户的用户信息,提取用户信息中与软件相关的特征信息。
用户信息即为用户的原始信息,从用户的原始信息中提取与软件相关的特征信息,具体的,可通过传统的欧式距离度量、按概率距离判据、用散度准则函数、基于判别熵最小化等方法中的一种或几种相结合来提取与软件相关的特征信息。例如提取的与软件相关的特征信息包括安装的各类软件的数目、各类软件的安装时间、各类软件的使用频率、各类软件的升级频率和各类网页的浏览时长等。
步骤S104,根据初始类别对用户的特征信息进行聚类分析。
具体的,可采用传统的C均值算法、ISODATA算法、基于样本和核的相似性度量算法、近邻函数准则算法等方法中的任意一种或几种方法相结合来对用户的特征信息进行聚类分析。
步骤S105,根据聚类分析结果获取用户群类别、对应的用户群判别特征及用户群判别特征的参考值。
如果对于特征信息中的某一个特征,某一初始类别的所有样本用户相应的特征值都比较接近,且同其它初始类别的样本用户的相应的特征值差异较大,说明该特征对该用户群不但具有内聚性,还能通过该特征将该用户群与其它用户群分离开,则该特征为该用户群的判别特征。相反的,如果对于某一个初始类别的样本用户,其特征信息中的某一个特征的特征值存在很大差异,则该特征不作为该初始用户群类别的判别特征。例如在游戏用户类的100个特征中,工具类软件的安装个数这一特征的特征值存在很大的差异,则工具类软件的安装个数这一特征不作为游戏用户类的判别特征。
进一步的,可根据该初始类别的所有样本用户相应的特征值确定该判别特征的参考值。具体的可以取与该判别特征相应的所有特征值的平均值或者所有特征值中的众数作为该用户群的该判别特征的参考值。
进一步的,确定最终的用户群类别,将不合适的初始分类删除或合并。如果对于特征信息中的每一个特征,某一初始类别的样本用户特征值之间都存在很大的差异,说明该初始类别的划分没有意义,则将该初始类别删除;如果某两个初始类别的判别特征大致相同,且每一个判别特征对应的特征值也大致相同,则将其中任意一个初始类别合并到另一个初始类别中。从而确定用户群特征库中最终的用户群类别。
步骤S106,将获取的用户群类别、对应的用户群判别特征及用户群判别特征的参考值存储在用户群特征库中。
如图4所示,在一个实施例中,步骤S30的具体过程为:
步骤S302,获取用户的特征信息中的特征值。
例如,某用户的特征信息为:上网类软件5款、上网类软件使用频率1小时/天、娱乐类软件3款、娱乐类软件使用频率2小时/天、工具类软件2款、工具类软件使用频率0.5小时/天,则可提取特征信息中的特征值5、1、3、2、2、0.5。进一步的,可将提取的特征值组成特征向量。如上例中将特征值组成特征向量为(5,1,3,2,2,0.5)。
步骤S304,计算特征值与各类用户群类别对应的用户群判别特征的参考值之间的距离。
在一个实施例中,计算用户的特征值与各类用户群判别特征的参考值之间的欧式距离。具体的,可分别将步骤S302中获取的特征值和用户群判别特征的参考值组成特征向量,并计算两个特征向量之间的欧式距离。
另外,当用户特征值向量的维数大于某一个用户群类别的判别特征的参考值向量的维数时,则以判别特征的参考值向量为基准,剔除用户特征值向量中的判别特征参考值以外的多余特征值,使得用户特征值向量与判别特征参考值向量维数一致,再计算两者之间的欧式距离。
步骤S306,获取最小距离对应的用户群类别,为用户所属的用户群类别。
用户的特征值与用户群判别特征的参考值的距离越小,则说明该用户与该判别特征对应的用户群类别越接近,获取两者距离最小的用户群判别特征对应的用户群类别为用户所属的用户群类别。
在另一个实施例中,上述软件推荐方法还包括步骤:服务器设置与用户群类别对应的软件推荐列表。具体的,可以根据各个用户群类别的判别特征来设置相应的软件推荐列表,并在服务器中存储用户群类别与软件推荐列表的对应关系表。例如,对于游戏类用户,可设置软件推荐列表包括:QQ飞车、英雄杀、QQ三国等。如此设置的软件推荐列表更能满足用户的潜在需求,提高用户接受推荐软件的概率,从而进一步提高软件推荐的成功率。
如图5所示,在一个实施例中,上述步骤S40的具体过程为:
步骤S402,根据确定的用户群类别选取对应的软件推荐列表。
根据用户所属的用户群类别,在用户群类别与软件推荐列表的对应关系表中查找到相应的软件推荐列表。
步骤S404,从软件推荐列表中筛选出用户未安装的或比用户安装的软件版本更新的软件推荐给用户。
具体的,根据用户的特征信息可以获取用户当前已经安装的软件列表,将已经安装的软件列表与软件推荐列表进行对比,可得到软件推荐列表中用户未安装的软件以及比用户已安装的软件版本更新的软件,则将得到的软件推荐列表中用户未安装的软件以及比用户已安装的软件版本更新的软件更推荐给用户。另外,客户端收到服务器推荐的软件后,进行展示,用户可以选择相应软件进行下载和安装。
如图6所示,在一个实施例中,一种软件推荐***,包括服务器100以及与服务器100进行数据交互的客户端200;服务器100包括创建模块110、匹配模块120和推荐模块130;客户端200包括信息提取模块210;其中:
创建模块110用于创建用户群特征库,用户群特征库中存储了用户群类别和对应的用户群判别特征。
用户群类别是对大量的用户进行分类后所得到的多种类别,如游戏用户类、学生用户类等。用户群判别特征是指用于判别用户所属的用户群类别的特征,例如,学生用户类的判别特征可以是安装的上网类软件的个数、安装的娱乐类软件的个数、安装的学习类软件的个数、使用软件的时间段等。
信息提取模块210用于提取用户的特征信息,并将用户的特征信息提交到服务器100。
在用户使用各种软件的过程中,客户端200记录用户的原始信息,例如已装软件列表、软件的安装时间、软件的使用频率、软件的升级频率、用户浏览网页记录等。客户端200的信息提取模块210从记录的原始信息中提取特征信息,所提取的特征信息可用于确定用户所属用户群类别。具体的,特征信息包括各类软件数目、软件安装时间、各类软件使用频率、各类软件升级频率、各类网页浏览时长等,其中,软件的类别可以是上网类、娱乐类、游戏类、学习类等。
在一个实施例中,信息提取模块210可用于从用户的原始信息中提取出用于确定用户所属用户群类别的特征信息,并将提取的特征信息提交到服务器100。在另一个实施例中,信息提取模块210也可用于直接将用户的原始信息提交到服务器100,由服务器100从用户的原始信息中提取特征信息。
匹配模块120用于将用户的特征信息与用户群特征库中的用户群判别特征进行匹配,确定用户所属的用户群类别。
具体的,匹配模块120用于获取与用户特征信息最匹配的用户群判别特征,则对应的用户群类别即为用户所属的用户群类别。
推荐模块130用于根据确定的用户群类别向用户推荐软件。
不同的用户群类别可以设置推荐不同的软件,例如,对于游戏用户类,则推荐游戏类软件,对于办公用户类,则推荐办公类软件。
上述软件推荐***,通过将客户端200提取的用户的特征信息与服务器100中的用户群特征库中的用户群判别特征进行匹配,来确定用户所属的用户群类别,然后向用户推荐与用户群类别对应的软件。由于不同的用户群类别所感兴趣的软件不同,根据用户的特征信息向用户推荐其所属用户群类别对应的软件,能够提高用户接受推荐软件的可能性,从而提高软件推荐的成功率。
如图7所示,在一个实施例中,创建模块110包括样本选取模块112、初始分类模块114、特征信息获取模块116和特征库创建子模块118,其中:
样本选取模块112用于选取样本用户。
具体的,样本选取模块112用于从存储的用户数据中选取部分用户作为样本用户,选取的样本用户尽可能涉及到不同的类别,如网吧用户类、学生用户类、儿童用户类、老年人用户类、软件开发用户类、游戏用户类等。
初始分类模块114用于对所述样本用户进行分类,得到所述样本用户的初始类别。
特征信息获取模块116用于获取样本用户的特征信息。
服务器100中存储的用户数据包括用户的原始信息,因此需从原始信息中提取用户的特征信息。
优选的,特征信息获取模块116用于获取样本用户的用户信息,提取用户信息中与软件相关的特征信息。具体的,特征信息获取模块116可用于通过传统的欧式距离度量、按概率距离判据、用散度准则函数、基于判别熵最小化等方法中的一种或几种相结合来提取与软件相关的特征信息。例如提取的与软件相关的特征信息包括安装的各类软件的数目、各类软件的安装时间、各类软件的使用频率、各类软件的升级频率和各类网页的浏览时长等。
特征库创建子模块118用于根据初始类别和用户的特征信息创建用户群特征库。
如图8所示,在一个实施例中,特征库创建子模块118包括聚类分析模块1180、用户群类别获取模块1182和用户群特征库1184,其中:
聚类分析模块1180用于根据初始类别对用户的特征信息进行聚类分析。
具体的,聚类分析模块1180可用于采用传统的C均值算法、ISODATA算法、基于样本和核的相似性度量算法、近邻函数准则算法等方法中的任意一种或几种方法相结合来对用户的特征信息进行聚类分析。
用户群类别获取模块1182用于根据聚类分析结果获取用户群类别、对应的用户群判别特征及所述用户群判别特征的参考值。
如果对于特征信息中的某一个特征,某一初始类别的所有样本用户相应的特征值都比较接近,且同其它初始类别的样本用户的相应的特征值差异较大,说明该特征对该用户群不但具有内聚性,还能通过该特征将该用户群与其它用户群分离开,则该特征为该用户群的判别特征。相反的,如果对于某一个初始类别的样本用户,其某一个特征的特征值存在很大差异,则该特征不作为该初始用户群类别的判别特征。例如在游戏用户类的100个特征中,工具类软件的安装个数这一特征的特征值存在很大的差异,则工具类软件的安装个数这一特征不作为游戏用户类的判别特征。
进一步的,用户群类别获取模块1182可用于根据该初始类别的所有样本用户相应的特征值确定该判别特征的参考值。具体的,用户群类别获取模块1182可用于取与该判别特征相应的所有特征值的平均值或者所有特征值中的众数作为该用户群的该判别特征的参考值。
进一步的,用户群类别获取模块1182可用于确定最终的用户群类别,将不合适的初始分类删除或合并。如果对于特征信息中的每一个特征,某一初始类别的样本用户特征值之间都存在很大的差异,说明该初始类别的划分没有意义,则将该初始类别删除;如果某两个初始类别的判别特征大致相同,且每一个判别特征对应的特征值也大致相同,则将其中任意一个初始类别合并到另一个初始类别中。从而确定用户群特征库最终的用户群类别。
用户群特征库1184用于存储用户群类别、对应的用户群判别特征及所述用户群判别特征的参考值。
如图9所示,在一个实施例中,匹配模块120包括特征值获取模块122、距离计算模块124和用户类别确定模块126,其中:
特征值获取模块122用于获取所述用户的特征信息中的特征值。
例如,某用户的特征信息为:上网类软件5款、上网类软件使用频率1小时/天、娱乐类软件3款、娱乐类软件使用频率2小时/天、工具类软件2款、工具类软件使用频率0.5小时/天,则可提取特征信息中的特征值5、1、3、2、2、0.5。进一步的,特征值获取模块122可用于将提取的特征值组成特征向量。如上例中将特征值组成特征向量为(5,1,3,2,2,0.5)。
距离计算模块124用于计算特征值与各类用户群类别对应的用户群判别特征的参考值之间的距离。
在一个实施例中,距离计算模块124用于计算用户的特征值与各类用户群判别特征的参考值之间的欧式距离。具体的,距离计算模块124可用于分别将特征值获取模块122获取的特征值和用户群判别特征的参考值组成特征向量,并计算两个特征向量之间的欧式距离。
另外,当用户特征值向量的维数大于某一个用户群类别的判别特征的参考值向量的维数时,则以判别特征的参考值向量为基准,剔除用户特征值向量中的判别特征参考值以外的多余特征值,使得用户特征值向量与判别特征参考值向量维数一致,再计算两者之间的欧式距离。
用户类别确定模块126用于获取最小的所述距离对应的用户群类别,为所述用户所属的用户群类别。
用户的特征值与用户群判别特征的参考值的距离越小,则说明该用户与该判别特征对应的用户群类别越接近,用户类别获取模块126用于获取两者距离最小的用户群判别特征对应的用户群类别为用户所属的用户群类别。
在另一个实施例中,服务器100还包括设置模块(图中未示出),用于设置与用户群类别对应的软件推荐列表。
具体的,设置模块可用于根据各个用户群类别的判别特征来设置相应的软件推荐列表,并在服务器100中存储用户群类别与软件推荐列表的对应关系表。例如,对于游戏类用户,可设置软件推荐列表包括:QQ飞车、英雄杀、QQ三国等。如此设置的软件推荐列表更能满足用户的潜在需求,提高用户接受推荐软件的概率,从而提高软件推荐的成功率。
如图10所示,在一个实施例中,推荐模块130包括列表选取模块132、筛选模块134,其中:
列表选取模块132用于根据确定的用户群类别选取对应的软件推荐列表。
具体的,列表选择模块132用于根据用户所属的用户群类别,在用户群类别与软件推荐列表的对应关系表中查找到相应的软件推荐列表。
筛选模块134用于从软件推荐列表中筛选出用户未安装的或比用户安装的软件版本更新的软件推荐给用户。
具体的,筛选模块134用于根据用户的特征信息可以获取用户当前已经安装的软件列表,将已经安装的软件列表与软件推荐列表进行对比,可得到软件推荐列表中用户未安装的软件以及比用户已安装的软件版本更新的软件,则将得到的软件推荐列表中用户未安装的软件以及比用户已安装的软件版本更新的软件更推荐给用户。另外,客户端200收到服务器100推荐的软件后,可进行展示,用户可以选择相应软件进行下载和安装。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。