具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
下面参考附图描述本申请实施例的手机号用户的识别方法及装置。
图1是本申请一个实施例的手机号用户的识别方法的流程图。
如图1所示,该手机号用户的识别方法包括:
S11,获取目标手机号,并将目标手机号作为手机号节点。
S12,分别获取与目标手机号存在关联的多个用户节点和姓名节点。
具体地,在识别手机号用户的过程中,可先获得要处理的目标手机号,并获取与该手机号存在关联关系的多个用户和多个姓名,然后基于所获得的多个用户和多个姓名与手机号之间的关系建立手机号节点、用户节点和姓名节点之间的网络结构。
其中,每个用户节点和手机号节点,以及每个姓名节点和手机号节点之间分别具有第一边和第二边,第一边和第二边分别具有对应的第一权重和第二权重。
具体地,手机号节点与姓名节点之间的第二边,主要是通过共线关系获取的,主要表现为“表单填写”上的共现关系。
例如,用户在“表单填写”上的共现关系有:预订酒店或购买机票填写的联系人手机号和姓名、收货运单上填写的收货人手机号和姓名/寄件人手机号和姓名、办理银行卡时填写的联系方式和姓名。
除了上述例子中所列举的共现关系外,共现关系还有其他形式,例如,通讯录上存的手机号和姓名,一般越多的人将手机号A的姓名存为X,则A是X的目标用户为X的可能性也越大。
另外,需要理解的是,姓名节点和用户节点之间的对应关系是1对多的关系,用户节点与姓名节点之间的权重为1。
在本申请的一个实施例中,获得第一权重的具体过程,如图2所示,可以包括:
S121,获取用户节点与手机号节点之间的场景,和获取姓名节点与手机号节点之间的场景。
S122,判断场景的场景类型。
其中,场景类型包括静态场景和动态场景。
静态场景是指一旦建立关系,所建立的关系几乎不会更改,例如:用户使用该手机号注册、或者绑定该手机号属于静态场景。
静态场景对应的第一权重的取值为0或1,如果用户节点和手机节点之间具有第一边,则在场景类型为静态场景时,第一边所对应的第一权重为1。同样地,如果姓名节点和手机号节点之间具有第二边,则在场景类型为静态场景时,第二边所对应的第二权重为1。
动态场景是指建立的关系,关系会更改。动态场景属性信息可以包括场景的使用频繁程度信息和使用时间跨度信息。例如:用户给该手机号充值、使用该手机号收货、用该手机号登陆网站或应用程序(APPlication,APP)均属于动态场景,这些动态场景对应的特征有时间和频次。
S123,如果场景类型属于静态场景,则将第一权重置1。
S124,如果场景类型属于动态场景,则获取动态场景属性信息,并根据动态场景属性信息确定第一权重。
需要说明的是,步骤S123和步骤S124的执行顺序不分先后。
在本申请的一个实施例中,在确定用户节点与手机号节点之间的场景为动态场景时,根据动态场景确定第一权重的具体过程为:首先,分别对场景的使用频繁程度信息和使用时间跨度信息进行归一化处理以生成使用频繁度信息归一化值和使用时间跨度归一化值,然后,根据使用频繁度信息归一化值、使用时间跨度归一化值和时间衰减因子生成第一权重。
在本申请中对使用频繁度信息和使用时间跨度进行归一化处理所使用的归一化函数相同,均采用逻辑回归曲线的正半部分进行归一化处理。
其中,逻辑回归模型曲线的正半部分对应的拟合公式为:
其中,a控制曲线走势,该拟合公式对应的曲线的形式如图3所示。需要说明的是,图3仅是该拟合公式所对应的曲线的一个示例图。
需要说明的是,公式中的x是特征值,不用考虑单位,例如,当对使用频繁度信息进行归一化时,x表示使用次数,x可取值0~∞,通过f(x)函数将x归一化到0-1区间。再例如,当对时间跨度进行归一化处理时,x表示使用天数,x可取值0~∞,通过f(x)函数将x归一化到0-1区间。
通过图3所示的曲线可以看出,该图3中的纵坐标的取值在0到1之间,在纵坐标的取值从0变化为1的过程中,纵坐标变化最大,分值增量最大,后面指标增加1个单位对纵坐标分值的贡献慢慢减少。
另外,需要说明的是,公式中的a用于控制曲线走势,即用于区分不同场景权重,也就是说,登录场景和为用户充值场景中a的取值不同。
例如,当前场景为充值场景,用户(A)给手机号(B)第1次充值的时候,分值可能贡献0.1分,但如果A已经给B充值了100次,再充值1次可能就只能增加0.001分。上述假设转化为公式如下,即指标频次(CNT)取99分位数时的导数是取0时导数的0.01倍:
其中,对f(x)进行求导后,所获得的f'(x)的公式为:
假定充值频次的99分位数是100,则通过公式(3)和99分位数时的取值可以计算出对应参数a为0.06。
再例如,在用户使用手机号登陆场景来说,在用户通过手机号登录应用的过程中,用户一般只会使用自己的手机号登陆账号,在这个场景中场景频次为0的关系对较多,对应的99分位数通常会明显小于充值场景,假设99分位数为20,通过公式(3)和99分位数时的取值可以计算出对应参数a为0.3。在计算出公式(1)中的参数a的取值后,通过公式(1)可知用户A用手机号B登陆1次可贡献0.15分,而如果只充值1次只能贡献0.03分。
通过上述描述可以看出,该实施例不仅考虑了使用频繁程度的影响,也可以考虑不同场景来源对权重的影响。
另外,需要说明的是,在本申请的实施例中,对不同场景的使用时间跨度进行归一化进行处理的过程,与对不同场景的使用频繁程度信息进行归一化处理的过程相同,此处不再赘述。
在本申请的一个实施例中,为了可以准确计算出第一权重,还可以获取最近一次使用距今的天数,并根据最近一次使用距今的天数对时间衰减因子进行修正。
假定获取最近一次使用距今的天数为t,则根据最近一次使用距今的天数对时间衰减因子进行修正的公式为:
X(t)=X02-t/T (4)
其中,T为半衰期,T为常数,T为半年,X0表示待衰减的基础分值,2(-t/T)是时间衰减部分。
例如,手机号和用户今天的分值是100,则一个月后的分值就是X(t)=100*2(-t=一个月/T=半年);半年后手机号和用户的分值为X(t)=X0/2。
假定用户X1表示使用频繁度信息归一化值,X2表示使用时间跨度归一化值,则根据使用频繁度信息X1、使用时间跨度X2和修正后的时间衰减因子生成用户节点A和手机号节点B之间的关系强弱分值公式为:
其中,公式中的W1(A_B)的用户节点A和手机号节点B之间的系强弱分值,X(t)表示修正后的时间衰减因子,N为用户节点A和手机号节点B交互的场景数,f(X1(K)表示使用频繁度信息X1归一化值,f(X1(K)表示使用时间跨度X2归一化值。
在计算出用户节点A和手机号节点B之间的关系强弱分值后,可通过公式(1)将关系强弱分值进行归一化处理,归一化处理所获得的值即为用户节点A和手机号节点B之间的第一权重。
需要理解的是,计算手机号节点和姓名节点之间的第二权重的过程,与上述计算用户节点A和手机号节点B之间的第一权重的过程类似,这里再赘述。
S13,确定多个用户节点和姓名节点中部分用户节点和姓名节点与手机号节点构成的闭环关系。
其中,闭环关系的三个顶点包括手机号节点、用户节点和姓名节点。
在本申请的一个实施例中,步骤S13的细化流程图,如图4所示,可以包括:
S131,手机号节点向与手机号节点关联的用户节点发送第一报文消息。
其中,报文消息包括手机号节点ID和第一权重。
例如,目标手机号为:159571****9,在获得与目标手机号的多个用户和姓名后,假定所建立的网络结构的示意图如图5所示,通过图5可以确定该网络结构中有两个闭环关系,其中,确定网络结构中的闭环关系的具体过程为:首先,手机号节点向与其直接关联的用户节点发送自己的ID和第一权重。对于用户节点“用户_5021”,中间手机号节点“159571****9”,会向用户节点“用户_5021”发送的第一报文消息为“159571****9#0.98”。
S132,与手机号节点关联的用户节点根据接收到的第一报文消息和自身的用户节点ID生成第二报文消息,并继续向与用户节点相关的姓名节点发送第二报文消息。
具体地,用户节点在接收到第一报文消息后,将自身的用户节点ID拼接在第一报文消息上,以生成第二报文消息,并将第二报文消息发给与其直接相连的姓名节点。
例如,对于图5中的用户节点“用户_5021”,用户节点“用户_5021”向姓名节点“何梅”发送“159571****9#用户_5021#0.98”。
需要说明的是,若用户节点收到多个手机号发来的消息,则转发的消息格式为“手机号1#用户ID#权重1;手机号2#用户ID#权重2;……”。
S133,与用户节点相关的姓名节点将根据接收到的第二报文消息和自身的姓名节点ID生成第三报文消息,并继续向与姓名节点相关的手机号节点发送第三报文消息。
具体地,姓名节点在接收到第二报文消息后,可按照“;”分隔符解析消息获取列表list,列表list的每个元素拼接上姓名节点的ID和边权重,以生成第三报文消息,然后给直接相连的手机号节点发送第三报文消息。
为了保证接收消息的手机号节点ID与list中的某个元素的起始手机号ID一致,即为了保证手机号节点、用户节点和姓名节点组成的是闭环关系结构,在向与姓名节点相连的手机号节点发送第三报文消息之前,可判断接收第三报文消息的手机号节点ID与第三报文消息中的某个元素的起始手机号ID是否一致,若一致,则向对应的手机号节点发送第三报文消息。
例如,对于图5中的姓名节点“何梅”,姓名节点“何梅”向手机号节点“159571****9”发送的第三报文消息为“159571****9#USER_5021#he*mei#0.98#0.99”。
S134,手机号节点根据接收到的第三报文消息确定闭环关系。
具体地,如果手机号节点可以接收到多个姓名节点发送的第三报文消息,可以确定当前网络结构存在多个闭环关系。
例如,对于图5中的网络结构来说,对于手机号节点“159571****9”,手机号节点“159571****9”最终接收到两条第三报文消息,分别为“159571****9#用户_5021#何梅#0.98#0.99“、“159571****9#用户_4028#郑军#0.21#0.33”,由此,可以确定图5中所示的网络结构中,有两个闭环关系结构。
S14,根据闭环关系对应的第一权重和第二权重计算闭环关系的综合权重,并将综合权重最高的闭环关系的用户节点对应的用户作为目标手机号的用户。
具体地,在获得闭环关系对应的第一权重和第二权重后,可根据以下公式计算闭环关系的综合权重:
其中,W1为第一权重,W2为第二权重。
例如,对于图5所示的网络结构,对于手机号节点“159571****9”,通过公式(6)这两个闭环关系进行计算可以得到,以手机号节点“159571****9”、用户节点“用户_5021”和姓名节点“何梅”为顶点的闭环关系的综合权重为0.9998,以手机号节点“159571****9”、用户节点“用户_4028”和姓名节点“郑军”为顶点的闭环关系的综合权重为0.116,通过分析可以确定,手机号“159571****9”的目标用户为用户_5021,而用户_4028可能是用户_5021的亲人。
通常对于一个手机号,如果该手机号对应多个闭环关系,且手机号和每个角形的情况,且手机号和每个账户的交互首末时间不存在交叉,则很大可能该手机号被二次放号。因此,该实施例的方法,同样可以对手机号是否存在二次放号的情况进行识别。
本申请实施例的手机号用户的识别方法,首先获取目标手机号,并将目标手机号作为手机号节点,并分别获取与目标手机号存在关联的多个用户节点和姓名节点,然后,确定多个用户节点和姓名节点中部分用户节点和姓名节点与手机号节点构成的闭环关系,其中,闭环关系的三个顶点包括手机号节点、用户节点和姓名节点,以及根据闭环关系对应的第一权重和第二权重计算闭环关系的综合权重,并将综合权重最高的闭环关系的用户节点对应的用户作为目标手机号的用户。由此,有效识别出了目标手机号所对应的目标用户,进而方便了后续向目标用户推送信息。
为了实现上述实施例,本申请还提出一种手机号用户的识别装置。
图6是本申请一个实施例的手机号用户的识别装置的结构示意图。
如图6所示,该服饰管理***包括第一获取模块100、第二获取模块200、确定模块300和处理模块400,其中:
第一获取模块100用于获取目标手机号,并将目标手机号作为手机号节点;第二获取模块200用于分别获取与目标手机号存在关联的多个用户节点和姓名节点,其中,每个用户节点和手机号节点,以及每个姓名节点和手机号节点之间分别具有第一边和第二边,第一边和第二边分别具有对应的第一权重和第二权重;确定模块300用于确定多个用户节点和姓名节点中部分用户节点和姓名节点与手机号节点构成的闭环关系,其中,闭环关系的三个顶点包括手机号节点、用户节点和姓名节点;处理模块400用于根据闭环关系对应的第一权重和第二权重计算闭环关系的综合权重,并将综合权重最高的闭环关系的用户节点对应的用户作为目标手机号的用户。
在本申请的一个实施例中,第二获取模块200通过以下步骤获得第一权重和第二权重:获取用户节点与手机号节点之间的场景,和获取姓名节点与手机号节点之间的场景;判断场景的场景类型;如果场景类型属于静态场景,则将第一权重置1;以及如果场景类型属于动态场景,则获取动态场景属性信息,并根据动态场景属性信息确定第一权重。第二获取模块200确定第一权重的过程如图2所示,此处不再赘述。
其中,场景类型包括静态场景和动态场景。
静态场景是指一旦建立关系,所建立的关系几乎不会更改,例如:用户使用该手机号注册、或者绑定该手机号属于静态场景。
静态场景对应的第一权重的取值为0或1,如果用户节点和手机节点之间具有第一边,则在场景类型为静态场景时,第一边所对应的第一权重为1。同样地,如果姓名节点和手机号节点之间具有第二边,则在场景类型为静态场景时,第二边所对应的第二权重为1。
动态场景是指建立的关系,关系会更改。动态场景属性信息可以包括场景的使用频繁程度信息和使用时间跨度信息。例如:用户给该手机号充值、使用该手机号收货、用该手机号登陆网站或应用程序(APPlication,APP)均属于动态场景,这些动态场景对应的特征有时间和频次。
在本申请的一个实施例中,在确定用户节点与手机号节点之间的场景为动态场景时,第二获取模块200根据动态场景确定第一权重的具体过程为:首先,分别对场景的使用频繁程度信息和使用时间跨度信息进行归一化处理以生成使用频繁度信息归一化值和使用时间跨度归一化值,然后,根据使用频繁度信息归一化值、使用时间跨度归一化值和时间衰减因子生成第一权重。
在本申请中,第二获取模块200对使用频繁度信息和使用时间跨度进行归一化处理所使用的归一化函数相同,均采用逻辑回归曲线的正半部分进行归一化处理。
其中,逻辑回归模型曲线的正半部分对应的拟合公式为:
其中,a控制曲线走势,该拟合公式对应的曲线的形式如图3所示。需要说明的是,图3仅是该拟合公式所对应的曲线的一个示例图。
通过图3所示的曲线可以看出,该图3中的纵坐标的取值在0到1之间,在纵坐标的取值从0变化为1的过程中,纵坐标变化最大,分值增量最大,后面指标增加1个单位对纵坐标分值的贡献慢慢减少。
另外,需要说明的是,公式中的a用于控制曲线走势,即用于区分不同场景权重,也就是说,登录场景和为用户充值场景中a的取值不同。
例如,当前场景为充值场景,用户(A)给手机号(B)第1次充值的时候,分值可能贡献0.1分,但如果A已经给B充值了100次,再充值1次可能就只能增加0.001分。上述假设转化为公式如下,即指标频次(CNT)取99分位数时的导数是取0时导数的0.01倍:
其中,对f(x)进行求导后,所获得的f'(x)的公式为:
假定充值频次的99分位数是100,则通过公式(3)和99分位数时的取值可以计算出对应参数a为0.06。
再例如,在用户使用手机号登陆场景来说,在用户通过手机号登录应用的过程中,用户一般只会使用自己的手机号登陆账号,在这个场景中场景频次为0的关系对较多,对应的99分位数通常会明显小于充值场景,假设99分位数为20,通过公式(3)和99分位数时的取值可以计算出对应参数a为0.3。在计算出公式(1)中的参数a的取值后,通过公式(1)可知用户A用手机号B登陆1次可贡献0.15分,而如果只充值1次只能贡献0.03分。
通过上述描述可以看出,该实施例不仅考虑了使用频繁程度的影响,也可以考虑不同场景来源对权重的影响。
为了可以准确计算出第一权重,如图7所示,上述装置还可以包括修正模块500,该修正模块500用于获取最近一次使用距今的天数,以及根据最近一次使用距今的天数对时间衰减因子进行修正。
假定获取最近一次使用距今的天数为t,则根据最近一次使用距今的天数对时间衰减因子进行修正的公式为:
X(t)=X02-t/T (4)
其中,T为半衰期,T为常数,T为半年,X0表示衰减因子。当t=T时,X(t)=X0/2
假定用户X1表示使用频繁度信息归一化值,X2表示使用时间跨度归一化值,则第二获取模块200根据使用频繁度信息X1、使用时间跨度X2和修正后的时间衰减因子生成用户节点A和手机号节点B之间的关系强弱分值公式为:
其中,公式中的W1(A_B)的用户节点A和手机号节点B之间的系强弱分值,X(t)表示修正后的时间衰减因子,N为用户节点A和手机号节点B交互的场景数,f(X1(K)表示使用频繁度信息X1归一化值,f(X1(K)表示使用时间跨度X2归一化值。
在计算出用户节点A和手机号节点B之间的关系强弱分值后,第二获取模块200还可通过公式(1)将关系强弱分值进行归一化处理,归一化处理所获得的值即为用户节点A和手机号节点B之间的第一权重。
确定模块300具体用于:手机号节点向与手机号节点关联的用户节点发送第一报文消息,其中,报文消息包括手机号节点ID和第一权重;与手机号节点关联的用户节点根据接收到的第一报文消息和自身的用户节点ID生成第二报文消息,并继续向与用户节点相关的姓名节点发送第二报文消息;与用户节点相关的姓名节点将根据接收到的第二报文消息和自身的姓名节点ID生成第三报文消息,并继续向与姓名节点相关的手机号节点发送第三报文消息;以及手机号节点根据接收到的第三报文消息确定闭环关系。
在本申请的一个实施例中,处理模块400根据以下公式计算闭环关系的综合权重:
其中,W1为第一权重,W2为第二权重。
其中,需要说明的是,上述对服饰管理方法实施例的解释说明也适用于该实施例的服饰管理***,此处不再赘述。
本申请实施例的手机号用户的识别装置,通过第一获取模块获取目标手机号,并将目标手机号作为手机号节点,并通过第二获取模块分别获取与目标手机号存在关联的多个用户节点和姓名节点,然后,确定模块确定多个用户节点和姓名节点中部分用户节点和姓名节点与手机号节点构成的闭环关系,其中,闭环关系的三个顶点包括手机号节点、用户节点和姓名节点,以及处理模块根据闭环关系对应的第一权重和第二权重计算闭环关系的综合权重,并将综合权重最高的闭环关系的用户节点对应的用户作为目标手机号的用户。由此,有效识别出了目标手机号所对应的目标用户,进而方便了后续向目标用户推送信息。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行***、装置或设备(如基于计算机的***、包括处理器的***或其他可以从指令执行***、装置或设备取指令并执行指令的***)使用,或结合这些指令执行***、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行***、装置或设备或结合这些指令执行***、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行***执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。