具体实施方式
如图1所示,在一个实施例中,一种软件推荐方法,包括如下步骤:
步骤S10,捕捉启动事件。
本实施例中,启动事件为***中任一程序启动时创建相应进程的过程,可通过预先设置的内核驱动拦截接口函数实现任一程序所对应的启动事件的捕捉。具体的,接口函数可以是NtCreateProcess、NtCreateSection等函数
步骤S30,获取与启动事件对应的启动程序信息,并根据启动程序信息发起查询请求。
本实施例中,在捕捉到某一程序创建相应的进程以进行启动时,仍然正常启动该程序,并且获取该启动事件所对应的启动程序信息。启动程序信息用于标记与被启动程序相关的各种属性、身份等信息。具体的,启动程序信息包括被启动程序的信息摘要值、程序名称、程序描述或数字签名等。
根据获取到的启动程序信息生成查询请求,查询请求中包含了启动程序信息中记录的内容,在启动某一程序时通过生成的查询请求向后台发起查询,以触发后台对应当前启动的程序所进行的软件推荐。
上述软件推荐方法在终端的独立运行,实现了客户端中的软件推荐处理过程,因此,有必要提供一种运行于客户端中的软件推荐方法,其具体流程如上述步骤S10和步骤S30所述。
步骤S50,根据查询请求中的启动程序信息查找启动程序的类别。
本实施例中,后台在接收到发起的查询请求之后,将从查询请求中提取出启动程序信息,以在后台记录的软件信息中查找启动程序所属的类别。具体的,预先对互联网资源中各种软件进行分类,例如,软件的类别可以是“办公”、“***工具”、“网络应用”和“安全防护”等,在分类过程中,每一软件均有与其相对应的类别,以及用于标记该软件的信息摘要值、软件名称、软件描述和数字签名等相关信息。
如图2所示,在一个实施例中,上述步骤S50的具体过程为:
步骤S510,根据查询请求中的启动程序信息在软件信息中进行查找,判断是否存在与启动程序信息相同的软件信息条目,若是,则进入步骤S530,若否,则进入步骤S550。
本实施例中,软件信息包括若干软件信息条目,每一软件信息条目用于标记软件的属性,具体地记录了软件所对应的信息摘要值、软件名称、软件描述、数字签名和类别。一实施例中,软件信息为列表的形式,每一软件信息条目对应了一个列表表项,并以信息摘要值为索引,方便软件信息条目的查找。
例如,软件信息中的任一软件信息条目如下表所示存储于后台中:
将查询请求中的启动程序信息与软件信息条目进行逐一比对得到与启动信息一致的软件信息条目,进而从得到的软件信息条目中提取记录的类别,该类别即为启动程序所属的类别。
若在软件信息中没有查找到与启动程序信息相同的软件信息条目,则需将启动程序信息更新到软件信息中成为新的软件信息条目,丰富软件信息中的内容,使得软件信息中记录更多各类的软件。
步骤S530,提取软件信息条目记录的类别。
本实施例中,若软件信息条目中没有记录相应的类别,则需要对该项软件信息条目进行更新,添加软件所对应的类别。
步骤S550,将启动程序信息更新到软件信息。
本实施例中,将启动程序信息更新到软件信息中形成新的软件信息条目,此时,还需根据启动程序信息中记录的软件名称、软件描述等信息通过人工分类、自动分类或者人工和自动分类相结合的方式实现该启动程序的分类,并且在新的软件信息条目中添加分类得到的类别。
进一步的,自动分类可以通过决策树算法、贝叶斯算法以及规则关联算法等实现。
步骤S70,选取与类别相匹配的软件,并向触发启动事件的终端推送选取的软件。
本实施例中,通过后台根据启动程序信息所进行查找得到的类别进行软件选取,选取得到的软件所属类别是与查找得到的类别相同或者相近的,例如,若查找得到的类别为“办公”,则所属类别为“办公”和“办公学习”的软件将会被选取,并向触发启动事件的终端推送。具体的,在后台所进行的软件推送过程中,可以通过用户标识来唯一标记触发启动事件的用户所在的终端,并按照用户标识将选取的软件进行推送,进而以弹出对话框或者其它形式向用户展示推送的软件,实现程序的启动和运行过程中向用户推荐与启动程序相关的其它软件,使得软件推荐进一步贴近用户意图。
如图3所示,在一个实施例中,上述步骤S70的具体过程为:
步骤S710,在软件和使用用户的对应关系中得到网络社交工具用户和使用的软件,并从得到的软件中选取与类别相匹配的软件。
本实施例中,软件推荐中引入网络社交工具用户信息,以网络社交工具用户信息作为依据进行软件的选取,其中,网络社交工具用户信息为使用了网络社交工具的用户所对应的用户信息,随着互联网应用的发展,所应用的网络社交工具也越来越多,可以是SNS社区网络、基于邮箱联系人的社交网络、微博、博客等,例如,SNS社区网络中,网络社交工具用户信息可以是SNS社区网络中用户的用户信息。
后台除了存储软件信息之外,还存储了软件和使用用户的对应关系,通过软件和使用用户的对应关系得到使用了某一软件的用户。具体的,软件和使用用户的对应关系是将软件标识和使用用户标识联合作为关键词,并相应记录该软件的类别、信息摘要值等信息。将软件标识和使用用户标识联合作为索引有利于保证某一用户使用某一软件的记录不会被重复存储。
例如,软件和使用用户的对应关系可通过用户和软件关系表的形式进行存储,具体如下表所示:
从网络社交工具服务器中获取网络社交工具用户信息,该网络社交工具是当前触发启动事件的用户使用的。网络社交工具用户信息中包括相应的用户标识,获取网络社交工具用户信息,根据网络社交工具用户信息中的用户标识在后台存储的软件和使用用户的对应关系得到与网络社交工具用户信息中的用户标识相同的使用用户标识,进而根据得到的使用用户标识得到网络社交工具用户所使用的软件。
例如,网络社交工具用户信息可通过列表的形式进行存储,网络社交工具用户信息表具体如下表所示:
根据网络社交工具用户信息在软件和使用用户的对应关系中得到网络社交工具用户和使用的软件的过程中,可在用户和软件关系表以及网络社交工具用户信息表进行查找,即用户和软件关系表中的user_id=网络社交工具用户信息表中的friend_id,进而得到用户和软件关系表与网络社交工具用户信息表的对应关系,进而得到网络社交工具用户所使用的软件。在得到网络社交工具用户使用的软件之后,还需根据启动程序的类别对网络社交工具用户使用的软件进行选取,得到与启动程序类别相同或者相似的网络社交工具用户使用的软件。
在软件推荐过程中,为方便进行软件的选取等处理过程,无论是触发启动事件的用户标识,还是网络社交工具用户信息中的用户标识以及上述对应关系中使用用户标识均采用同一标识体系,例如,触发启动事件的用户标识和上述对应关系中使用用户标识均采用网络社交工具所应用的标识体系;此外,也可以在触发启动事件的用户标识、网络社交工具用户信息中的用户标识以及上述对应关系中使用用户标识均使用邮箱地址作为身份标识,在此不再一一列举。
在另一个实施例中,上述步骤S730之前还包括:根据触发启动事件的用户对网络社交工具用户和网络社交工具用户使用的软件进行过滤,得到用户在网络社交工具用户中的好友和使用的软件。
本实施例中,对网络社交工具用户和网络社交工具用户使用的软件进行过滤筛选,得到网络社交工具中与当前触发启动事件的用户存在好友关系的网络社交工具用户及其使用的软件。
步骤S730,向触发启动事件的终端推送网络社交工具用户和使用的软件。
在一个实施例中,上述步骤S730之后还包括对软件进行计数得到软件的出现次数的步骤。
本实施例中,根据计数得到的出现次数按照从大到小的顺序进行排序,进而按照排序得到的网络社交工具用户和使用的软件向触发启动事件的终端推送。具体的,按照出现次数从大到小的顺序生成网络社交工具用户使用的软件推荐列表,每一列表表项中记录了相应的网络社交工具用户以及使用的软件。
在另一个实施例中,根据出现次数对网络社交工具用户使用的软件进行选取,得到预设数量的网络社交工具用户使用的软件,进而向触发启动事件的终端推送,以告之触发启动事件的用户,XX、XX等好友正在使用XX类软件XX,从而触发启动事件的用户可通过点击相应的网络链接进行下载。在多个待推荐的软件中选取预设数量的网络社交工具用户使用的软件,进而向触发启动事件的终端推送出现次数较多的网络社交工具用户使用的软件,以避免符合触发启动事件的用户意图的软件淹没于大量的推荐软件中,提高软件推荐的准确性和有效性。
如图4所示,在一个实施例中,上述步骤S730的具体过程为:
步骤S731,在得到的软件中选取预设数量的软件。
本实施例中,在与启动程序的类别相匹配的网络社交工具用户使用的软件中根据计数得到的出现次数进行软件的选取,在优选的实施例中,与启动程序的类别相匹配的网络社交工具用户使用的软件为网络社交工具中与触发启动事件的用户存在好友关系的好友所使用的软件,并根据出现次数所对应的从大到水的顺序选取得到。
在另一个实施例中,上述步骤S731之后还包括:判断选取的软件是否与启动程序相一致,若否,则进入步骤S733,若是,则在选取的软件中去除与启动程序相一致的软件。
本实施例中,若判断到选取的软件均与启动程序相一致,则需对其进行清除,不能向用户推荐,以进一步保证软件推荐的有效性。
步骤S733,获取使用软件的好友对应的网络社交工具用户信息。
步骤S735,将选取的软件以及使用软件的好友对应的网络社交工具用户信息推送给触发启动事件的终端。
本实施例中,向触发启动事件的终端推送好友使用的软件以及该好友的网络社交工具用户信息,其中,所推送的好友使用的软件是与启动程序处于同一类别或者相似类别的。
在启动和运行程序的过程中主动进行软件推荐,使得用户不需要时常主动地关注和搜索最新的软件,并且只针对启动和运行的程序,有效地过滤不相关信息的干扰。
如图5所示,在一个实施例中,一种软件推荐***,包括捕捉模块10、启动处理模块30、查找模块50以及推送处理模块70。
捕捉模块10,用于捕捉启动事件。
本实施例中,启动事件为***中任一程序启动时创建相应进程的过程,捕捉模块10可通过预先设置的内核驱动拦截接口函数实现任一程序所对应的启动事件的捕捉。具体的,接口函数可以是NtCreateProcess、NtCreateSection等函数。
启动处理模块30,用于获取与启动事件对应的启动程序信息,并根据启动程序信息发起查询请求。
本实施例中,在捕捉到某一程序创建相应的进程以进行启动时,仍然正常启动该程序,并且启动处理模块30获取该启动事件所对应的启动程序信息。启动程序信息用于标记与被启动程序相关的各种属性、身份等信息。具体的,启动程序信息包括被启动程序的信息摘要值、程序名称、程序描述或数字签名等。
启动处理模块30根据获取到的启动程序信息生成查询请求,查询请求中包含了启动程序信息中记录的内容,在启动某一程序时通过生成的查询请求向后台发起查询,以触发后台对应当前启动的程序所进行的软件推荐。
上述软件推荐***运行于终端设备和后台服务端中,因此,还有必要提供一种用于进行软件推荐的终端设备,该终端设备包括上述捕捉模块10以及启动处理模块30,在此不再赘述。
查找模块50,用于根据查询请求中的启动程序信息查找启动程序的类别。
本实施例中,后台在接收到发起的查询请求之后,查找模块50将从查询请求中提取出启动程序信息,以在后台记录的软件信息中查找启动程序所属的类别。具体的,预先对互联网资源中各种软件进行分类,例如,软件的类别可以是“办公”、“***工具”、“网络应用”和“安全防护”等,在分类过程中,每一软件均有与其相对应的类别,以及用于标记该软件的信息摘要值、软件名称、软件描述和数字签名等相关信息。
如图6所示,在一个实施例中,上述查找模块50包括软件信息查找单元510、条目提取单元530以及更新单元550。
软件信息查找单元510,用于根据查询请求中的启动程序信息在软件信息中进行查找,判断是否存在与启动程序信息相同的软件信息条目,若是,则通知条目提取单元530,若否,则通知更新单元550。
本实施例中,软件信息包括若干软件信息条目,每一软件信息条目用于标记软件的属性,具体地记录了软件所对应的信息摘要值、软件名称、软件描述、数字签名和类别。一实施例中,软件信息为列表的形式,每一软件信息条目对应了一个列表表项,并以信息摘要值为索引,方便软件信息条目的查找。
例如,软件信息中的任一软件信息条目如下表所示存储于后台中:
软件信息查找单元510将查询请求中的启动程序信息与软件信息条目进行逐一比对得到与启动信息一致的软件信息条目,进而条目提取单元530从得到的软件信息条目中提取记录的类别,该类别即为启动程序所属的类别。
若在软件信息中没有查找到与启动程序信息相同的软件信息条目,则需更新单元550将启动程序信息更新到软件信息中成为新的软件信息条目,丰富软件信息中的内容,使得软件信息中记录更多各类的软件。
条目提取单元530,用于提取软件信息条目记录的类别。
本实施例中,若软件信息条目中没有记录相应的类别,则需通知更新单元550对该项软件信息条目进行更新,添加软件所对应的类别。
更新单元550,用于将启动程序信息更新到软件信息。
本实施例中,更新单元550将启动程序信息更新到软件信息中形成新的软件信息条目,此时,还需根据启动程序信息中记录的软件名称、软件描述等信息通过人工分类、自动分类或者人工和自动分类相结合的方式实现该启动程序的分类,并且在新的软件信息条目中添加分类得到的类别。
进一步的,自动分类可以通过决策树算法、贝叶斯算法以及规则关联算法等实现。
推送处理模块70,用于选取与该类别相匹配的软件,并向触发启动事件的终端推送选取的软件。
本实施例中,推送处理模块70通过后台根据启动程序信息所进行查找得到的类别进行软件选取,选取得到的软件所属类别是与查找得到的类别相同或者相近的,例如,若查找得到的类别为“办公”,则所属类别为“办公”和“办公学习”的软件将会被选取,并向触发启动事件的终端推送。具体的,在后台所进行的软件推送过程中,可以通过用户标识来唯一标记触发启动事件的终端,并按照用户标识将选取的软件进行推送,进而以弹出对话框或者其它形式向用户展示推送的软件,实现程序的启动和运行过程中向用户推荐与启动程序相关的其它软件,使得软件推荐进一步贴近用户意图。
如图7所示,在一个实施例中,上述推送处理模块70包括选取单元710以及推送单元730。
选取单元710,用于在软件和使用用户对应的关系中得到网络社交工具用户和使用的软件,并从得到的软件中选取与类别相匹配的软件。
本实施例中,选取单元710在软件推荐中引入网络社交工具用户信息,以网络社交工具用户信息作为依据进行软件的选取,其中,网络社交工具用户信息为使用了网络社交工具的用户所对应的用户信息,随着互联网应用的发展,所应用的网络社交工具也越来越多,可以是SNS社区网络、基于邮箱联系人的社交网络、微博、博客等,例如,SNS社区网络中,网络社交工具用户信息可以是SNS社区网络中用户的用户信息。
后台除了存储软件信息之外,还存储了软件和使用用户的对应关系,通过软件和使用用户的对应关系得到使用了某一软件的用户。具体的,软件和使用用户的对应关系是将软件标识和使用用户标识联合作为关键词,并相应记录该软件的类别、信息摘要值等信息。将软件标识和使用用户标识联合作为索引有利于保证某一用户使用某一软件的记录不会被重复存储。
例如,软件和使用用户的对应关系可通过用户和软件关系表的形式进行存储,具体如下表所示:
选取单元710从网络社交工具服务器中获取网络社交工具用户信息,该网络社交工具是当前触发启动事件的用户使用的。网络社交工具用户信息中包括相应的用户标识,根据网络社交工具用户信息中的用户标识在后台存储的软件和使用用户的对应关系得到与网络社交工具用户信息中的用户标识相同的使用用户标识,进而根据得到的使用用户标识得到网络社交工具用户所使用的软件。
例如,网络社交工具用户信息可通过列表的形式进行存储,网络社交工具用户信息表具体如下表所示:
根据网络社交工具用户信息在软件和使用用户的对应关系中得到网络社交工具用户和使用的软件的过程中,可在用户和软件关系表以及网络社交工具用户信息表进行查找,即用户和软件关系表中的user_id=网络社交工具用户信息表中的frend_id,进而得到用户和软件关系表与网络社交工具用户信息表的对应关系,进而得到网络社交工具用户所使用的软件。
在得到网络社交工具用户使用的软件之后,还需选取单元710根据启动程序的类别对网络社交工具用户使用的软件进行选取,得到与启动程序类别相同或者相似的网络社交工具用户使用的软件。
在软件推荐过程中,为方便进行软件的选取等处理过程,无论是触发启动事件的用户标识,还是网络社交工具用户信息中的用户标识以及上述对应关系中使用用户标识均采用同一标识体系,例如,触发启动事件的用户标识和上述对应关系中使用用户标识均采用网络社交工具所应用的标识体系;此外,也可以在触发启动事件的用户标识、网络社交工具用户信息中的用户标识以及上述对应关系中使用用户标识均使用邮箱地址作为身份标识,在此不再一一列举。
在另一个实施例中,上述推送处理模块70还包括过滤单元。过滤单元用于根据触发启动事件的用户对网络社交工具用户和网络社交工具用户使用的软件进行过滤,得到用户在网络社交工具用户中的好友和使用的软件。
本实施例中,过滤单元对网络社交工具用户和网络社交工具用户使用的软件进行过滤筛选,得到网络社交工具中与当前触发启动事件的用户存在好友关系的网络社交工具用户及其使用的软件。
推送单元730,用于向触发启动事件的终端推送网络社交工具用户和使用的软件。
在一个实施例中,上述推送处理模块70还包括计数单元,计数单元用于对软件进行计数得到软件的出现次数。
推送单元730根据计数得到的出现次数按照从大到小的顺序进行排序,进而按照排序得到的网络社交工具用户和使用的软件向触发启动事件的终端推送。具体的,推送单元730按照出现次数从大到小的顺序生成网络社交工具用户使用的软件推荐列表,每一列表表项中记录了相应的网络社交工具用户以及使用的软件,并根据出现次数所对应的从大到水的顺序选取得到。
在另一个实施例中,推送单元730根据出现次数对网络社交工具用户使用的软件进行选取,得到预设数量的网络社交工具用户使用的软件,进而向触发启动事件的终端推送,以告之触发启动事件的用户,XX、XX等好友正在使用XX类软件XX,从而触发启动事件的用户可通过点击相应的网络链接进行下载。推送单元730在多个待推荐的软件中选取预设数量的网络社交工具用户使用的软件,进而向触发启动事件的终端推送出现次数较多的网络社交工具用户使用的软件,以避免符合触发启动事件的用户意图的软件淹没于大量的推荐软件中,提高软件推荐的准确性和有效性。
在一个实施例中,上述推送单元70还用于在得到的软件中根据出现次数按照从大到小的顺序选取预设数量的软件,获取使用软件的好友对应的网络社交工具用户信息,将选取的软件以及使用软件的好友对应的网络社交工具用户信息推送给触发启动事件的终端。
本实施例中,推送单元70在与启动程序的类别相匹配的网络社交工具用户使用的软件中根据计数得到的出现次数进行软件的选取,在优选的实施例中,与启动程序的类别相匹配的网络社交工具用户使用的软件为网络社交工具中与触发启动事件的用户存在好友关系的好友所使用的软件。
推送单元70向触发启动事件的终端推送好友使用的软件以及该好友的网络社交工具用户信息,其中,所推送的好友使用的软件是与启动程序处于同一类别或者相似类别的。
在启动和运行程序的过程中主动进行软件推荐,使得用户不需要时常主动地关注和搜索最新的软件,并且只针对启动和运行的程序,有效地过滤不相关信息的干扰。
在另一个实施例中,上述推送单元70还用于判断选取的软件是否与启动程序相一致,若否,则对软件进行计数得到软件的出现次数,若是,则在选取的软件中去除与启动程序相一致的软件。
本实施例中,若推送单元70判断到选取的软件均与启动程序相一致,则需对其进行清除,不能向用户推荐,以进一步保证软件推荐的有效性。
上述捕捉模块10和启动处理模块30位于终端设备的本地客户端中,查找模块50以及推送处理模块70设置于后台服务器中,通过互联网进行交互。
上述软件推荐方法和***、终端设备,捕捉启动事件,获取与启动事件对应的启动程序信息,进而根据启动程序信息得到该启动程序的类别,选取并推送与该类别相匹配的软件,基于用户启动的程序实现了软件的主动推荐,根据启动的程序的不同所推荐的软件也各不相同,提高了软件推荐的针对性。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。