数据处理方法和装置制造方法
【专利摘要】本发明公开了一种数据处理方法和装置。其中,该数据处理方法包括:抽取多个用户的日志文件中的用户标识,得到多个用户标识;按照预设规则对多个用户标识进行排序;按顺序对排序后的多个用户标识添加序号;将序号与多个用户标识进行映射,得到用户的映射标识。通过本发明,解决了现有技术中将日志文件中的用户标识映射为整数时不准确的问题,达到了准确将日志文件的用户标识映射为整数的效果。
【专利说明】数据处理方法和装置
【技术领域】
[0001] 本发明涉及互联网领域,具体而言,涉及一种数据处理方法和装置。
【背景技术】
[0002] 推荐系统越来越多的被各个网站使用,推荐系统的数据源一般是日志文件。在常 用的日志文件中包含了大量的用户历史行为数据,推荐系统根据用户历史行为数据位用户 提供推荐信息。在提供推荐信息时,首先要根据用户的标识识别出用户的身份,由于每个网 站生成的日志文件中记载用户标识的方式不存在统一的规范,导致日志文件中没有标准的 用户标识字段,一般是自定义的字符串。而对于推荐引擎的算法库来说,这种自定义的字符 串会降低推荐的效率,基于对性能和处理复杂度的考虑,在进行推荐时需要输入一个整数 类型的用户标识。
[0003] 现有技术可以通过哈希算法将自定义的字符串标识映射为整数,但是,不同的字 符串经过哈希算法映射的整数可能相同,因此导致一个整数所对应的用户标识不唯一,造 成数据处理不准确。
[0004] 针对现有技术将日志文件中的用户标识映射为整数时不准确的问题,目前尚未提 出有效的解决方案。
【发明内容】
[0005] 本发明的主要目的在于提供一种数据处理方法和装置,以解决现有技术将日志文 件中的用户标识映射为整数时不准确的问题。
[0006] 为了实现上述目的,根据本发明实施例的一个方面,提供了一种数据处理方法。根 据本发明的数据处理方法包括:抽取多个用户的日志文件中的用户标识,得到多个用户标 识,其中,每个用户包括一个用户标识;按照预设规则对所述多个用户标识进行排序;按顺 序对排序后的所述多个用户标识添加序号;将所述序号与所述多个用户标识进行映射,得 到所述用户的映射标识。
[0007] 进一步地,在按照预设规则对所述多个用户标识进行排序之前,所述方法还包括: 获取记录有所述序号和所述映射标识的映射表和待映射用户标识;从所述映射中查找所述 待映射用户标识;判断所述待映射用户标识是否存在于所述映射表中;如果判断出所述待 映射用户标识存在于所述映射表中,则将所述待映射用户标识映射为查找到的用户标识所 对应的映射标识;如果判断出所述待映射用户标识不存在于所述映射表中,则确定对所述 待映射用户标识进行排序。
[0008] 进一步地,如果判断出所述待映射用户标识不存在于所述映射表中,则确定对所 述用户标识进行排序包括:获取所述映射表中的用户标识;将所述映射表中的所述用户标 识和所述待映射用户标识一起进行排序。
[0009] 进一步地,在将所述待映射用户标识映射为查找到的用户标识所对应的映射标识 之后,所述方法还包括:将所述待映射用户标识更新到所述映射表中。
[0010] 进一步地,按照预设规则对所述用户标识进行排序包括:获取待映射用户标识所 在的日志文件中的时间信息;按照所述时间信息对所述用户标识进行排序,得到排序后的 用户标识;以及按照所述预设规则对所述排序后的用户标识进行排序。
[0011] 为了实现上述目的,根据本发明实施例的另一方面,提供了一种数据处理装置。根 据本发明的数据处理装置包括:抽取单元,用于抽取多个用户的日志文件中的用户标识,得 到多个用户标识,其中,每个用户包括一个用户标识;排序单元,用于按照预设规则对所述 多个用户标识进行排序;添加单元,用于按顺序对排序后的所述多个用户标识添加序号; 映射单元,用于将所述序号与所述多个用户标识进行映射,得到所述用户的映射标识。
[0012] 进一步地,所述装置还包括:获取单元,用于在按照预设规则对所述多个用户标识 进行排序之前,获取记录有所述序号和所述映射标识的映射表和待映射用户标识;查找单 元,用于从所述映射中查找所述待映射用户标识;判断单元,用于判断所述待映射用户标识 是否存在于所述映射表中;确定单元,用于在判断出所述待映射用户标识存在于所述映射 表中时,将所述待映射用户标识映射为查找到的用户标识所对应的映射标识;在判断出所 述待映射用户标识不存在于所述映射表中时,确定对所述待映射用户标识进行排序。
[0013] 进一步地,所述确定单元包括:第一获取模块,用于获取所述映射表中的用户标 识;第一排序模块,用于将所述映射表中的所述用户标识和所述待映射用户标识一起进行 排序。
[0014] 进一步地,所述装置还包括:更新单元,用于在将所述待映射用户标识映射为查找 到的用户标识所对应的映射标识之后,将所述待映射用户标识更新到所述映射表中。
[0015] 进一步地,所述排序单元包括:第二获取模块,用于获取待映射用户标识所在的日 志文件中的时间信息;第二排序模块,用于按照所述时间信息对所述用户标识进行排序,得 到排序后的用户标识;以及第三排序模块,用于按照所述预设规则对所述排序后的用户标 识进行排序。
[0016] 根据发明实施例,通过抽取多个用户的日志文件中的用户标识,得到多个用户标 识;按照预设规则对多个用户标识进行排序;按顺序对排序后的多个用户标识添加序号; 将序号与多个用户标识进行映射,得到用户的映射标识,即提取用户标识之后,对用户标识 进行排序,将排序的序号作为这多个用户标识的新的标识,由于序号为整数,也就是实现了 将不规则的用户标识映射为规则的整数,解决了现有技术中将日志文件中的用户标识映射 为整数时不准确的问题,达到了准确将日志文件的用户标识映射为整数的效果。
【专利附图】
【附图说明】
[0017] 构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实 施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0018] 图1是根据本发明实施例的数据处理方法的流程图;以及
[0019] 图2是根据本发明实施例的数据处理装置的示意图。
【具体实施方式】
[0020] 需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相 互组合。下面将参考附图并结合实施例来详细说明本发明。
[0021] 为了使本【技术领域】的人员更好地理解本发明方案,下面将结合本发明实施例中的 附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是 本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术 人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范 围。
[0022] 需要说明的是,本发明的说明书和权利要求书及上述附图中的术语"第一"、"第 二"等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使 用的数据在适当情况下可以互换,以便这里描述的本发明的实施例。此外,术语"包括"和 "具有"以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元 的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有 清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0023] 本发明实施例提供了一种数据处理方法。该数据处理方法能够在利用用户的日志 文件进行数据分析时,将不规则的、自定义的用户标识映射为整数,并且,每个用户标识仅 对应一个整数,一个整数可以对应具有相同的用户标识的多个日志文件。通过该方法,能够 实现用户标识到整数的映射,使得进行的例如新闻推荐等与用户标识相关的动作时,减少 处理用户标识所占用的内存资源,提高了数据处理的效率。
[0024] 图1是根据本发明实施例的数据处理方法的流程图。如图1所示,该数据处理方 法包括步骤如下:
[0025] 步骤S102,抽取多个用户的日志文件中的用户标识,得到多个用户标识,其中,每 个用户拥有一个用户标识;
[0026] 每个用户只有一个用户标识,对抽取多个日志文件中的用户标识进行去重,对去 重后的用户标识保存在一个文件中,即该文件中不包含重复的用户标识。
[0027] 步骤S104,按照预设规则对多个用户标识进行排序;
[0028] 步骤S106,按顺序对排序后的多个用户标识添加序号;
[0029] 步骤S108,将序号与多个用户标识进行映射,得到用户的映射标识。
[0030] 在进行数据分析时需要获取日志文件,可以采用Impala提取日志文件中的用户 标识,得到多个用户标识。可以按照字母的顺序对多个用户标识进行排序,对排序后的用户 标识添加序号,这个添加的序号就可以作为用户标识的映射标识。添加的序号是整数,也就 实现了将不规则的用户标识映射为整数。需要说明的是,抽取用户标识时还可以采用hive、 pig等技术来实现,并不局限于impala。
[0031] 例如,抽取了 100个日志文件中的用户标识,去除其中重复的用户标识,得到90个 用户标识,对着90个用户标识进行排序,那么每个用户标识都有一个序号,这个序号就作 为这个用户标识的新的标识,即用户的映射标识。
[0032] 通过上述实施例,提取用户标识之后,对用户标识进行排序,将排序的序号作为这 多个用户标识的新的标识,由于序号为整数,也就是实现了将不规则的用户标识映射为规 则的整数,解决了现有技术中将日志文件中的用户标识映射为整数时不准确的问题,达到 了准确讲日志文件的用户标识映射为整数的效果。
[0033] 优选地,在得到用户的映射标识后,可以将这些映射标识和用户标识存储在映射 表中,在已经存在映射表的情况下,可以将新的待映射用户标识添加到已有的映射表中,即 在按照预设规则对多个用户标识进行排序之前,该方法还包括:获取记录有序号和映射标 识的映射表和待映射用户标识;从映射中查找待映射用户标识;判断待映射用户标识是否 存在于映射表中;如果判断出待映射用户标识存在于映射表中,则将待映射用户标识映射 为查找到的用户标识所对应的映射标识;如果判断出待映射用户标识不存在于映射表中, 则确定对待映射用户标识进行排序。
[0034] 如果已经存在映射表,为了避免映射表中相同的用户标识对应不同的序号,在对 新的待映射用户标识进行映射时,判断已有的映射表中是否有该待映射用户标识,如果有, 则直接将该待映射用户标识映射到已有的映射标识上;如果没有改待映射用户标识,则对 待映射用户标识进行排列,以得到新的待映射用户标识的序号,即映射标识。
[0035] 具体地,在对新的待映射标识进行排序时,需要和已有的映射表中的所有的用户 标识一起排序,即获取映射表中的用户标识;将映射表中的用户标识和待映射用户标识一 起进行排序。
[0036] 具体地,在将待映射用户标识映射为查找到的用户标识所对应的映射标识之后, 方法还包括:将待映射用户标识更新到映射表中。
[0037] 例如,已有的映射表如表1所示。表1中记录了用户标识A、B、C、D、F、G和相应 的序号1、2、3、4、5、6,当新的待映射标识为C时,从表1中查找到用户标识C,那么新的待映 射标识C的映射标识为表1中用户标识C对应的3,也就完成了自定义用户标识到整数的 映射;当新的待映射标识为E时,从表1没有查找该用户标识,则对表1中的A、B、C、D、F、 G和新的待映射标识E进行排序,得到的顺序及每个用户标识所对应的映射标识如表2所 示,即已经被映射的用户标识的序号不再改变,按顺序对新的待映射标识进行排序,也就完 成了自定义用户标识到整数的映射。在新的待映射标识E映射结束后,得到了新的映射表, 该表中记录了每个序号所对应的用户标识。
【权利要求】
1. 一种数据处理方法,其特征在于,包括: 抽取多个用户的日志文件中的用户标识,得到多个用户标识,其中,每个用户包括一个 用户标识; 按照预设规则对所述多个用户标识进行排序; 按顺序对排序后的所述多个用户标识添加序号; 将所述序号与所述多个用户标识进行映射,得到所述用户的映射标识。
2. 根据权利要求1所述的方法,其特征在于,在按照预设规则对所述多个用户标识进 行排序之前,所述方法还包括: 获取记录有所述序号和所述映射标识的映射表和待映射用户标识; 从所述映射中查找所述待映射用户标识; 判断所述待映射用户标识是否存在于所述映射表中; 如果判断出所述待映射用户标识存在于所述映射表中,则将所述待映射用户标识映射 为查找到的用户标识所对应的映射标识; 如果判断出所述待映射用户标识不存在于所述映射表中,则确定对所述待映射用户标 识进行排序。
3. 根据权利要求2所述的方法,其特征在于,如果判断出所述待映射用户标识不存在 于所述映射表中,则确定对所述用户标识进行排序包括: 获取所述映射表中的用户标识; 将所述映射表中的所述用户标识和所述待映射用户标识一起进行排序。
4. 根据权利要求2所述的方法,其特征在于,在将所述待映射用户标识映射为查找到 的用户标识所对应的映射标识之后,所述方法还包括: 将所述待映射用户标识更新到所述映射表中。
5. 根据权利要求1所述的方法,其特征在于,按照预设规则对所述用户标识进行排序 包括: 获取待映射用户标识所在的日志文件中的时间信息; 按照所述时间信息对所述用户标识进行排序,得到排序后的用户标识;以及 按照所述预设规则对所述排序后的用户标识进行排序。
6. -种数据处理装置,其特征在于,包括: 抽取单元,用于抽取多个用户的日志文件中的用户标识,得到多个用户标识,其中,每 个用户包括一个用户标识; 排序单元,用于按照预设规则对所述多个用户标识进行排序; 添加单元,用于按顺序对排序后的所述多个用户标识添加序号; 映射单元,用于将所述序号与所述多个用户标识进行映射,得到所述用户的映射标识。
7. 根据权利要求6所述的装置,其特征在于,所述装置还包括: 获取单元,用于在按照预设规则对所述多个用户标识进行排序之前,获取记录有所述 序号和所述映射标识的映射表和待映射用户标识; 查找单元,用于从所述映射中查找所述待映射用户标识; 判断单元,用于判断所述待映射用户标识是否存在于所述映射表中; 确定单元,用于在判断出所述待映射用户标识存在于所述映射表中时,将所述待映射 用户标识映射为查找到的用户标识所对应的映射标识;在判断出所述待映射用户标识不存 在于所述映射表中时,确定对所述待映射用户标识进行排序。
8. 根据权利要求7所述的装置,其特征在于,所述确定单元包括: 第一获取模块,用于获取所述映射表中的用户标识; 第一排序模块,用于将所述映射表中的所述用户标识和所述待映射用户标识一起进行 排序。
9. 根据权利要求7所述的装置,其特征在于,所述装置还包括: 更新单元,用于在将所述待映射用户标识映射为查找到的用户标识所对应的映射标识 之后,将所述待映射用户标识更新到所述映射表中。
10. 根据权利要求6所述的装置,其特征在于,所述排序单元包括: 第二获取模块,用于获取待映射用户标识所在的日志文件中的时间信息; 第二排序模块,用于按照所述时间信息对所述用户标识进行排序,得到排序后的用户 标识;以及 第三排序模块,用于按照所述预设规则对所述排序后的用户标识进行排序。
【文档编号】G06F17/30GK104408188SQ201410779317
【公开日】2015年3月11日 申请日期:2014年12月15日 优先权日:2014年12月15日
【发明者】王江伟 申请人:北京国双科技有限公司