用户画像之标签查询(附源码)

目录

 

1.简介

2.架构图

3.表结构

4.标签筛选人群

1.请求格式

2.人群筛选


1.简介

通过处理数仓中的业务数据和埋点数据,生成用户对应的标签,运营人员通过标签筛选出人群,然后发送营销短信。

此文主要描述标签筛选人群

 

2.架构图

  1. 数据来源:业务数据库和埋点数据
  2. 标签生成:运营人员定义好标签元数据后,数据工程师写hive或spark定时调度生成;hive表结构只有3列:用户Id、标签code、标签值
  3. 标签存储:hive表转换下图格式,然后通过datax到ElasticSearch

userlabels格式:

3.表结构

ElasticSearch mapping:

{
  "mappings": {
    "_doc": {
      "properties": {
        "userid": {
          "type": "keyword"
        },
        "userlabels": {
          "type": "nested"
        },
        "data_date": {
          "type": "keyword"
        }
      },
      "dynamic_templates": [
        {
          "string_template": {
            "path_match": "userlabels.*",
            "mapping": {
              "type": "keyword"
            }
          }
        }
      ]
    }
  }
}

标签元数据表结构:

CREATE TABLE `userprofile_tag_metadata` (
  `id` varchar(50) NOT NULL COMMENT 'id',
  `code` varchar(50) DEFAULT NULL COMMENT '标签code',
  `name` varchar(50) DEFAULT NULL COMMENT '标签名',
  `is_mutex` tinyint(1) DEFAULT NULL COMMENT '是否标签互斥:0:否;1:是',
  `data_format` int(10) DEFAULT NULL COMMENT '数据格式:1-枚举(tagValue默认为1);2-数值;3-文本;4-时间',
  `description` varchar(500) DEFAULT NULL COMMENT '标签说明',
  `category_id` varchar(50) DEFAULT NULL COMMENT '当前分类id',
  `all_category_id` varchar(1000) DEFAULT NULL COMMENT '全路径分类id',
  `top_category_id` varchar(50) DEFAULT NULL COMMENT '顶级分类id',
  `creator_id` varchar(200) DEFAULT NULL COMMENT '创建人',
  `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
  `status` tinyint(1) DEFAULT '1' COMMENT '1启用,0禁用',
  `tag_production_rule` varchar(500) DEFAULT NULL COMMENT '标签生成规则',
  `tag_update_rule` varchar(500) DEFAULT NULL COMMENT '标签更新规则',
  `tag_type` int(10) DEFAULT NULL COMMENT '标签类型:1-统计;2-规则',
  `tag_value` varchar(200) DEFAULT NULL COMMENT '标签值',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='用户画像-标签元数据表';

4.标签筛选人群

1.请求格式

[
  {
    "tagId": "003",
    "operator": "=",
    "tagValue": "1"
  },
  {
    "tagId": "002",
    "operator": ">",
    "tagValue": "50"
  },
  {
    "tagId": "002",
    "operator": "<=",
    "tagValue": 300
  }
]

2.人群筛选

通过elastiSearch的scroll筛选即可

 

源码地址:https://github.com/ostarsier/tagsearch

 

 

 

 

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 用户画像是指通过对用户的不同特征进行分析和归类,识别出用户的共同特点和行为习惯,并根据这些特点对用户进行分类的一种方法。 K-means是一种经典的聚类算法,它被广泛应用于用户画像的分析中。用户画像的目标是将用户分成具有相似特征的不同群体,而K-means算法可以通过计算各个用户之间的相似性来实现这一目标。 在K-means算法的源码中,主要包括以下几个步骤: 1. 初始化:首先需要对用户数据进行预处理,选择一些有代表性的特征进行提取,如年龄、性别、购买行为等等。然后根据预设的聚类数目K,随机选择K个初始的中心点。 2. 迭代计算:通过计算每个用户和当前中心点之间的距离,将用户分配到与其最近的中心点所代表的类中。然后更新中心点的位置,使其成为属于该类中所有用户的平均值。 3. 重复迭代:不断重复步骤2,直到算法收敛,即用户的分类结果不再改变为止。 通过分析K-means源码,可以了解到算法是如何通过计算用户之间的相似性和不同特征之间的关系,来分析用户画像并进行用户分类的。同时,在源码中还可以了解到如何选择适当的聚类数目K以及如何初始化中心点等细节。 总之,通过研究K-means算法的源码,可以深入了解用户画像的分析方法和原理,并可以根据具体业务需求对算法进行修改和优化,以便更准确地识别不同用户群体及其特征。 ### 回答2: KMeans(K-均值)是一种聚类算法,用于将数据集分为不同的类别。用户画像则是根据用户的各种属性和行为模式来描述用户的特征。 用户画像可以利用KMeans算法来进行构建和分析。在使用KMeans算法前,首先需要选取要描述的用户属性和行为特征,例如年龄、性别、地理位置、购买记录等。然后将这些特征组成一个特征向量,每个用户对应一个特征向量。 KMeans算法的源码中可以看到以下几个主要步骤: 1. 初始化K个随机的质心(中心点),这些质心将作为类别的代表。 2. 针对每个用户的特征向量,计算其与K个质心的距离,根据最小距离将用户划分到对应的类别中。 3. 对于每个类别,根据划入该类别的用户计算平均特征向量,并将该平均特征向量作为新的质心。 4. 重复第2和第3步,直到达到指定的停止条件,例如质心不再发生变化或达到最大迭代次数。 在源码中,可以通过观察KMeans算法的实现过程来深入理解用户画像的构建。 例如,在初始化步骤中,可以看到KMeans算法将随机选取K个质心作为初始值,这样可以确保每次运行的结果不一致。这与用户画像中的用户属性和行为多样性相符。 在迭代过程中,可以看到KMeans算法通过计算用户与每个质心的距离来判断用户应该划入哪个类别。这与用户画像中的用户群体划分相对应。 最后,在停止条件的判断中,可以看到KMeans算法会根据质心的变化情况来判断是否达到停止条件。这和用户画像中的用户特征稳定性相关。 综上所述,通过观察KMeans算法的源码,可以增进对用户画像构建过程的理解,进而更好地应用于实际的用户分析和个性化推荐等场景中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值