新闻列表刷新的方法及装置
技术领域
本发明涉及计算机领域,具体而言,涉及一种新闻列表刷新的方法及装置。
背景技术
在移动互联网时代,新闻阅读也越来越呈现碎片化的特点。相比于PC时代用户一般会在固定的时间段浏览新闻,移动用户在无聊的时候随时可以打开新闻客户端浏览感兴趣的新闻。所以,基于智能手机的新闻客户端越来越成为广大网民获取新闻的主要工具。大部分新闻客户端的用户体验基本沿用了传统门户网站的逻辑。无论是主页还是频道,新闻都是经过编辑人工挑选或是通过推荐算法推荐出来的,新闻的排序一般都在某个粒度上按照发布时间排序。这里的时间粒度可以是分钟级,小时级,三小时等等。用户在浏览时一般会因为无法感知还有多少内容没有浏览过而感觉很不适应。除此之外,按照传统新闻客户端基于发布时间的新闻排序方法,会发生错失好新闻的遗憾。例如,早上9:00用户打开了新闻客户端,展示的新闻排序如图1。上午11:00,用户在空闲时又打开了新闻客户端。这时,如果要保证新闻列表以小时级的粒度有序,新推荐的新闻只能是发表于9:00以后,11:00以前的。如果这一段的新闻质量不高或者没有新的新闻(有新发表的但是内容和之前的重复也不适宜推荐),用户就得要么浏览这些低质量新闻要么压根无法刷新出更多内容。实际上,早上7:00到9:00是优质新闻集中发布的高峰期,因为版面的限制,上次给用户展示的新闻只是一部分精选。还有很多质量也不错的新闻没有机会展示。如果仅仅因为要保持新闻列表的时间有序就不再推荐这部分新闻非常可惜。
针对现有技术中新闻客户端按照新闻发布时间进行排序,导致无法通过刷新操作刷新出更多新闻的问题,目前尚未提出有效的解决方案。
发明内容
本发明的主要目的在于提供一种新闻列表刷新的方法及装置,以解决现有技术中新闻客户端按照新闻发布时间进行排序,导致无法通过刷新操作刷新出更多新闻的问题。
为了实现上述目的,根据本发明实施例的一个方面,提供了一种新闻列表刷新的方法。该方法包括:接收刷新信号;根据接收到的刷新信号,读取刷新起始时间,其中,刷新起始时间为当前***时间或已刷新的最后一条新闻的推荐时间;读取预先设置的至少一个时间阈值,时间阈值用于与刷新起始时间共同限定刷新新闻列表的时间区间;根据刷新起始时间和时间阈值,获取推荐新闻列表,推荐新闻列表包括:至少一个待推荐的新闻,待推荐的新闻的发布时间在时间区间内;对推荐新闻列表内的每条待推荐的新闻分配推荐时间;根据推荐时间对推荐新闻列表内的待推荐的新闻进行刷新,生成新的推荐新闻列表。
为了实现上述目的,根据本发明实施例的另一方面,提供了一种新闻列表刷新的装置,该装置包括:接收模块,用于接收刷新信号;第一读取模块,用于根据接收到的刷新信号,读取刷新起始时间,其中,刷新起始时间为当前***时间或已刷新的最后一条新闻的推荐时间;第二读取模块,用于读取预先设置的至少一个时间阈值,时间阈值用于与刷新起始时间共同限定刷新新闻列表的时间区间;第一获取模块,用于根据刷新起始时间和时间阈值,获取推荐新闻列表,推荐新闻列表包括:至少一个待推荐的新闻,待推荐的新闻的发布时间在时间区间内;第一处理模块,用于对推荐新闻列表内的每条待推荐的新闻分配推荐时间;生成模块,用于根据推荐时间对推荐新闻列表内的待推荐的新闻进行刷新,生成新的推荐新闻列表。
根据发明实施例,通过接收刷新信号;根据接收到的刷新信号,读取刷新起始时间,其中,刷新起始时间为当前***时间或已刷新的最后一条新闻的推荐时间;读取预先设置的至少一个时间阈值,时间阈值用于与刷新起始时间共同限定刷新新闻列表的时间区间;根据刷新起始时间和时间阈值,获取推荐新闻列表,推荐新闻列表包括:至少一个待推荐的新闻,待推荐的新闻的发布时间在时间区间内;对推荐新闻列表内的每条待推荐的新闻分配推荐时间;根据推荐时间对推荐新闻列表内的待推荐的新闻进行刷新,生成新的推荐新闻列表,解决了现有技术中新闻客户端按照新闻发布时间进行排序,导致无法通过刷新操作刷新出更多新闻的问题。实现了仅通过刷新操作,就可以刷新出当天所有新闻的效果。
附图说明
构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是现有技术提供的手机新闻客户端的界面示意图;
图2是根据本发明实施例一的新闻列表刷新的方法流程图;
图3是根据本发明实施例的手机新闻客户端对新闻显示时间的分配示意图;
图4是根据本发明实施例的对手机新闻客户端进行自下而上刷新的界面示意图;
图5是根据本发明实施例一的可选的新闻列表刷新的方法流程图;
图6是根据本发明实施例二的新闻列表刷新的装置的结构示意图;以及
图7是根据本发明实施例二的可选的新闻列表刷新的装置的结构示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
本发明实施例提供了一种新闻列表刷新的方法。
图2是根据本发明实施例的新闻列表刷新的方法的流程图。如图2所示,该方法包括步骤如下:
步骤S11,接收刷新信号。
本申请上述步骤S11,通过接收刷新信号,来触发刷新进程,实现对新闻列表的刷新功能。
在实际当中,以触屏手机上运行的新闻客户端为例,上述刷新信号可以是拖动页面某一区域产生信号,也可以是通过点击屏幕上的某一区域产生的信号,还可以是对***设定刷新时间,***自动产生的刷新信号。
步骤S13,根据接收到的刷新信号,读取刷新起始时间,其中,刷新起始时间为当前***时间或已刷新的最后一条新闻的推荐时间。
本申请上述步骤S13,根据接收到的刷新信号,对刷新类型进行判断。依照不同的刷新类型,记录与该刷新类型相对应的刷新起始时间。
在实际当中,以触屏手机上运行的新闻客户端为例,刷新类型可以分为:对最近新闻进行刷新和对历史新闻进行刷新这两种类型,根据刷新类型的不同,分别读取并记录与刷新类型相应的刷新起始时间。
步骤S15,读取预先设置的至少一个时间阈值,时间阈值用于与刷新起始时间共同限定刷新新闻列表的时间区间。
本申请上述步骤S15,读取预先设定的时间阈值,时间阈值与刷新起始时间构成了一个时间区间。通过上述时间区间,来筛选发布时间在此时间区间内的新闻。这里所说的时间区间也可以被称为时间窗口。
在实际当中,以触屏手机上运行的新闻客户端为例,可以设定任意一个时间点作为刷新起始时间,刷新起始时间点的选择依照刷新策略或者刷新算法而定。例如,本实施例中,当对最近新闻进行刷新时,可以设置当前时间为刷新起始时间。当对历史新闻进行刷新时,可以设置历史新闻列表中已刷新的最后一条新闻的推荐时间为刷新起始时间。
步骤S17,根据刷新起始时间和时间阈值,获取推荐新闻列表,推荐新闻列表包括:至少一个待推荐的新闻,待推荐的新闻的发布时间在时间区间内。
本申请上述步骤S17,根据刷新起始时间和时间阈值构成的时间区间,获取推荐新闻列表。
在实际当中,以触屏手机上运行的新闻客户端为例,时间阈值可以根据用户自己的喜好进行设置,时间阈值设定的越小,每次进行刷新时,就会刷新出与当前时间范围越接近的新闻。但是,如果将时间阈值设置的过于小,可以被刷新的新闻数量就会很少。也可以将时间阈值固定为一个默认值,默认值可以为24小时。
步骤S19,对推荐新闻列表内的每条待推荐的新闻分配推荐时间。
本申请上述步骤S19中,每条新闻都有时间属性,时间属性记录了该条新闻的发布时间。在这里,除了发布时间又为每条新闻设置推荐时间属性。
在实际当中,以触屏手机上运行的新闻客户端为例,为每条新闻设置推荐时间的方法有很多。其中,可以先通过对推荐新闻列表中的新闻按时间的远近进行排序,并依次为新闻列表中的每条新闻分配推荐时间。也可以根据用户的浏览习惯或对新闻类型的喜好程度,对推荐新闻列表中的各条新闻进行加权运算,根据通过加权预算得到的权重值,依照权重值的大小,为每条新闻分配推荐时间。
步骤S21,根据推荐时间对推荐新闻列表内的待推荐的新闻进行刷新,生成新的推荐新闻列表。
本申请上述步骤S21中,对推荐新闻列表中的每条待推荐的新闻,依照推荐时间的先后顺序进行正序排序或者倒叙排序。
具体的,通过步骤S11至步骤S21,根据对刷新信号的判断,触发对新闻的刷新。在获取新闻列表的过程中,为每条新闻重新添加推荐时间属性。通过为每条新闻分配推荐时间,并依照推荐时间的先后顺序,生成新的分配推荐列表。
在实际当中,以触屏手机上运行的新闻客户端为例,图3直观的描述了显示时间分配的策略。其中,T代表当前***时间,T0代表当前列表里最近一篇新闻显示的时间,T1代表当前列表里最老一篇新闻显示的时间,T2代表上一次刷新历史中最近一篇新闻的显示时间。例如,当前列表中是早上9:00刷新的,里面最后一篇新闻显示是早上7点,上一次刷新是昨晚8:00,那么T0,T1,T2就分别是早上9:00,早上7:00,昨晚8:00。
具体的,新闻个性化排序方法如下:
步骤A:新闻在客户端中不展示真实发布时间,而是在服务端设置的一个时间。
步骤B:每次用户刷新新闻列表时,客户端根据用户动作类型和当前列表最后一篇新闻的时间计算一个时间窗口,这里的时间窗口也就是权利要求书中提出的时间区间,其中,动作类型分为自上而下下拉动作和自下而上的上拉动作。
步骤C:给定一个时间窗口,新闻推荐服务推荐给用户若干篇发布于特定时间窗口内的新闻,并过滤掉该用户曾经刷出过的新闻。
步骤D:服务端根据刷新获取到的新闻的数量和时间窗口的起止时间给每篇推荐新闻分配一个推荐时间,这个推荐时间只对当前用户生效,并记录在服务端。
步骤E:客户端根据新推荐新闻的推荐时间对新闻排序,并显示新闻的推荐时间。
步骤F:因为每次用户刷新***可推荐的新闻不一定是上次刷新后新发布的,如果时间窗口足够大(比如1天,一天内至少有上万篇新闻),这种新闻排序方法可以获得无限刷新的产品效果。
上述步骤中,如何分配推荐新闻的显示时间是本发明的一个关键环节,只有合理的分配显示时间,才能保证新闻排序列表看起来是按照时间顺序排列的,并且上拉刷新时尽量不浪费可推荐的新闻,此处的推荐新闻,就是通过刷新操作获取到的新闻。
对于每个用户,用户所看到的客户端每篇新闻在列表中的时间是推荐服务设置的时间而不是新闻的发布时间,这个时间和用户刷出来这篇新闻的时间有关。从这个意义上来说这个时间是个性化的。
本发明上述实施例提出了一种支持无限刷新个性化排序方法,可以在保证用户在感知上认为新闻排列遵循时间顺序,同时尽量不遗漏用户可能感兴趣的精彩新闻。
综上可知,本发明解决了现有技术中新闻客户端按照新闻发布时间进行排序,导致无法通过刷新操作刷新出更多新闻的问题。实现了仅通过刷新操作,就可以刷新出当天所有新闻的效果。
优选的,本申请提供的可选实施例中,刷新信号至少包括:通过在触屏上自上而下滑动产生的第一触敏信号和通过在触摸屏幕上自下而上滑动产生的第二触敏信号。
具体的,可对刷新信号进行设定。当在屏幕上自上而下滑动时,所产生的触敏信号,设定这个信号为第一触敏信号,用于对最近新闻进行刷新。当在屏幕上自下而上滑动时,所产生的触敏信号,设定这个信号为第二触敏信号,用于对历史新闻进行刷新。
在实际当中,以触屏手机上运行的新闻客户端为例,刷新信号还可以通过很多形式产生。比如,可以将在屏幕上的某一区域进行点击所产生的触敏信号定义为刷新信号。还可以将手机机身上的某个实体按键产生的电平信号定义为刷新信号,当按下音量增加键实现对最近新闻进行刷新;当按下音量减小键实现对历史新闻进行刷新。
优选的,本申请提供的可选实施例中,当接收到的刷新信号为第一触敏信号时,刷新起始时间为当前***时间,上述步骤S17根据刷新起始时间和时间阈值,获取推荐新闻列表中,步骤包括:
步骤S171a,根据第一触敏信号获取推荐新闻列表内包含的第一新闻集合的新闻数量n。
步骤S173a,获取当前***时间和预设的第一时间阈值。
步骤S175a,根据当前***时间和第一时间阈值,确定第一时间区间,第一时间区间用于限定刷新第一推荐新闻列表的时间区间。
步骤S177a,根据第一时间区间,获取发布时间在第一时间区间内的n个新闻。
步骤S179a,根据获取到的n个新闻,生成第一推荐新闻列表。
具体的,通过步骤S171a至步骤S179a,可以预先对每次刷新的新闻条目进行设定,预先设定一个数值n。当接收到在屏幕上自上而下滑动产生的第一触敏信号时,开始对最近新闻进行刷新的步骤。当对最近新闻进行刷新时,获取当前***时间作为刷新起始时间。根据当前***时间和预先设置的第一时间阈值,确定刷新新闻发布时间的第一时间区间,也可以称这个第一时间区间为时间窗口。根据第一时间区间,获取n个在第一时间区间内发布的新闻,生成第一推荐新闻列表。
在实际当中,以触屏手机上运行的新闻客户端为例,如图3所示,给定一个用户A和用户A上次刷新时间T,我们认为除了T时刻后新发布的新闻,T时刻之前发布但是A没有看过的新闻仍然有推荐的价值。但是,考虑到新闻的时效性,也不能推荐特别老的新闻,所以我们需要设置一个时间窗口的限制,比如24小时。如果用户是在屏幕上,自上而下的下拉刷新,这时候用户的需求是看新的新闻,这样我们时间窗口的起始时间就是当前***时间,也就是说只推荐24小时内的新闻。
优选的,本申请提供的可选实施例中,在步骤S19对推荐新闻列表内的每条待推荐的新闻分配推荐时间中,步骤包括:
步骤S191a,获取前一次接收到第一触敏信号并对新闻列表进行刷新的前一次刷新时间。
步骤S193a,根据前一次刷新时间和当前***时间,确定第二时间区间,第二时间区间用于限定第一推荐列表内新闻的推荐时间。
步骤S195a,根据第二时间区间,对第一推荐列表内的每条新闻分配推荐时间,其中,推荐时间处于第二时间区间内。
具体的,在步骤S191a至步骤S195a中,根据前一次刷新时间和当前时间确认第二时间区间,第二时间区间用于限定为每条新闻设置的推荐时间的取值范围。根据这个第二时间区间,为每条新闻分配推荐时间。
在实际当中,以触屏手机上运行的新闻客户端为例,对于下拉刷新的情况,我们首先需要获取刷新前列表中最近一篇新闻的显示时间T0,然后对每一篇新推荐的新闻分配一个介于T0和当前时间T的一个时间,并按照这个时间排序。
优选的,本申请提供的可选实施例中,在步骤S195a根据第二时间区间,对第一推荐列表内的每条新闻分配推荐时间的步骤包括:
步骤S1951a,根据第一推荐新闻列表中的新闻数量n和第二时间区间,对第二时间区间平均分配,得到推荐新闻列表中每条新闻的第一等分时间间隔。
步骤S1953a,根据第一等分时间间隔和当前***时间,对第一推荐列表内的每条新闻分配推荐时间。
具体的,在步骤S1951a至步骤S1953a中,可以根据推荐新闻列表中新闻的数量n,将第二时间区间平分为若干个第一等分时间间隔。将第一推荐列表内的每条新闻,根据按照发布时间的顺序和第一等分时间间隔,分配一个推荐时间。
在实际当中,以触屏手机上运行的新闻客户端为例,除了以上述等分时间区间的形式对新闻分配推荐时间之外,为了使推荐时间看起来更为真实,还可以引入随机变量。使用随机变量,为每条新闻分配一个在第二时间区间内的随机推荐时间。
除此之外,还可以通过每个用户的新闻浏览习惯、感兴趣的新闻类型等个性化信息,对推荐列表中的每条新闻进行加权运算,确定针对于该用户的每条新闻的权重值。根据权重值对推荐列表进行预排序。之后通过上述分配推荐时间的方法,对经过预排序的推荐列表中的每条新闻分配一个推荐时间值。使得用户感兴趣的新闻可以首先被刷新出来。
优选的,本申请提供的可选实施例中,当接收到的刷新信号为第二触敏信号时,刷新起始时间为已刷新的最后一条新闻的推荐时间,上述步骤S17根据刷新起始时间和时间阈值,获取推荐新闻列表的步骤还包括:
步骤S171b,根据第二触敏信号获取推荐新闻列表内包含的第二新闻集合的新闻数量m。
步骤S173b,获取已刷新的最后一条新闻的推荐时间和第二时间阈值。
步骤S175b,根据已刷新的最后一条新闻的推荐时间和第二时间阈值,确定第三时间区间,第三时间区间用于限定刷新第二推荐新闻列表的时间区间。
步骤S177b,根据第三时间区间,获取发布时间在第三时间区间内的m个新闻。
步骤S179b,根据获取到的m个新闻,生成第二推荐新闻列表。
具体的,通过步骤S171b至步骤S179b,可以预先对每次刷新的新闻条目进行设定,预先设定一个数值m。当接收到在屏幕上自下而上滑动产生的第二触敏信号时,开始对历史新闻进行刷新的步骤。当对历史新闻进行刷新时,获取已刷新的最后一条新闻的推荐时间作为刷新起始时间。根据已刷新的最后一条新闻的推荐时间和预先设置的第二时间阈值,确定刷新新闻发布时间的第三时间区间,也可以称这个第三时间区间为时间窗口。根据第三时间区间,获取m个在第三时间区间内发布的新闻,生成第二推荐新闻列表。
在实际当中,以触屏手机上运行的新闻客户端为例,用户自下而上上拉列表时,***优先展示他的刷新历史,但是当他的两次刷新历史之间有一定的时间间隔,当用户向上滑动到较近刷新历史的末尾处,需要刷新出来一些新闻而不是直接跳到更老的历史。我们认为,如果用户是上拉刷新,这时候用户的需求就变成了看看在两次刷新历史之间还有什么有意思的老新闻,这时候时间窗口的起始时间就应该从两次之间较近刷新历史最老一篇新闻的显示时间算起。在这里的提到的显示时间不是真实的新闻发布时间,而是新闻推荐时间。
优选的,本申请提供的可选实施例中,在步骤S19对推荐新闻列表内的每条待推荐的新闻分配推荐时间中,步骤还包括:
步骤S191b,获取已刷新的最后一条新闻的推荐时间和第三时间阈值。
步骤S193b,根据已刷新的最后一条新闻的推荐时间和第三时间阈值,确定第四时间区间,第四时间区间用于限定第二推荐列表内新闻的推荐时间。
步骤S195b,根据第四时间区间,对第二推荐列表内的每条新闻分配推荐时间,其中,推荐时间处于第四时间区间内。
具体的,在步骤S191b至步骤S195b中,根据第四时间区间,为第二推荐列表内的每条新闻分配推荐时间。此处,使用第四时间区间,对分配给刷新出来的历史新闻的推荐时间进行限定。
在实际当中,以触屏手机上运行的新闻客户端为例,如图3所示,显示时间的最大值是当前历史列表中最老一篇新闻的显示时间,但是最小值不能简单的对应于上一次刷新最近新闻的时间。这是因为一次推荐的新闻数量是有限的(假设15条),如果这15条的显示时间已经填满了两次刷新历史刷新的间隔时间,用户下次下拉刷新就只能显示老的刷新历史,而无法借此机会推荐更多的新闻。因此一般来讲我们从最大值开始会取一个固定的时间间隔,比如10分钟,每篇新闻的显示时间等于上一篇新闻的显示时间减去10分钟。也就是说,假设当前列表最老新闻的显示时间是T1,那么第i篇推荐新闻的显示时间是T-i*t,这里的t是一个固定间隔,可以是10分钟。如果推荐新闻中有新闻的显示时间已经小于上次刷新中最近的新闻。
如图4所示,最大时间间隔为1个小时的列表为用户的当前列表,而用户上一次刷新是在昨天晚上,那么用户上拉列表时***会推荐较老的新闻。我们取当前列表中最老一篇新闻的时间作为推荐时间窗口的起始时间。假设时间窗口长度为24小时,意味着我们可以推荐2小时前到26小时内的新闻。
优选的,本申请提供的可选实施例中,步骤S191b根据第四时间区间,对第二推荐列表内的每条新闻分配推荐时间的步骤包括:
步骤S1911b,根据第二推荐新闻列表中的新闻数量m和第四时间区间,对第四时间区间平均分配,得到推荐新闻列表中每条新闻的第二等分时间间隔;
步骤S1913b,根据第二等分时间间隔和已刷新的最后一条新闻的推荐时间,对第二推荐列表内的每条新闻分配推荐时间。
具体的,在步骤S1911b至步骤S1913b中,可以根据推荐新闻列表中新闻的数量m,将第四时间区间平分为若干个第二等分时间间隔。将第二推荐列表内的每条新闻,根据按照发布时间的顺序和第二等分时间间隔,分配一个推荐时间。
在实际当中,以触屏手机上运行的新闻客户端为例,除了以上述等分时间区间的形式对新闻分配推荐时间之外,为了使推荐时间看起来更为真实,还可以引入随机变量。使用随机变量,为每条新闻分配一个在第四时间区间内的随机推荐时间。
除此之外,还可以通过每个用户的新闻浏览习惯、感兴趣的新闻类型等个性化信息,对推荐列表中的每条新闻进行加权运算,确定针对于该用户的每条新闻的权重值。根据权重值对推荐列表进行预排序。之后通过上述分配推荐时间的方法,对经过预排序的推荐列表中的每条新闻分配一个推荐时间值。根据刷新方式不同,为用户优先刷新出用户最可能感兴趣的不同时间区间的新闻。这样就可以尽可能的为用户推荐最可能感兴趣的新闻。
优选的,如图5所示,本申请提供的可选实施例中,在步骤S19对推荐新闻列表内的每条待推荐的新闻分配推荐时间之前,还可以执行如下步骤:
步骤S181,获取在本次刷新之前,已通过刷新获取到的历史新闻列表;
步骤S183,根据历史新闻列表和推荐新闻列表进行比对,当推荐新闻列表中的新闻与历史新闻列表中的新闻相同时,将相同的新闻从推荐新闻列表中删除。
具体的,在步骤S181至步骤S183中,根据历史新闻列表和推荐新闻列表进行比对,将推荐新闻列表中与历史新闻列表中重复的新闻删除。避免了相同的新闻被反复刷新出来。
在实际当中,以触屏手机上运行的新闻客户端为例,通过给定的时间区间,推荐服务先按照某种算法找到若干用户可能感兴趣的新闻,然后需要找出其中曾经展示给用户的新闻并过滤掉。因为这部分新闻不应该再次展示给用户,这个步骤可以被称之为推荐去重。一般来说,推荐服务会把所有用户的浏览历史存放在基于内存的高性能缓存服务(比如Memory Cache)从而能够快速的访问。
综上所述,本发明的主要优点在于既满足了用户在感知上对于新闻按照时间顺序排序的需求,又不会因为排序限制好新闻的推荐机会,可以支持无限刷新的用户体验。而且区分了上拉和下拉刷新两种不同类型的刷新需求。
实施例2
本发明实施例还提供了一种新闻列表刷新的装置,如图6所示,该装置包括:接收模块30、第一读取模块32、第二读取模块34、第一获取模块36、第一处理模块38和生成模块40。
其中,接收模块30,用于接收刷新信号。
本申请上述接收模块30,通过接收刷新信号,来触发刷新进程,实现对新闻列表的刷新功能。
在实际当中,以触屏手机上运行的新闻客户端为例,上述刷新信号可以是拖动页面某一区域产生信号,也可以是通过点击屏幕上的某一区域产生的信号,还可以是对***设定刷新时间,***自动产生的刷新信号。
第一读取模块32,用于根据接收到的刷新信号,读取刷新起始时间,其中,刷新起始时间为当前***时间或已刷新的最后一条新闻的推荐时间。
本申请上述第一读取模块32,根据接收到的刷新信号,对刷新类型进行判断。依照不同的刷新类型,记录与该刷新类型相对应的刷新起始时间。
在实际当中,以触屏手机上运行的新闻客户端为例,刷新类型可以分为:对最近新闻进行刷新和对历史新闻进行刷新这两种类型,根据刷新类型的不同,分别读取并记录与刷新类型相应的刷新起始时间。
第二读取模块34,用于读取预先设置的至少一个时间阈值,时间阈值用于与刷新起始时间共同限定刷新新闻列表的时间区间。
本申请上述第二读取模块34,读取预先设定的时间阈值,时间阈值与刷新起始时间构成了一个时间区间。通过上述时间区间,来筛选发布时间在此时间区间内的新闻。这里所说的时间区间也可以被称为时间窗口。
在实际当中,以触屏手机上运行的新闻客户端为例,可以设定任意一个时间点作为刷新起始时间,刷新起始时间点的选择依照刷新策略或者刷新算法而定。例如,本实施例中,当对最近新闻进行刷新时,可以设置当前时间为刷新起始时间。当对历史新闻进行刷新时,可以设置历史新闻列表中已刷新的最后一条新闻的推荐时间为刷新起始时间。
第一获取模块36,用于根据刷新起始时间和时间阈值,获取推荐新闻列表,推荐新闻列表包括:至少一个待推荐的新闻,待推荐的新闻的发布时间在时间区间内。
本申请上述第一获取模块36,根据刷新起始时间和时间阈值构成的时间区间,获取推荐新闻列表。
在实际当中,以触屏手机上运行的新闻客户端为例,时间阈值可以根据用户自己的喜好进行设置,时间阈值设定的越小,每次进行刷新时,就会刷新出与当前时间范围越接近的新闻。但是,如果将时间阈值设置的过于小,可以被刷新的新闻数量就会很少。也可以将时间阈值固定为一个默认值,默认值可以为24小时。
第一处理模块38,用于对推荐新闻列表内的每条待推荐的新闻分配推荐时间。
本申请上述第一处理模块38中,每条新闻都有时间属性,时间属性记录了该条新闻的发布时间。在这里,除了发布时间又为每条新闻设置推荐时间属性。
在实际当中,以触屏手机上运行的新闻客户端为例,为每条新闻设置推荐时间的方法有很多。其中,可以先通过对推荐新闻列表中的新闻按时间的远近进行排序,并依次为新闻列表中的每条新闻分配推荐时间。也可以根据用户的浏览习惯或对新闻类型的喜好程度,对推荐新闻列表中的各条新闻进行加权运算,根据通过加权预算得到的权重值,依照权重值的大小,为每条新闻分配推荐时间。
生成模块40,用于根据推荐时间对推荐新闻列表内的待推荐的新闻进行刷新,生成新的推荐新闻列表。
本申请上述生成模块40中,对推荐新闻列表中的每条待推荐的新闻,依照推荐时间的先后顺序进行正序排序或者倒叙排序。
具体的,通过接收模块30、第一读取模块32、第二读取模块34、第一获取模块36、第一处理模块38和生成模块40,根据对刷新信号的判断,触发对新闻的刷新。在获取新闻列表的过程中,为每条新闻重新添加推荐时间属性。通过为每条新闻分配推荐时间,并依照推荐时间的先后顺序,生成新的分配推荐列表。
在实际当中,以触屏手机上运行的新闻客户端为例,图3直观的描述了显示时间分配的策略。其中,T代表当前***时间,T0代表当前列表里最近一篇新闻显示的时间,T1代表当前列表里最老一篇新闻显示的时间,T2代表上一次刷新历史中最近一篇新闻的显示时间。例如,当前列表中是早上9:00刷新的,里面最后一篇新闻显示是早上7点,上一次刷新是昨晚8:00,那么T0,T1,T2就分别是早上9:00,早上7:00,昨晚8:00。
具体的,新闻个性化排序方法如下:
步骤A:新闻在客户端中不展示真实发布时间,而是在服务端设置的一个时间。
步骤B:每次用户刷新新闻列表时,客户端根据用户动作类型和当前列表最后一篇新闻的时间计算一个时间窗口,这里的时间窗口也就是权利要求书中提出的时间区间,其中,动作类型分为自上而下下拉动作和自下而上的上拉动作。
步骤C:给定一个时间窗口,新闻推荐服务推荐给用户若干篇发布于特定时间窗口内的新闻,并过滤掉该用户曾经刷出过的新闻。
步骤D:服务端根据刷新获取到的新闻的数量和时间窗口的起止时间给每篇推荐新闻分配一个推荐时间,这个推荐时间只对当前用户生效,并记录在服务端。
步骤E:客户端根据新推荐新闻的推荐时间对新闻排序,并显示新闻的推荐时间。
步骤F:因为每次用户刷新***可推荐的新闻不一定是上次刷新后新发布的,如果时间窗口足够大(比如1天,一天内至少有上万篇新闻),这种新闻排序方法可以获得无限刷新的产品效果。
上述步骤中,如何分配推荐新闻的显示时间是本发明的一个关键环节,只有合理的分配显示时间,才能保证新闻排序列表看起来是按照时间顺序排列的,并且上拉刷新时尽量不浪费可推荐的新闻,此处的推荐新闻,就是通过刷新操作获取到的新闻。
对于每个用户,用户所看到的客户端每篇新闻在列表中的时间是推荐服务设置的时间而不是新闻的发布时间,这个时间和用户刷出来这篇新闻的时间有关。从这个意义上来说这个时间是个性化的。
本发明上述实施例提出了一种支持无限刷新个性化排序方法,可以在保证用户在感知上认为新闻排列遵循时间顺序,同时尽量不遗漏用户可能感兴趣的精彩新闻。
本申请提供的实施例中,刷新信号至少包括:通过在触屏上自上而下滑动产生的第一触敏信号和通过在触摸屏幕上自下而上滑动产生的第二触敏信号。
具体的,可对刷新信号进行设定。当在屏幕上自上而下滑动时,所产生的触敏信号,设定这个信号为第一触敏信号,用于对最近新闻进行刷新。当在屏幕上自下而上滑动时,所产生的触敏信号,设定这个信号为第二触敏信号,用于对历史新闻进行刷新。
在实际当中,以触屏手机上运行的新闻客户端为例,刷新信号还可以通过很多形式产生。比如,可以将在屏幕上的某一区域进行点击所产生的触敏信号定义为刷新信号。还可以将手机机身上的某个实体按键产生的电平信号定义为刷新信号,当按下音量增加键实现对最近新闻进行刷新;当按下音量减小键实现对历史新闻进行刷新。
优选的,本申请提供的可选实施例中,当接收到的刷新信号为通过在触屏上自上而下滑动产生的第一触敏信号时,刷新起始时间为当前***时间,其中,第一获取模块36包括:第一子获取模块3611、第二子获取模块3613、第一子确定模块3615、第三子获取模块3617和第一子生成模块3619。
其中,第一子获取模块3611,用于根据第一触敏信号获取推荐新闻列表内包含的第一新闻集合的新闻数量n。
第二子获取模块3613,用于获取当前***时间和预设的第一时间阈值。
第一子确定模块3615,用于根据当前***时间和第一时间阈值,确定第一时间区间,第一时间区间用于限定刷新第一推荐新闻列表的时间区间。
第三子获取模块3617,用于根据第一时间区间,获取发布时间在第一时间区间内的n个新闻。
第一子生成模块3619,用于根据获取到的n个新闻,生成第一推荐新闻列表。
具体的,通过第一子获取模块3611、第二子获取模块3613、第一子确定模块3651、第三子获取模块3617和第一子生成模块3619,可以预先对每次刷新的新闻条目进行设定,预先设定一个数值n。当接收到在屏幕上自上而下滑动产生的第一触敏信号时,开始对最近新闻进行刷新的步骤。当对最近新闻进行刷新时,获取当前***时间作为刷新起始时间。根据当前***时间和预先设置的第一时间阈值,确定刷新新闻发布时间的第一时间区间,也可以称这个第一时间区间为时间窗口。根据第一时间区间,获取n个在第一时间区间内发布的新闻,生成第一推荐新闻列表。
在实际当中,以触屏手机上运行的新闻客户端为例,如图3所示,给定一个用户A和用户A上次刷新时间T,我们认为除了T时刻后新发布的新闻,T时刻之前发布但是A没有看过的新闻仍然有推荐的价值。但是,考虑到新闻的时效性,也不能推荐特别老的新闻,所以我们需要设置一个时间窗口的限制,比如24小时。如果用户是在屏幕上,自上而下的下拉刷新,这时候用户的需求是看新的新闻,这样我们时间窗口的起始时间就是当前***时间,也就是说只推荐24小时内的新闻。
优选的,本申请提供的可选实施例中,第一处理模块38包括:第四子获取模块3811、第二子确定模块3813和第一分配模块3815。
其中,第四子获取模块3811,用于获取前一次接收到第一触敏信号并对新闻列表进行刷新的前一次刷新时间。
第二子确定模块3813,用于根据前一次刷新时间和当前***时间,确定第二时间区间,第二时间区间用于限定第一推荐列表内新闻的所述推荐时间。
第一分配模块3815,用于根据第二时间区间,对第一推荐列表内的每条新闻分配推荐时间,其中,推荐时间处于第二时间区间内。
具体的,第四子获取模块3811、第二子确定模块3813和第一分配模块3815,根据前一次刷新时间和当前时间确认第二时间区间,第二时间区间用于限定为每条新闻设置的推荐时间的取值范围。根据这个第二时间区间,为每条新闻分配推荐时间。
在实际当中,以触屏手机上运行的新闻客户端为例,对于下拉刷新的情况,我们首先需要获取刷新前列表中最近一篇新闻的显示时间T0,然后对每一篇新推荐的新闻分配一个介于T0和当前时间T的一个时间,并按照这个时间排序。
优选的,本申请提供的可选实施例中,第一分配模块3815包括:第一子处理模块38151和第一子分配模块38153。
第一子处理模块38151,用于根据第一推荐新闻列表中的新闻数量n和第二时间区间,对第二时间区间平均分配,得到推荐新闻列表中每条新闻的第一等分时间间隔;
第一子分配模块38153,用于根据第一等分时间间隔和当前***时间,对第一推荐列表内的每条新闻分配推荐时间。
具体的,第一子处理模块38151和第一子分配模块38153,可以根据推荐新闻列表中新闻的数量n,将第二时间区间平分为若干个第一等分时间间隔。将第一推荐列表内的每条新闻,根据按照发布时间的顺序和第一等分时间间隔,分配一个推荐时间。
在实际当中,以触屏手机上运行的新闻客户端为例,除了以上述等分时间区间的形式对新闻分配推荐时间之外,为了使推荐时间看起来更为真实,还可以引入随机变量。使用随机变量,为每条新闻分配一个在第二时间区间内的随机推荐时间。
除此之外,还可以通过每个用户的新闻浏览习惯、感兴趣的新闻类型等个性化信息,对推荐列表中的每条新闻进行加权运算,确定针对于该用户的每条新闻的权重值。根据权重值对推荐列表进行预排序。之后通过上述分配推荐时间的方法,对经过预排序的推荐列表中的每条新闻分配一个推荐时间值。根据刷新方式不同,为用户优先刷新出用户最可能感兴趣的不同时间区间的新闻。这样就可以尽可能的为用户推荐最可能感兴趣的新闻。
优选的,本申请提供的可选实施例中,当接收到的刷新信号为通过在触摸屏幕上自下而上滑动产生的第二触敏信号时,刷新起始时间为已刷新的最后一条新闻的推荐时间,其中,第一获取模块36还包括:第五子获取模块3621、第六子获取模块3623、第三子确定模块3625、第七子获取模块3627和第二子生成模块3629。
其中,第五子获取模块3621,用于根据第二触敏信号获取推荐新闻列表内包含的第二新闻集合的新闻数量m。
第六子获取模块3623,用于获取已刷新的最后一条新闻的推荐时间和第二时间阈值。
第三子确定模块3625,用于根据已刷新的最后一条新闻的推荐时间和第二时间阈值,确定第三时间区间,第三时间区间用于限定刷新第二推荐新闻列表的时间区间。
第七子获取模块3627,用于根据第三时间区间,获取发布时间在第三时间区间内的m个新闻。
第二子生成模块3629,用于根据获取到的m个新闻,生成第二推荐新闻列表。
具体的,第五子获取模块3621、第六子获取模块3623、第三子确定模块3625、第七子获取模块3627和第二子生成模块3629,可以预先对每次刷新的新闻条目进行设定,预先设定一个数值m。当接收到在屏幕上自下而上滑动产生的第二触敏信号时,开始对历史新闻进行刷新的步骤。当对历史新闻进行刷新时,获取已刷新的最后一条新闻的推荐时间作为刷新起始时间。根据已刷新的最后一条新闻的推荐时间和预先设置的第二时间阈值,确定刷新新闻发布时间的第三时间区间,也可以称这个第三时间区间为时间窗口。根据第三时间区间,获取m个在第三时间区间内发布的新闻,生成第二推荐新闻列表。
在实际当中,以触屏手机上运行的新闻客户端为例,用户自下而上上拉列表时,***优先展示他的刷新历史,但是当他的两次刷新历史之间有一定的时间间隔,当用户向上滑动到较近刷新历史的末尾处,需要刷新出来一些新闻而不是直接跳到更老的历史。我们认为,如果用户是上拉刷新,这时候用户的需求就变成了看看在两次刷新历史之间还有什么有意思的老新闻,这时候时间窗口的起始时间就应该从两次之间较近刷新历史最老一篇新闻的显示时间算起。在这里的提到的显示时间不是真实的新闻发布时间,而是新闻推荐时间。
优选的,本申请提供的可选实施例中,第一处理模块38还包括:第八获取模块3821、第四子确定模块3823和第二分配模块3825。
其中,第八获取模块3821,用于获取已刷新的最后一条新闻的推荐时间和第三时间阈值;
第四子确定模块3823,用于根据已刷新的最后一条新闻的推荐时间和第三时间阈值,确定第四时间区间,第四时间区间用于限定第二推荐列表内新闻的推荐时间;
第二分配模块3825,用于根据第四时间区间,对第二推荐列表内的每条新闻分配推荐时间,其中,推荐时间处于第四时间区间内。
具体的,第一处理模块38包括:第八获取模块3821、第四子确定模块3823和第二分配模块3825,根据这个第四时间区间,为第二推荐列表内的每条新闻分配推荐时间。使用第四时间区间,对分配给刷新出来的历史新闻的推荐时间进行限定。
在实际当中,以触屏手机上运行的新闻客户端为例,如图3所示,显示时间的最大值是当前历史列表中最老一篇新闻的显示时间,但是最小值不能简单的对应于上一次刷新最近新闻的时间。这是因为一次推荐的新闻数量是有限的(假设15条),如果这15条的显示时间已经填满了两次刷新历史刷新的间隔时间,用户下次下拉刷新就只能显示老的刷新历史,而无法借此机会推荐更多的新闻。因此一般来讲我们从最大值开始会取一个固定的时间间隔,比如10分钟,每篇新闻的显示时间等于上一篇新闻的显示时间减去10分钟。也就是说,假设当前列表最老新闻的显示时间是T1,那么第i篇推荐新闻的显示时间是T-i*t,这里的t是一个固定间隔,可以是10分钟。如果推荐新闻中有新闻的显示时间已经小于上次刷新中最近的新闻。
如图4所示,最大时间间隔为1个小时的列表为用户的当前列表,而用户上一次刷新是在昨天晚上,那么用户上拉列表时***会推荐较老的新闻。我们取当前列表中最老一篇新闻的时间作为推荐时间窗口的起始时间。假设时间窗口长度为24小时,意味着我们可以推荐2小时前到26小时内的新闻。
优选的,本申请提供的可选实施例中,第二分配模块3825包括:第二子处理模块38251和第二子分配模块38253。
其中第二子处理模块38251,用于根据第二推荐新闻列表中的新闻数量m和第四时间区间,对第四时间区间平均分配,得到推荐新闻列表中每条新闻的第二等分时间间隔。
第二子分配模块38253,用于根据第二等分时间间隔和已刷新的最后一条新闻的推荐时间,对第二推荐列表内的每条新闻分配推荐时间。
具体的,第二子处理模块38251和第二子分配模块38253,可以根据推荐新闻列表中新闻的数量m,将第四时间区间平分为若干个第二等分时间间隔。将第二推荐列表内的每条新闻,根据按照发布时间的顺序和第二等分时间间隔,分配一个推荐时间。
在实际当中,以触屏手机上运行的新闻客户端为例,除了以上述等分时间区间的形式对新闻分配推荐时间之外,为了使推荐时间看起来更为真实,还可以引入随机变量。使用随机变量,为每条新闻分配一个在第四时间区间内的随机推荐时间。
除此之外,还可以通过每个用户的新闻浏览习惯、感兴趣的新闻类型等个性化信息,对推荐列表中的每条新闻进行加权运算,确定针对于该用户的每条新闻的权重值。根据权重值对推荐列表进行预排序。之后通过上述分配推荐时间的方法,对经过预排序的推荐列表中的每条新闻分配一个推荐时间值。使得用户不感兴趣的新闻优先在对历史新闻进行刷新时先被刷新出来,这样可以保证在对最近新闻进行刷新时,优先将用户感兴趣的刷新出来。
优选的,如图7所示,本申请提供的可选实施例中,装置还包括:第二获取模块371和第二处理模块373。
其中,第二获取模块371,用于获取在本次刷新之前,已通过刷新获取到的历史新闻列表;
第二处理模块373,用于根据历史新闻列表和推荐新闻列表进行比对,当推荐新闻列表中的新闻与历史新闻列表中的新闻相同时,将相同的新闻从推荐新闻列表中删除。
具体的,第二获取模块371和第二处理模块373,根据历史新闻列表和推荐新闻列表进行比对,将推荐新闻列表中与历史新闻列表中重复的新闻删除。避免了相同的新闻被反复刷新出来。
在实际当中,以触屏手机上运行的新闻客户端为例,通过给定的时间区间,推荐服务先按照某种算法找到若干用户可能感兴趣的新闻,然后需要找出其中曾经展示给用户的新闻并过滤掉。因为这部分新闻不应该再次展示给用户,这个步骤可以被称之为推荐去重。一般来说,推荐服务会把所有用户的浏览历史存放在基于内存的高性能缓存服务(比如Memory Cache)从而能够快速的访问。
综上所述,本发明的主要优点在于既满足了用户在感知上对于新闻按照时间顺序排序的需求,又不会因为排序限制好新闻的推荐机会,可以支持无限刷新的用户体验。而且区分了上拉和下拉刷新两种不同类型的刷新需求。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、移动终端、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。