分享
2023年用户画像文档.doc
下载文档

ID:1089376

大小:21.50KB

页数:8页

格式:DOC

时间:2023-04-18

收藏 分享赚钱
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
2023 用户 画像 文档
用户画像文档  用户画像  目录   TOC \o 1-3 \h \z \u 一、概念 3   二、标签库设计: 3   三、用户性别、年龄识别过程: 3   四、用户画像本体表数据入库hbase 5   五、用户画像程序执行 6  概念  用户画像:   用户画像也叫用户信息标签化、客户信息。  根据用户的信息和行为动作,用一些标签把用户描绘出来,描绘的标签就是用户画像。  appID:  用于标记APP,APP的唯一编号,判断终端安装的APP。  年龄段说明:  名称  说明  年龄段1  24岁以下  年龄段2  25-30岁  年龄段3  31-35岁  年龄段4  36-40岁  年龄段5  40岁以上  标签库设计:  标签库的设计,主要是针对应用市场上主流的App,对App进行分类,App分类信息包括:App名称,男女权重信息,各个年龄段的权重信息。  AppID  App名称  男性权重  女性权重  年龄段1  年龄段2  年龄段3  年龄段4  年龄段5  见appTab表:  10001|QQ|0.001|0.001|0|0.2|0.3|0.2|0.3  10002|飞信|0.001|0.001|0|0.2|0.3|0.2|0.3  10003|MSN|0.001|0.001|0|0.2|0.3|0.2|0.3  10004|阿里旺旺|0.001|0.001|0|0.2|0.3|0.2|0.3  10005|微信|0.001|0.001|0|0.2|0.3|0.2|0.3  10006|陌陌|0.001|0.001|0|0.2|0.3|0.2|0.3  10007|米聊|0.001|0.001|0|0.2|0.3|0.2|0.3  10008|啪啪|0.001|0.001|0|0.2|0.3|0.2|0.3  10009|飞聊|0.001|0.001|0|0.2|0.3|0.2|0.3  10010|来往|0.001|0.001|0|0.2|0.3|0.2|0.3  10011|连我|0.001|0.001|0|0.2|0.3|0.2|0.3  10012|有你|0.001|0.001|0|0.2|0.3|0.2|0.3  用户性别、年龄识别过程:  必备条件:性别比例、年龄比例必须在识别出AppID后进行,如果AppID编号为空,那么不做处理。  性别和年龄的判断,都依赖于标签库的设计,也就是用户 安装的App,根据 App计算用户的性别和年龄权重信息,最后判断用户的年龄和性别。  源代码:  对男女性别的计算:  public void protraitSex(double male2, double female2, long times) {  double sum = (this.male + this.female + (male2 + female2) x times);  if(sum != 0){  this.male = (this.male + male2 x times) / sum;  this.female = (this.female + female2 x times) / sum;  }  }  2、对年龄段的计算:  public void protraitAge(double pAge1, double pAge2, double pAge3, double pAge4, double pAge5, long times) {  double sum = (age1 + age2 + age3 + age4 + age5 ) // 之前的APP的+ (pAge1 + pAge2 + pAge3 + pAge4 + pAge5 ) x times;// 当前的APP的if(sum != 0){  this.age1 = (pAge1 x times + age1) / sum;  this.age2 = (pAge2 x times + age2) / sum;  this.age3 = (pAge3 x times + age3) / sum;  this.age4 = (pAge4 x times + age4) / sum;  this.age5 = (pAge5 x times + age5) / sum;  }  }  表结构:用户画像本体表  字段名  类型  长度  默认值  说明  备注  日期  记录历史时间  MSISDN  byte  16  全F   号  男性权重  女性权重  年龄段1权重  年龄段2权重  年龄段3权重  年龄段4权重  年龄段5权重  汇总周期:每天汇总一次,建议当天凌晨统计前一天数据  画像数据:+2SJcwT8h0TSsxVd2pBMjA==|0.508|0.492|0.1|0.2|0.2|0.2|0.3|+2YYprC2jdMfQntMAn8lmA==|0.4|0.6|0.0|0.1|0.3|0.3|0.3|+2k9y/1uapW4IW6LUq0LGQ==|0.7|0.3|0.0|0.2|0.3|0.2|0.3|+3M/cSZerfq+XDC9kMWWcA==|0.5|0.5|0.1|0.2|0.2|0.2|0.3|+3NZW71R8R8nL78M3JB8tw==|0.5|0.5|0.1|0.2|0.2|0.2|0.3|+40FbnopHa5sY/CzDDf8cg==|0.5|0.5|0.0|0.2|0.3|0.2|0.3|+5k9calLrKDGvHyzvO0pvg==|0.5|0.5|0.1|0.2|0.2|0.2|0.3|+5wU5NlU1iJUZ5sMN91DUw==|0.5|0.5|0.2|0.2|0.2|0.2|0.2|+69Ng7CRkKTr2hbYtgeiAw==|0.8|0.2|0.0|0.2|0.3|0.2|0.3|+6YeD7QUw8Hy6qN7Dxk7vQ==|0.8|0.2|0.0|0.2|0.3|0.2|0.3|+A4H4S++fiGw3pKi8xpwrw==|0.698|0.302|0.0|0.199|0.3|0.201|0.3|+AJEIaelS8LGbHqdDaorzg==|0.7|0.3|0.0|0.6|0.3|0.05|0.05|+AbbMhECgaMivqZBr/U+Aw==|0.5|0.5|0.1|0.2|0.2|0.2|0.3|  用户画像本体表数据入库hbase  创立hbase表:  create 'user_draw',{NAME=>'draw',VERSIONS=>1,BLOCKCACHE=>true,BLOOMFILTER=>'ROW',COMPRESSION=>'SNAPPY'},{SPLITS => ['/','+','0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']}  入库hbase代码:  for (Text v2 : val) {  String[] splited = v2.toString().split(\\|);  //rowkey  if(k2.toString().length()!=0){  Put put = new Put(Bytes.toBytes(k2.toString()));  //跳过写入Hlog,提高写入速度  put.setDurability(Durability.SKIP_WAL);  put.add(Bytes.toBytes(draw), Bytes.toBytes(mdn), Bytes.toBytes(splited[1]));  put.add(Bytes.toBytes(draw), Bytes.toBytes(male), Bytes.toBytes(splited[2]));  put.add(Bytes.toBytes(draw), Bytes.toBytes(female), Bytes.toBytes(splited[3]));  put.add(Bytes.toBytes(draw), Bytes.toBytes(age1), Bytes.toBytes(splited[4]));  put.add(Bytes.toBytes(draw), Bytes.toBytes(age2), Bytes.toBytes(splited[5]));  put.add(Bytes.toBytes(draw), Bytes.toBytes(age3), Bytes.toBytes(splited[6]));  put.add(Bytes.toBytes(draw), Bytes.toBytes(age4), Bytes.toBytes(splited[7]));  put.add(Bytes.toBytes(draw), Bytes.toBytes(age5), Bytes.toBytes(splited[8]));  context.write(NullWritable.get(), put);  }  }  用户画像程序执行  程序运行环境:hadoop集群、zookeeper、hbase。  appTab.txt规那么库表hdfs路径:/home/appTab.txt  程序执行jar包:userdraw.jar  程序执行命令:hadoop jar userdraw.jar 数据输入路径 job1输出路径 job2输出路径  文件编码问题需要注意!!!

此文档下载收益归作者所有

下载文档
你可能关注的文档
收起
展开