发明内容
本发明实施例提供了一种微博话题的热度统计方法及相关装置,用于减少微博话题的热度统计的运算量,提高系统性能。
为解决上述技术问题,本发明实施例提供以下技术方案:
本发明一方面提供一种微博话题的热度统计方法,包括:
检测用户发布的微博是否与至少一个话题相关联;
若检测出上述微博与至少一个话题相关联,则对于每一个与上述微博相关联的话题:
针对每一个单位时间n,检查是否存在以上述话题和单位时间n为主键的热度记录,其中,上述n∈[1,2,...,k],单位时间1至单位时间k分别表示当前单位时间以及当前单位时间之后的k-1个单位时间;
若存在以上述话题和单位时间n为主键的热度记录,则将该热度记录的值加上上述微博的热度,以更新该热度记录;
若不存在以上述话题和单位时间n为主键的热度记录,则新增一条以上述话题和单位时间n为主键的热度记录,该热度记录的值为上述微博的热度。
基于本发明第一方面,在第一种可能的实现方式中,若检测到用户发布的微博评论与至少一个话题相关联,则上述方法还包括:
对于每一个与上述微博评论相关联的话题:
针对每一个单位时间n,检查是否存在以上述话题和单位时间n为主键的热度记录;
若存在以上述话题和单位时间n为主键的热度记录,则将该热度记录的值加上上述微博评论的热度,以更新该热度记录;
若不存在以上述话题和单位时间n为主键的热度记录,则新增一条以上述话题和单位时间n为主键的热度记录,该热度记录的值为上述微博评论的热度。
基于本发明第一方面,或本发明第一方面的第一种可能的实现方式,在第二种可能的实现方式中,若接收到用户查询指定话题在最近k个单位时间内的热度的请求,则上述方法还包括:向上述用户反馈上述指定话题在当前单位时间的热度记录。
基于本发明第一方面,或本发明第一方面的第一种可能的实现方式,在第三种可能的实现方式中,若接收到用户查询最近k个单位时间内所有话题的热度排行的请求,则上述方法还包括:按照热度由大到小的顺序,根据上述所有话题在当前单位时间的热度记录,对上述所有话题进行排序;向上述用户反馈排序后的结果。
基于本发明第一方面,或本发明第一方面的第一种可能的实现方式,在第四种可能的实现方式中,上述检查是否存在以上述话题和单位时间n为主键的热度记录,具体为:检查本地存储的话题热度表中是否存在以上述话题和单位时间n为主键的热度记录。
本发明第二方面提供一种微博话题热度统计装置,包括:
第一检测单元,用于检测用户发布的微博是否与至少一个话题相关联;
第二检测单元,用于当上述第一检测单元检测出上述微博与至少一个话题相关联时,对于每一个与上述微博相关联的话题,针对每一个单位时间n检查是否存在以上述话题和单位时间n为主键的热度记录,其中,上述n∈[1,2,...,k],单位时间1至单位时间k分别表示当前单位时间以及当前单位时间之后的k-1个单位时间;
更新单元,用于当上述第二检测单元检测出存在以上述话题和单位时间n为主键的热度记录时,将该热度记录的值加上上述微博的热度,以更新该热度记录;
热度记录创建单元,用于当上述第二检测单元检测出不存在以上述话题和单位时间n为主键的热度记录时,新增一条以上述话题和单位时间n为主键的热度记录,该热度记录的值为上述微博的热度。
基于本发明第二方面,在第一种可能的实现方式中,
上述第一检测单元还用于:检测用户发布的微博评论是否与至少一个话题相关联;
上述第二检测单元还用于:当上述第一检测单元检测到用户发布的微博评论与至少一个话题相关联时,对于每一个与上述微博评论相关联的话题,针对每一个单位时间n检查是否存在以上述话题和单位时间n为主键的热度记录;
上述更新单元还用于:当上述第二检测单元检测出存在以上述话题和单位时间n为主键的热度记录时,将该热度记录的值加上上述微博评论的热度,以更新该热度记录;
上述热度记录创建单元还用于:当上述第二检测单元检测出不存在以上述话题和单位时间n为主键的热度记录时,新增一条以上述话题和单位时间n为主键的热度记录,该热度记录的值为上述微博评论的热度。
基于本发明第二方面,或者本发明第二方面的第一种可能的实现方式,在第二种可能的实现方式中,
上述热度统计装置还包括:
第一接收单元,用于接收用户查询指定话题在最近k个单位时间内的热度的请求;
第一发送单元,用于当上述接收单元接收到用户查询指定话题在最近k个单位时间内的热度的请求时,向上述用户反馈上述指定话题在当前单位时间的热度记录。
基于本发明第二方面,或者本发明第二方面的第一种可能的实现方式,在第三种可能的实现方式中,
上述热度统计装置还包括:
第二接收单元,用于接收用户查询最近k个单位时间内所有话题的热度排行的请求;
排序单元,用于当上述第二接收单元接收到用户查询最近k个单位时间内所有话题的热度排行的请求时,按照热度由大到小的顺序,根据上述所有话题在当前单位时间的热度记录,对上述所有话题进行排序;
第二发送单元,用于向上述用户反馈上述排序单元排序后的结果。
基于本发明第二方面,或者本发明第二方面的第一种可能的实现方式,在第四种可能的实现方式中,上述第二检测单元具体用于:检查本地存储的话题热度表中是否存在以上述话题和单位时间n为主键的热度记录。
由上可见,本发明实施例中在用户发布关联话题的微博时,通过实时检测当前单位时间及当前单位时间之后共k个单位时间关于该话题的热度记录,在存在相应热度记录时,更新该热度记录,在不存在相应热度记录时,新增热度记录,并使该热度记录的值为该微博的热度,使得用户在查询指定话题在最近k个单位时间的热度或者查询在最近k个单位时间所有话题的热度排行时,只需调用当前单位时间的热度记录,而不需要调用多个单位时间的热度记录进行统计计算,从而避免了用户多次查询时需要对话题热度进行多次重复计算的问题,有效减少了微博话题的热度统计的运算量,缓解了微博服务器的压力,进而提高了系统性能。
具体实施方式
本发明实施例提供了一种微博话题的热度统计方法及相关装置。
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面对本发明实施例中的一种微博话题的热度统计方法进行描述,请参见图1,本发明实施例中的微博话题的热度统计方法,包括:
101、检测用户发布的微博是否与至少一个话题相关联;
在本发明实施例中,“话题”是指微博搜索时的关键字,其书写形式是将关键词放在特定字符之间(如两个“#”号之间),后面再加上想发布的内容上,其中,#号内的关键词即为话题词。
一条微博中可以关联一个或者多个话题,即一条微博的内容中可以包括一个或者多个话题词。
当用户发布微博时,微博话题热度统计装置通过检测该微博中是否包含话题词来判定该微博是否与话题相关联,当该微博包含N个话题词时(N大于或等于1),表明该微博与N个话题相关联,当该微博包含N个话题词时,表明该微博与N个话题词相关联。
102、若检测出上述微博与至少一个话题相关联,则对于每一个与上述微博相关联的话题:针对每一个单位时间n,检查是否存在以上述话题和单位时间n为主键的热度记录;
其中,上述n∈[1,2,...,k],单位时间1至单位时间k分别表示当前单位时间以及当前单位时间之后的k-1个单位时间。
若存在以上述话题和单位时间n为主键的热度记录,则执行步骤103;
若不存在以上述话题和单位时间n为主键的热度记录,则执行步骤104。
举例说明,假设本发明实施例中设置“天”为时间单位,上述n等于3,则当上述微博与话题1相关联时,微博话题热度统计装置检测是否存在如下热度记录:以话题1和今天为主键的热度记录,以话题1和明天为主键的热度记录,以话题1和后天为主键的热度记录;针对检测到的热度记录,分别执行步骤103,针对检测不到的热度记录,分别执行步骤104。当上述微博除了关联话题1,还关联话题2时,微博话题热度统计装置检测是否存在如下热度记录:以话题1和今天为主键的热度记录,以话题1和明天为主键的热度记录,以话题1和后天为主键的热度记录,以话题2和今天为主键的热度记录,以话题2和明天为主键的热度记录,以话题2和后天为主键的热度记录;针对检测到的热度记录,分别执行步骤103,针对检测不到的热度记录,分别执行步骤104。
可选地,上述热度记录以话题热度表的形式存储在微博话题热度统计装置本地,则微博话题热度统计装置可以通过检查本地存储的话题热度表来判断是否存在以上述话题和单位时间n为主键的热度记录。或者,上述热度记录也可以存储在其它设备(如云端服务器),则微博话题热度装置需要与其它设置进行通讯来检测是否存在以上述话题和单位时间n为主键的热度记录。
103、将该热度记录的值加上上述微博的热度,以更新该热度记录;
本发明实施例中,与话题关联的微博的热度可以根据实际情况进行设定,例如,可以设定一条与话题关联的微博的热度为M(其中,M为大于1的自然数),则在步骤103中,将该热度记录的值加上M。
当然,与话题关联的微博的热度也可以是根据预定算法计算得到,则在步骤103中,将该热度记录的值加上根据预定算法计算得到的值,此处不作限定。
104、新增一条以上述话题和单位时间n为主键的热度记录,该热度记录的值为上述微博的热度。
以步骤102中的举例进一步进行说明,当检测不到以话题1和后天为主键的热度记录时,微博话题热度统计装置新增一条热度记录,该热度记录以话题1和后天为主键,并且,使该新增的热度记录的值为上述微博的热度。
需要说明的是,本发明实施例中的话题的热度记录主要用于表征该话题的受关注程度。在上述实施例中,话题的热度记录与关联该话题的微博的发布相关,在其它实施例方式中,话题的热度记录除了与关联该话题的微博的发布相关,还可以与关联该话题的微博评论的发布相关。
需要说明的是,本发明实施例中的时间单位可以有多少设定,如可以设定“天”作为时间单元,或者设定“月”作为时间单位,或者设定“时”作为时间单元,具体地,可以根据实际情况对时间单位进行设定,进一步,上述k的取值可以根据实际情况进行设置,此处不作限定。
需要说明的是,本发明实施例中的微博话题热度统计装置可以是微博服务器,或者,也可以是独立于微博服务器的装置,此处不作限定。
由上可见,本发明实施例中在用户发布关联话题的微博时,通过实时检测当前单位时间及当前单位时间之后共k个单位时间关于该话题的热度记录,在存在相应热度记录时,更新该热度记录,在不存在相应热度记录时,新增热度记录,并使该热度记录的值为该微博的热度,使得用户在查询指定话题在最近k个单位时间的热度或者查询在最近k个单位时间所有话题的热度排行时,只需调用当前单位时间的热度记录,而不需要调用多个单位时间的热度记录进行统计计算,从而避免了用户多次查询时需要对话题热度进行多次重复计算的问题,有效减少了微博话题的热度统计的运算量,缓解了微博服务器的压力,进而提高了系统性能。
在上述实施例中,话题的热度记录与关联该话题的微博的发布相关,在本发明实施例方式中,话题的热度记录还可以与关联该话题的微博评论的发布相关,请参阅图2,本发明实施例中的微博话题的热度统计方法,包括:
201、检测用户发布的微博评论是否与至少一个话题相关联;
在本发明实施例中,“话题”是指微博搜索时的关键字,其书写形式是将关键词放在特定字符之间(如两个“#”号之间),后面再加上想发布的内容上,其中,#号内的关键词即为话题词。
一条微博评论中可以关联一个或者多个话题,即一条微博评论的内容中可以包括一个或者多个话题词。
当用户发布微博评论时,微博话题热度统计装置通过检测该微博评论中是否包含话题词来判定该微博评论是否与话题相关联,当该微博评论包含N个话题词时(N大于或等于1),表明该微博评论与N个话题相关联,当该微博评论包含N个话题词时,表明该微博评论与N个话题词相关联。
202、若检测出上述微博评论与至少一个话题相关联,则对于每一个与上述微博评论相关联的话题:针对每一个单位时间n,检查是否存在以上述话题和单位时间n为主键的热度记录;
其中,上述n∈[1,2,...,k],单位时间1至单位时间k分别表示当前单位时间以及当前单位时间之后的k-1个单位时间。
若存在以上述话题和单位时间n为主键的热度记录,则执行步骤203;
若不存在以上述话题和单位时间n为主键的热度记录,则执行步骤204。
可选地,上述热度记录以话题热度表的形式存储在微博话题热度统计装置本地,则微博话题热度统计装置可以通过检查本地存储的话题热度表来判断是否存在以上述话题和单位时间n为主键的热度记录。或者,上述热度记录也可以存储在其它设备(如云端服务器),则微博话题热度装置需要与其它设置进行通讯来检测是否存在以上述话题和单位时间n为主键的热度记录。
203、将该热度记录的值加上上述微博评论的热度,以更新该热度记录;
本发明实施例中,与话题关联的微博评论的热度可以根据实际情况进行设定,例如,可以设定一条与话题关联的微博评论的热度为S(其中,S为大于1的自然数),则在步骤203中,将该热度记录的值加上S。
当然,与话题关联的微博评论的热度也可以是根据预定算法计算得到,则在步骤203中,将该热度记录的值加上根据预定算法计算得到的值,此处不作限定。
204、新增一条以上述话题和单位时间n为主键的热度记录,该热度记录的值为上述微博的热度。
以步骤202中的举例进一步进行说明,当检测不到以话题1和后天为主键的热度记录时,微博话题热度统计装置新增一条热度记录,该热度记录以话题1和后天为主键,并且,使该新增的热度记录的值为上述微博评论的热度。
需要说明的是,本发明实施例中的微博话题热度统计装置可以是微博服务器,或者,也可以是独立于微博服务器的装置,此处不作限定。
需要说明的是,本发明实施例中的时间单位可以有多少设定,如可以设定“天”作为时间单元,或者设定“月”作为时间单位,或者设定“时”作为时间单元,具体地,可以根据实际情况对时间单位进行设定,进一步,上述k的取值可以根据实际情况进行设置,此处不作限定。
由上可见,本发明实施例中在用户发布关联话题的微博评论时,也通过实时检测当前单位时间及当前单位时间之后共k个单位时间关于该话题的热度记录,在存在相应热度记录时,更新该热度记录,在不存在相应热度记录时,新增热度记录,并使该热度记录的值为该微博评论的热度,从而进一步使得话题的热度记录更真实,即更能表现话题的受关注程度。
在图1或图2所示实施例的基础上,本发明实施例还提供用户查询指定话题的热度的方案,请参阅图3,包括:
301、接收用户查询指定话题在最近k个单位时间内的热度的请求;
本发明实施例中,用户可以通过用户设备(UE,User Equipment)随时向微博话题热度统计装置发送查询指定话题在最近k个单位时间内的热度的请求,当微博话题热度统计装置接收用户查询指定话题在最近k个单位时间内的热度的请求时,执行步骤302。
302、向上述用户反馈上述指定话题在当前单位时间的热度记录;
微博话题热度统计装置调取上述指定话题在当前单位时间的热度记录,并向用户反馈上述指定话题在当前单位时间的热度记录。
在图1或图2或图3所示实施例的基础上,本发明实施例还提供用户查询最近k个单位时间内所有话题的热度排行的请求,请参阅图4,包括:
401、接收用户查询最近k个单位时间内所有话题的热度排行的请求;
本发明实施例中,用户可以通过UE随时向微博话题热度统计装置发送查询最近k个单位时间内所有话题的热度排行的请求,当微博话题热度统计装置接收用户查询最近k个单位时间内所有话题的热度排行的请求时,执行步骤402。
402、按照热度由大到小的顺序,根据上述所有话题在当前单位时间的热度记录,对上述所有话题进行排序。
403、向上述用户反馈排序后的结果;
微博话题热度统计装置向用户反馈步骤402排序后的结果,进一步,微博话题热度统计装置反馈的结果中还可以包括各个话题的热度记录。
下面以一具体应用场景对本发明实施例中的微博话题的热度统计方法进行描述。假设以“天”为时间单位,与话题X相关联的微博的发布日期和发布数量如表1所示:
表1
话题 |
发布日期 |
相关联的微博发布数量 |
话题X |
2013.08.14 |
14 |
话题X |
2013.08.15 |
15 |
话题X |
2013.08.16 |
16 |
话题X |
2013.08.17 |
17 |
设定每条与话题X关联的微博的热度为1,k为7,假设2013.08.14之前以及2013.08.17以后都没有与话题X关联的微博的发布,则2013.08.14~2013.08.23话题X的热度记录如表2所示:
表2
假设当前时间(精确到当前单位时间)是2013.08.20,则话题X的最近7天热度为62。
本发明实施例还提供一种微博话题热度统计装置,请参阅图5,本发明实施例中的微博话题热度统计装置500,包括:
第一检测单元501,用于检测用户发布的微博是否与至少一个话题相关联。
第二检测单元502,用于当第一检测单元501检测出上述微博与至少一个话题相关联时,对于每一个与上述微博相关联的话题,针对每一个单位时间n检查是否存在以上述话题和单位时间n为主键的热度记录,其中,上述n∈[1,2,...,k],单位时间1至单位时间k分别表示当前单位时间以及当前单位时间之后的k-1个单位时间。
更新单元503,用于当第二检测单元502检测出存在以上述话题和单位时间n为主键的热度记录时,将该热度记录的值加上上述微博的热度,以更新该热度记录。
热度记录创建单元504,用于当第二检测单元502检测出不存在以上述话题和单位时间n为主键的热度记录时,新增一条以上述话题和单位时间n为主键的热度记录,该热度记录的值为上述微博的热度。
可选地,第二检测单元502具体用于:检查本地存储的话题热度表中是否存在以上述话题和单位时间n为主键的热度记录。
可选地,第一检测单元501还用于:检测用户发布的微博评论是否与至少一个话题相关联;第二检测单元502还用于:当第一检测单元501检测到用户发布的微博评论与至少一个话题相关联时,对于每一个与上述微博评论相关联的话题,针对每一个单位时间n检查是否存在以上述话题和单位时间n为主键的热度记录;更新单元503,还用于当第二检测单元502检测出存在以上述话题和单位时间n为主键的热度记录时,将该热度记录的值加上上述微博评论的热度,以更新该热度记录;热度记录创建单元504,还用于当第二检测单元502检测出不存在以上述话题和单位时间n为主键的热度记录时,新增一条以上述话题和单位时间n为主键的热度记录,该热度记录的值为上述微博评论的热度。
可选地,在图5所示实施例的基础上,如图6所示,微博话题热度统计装置600还包括:第一接收单元505,用于接收用户查询指定话题在最近k个单位时间内的热度的请求;第一发送单元506,用于当接收单元505接收到用户查询指定话题在最近k个单位时间内的热度的请求时,向上述用户反馈上述指定话题在当前单位时间的热度记录。
可选地,在图5或图6所示实施例的基础上,微博话题热度统计装置还可以包括:第二接收单元,排序单元和第二发送单元,如图7所示(图7以图5为基础)的微博话题热度统计装置700,其中,第二接收单元507,用于接收用户查询最近k个单位时间内所有话题的热度排行的请求;排序单元508,用于当第二接收单元507接收到用户查询最近k个单位时间内所有话题的热度排行的请求时,按照热度由大到小的顺序,根据上述所有话题在当前单位时间的热度记录,对上述所有话题进行排序;第二发送单元509,用于向上述用户反馈上述排序单元排序后的结果。
需要说明的是,本发明实施例中的话题的热度记录主要用于表征该话题的受关注程度。在上述实施例中,话题的热度记录与关联该话题的微博的发布相关,在其它实施例方式中,话题的热度记录除了与关联该话题的微博的发布相关,还可以与关联该话题的微博评论的发布相关。
需要说明的是,本发明实施例中的时间单位可以有多少设定,如可以设定“天”作为时间单元,或者设定“月”作为时间单位,或者设定“时”作为时间单元,具体地,可以根据实际情况对时间单位进行设定,进一步,上述k的取值可以根据实际情况进行设置,此处不作限定。
需要说明的是,本发明实施例中的微博话题热度统计装置可以是微博服务器,或者,也可以是独立于微博服务器的装置,此处不作限定。
需要说明的是,本实施例的微博话题热度统计装置可以如上述方法实施例中的微博话题热度统计装置,可以用于实现上述方法实施例中的全部技术方案,其各个功能模块的功能可以根据上述方法实施例中的方法具体实现,其具体实现过程可参照上述实施例中的相关描述,此处不再赘述。
由上可见,本发明实施例中在用户发布关联话题的微博时,通过实时检测当前单位时间及当前单位时间之后共k个单位时间关于该话题的热度记录,在存在相应热度记录时,更新该热度记录,在不存在相应热度记录时,新增热度记录,并使该热度记录的值为该微博的热度,使得用户在查询指定话题在最近k个单位时间的热度或者查询在最近k个单位时间所有话题的热度排行时,只需调用当前单位时间的热度记录,而不需要调用多个单位时间的热度记录进行统计计算,从而避免了用户多次查询时需要对话题热度进行多次重复计算的问题,有效减少了微博话题的热度统计的运算量,缓解了微博服务器的压力,进而提高了系统性能。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本发明所必须的。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上对本发明所提供的一种微博话题的热度统计方法及相关装置进行了详细介绍,在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。