专利名称:行为标签取值的获取方法及装置的制作方法
行为标签取值的获取方法及装置技术领域
本申请涉及计算机及互联网技术领域,具体而言,涉及一种行为标签取值的获取方法及装置。
背景技术:
随着互联网的用户和内容的不断增加,用户的行为也变得越来越复杂,分析考量一个用户的维度也越来越多,从传统的静态维度(国家,省份及性别等)向时间等动态维度进行不断扩展,从而形成各种用户的行为标签。在这些行为标签中,常用的是行为和时间组合起来的行为标签,比如,用户的登录行为,根据分析时间维度的不同,能够产生多个用户行为标签,比如,当天是否有登录、本周是否有登录或本月是否有登录等行为标签。
目前,典型的是采用静态行为标签的处理方式,在静态行为标签中,分析人员将需要分析的行为标签整理出来,同时给出各行为标签的定义。开发人员根据这些需求,将相关的行为标签转换为表字段,然后根据标签的定义实现各字段的刷新逻辑。目前,广泛采用的静态标签方法是:一个时间维度对应一个行为标签,对应一个字段,对应一套刷新逻辑。图1为相关技术中静态标签方法的方案设计示意图,如图1所示,在相关技术中,任何一个维度的分析都需要经过四个阶段才能真正生效,即:维度的定义、行为标签的定义、表字段的定义和字段的刷新逻辑的实现。
维度定义:分析人员将分析的需求进行固化,转化为时间的集合和行为的集合,例如,(时间)={当天,一月,一周,一年……};(行为)={登录,浏览,购买,搜索……}。
行为标签定义:分析人员将时间段和行为进行两两组合,组成行为标签定义集合。例如,(时间,行为)=K当天,登录),(当天,浏览),(当天,购买),(一周,登录),(一周,浏览)……} = {当天有登录,当天有浏览,当天有购买,本周有登录,本周有浏览……}。
表字段的定义:开发人员将所有的标签定义转化为相对应的表字段的集合,并这些集合转换到相应的表上面。例如,{当天有登录,当天有浏览,当天有购买,本周有登录,本周有浏览......} = {is_login_day, is_visit_day, is_deal_day, is_login_week, is_visit_week......}。
字段刷新逻辑的定义:为所有的行为表字段提供配套的刷新逻辑。例如,可以通过结构化查询(SQL)实现,SQL实现逻辑如下=Select
Case when Max (yyyymmdd) = tmnc (sysdate) then I else Oend as is_login_day,
Case when max(yyyymmdd) > trunc (sysdate-7)and max(Yyyymmdd) < =trunc (sysdate)then lelse Oend as is_login_week,
Case when max(yyyymmdd) > trunc(sysdate-30)and max(yyyymmdd) < =tmnc(sysdate)then lelse 0 end as is_login_month
From用户登录表
Group by member_id ;
其中:
“select…from…”为基本的sql查询结构;
“casewhen…then..else..end” 为“当…的时候,就..,否则…”;
max O为“取当前字段的最大值”;
sysdate 为“当前日期”;
trunc为“截断到天”;
group by为“按照某列进行分组”。
采用上述的静态标签的方法,当需要增加一个新的分析维度,例如:半个月时,其实现方案如图2所示。从图2可以看出,如果增加一个新的分析维度,需要增加以下的工作量。
维度定义:增加了一个新的时间维度,比如,(时间)={当天,一月,一周,一年,半月……};(行为)={登录,浏览,购买,搜索……}。
行为标签定义:增加了几种新的行为标签组合。例如,(时间,行为)={(当天,登录),(当天,浏览),(当天,购买),(一周,登录),(一周,浏览),(半月,登录),(半月,浏览)……} = {当天有登录,当天有浏览,当天有购买,本周有登录,本周有浏览,半月有登录,半月有浏览……}。
表字段的定义:将所有的标签定义转化为相对应的表字段。例如,{当天有登录,当天有浏览,当天有购买,本周有登录,本周有浏览,半月有登录,半月有浏览……} = {is_login_day, is_visit_day, is_deal_day, is_login—week, is_visit—week, is_login_15d,is—visit—15d......}。
字段刷新逻辑的定义:为所有的行为表字段提供配套的刷新逻辑。
以SQL实现为例,需要增加以下的刷新逻辑:
半月有登录:Select
Case when Max(yyyymmdd) = trunc (sysdate)then I else Oend as is_login_day,
Case when max (yyyymmdd) > trunc (sysdate-7)and max(Yyyymmdd) < =trunc (sysdate)then lelse 0 end as is_login_week,
Case when max(yyyymmdd) > trunc(sysdate-30)and max(yyyymmdd) < =trunc (sysdate)then lelse 0 end as is_login_month,
Case when max(yyyymmdd) > trunc(sysdate-15)and max(yyyymmdd) < =trunc (sysdate)then lelse 0 end as is_login_15d
From用户登录表
Group by member_id。
通过上面对判断用户在半个月内是否有登录的标签的实现,可以清晰的看到:当增加一个新的时间维度的时候,必须得从维度定义开始,到行为标签定义,再到字段定义,最后到刷新逻辑,灵活性差,必须开发完相应的字段之后,该行为标签才能使用。而且每天刷新相关行为指标的时候,都需要全表扫描所有的数据,效率较低。
针对现有技术中的静态标签的方法的灵活性较差以及系统效率较低的问题,目前尚未提出有效的解决方案。发明内容
本申请提供了一种行为标签取值的获取方法及装置,以解决现有技术中的行为标签不够灵活及系统效率较低的问题。
为了实现上述目的,根据本申请的一个方面,提供了一种行为标签取值的获取方法。
根据本申请的行为标签取值的获取方法,包括:在增加新的行为标签时,确定所述行为标签对应的用户行为,其中,所述行为标签用于记录用户在指定时间段内是否有所述用户行为;从存储的行为字段中获取各个用户的最后一次所述用户行为的发生时间,其中,所述行为字段中只包括记录各个用户的最后一次所述用户行为的发生时间的字段;根据获取的最后一次所述用户行为的发生时间是否在所述指定时间段内,获取各个用户的所述行为标签的取值。
优选地,所述方法还包括:周期性的更新记录各个用户的最后一次所述用户行为的发生时间的所述行为字段。
优选地,周期性的更新记录各个用户的最后一次所述用户行为的发生时间的所述行为字段,包括:获取当前周期内各个用户的最后一次所述用户行为的发生时间;将当前周期内各个用户的最后一次所述用户行为的发生时间与上一周期更新后的各个用户的最后一次所述用户行为的发生时间进行比较,根据比较结果,更新记录各个用户的最后一次所述用户行为的发生时间的所述行为字段。
优选地,根据比较结果,更新记录的各个用户的最后一次所述用户行为的发生时间的所述行为字段,包括:对于上一周期更新后记录中存在与获取的所述当前周期的用户的所述用户行为对应的行为字段的所述用户行为,则将该行为字段的值更新为当前周期内该用户的最后一次所述用户行为的发生时间;对于上一周期更新后记录中不存在与获取的所述当前周期的用户的所述用户行为对应的行为字段的所述用户行为,则增加与该用户的所述用户行为对应的行为字段,并将该行为字段的值设置为当前周期内该用户的最后一次所述用户行为的发生时间。
优选地,对于各种用户行为,获取当前周期内各个用户的最后一次所述用户行为的发生时间,包括:获取所述当前周期内所有用户的行为信息;从所述所有用户的行为信息中获取所述当前周期内各个用户的最后一次所述用户行为的发生时间。
优选地,获取所述当前周期内所有用户的行为信息,包括:从日志记录服务器中获取所述当前周期内所有用户的行为信息。
根据本申请的另一个方面,提供了一种行为标签取值的获取装置。
根据本申请的行为标签的生成装置,包括:确定模块,用于在增加新的行为标签时,确定所述行为标签对应的用户行为,其中,所述行为标签用于记录用户在指定时间段内是否有所述用户行为;存储模块,用于存储记录各个用户的最后一次所述用户行为的发生时间的行为字段;第一获取模块,用于从所述存储模块存储的行为字段中获取各个用户的最后一次所述用户行为的发生时间;第二获取模块,用于根据获取的所述最后一次发生时间是否在所述指定时间段内,获取各个用户的所述行为标签的取值。
优选地,所述装置还包括:更新模块,用于周期性的更新所述存储模块中存储的记录各个用户的最后一次所述用户行为的发生时间的所述行为字段。
优选地,所述更新模块包括:获取单元,用于获取当前周期内各个用户的最后一次所述用户行为的发生时间;比较单元,用于将当前周期内各个用户的最后一次所述用户行为的发生时间与上一周期更新后的各个用户的最后一次所述用户行为的发生时间进行比较;更新单元,用于根据所述比较单元的比较结果,更新记录各个用户的最后一次所述用户行为的发生时间的所述行为字段。
优选地,所述获取单元包括:第一获取单元,用于获取所述当前周期内所有用户的行为信息;第二获取单元,用于从所述所有用户的行为信息中获取所述当前周期内各个用户的最后一次所述用户行为的发生时间。
通过本申请,存储的行为字段只需记录各个用户的各种用户行为最后一次的发生时间,当增加新的分析维度的时候,只需要根据相应用户行为最后一次的发生时间,动态响应时间维度的行为标签,而不需要增加相关的静态行为标签,增加了行为标签的灵活性,提高了响应速度,并且,由于只需要存储记录各个用户的各种用户行为最后一次的发生时间,从而可以扫描的数据,提高了系统的效率。
构成本申请的一部分的附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是相关技术中静态标签的方案设计示意图2是相关技术中增加分析维度的静态标签的方案设计示意图3是根据本申请实施例的行为标签的生成方法的流程图4是根据本申请优选实施例的行为字段更新的流程图5是根据本申请优选实施例的行为标签的方案设计示意图6是根据本申请优选实施例的逻辑刷新的流程图7是根据本申请实施例的行为标签的生成装置的结构示意图8是根据本申请优选实施例的行为标签的生成装置的结构示意图9是根据本申请另一优选实施例的行为标签的生成装置的结构示意图;以及
图10是根据本申请又一优选实施例的行为标签的生成装置的结构示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
相关技术中,采用静态行为标签的处理方式,在定义行为标签时,将时间段和行为进行组合,所有的行为标签都需要定义一个静态的字段来展现,新增行为标签时,需要定义新字段,从而导致行为标签不够灵活。并且,在每个周期刷新相关行为标签时,需要全表扫描,随着用户行为数据的累积,扫描的范围会逐渐增大,从而导致刷新标签的效率较低,进而增加了系统响应的时间。针对该问题,本申请实施例提供了一种改进的行为标签的生成方案,在本申请中,行为标签和字段并不需要一一对应,只需记录用户的最后一次的行为时间的行为字段,就能够得到需要生成的多种时间维度的行为标签。另外,在本申请中,由于只需要记录用户的最后一次的行为时间的行为字段,在刷新时,只需要扫描当前周期的数据便可以更新该行为字段,而不需要扫描所有的数据,从而提高了刷新逻辑的效率,提高了系统的响应速度。
图3是根据本申请实施例的行为标签的生成方法的流程图,如图3所示,本申请实施例的行为标签的生成方法主要包括以下步骤S302-步骤S306。
步骤S302,在增加新的行为标签时,确定该行为标签对应的用户行为。
本申请中,行为标签是指将用户行为和时间维度组合起来,判断用户在某个时间维度是否有用户行为的系列标签,即行为标签用于记录用户在某个时间段内是否有用户行为。例如,登录行为与一个月的时间维度组合起来就是用户一个月内是否有登录的行为标签,登录行为与一周的时间维度组合起来就是用户一周内是否有登录的行为标签。
因此,在本申请中,在需要新增某个行为标签时,需要先确定该行为标签对应的用户行为,例如,登录行为、点击行为、浏览行为或订购行为等。
步骤S304,从存储的行为字段中获取各个用户的最后一次该用户行为的发生时间,其中,该行为字段中只包括记录各个用户的最后一次该用户行为的发生时间的字段。
在本申请中,最后一次用户行为的发生时间是指用户最后一次产生该用户行为的时间,例如,用户在7月30号和31号都登录网站,则该用户的最后一次登录行为的发生时间为31号。
在实际应用中,可以针对多种用户行为定义行为字段,例如,可以定义记录各个用户的最后一次登录行为的发生时间的行为字段,还可以定义记录各个用户最后一次点击行为的发生时间的行为字段,以及记录各个用户最后一次浏览行为的发生时间的行为字段等,服务器可以根据定义的各个行为字段,记录用户的行为,并进一步得到各个行为字段的取值。
在本申请中,在定义行为字段时,只需要定义用户的最后一次用户行为的发生时间,而不需要针对每个行为标签定义一个行为字段,从而节省了工作量,并节省了字段的存储空间。另外,由于只定义了一个行为字段,因此,也只需要定义一个刷新逻辑,进一步减少了工作量。并且,由于只需定义一个刷新逻辑,更新时只需要执行一个刷新逻辑,从而也提高了系统效率。
为了保证数据的实时性,在本申请的一个优选实施方式中,还可以周期性的更新记录各个用户的最后一次用户行为的发生时间的行为字段。在本申请的一个优选实施方式中,在更新记录各个用户的最后一次用户行为的发生时间的行为字段时,可以先获取当前周期内各个用户的最后一次用户行为的发生时间,然后将当前周期内各个用户的最后一次用户行为的发生时间与上一周期更新后的各个用户的最后一次用户行为的发生时间进行比较,根据比较结果,更新记录各个用户的最后一次用户行为的发生时间的行为字段。
图4是本申请优选实施例中行为字段更新的流程图,如图4所示,在该优选实施例中,行为字段的更新可以包括以下步骤:
步骤S401,当前周期到达;
步骤S402,获取当前周期内用户的行为信息;
步骤S403,获取上一周期更新后的记录各个用户的最后一次用户行为的发生时间的行为字段;
步骤S404,将步骤S402和步骤S403获取的信息进行比较,得到三个集合:
A: {当前周期发生该用户行为但没有存储在上一周期更新后的记录中的用户};
B: {当前周期发生该用户行为且存储在上一周期更新后的记录中的用户};
C: {当前周期没有发生该用户行为但存储在上一周期更新后的记录中的用户}。
例如,假设上一周期更新后行为字段记录的内容如表I所示,而当前周期的用户行为信息如表2所示,则三个集合分别为:
A: {008,009};
B:{001,002,003,006};
C:{004,005,007}。
表1.
权利要求
1.一种行为标签取值的获取方法,其特征在于,包括: 在增加新的行为标签时,确定所述行为标签对应的用户行为,其中,所述行为标签用于记录用户在指定时间段内是否有所述用户行为; 从存储的行为字段中获取各个用户的最后一次所述用户行为的发生时间,其中,所述行为字段中只包括记录各个用户的最后一次所述用户行为的发生时间的字段; 根据获取的最后一次所述用户行为的发生时间是否在所述指定时间段内,获取各个用户的所述行为标签的取值。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:周期性的更新记录各个用户的最后一次所述用户行为的发生时间的所述行为字段。
3.根据权利要求2所述的方法,其特征在于,周期性的更新记录各个用户的最后一次所述用户行为的发生时间的所述行为字段,包括: 获取当前周期内各个用户的最后一次所述用户行为的发生时间; 将当前周期内各个用户的最后一次所述用户行为的发生时间与上一周期更新后的各个用户的最后一次所述用户行为的发生时间进行比较,根据比较结果,更新记录各个用户的最后一次所述用户行为的发生时间的所述行为字段。
4.根据权利要求3所述的方法,其特征在于,根据比较结果,更新记录的各个用户的最后一次所述用户行为的发生时间的所述行为字段,包括: 对于上一周期更新后记录中存在与获取的所述当前周期的用户的所述用户行为对应的行为字段的所述用户行为,则将该行为字段的值更新为当前周期内该用户的最后一次所述用户行为的发生时间; 对于上一周期更新后记录中不存在与获取的所述当前周期的用户的所述用户行为对应的行为字段的所述用户行为,则增加与该用户的所述用户行为对应的行为字段,并将该行为字段的值设置为当前周期内该用户的最后一次所述用户行为的发生时间。
5.根据权利要求3所述的方法,其特征在于,对于各种用户行为,获取当前周期内各个用户的最后一次所述用户行为的发 生时间,包括: 获取所述当前周期内所有用户的行为信息; 从所述所有用户的行为信息中获取所述当前周期内各个用户的最后一次所述用户行为的发生时间。
6.根据权利要求5所述的方法,其特征在于,获取所述当前周期内所有用户的行为信息,包括:从日志记录服务器中获取所述当前周期内所有用户的行为信息。
7.一种行为标签取值的获取装置,其特征在于,包括: 确定模块,用于在增加新的行为标签时,确定所述行为标签对应的用户行为,其中, 所述行为标签用于记录用户在指定时间段内是否有所述用户行为; 存储模块,用于存储记录各个用户的最后一次所述用户行为的发生时间的行为字段;第一获取模块,用于从所述存储模块存储的行为字段中获取各个用户的最后一次所述用户行为的发生时间; 第二获取模块,用于根据获取的所述最后一次发生时间是否在所述指定时间段内,获取各个用户的所述行为标签的取值。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:更新模块,用于周期性的更新所述存储模块中存储的记录各个用户的最后一次所述用户行为的发生时间的所述行为字段。
9.根据权利要求8所述的装置,其特征在于,所述更新模块包括: 获取单元,用于获取当前周期内各个用户的最后一次所述用户行为的发生时间; 比较单元,用于将当前周期内各个用户的最后一次所述用户行为的发生时间与上一周期更新后的各个用户的最后一次所述用户行为的发生时间进行比较; 更新单元,用于根据所述比较单元的比较结果,更新记录各个用户的最后一次所述用户行为的发生时间的所述行为字段。
10.根据权利要求9所述的装置,其特征在于,所述获取单元包括: 第一获取单元,用于获取所述当前周期内所有用户的行为信息; 第二获取单元,用于从所述所有用户的行为信息中获取所述当前周期内各个用户的最后一次所述用户行 为的发生时间。
全文摘要
本申请公开了一种行为标签取值的获取方法及装置。其中,该方法包括在增加新的行为标签时,确定该行为标签对应的用户行为,其中,行为标签用于记录用户在指定时间段内是否有用户行为;从存储的行为字段中获取各个用户的最后一次该用户行为的发生时间,其中,行为字段中只包括记录各个用户的最后一次用户行为的发生时间的字段;根据获取的最后一次用户行为的发生时间是否在上述指定时间段内,获取各个用户的该行为标签的取值。通过本申请,增加了行为标签的灵活性,提高了响应速度及系统的效率。
文档编号G06F17/30GK103207880SQ20121001533
公开日2013年7月17日 申请日期2012年1月17日 优先权日2012年1月17日
发明者贾亮 申请人:阿里巴巴集团控股有限公司