具体实施方式
本发明实施例所要解决的技术问题在于,提供一种只能的对电视节目进行排序的方法,帮助用户快速进入经常观看的节目。
为了更为清楚的说明本发明实施例,在此首先对本发明实施例中出现的一些术语做一些解释。
本次播放时长数据:每次对某一电视节目进行播放时长统计时,都分成多个更新时刻进行的,以最后一个更新时刻统计到的播放时长数据作为本次播放时长数据;
当前更新时刻:是指当前对电视节目的播放时长数据进行更新的时刻;
前一更新时刻:是指上一对电视节目的播放时长数据进行更新的时刻;
一般来讲,当前更新时刻与前一更新时刻之间的时间间隔为5-10分钟,具体间隔的时间可以根据需要进行设置。
总播放时长数据:是指的多次统计出来的电视节目播放的时长的累加,在本发明实施例中,太久以前的统计出来的电视节目的播放时长将不会计算在内;
贬值处理后的总播放时长数据:本发明实施例中,为了使电视节目排序更加有利于反应用户对电视节目真实的喜爱程度,对于统计得到的总播放时长数据还需要进过贬值计算,最终对多个电视节目进行排序的时候,是基于贬值计算后的总播放时长数据进行的;
播放时长统计次数:也即上述对电视节目的播放时长进行统计的次数,本发明实施例中,只有当用户观看了该电视节目的那一天,才会统计一次播放时长,如果当天观看了多次,也只记一次。
上述是针对一个电视节目进行播放时长统计时涉及的术语,要实现对电视节目的排序,则需要对多个电视节目都作相应的统计,用表格表示如下:
表1
电视节目序号 |
播放时长统计次数 |
本次播放时长数据 |
总播放时长数据 |
贬值处理后的总播放时长数据 |
电视节目1 |
i1 |
T1(i) |
T1 |
T1’ |
电视节目2 |
i2 |
T2(i) |
T2 |
T2’ |
电视节目3 |
i3 |
T3(i) |
T3 |
T3’ |
… |
… |
… |
… |
… |
电视节目m |
im |
Tm(i) |
Tm |
Tm’ |
以下就将结合表1和附图具体说明本发明实施例提供的对电视节目进行排序的方法和装置的具体实现过程。
参见图1,图1是本发明实施例提供的一种对电视节目进行排序的方法实施例一的流程示意图。
对每个电视节目,分别作以下处理:
步骤100,对该电视节目的播放时长数据进行更新并保存为本次播放时长数据;
步骤101,对保存的该电视节目的多次播放时长数据进行累加后得到该电视节目的总播放时长数据;
步骤102,对该电视节目的总播放时长数据进行贬值处理。
步骤103,根据以上处理步骤获得的经过贬值处理的各个电视节目的总播放时长数据,根据各个总播放时长,对各个电视节目进行排序。
具体实现过程中,如表1所示,针对电视节目1,在当前更新时刻t_now,根据前一更新时刻t_early保存的该电视节目的播放时长数据T_early计算当前更新时刻该电视节目的播放时长数据T_now,保存最后一个更新时刻计算得到的播放时长数据T1(i)作为本次播放时长数据,然后将各次统计的电视节目1的播放时长数据进行累加,得到总播放时长数据T1,之后再对T1进行贬值处理,得到贬值处理后的总播放时长数据T1’。对于电视节目2和电视节目3至电视节目m都作同样的处理,分别得到贬值处理后的总播放时长数据T2’、T3’…Tm’,最后根据T1’、T2’、T3’…Tm’按照大小顺序进行排序,即可实现对电视节目1到电视节目m的排序。
参见图2,如图2所示,是本发明实施例提供的一种对电视节目进行排序的方法实施例二的流程示意图。
本实施例将详细说明针对每一个电视节目,在当前更新时刻t_now对该电视节目的播放时长数据进行更新,得到播放时长数据T_now的具体过程,如下:
步骤200,根据前一更新时刻t_early保存的该电视节目的播放时长数据T_early计算当前更新时刻t_now该电视节目的播放时长数据T_now,T_now=(int)((A-T_early)×0.01);
本步骤中,A是一个计算电视节目播放时长数据的阈值,可以预先设定,比如A可以用十六进制数值oxffff来表示,当A用十六进制数值表示时,T_now和T_early也用十六进制数值表示。A也可以用十进制数值65535来表示,当A用十进制数值65535表示时,T_now和T_early也用十进制数值表示。这里A的取值只是一个优选的实施例,根据需要还可以取与oxffff或65535相近的数值范围,在此不再赘述。
利用上述公式:T_now=(int)((A-T_early)×0.01)来计算T_now的值,其好处在于,对于电视节目的播放时长数据的累加不是一个直线的过程,而是一个先快后慢的过程,随着T_early的增加,T_now的值会逐渐减小,从而使新节目的播放时长能够尽快赶上老节目的播放时长。例如在上一更新时刻t_early保存的电视节目1的播放时长数据T_early未535分钟(二进制数),那么当前更新时刻t_now,电视节目1的播放时长数据T_now=(int)((A-T_early)×0.01)=int((65535-535)×0.01)=650分钟,下一更新时刻t_next,电视节目1的播放时长数据T_next=(int)((A-T_now)×0.01)=int((65535-650)×0.01)=648分钟。
步骤201,保存最后一个更新时刻计算得到的播放时长数据T(i)作为本次播放时长数据。
需要说明的是,以上每个更新时刻之间间隔的时间大约是5-10分钟,优选的实施方式是对每个电视节目的播放时长数据,5分钟进行一次更新,直到最后一次更新得到的播放时长数据就作为对电视节目本次统计得到的播放时长数据。
参见图3,如图3所示,是本发明实施例提供的一种对电视节目进行排序的方法实施例三的流程示意图。
本实施例中,将详细描述对保存的电视节目的多次播放时长数据进行累加后得到该电视节目的总播放时长数据的实现过程,具体如下:
步骤300,将保存的电视节目的多次播放时长数据中超出T(i)之前n次播放时长数据删除;
具体的,针对一个电视节目,如果用户观看一次该电视节目,就统计并保存一次播放时长数据(一天之内观看同一个电视节目,只保存一个播放时长数据),那么用户在多次观看该电视节目以后(一天之内观看的同一个电视节目,只算一次观看),将会保存多次播放时长数据,本实施例中,为了真实反映用户近期观看的电视节目的播放时长,因此将太久以前的保存的播放时长数据删除,这里n的取值范围是5-15次,也就是取最近5-15次保存的播放时长数据来计算该电视节目总的播放时长数据。以本次保存播放时长数据T(i)是第13次(i=13)保存播放时长数据,取最近10次保存的播放时长数据为例,则将离本次保存的播放时长数据T(i)超出10次的播放时长数据进行删除,也即删除第1次、第2次、第3次保存的播放时长数据。
步骤301,将播放时长数据T(i)、T(i-1)、T(i-2)、T(i-3)…T(i-n)进行累加,得到该电视节目的总播放时长数据T= T(i)+T(i-1)+T(i-2)+T(i-3)…+T(i-n)。
具体的,以本次保存播放时长数据T(i)是第13次(i=13)保存播放时长数据,取最近10次保存的播放时长数据为例,则将离本次保存的播放时长数据T(i)超出10次的播放时长数据进行删除,也即删除第1次、第2次、第3次保存的播放时长数据T(1)、T(2)、T(3)后,剩下的播放时长数据为T(4)、T(5)、T(6)、T(7)、T(8)、T(9)、T(10),将这10次保存的播放时长数据进行累加,得到总播放时长数据T= T(10)+T(9)+T(8)+T(7)+T(6)+T(5)+T(4)。
当然为了节省存储空间,在对播放时长数据进行保存的时候,就可以只存储10次的播放时长数据,当保存的播放时长数据超过10次,就把最老的那一次保存的播放时长数据删除掉。
为了使得本发明实施例中统计出来的电视节目的播放时长数据可以更为真实的反应用户近期观看该电视节目的情况,本发明实施例在以上实施例的基础上,进一步对统计得到的某一电视节目的总播放时长数据进行贬值处理,具体过程如下:
对于上述得到的关于某一个电视节目的总播放时长数据T,可以通过以下公式,对该电视节目的总播放时长数据T进行贬值处理:
T’=T×pow(B,(Di- D(i-1)));
其中,T’是经过贬值处理后的电视节目的总播放时长数据;
T是累加得到的电视节目的总播放时长数据;
(Di- D(i-1))是本次保存本次播放时长数据与上一次保存播放时长数据之间间隔的天数;
B为贬值系数。
一般来讲,贬值系数B=0.8,pow是指幂运算,假如保存的本次播放时长数据是第8次统计的播放时长数据,保存的上一次播放时长数据是第7次统计的播放时长数据,并且第8次与第7次统计之间间隔的天数是7天;假如本次播放时长数据T=648分钟,则T’=T×pow(B,(Di- D(i-1)))=648×pow(0.8,7)=135分钟;也即经过贬值处理后,得到的总播放时长数据为135分钟。
当第8次与第7次统计之间间隔的天数是1天;假如本次播放时长数据T=648分钟,则T’=T×pow(B,(Di- D(i-1)))=648×pow(0.8,1)=518分钟;也即经过贬值处理后,得到的总播放时长数据为518分钟。
由上述计算可以看出,如果用户观看电视节目的时间间隔的越短,例如每天都有观看,则总播放时长数据被贬值的程度就越小。也就是用户近期观看过的电视节目,其总播放时长数据贬值的程度低,而如果该电视节目已经是很多天以前观看的节目,则总播放时长数据贬值的程度就大。
需要说明的是,在计算本次播放时长数据与上一次播放时长数据之间间隔的天数时,可以先设置一个基准时间,例如2011年1月1日,然后分别计算保存本次播放时长数据的日期距离2011年1月1日的天数,以及保存上一次播放时长数据的日期距离2011年1月1日的天数,两个天数之间的差值,就是本次播放时长数据与上一次播放时长数据之间间隔的天数。
因此,通过本实施例提供的对总播放时长数据进行贬值处理的方式,就可以真实的反应用户观看电视节目的频繁程度,也即反映了用户对该电视节目的喜好程度。
经过上述实施例,即可针对一个电视节目计算其总播放时长数据T’,分别针对每一个电视节目进行上述计算,则可以得到每个电视节目总播放时长数据。
针对电视节目1,计算得到其总播放时长数据T1’,针对电视节目2,计算得到其总播放时长数据T2’,针对电视节目3,计算得到其总播放时长数据T3’……针对电视节目m,计算得到其总播放时长数据Tm’。
最后比较T1’ T2’ T3’…… Tm’的大小,就可以对与其对应的电视节目1、电视节目2、电视节目3、……电视节目m的排序。
因为电视节目一般是分时段的,例如晚8点通常都是电视剧节目,而早8点都是健身节目,在优选的实施方式中,可以分时段对上述电视节目进行排序,例如将一天分为四个个时段section0:0:00~5:00 ,section1:5:00~12:00 ,section2:12:00~18:00,section3:18:00~24:00,用户在开机的时候,根据当前时间,来判断要进入的哪个时段的电视节目排序列表。
实施本发明实施例提供的对电视节目排序的方法,由于对电视节目的播放时长进行统计时,考虑到电视节目的新旧程度,对其播放时长的累加处理上采取先快后慢的累加方式,并且还考虑到时间推移的问题,将电视节目的播放时长做了贬值处理,在此基础上获得电视节目的总的播放时长。以此方式,获得一定时间段内,各个电视节目总的播放时长,实施本发明所获得的电视节目的播放时长更能真实体现用户播放节目的频率和总的时长,从而可以实现对电视节目的有效排序并呈现在电视菜单上,帮助用户快速进入常观看的电视节目。
以下将详细描述本发明实施例提供的电视节目排序装置的具体实现。
参见图4,图4是本发明实施例提供的一种电视节目排序装置实施例一的组成示意图。
播放时长统计模块10,用于对每个电视节目,分别作以下处理:
对该电视节目的播放时长数据进行更新并保存为本次播放时长数据;
对保存的该电视节目的多次播放时长数据进行累加后得到该电视节目的总播放时长数据;
对该电视节目的总播放时长数据进行贬值处理;
电视节目排序模块11,用于根据经过贬值处理的各个电视节目的总播放时长数据,根据各个总播放时长,对各个电视节目进行排序。
具体实现过程中,如表1所示,针对电视节目1,播放时长统计模块10在当前更新时刻t_now,根据前一更新时刻t_early保存的该电视节目1的播放时长数据T_early计算当前更新时刻该电视节目的播放时长数据T_now,保存最后一个更新时刻计算得到的播放时长数据T1(i)作为本次播放时长数据,然后将各次统计的电视节目1的播放时长数据进行累加,得到总播放时长数据T1,之后再对T1进行贬值处理,得到贬值处理后的总播放时长数据T1’。播放时长统计模块10对于电视节目2和电视节目3至电视节目m都作同样的处理,分别得到贬值处理后的总播放时长数据T2’、T3’…Tm’,最后电视节目排序模块11根据T1’、T2’、T3’…Tm’按照大小顺序进行排序,即可实现对电视节目1到电视节目m的排序。
参见图5,如图5所示,是本发明实施例提供的一种电视节目排序装置实施例二的组成示意图。
本实施例中,将详细描述播放时长统计模块10的功能和结构,其包括以下单元:
播放时长数据更新单元100,用于根据前一更新时刻t_early统计的该电视节目的播放时长数据T_early计算当前更新时刻t_now该电视节目的播放时长数据T_now,T_now=(int)((A-T_early)×0.01);
播放时长数据存储单元101,用于保存所述播放时长数据更新单元在最后一个更新时刻更新得到的播放时长数据T(i)作为本次播放时长数据;
播放时长累加单元102,将所述播放时长数据存储单元中存储的超出T(i)之前n次播放时长数据删除;并将播放时长数据T(i)、T(i-1)、T(i-2)、T(i-3)…T(i-n)进行累加,得到该电视节目的总播放时长数据T= T(i)+T(i-1)+T(i-2)+T(i-3)…+T(i-n);
播放时长贬值处理单元103,用于通过以下公式,对该电视节目的总播放时长数据T进行贬值处理:
T’=T×pow(B,(Di- D(i-1)));
其中,T’是经过贬值处理后的电视节目的总播放时长数据;
T是累加得到的电视节目的总播放时长数据;
(Di- D(i-1))是保存的本次播放时长数据与保存的上一次播放时长数据之间间隔的天数;
B为贬值系数。
具体的,针对每一个电视节目,上述播放时长数据更新单元100根据前一更新时刻t_early保存的该电视节目的播放时长数据T_early计算当前更新时刻t_now该电视节目的播放时长数据T_now,T_now=(int)((A-T_early)×0.01);
其中,A是一个计算电视节目播放时长数据的阈值,可以预先设定,比如A可以用十六进制数值oxffff来表示,当A用十六进制数值表示时,T_now和T_early也用十六进制数值表示。A也可以用十进制数值65535来表示,当A用十进制数值65535表示时,T_now和T_early也用十进制数值表示。这里A的取值只是一个优选的实施例,根据需要还可以取与oxffff或65535相近的数值范围,在此不再赘述。
利用上述公式:T_now=(int)((A-T_early)×0.01)来计算T_now的值,其好处在于,对于电视节目的播放时长数据的累加不是一个直线的过程,而是一个先快后慢的过程,随着T_early的增加,T_now的值会逐渐减小,从而使新节目的播放时长能够尽快赶上老节目的播放时长。例如在上一更新时刻t_early保存的电视节目1的播放时长数据T_early未535分钟(二进制数),那么当前更新时刻t_now,电视节目1的播放时长数据T_now=(int)((A-T_early)×0.01)=int((65535-535)×0.01)=650分钟,下一更新时刻t_next,电视节目1的播放时长数据T_next=(int)((A-T_now)×0.01)=int((65535-650)×0.01)=648分钟。
播放时长数据存储单元101保存播放时长数据更新单元100在最后一个更新时刻计算得到的播放时长数据T(i)作为本次播放时长数据。
需要说明的是,以上每个更新时刻之间间隔的时间大约是5-10分钟,优选的实施方式是对每个电视节目的播放时长数据,5分钟进行一次更新,直到最后一次更新得到的播放时长数据就作为对电视节目本次统计得到的播放时长数据。
上述播放时长累加单元102首先将播放时长数据存储单元101保存的电视节目的多次播放时长数据中超出T(i)之前n次播放时长数据删除。
具体的,针对一个电视节目,如果用户观看一次该电视节目,就统计并保存一次播放时长数据(一天之内观看同一个电视节目,只保存一个播放时长数据),那么用户在多次观看该电视节目以后(一天之内观看的同一个电视节目,只算一次观看),将会保存多次播放时长数据,本实施例中,为了真实反映用户近期观看的电视节目的播放时长,因此将太久以前的保存的播放时长数据删除,这里n的取值范围是5-15次,也就是取最近5-15次保存的播放时长数据来计算该电视节目总的播放时长数据。以本次保存播放时长数据T(i)是第13次(i=13)保存播放时长数据,取最近10次保存的播放时长数据为例,则将离本次保存的播放时长数据T(i)超出10次的播放时长数据进行删除,也即删除第1次、第2次、第3次保存的播放时长数据。
然后,播放时长累加单元102将播放时长数据T(i)、T(i-1)、T(i-2)、T(i-3)…T(i-n)进行累加,得到该电视节目的总播放时长数据T= T(i)+T(i-1)+T(i-2)+T(i-3)…+T(i-n)。
具体的,以本次保存播放时长数据T(i)是第13次(i=13)保存播放时长数据,取最近10次保存的播放时长数据为例,则将离本次保存的播放时长数据T(i)超出10次的播放时长数据进行删除,也即删除第1次、第2次、第3次保存的播放时长数据T(1)、T(2)、T(3)后,剩下的播放时长数据为T(4)、T(5)、T(6)、T(7)、T(8)、T(9)、T(10),将这10次保存的播放时长数据进行累加,得到总播放时长数据T= T(10)+T(9)+T(8)+T(7)+T(6)+T(5)+T(4)。
当然为了节省存储空间,播放时长数据存储单元101在对播放时长数据进行保存的时候,就可以只存储10次的播放时长数据,当保存的播放时长数据超过10次,就把最老的那一次保存的播放时长数据删除掉。
为了使得本发明实施例中统计出来的电视节目的播放时长数据可以更为真实的反应用户近期观看该电视节目的情况,本发明实施例提供的播放时长贬值处理单元103进一步对统计得到的某一电视节目的总播放时长数据进行贬值处理,具体过程如下:
对于上述得到的关于某一个电视节目的总播放时长数据T,播放时长贬值处理单元103可以通过以下公式,对该电视节目的总播放时长数据T进行贬值处理:
T’=T×pow(B,(Di- D(i-1)));
其中,T’是经过贬值处理后的电视节目的总播放时长数据;
T是累加得到的电视节目的总播放时长数据;
(Di- D(i-1))是本次保存本次播放时长数据与上一次保存播放时长数据之间间隔的天数;
B为贬值系数。
一般来讲,贬值系数B=0.8,pow是指幂运算,假如保存的本次播放时长数据是第8次统计的播放时长数据,保存的上一次播放时长数据是第7次统计的播放时长数据,并且第8次与第7次统计之间间隔的天数是7天;假如本次播放时长数据T=648分钟,则T’=T×pow(B,(Di- D(i-1)))=648×pow(0.8,7)=135分钟;也即经过贬值处理后,得到的总播放时长数据为135分钟。
当第8次与第7次统计之间间隔的天数是1天;假如本次播放时长数据T=648分钟,则T’=T×pow(B,(Di- D(i-1)))=648×pow(0.8,1)=518分钟;也即经过贬值处理后,得到的总播放时长数据为518分钟。
由上述计算可以看出,如果用户观看电视节目的时间间隔的越短,例如每天都有观看,则总播放时长数据被贬值的程度就越小。也就是用户近期观看过的电视节目,其总播放时长数据贬值的程度低,而如果该电视节目已经是很多天以前观看的节目,则总播放时长数据贬值的程度就大。
需要说明的是,在计算本次播放时长数据与上一次播放时长数据之间间隔的天数时,可以先设置一个基准时间,例如2011年1月1日,然后分别计算保存本次播放时长数据的日期距离2011年1月1日的天数,以及保存上一次播放时长数据的日期距离2011年1月1日的天数,两个天数之间的差值,就是本次播放时长数据与上一次播放时长数据之间间隔的天数。针对每一个电视节目,可以由播放时长数据存储单元101来存储各个电视节目被统计的次数。
因此,通过本实施例提供播放时长贬值处理单元103的对总播放时长数据进行贬值处理,就可以真实的反应用户观看电视节目的频繁程度,也即反映了用户对该电视节目的喜好程度。
经过上述实施例,即可针对一个电视节目计算其总播放时长数据T’,分别针对每一个电视节目进行上述计算,则可以得到每个电视节目总播放时长数据。
参见表3,针对电视节目1,计算得到其总播放时长数据T1’,针对电视节目2,计算得到其总播放时长数据T2’,针对电视节目3,计算得到其总播放时长数据T3’……针对电视节目m,计算得到其总播放时长数据Tm’。
最后电视节目排序模块11比较T1’ T2’ T3’…… Tm’的大小,就可以对与其对应的电视节目1、电视节目2、电视节目3、……电视节目m的排序。
因为电视节目一般是分时段的,例如晚8点通常都是电视剧节目,而早8点都是健身节目,在优选的实施方式中,可以分时段对上述电视节目进行排序,例如将一天分为四个个时段section0:0:00~5:00 ,section1:5:00~12:00 ,section2:12:00~18:00,section3:18:00~24:00,用户在开机的时候,根据当前时间,来判断要进入的哪个时段的电视节目排序列表。
需要说明的是,本发明实施例提供的电视节目排序装置,可以是机顶盒。
实施本发明实施例提供的对电视节目排序的装置,由于对电视节目的播放时长进行统计时,考虑到电视节目的新旧程度,对其播放时长的累加处理上采取先快后慢的累加方式,并且还考虑到时间推移的问题,将电视节目的播放时长做了贬值处理,在此基础上获得电视节目的总的播放时长。以此方式,获得一定时间段内,各个电视节目总的播放时长,实施本发明所获得的电视节目的播放时长更能真实体现用户播放节目的频率和总的时长,从而可以实现对电视节目的有效排序并呈现在电视菜单上,帮助用户快速进入常观看的电视节目。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。