智能文章采集(本文源码:如上几种场景的逻辑|本文·点这里 )

优采云 发布时间: 2022-04-07 18:16

  智能文章采集(本文源码:如上几种场景的逻辑|本文·点这里

)

  本文源码:GitHub·点击这里|| GitEE·点击这里

  一、场景分析1、场景案例

  互联网行业的朋友一定知道或听说过以下场景:

  阿里:千人千面,就是说不同的用户在使用阿里相关产品的时候感受是不一样的。例如,支付宝首页的推荐内容与其他相关推荐流信息完全不同。

  腾讯:社交广告,不同用户朋友圈或其他媒体场景的广告信息不同,会根据用户特点进行推荐。

  今日头条:信息价值,根据用户的浏览信息,分析用户的相关偏好,根据分析结果推荐相关信息流。你越关注某种类型的内容,你就会得到越多的相关信息。

  上述场景的逻辑是:基于对用户行为的不断分析,生成用户的特征画像,然后根据用户的标签,推荐定制的内容。

  2、基本概念

  从上面的场景中,衍生出两个概念:

  用户画像

  用户画像作为勾画目标用户、连接用户需求和设计方向的有效工具,通过与用户关联的数据可视化形成用户画像。用户画像已广泛应用于各个领域,最初是在电子商务领域。大数据时代,用户信息泛滥在网络中,用户的每一个具体信息都被抽象成标签。体现用户形象,为用户提供针对性的服务。

  标记数据

  标签在生活中很常见,比如商品标签、个人标签、行业标签。比如说996就想到程序员,说程序员就想到格子衬衫。

  标签是将分散的多方数据整合到一个统一的技术平台中,对这些数据进行标准化和细分,进行结构化的存储和更新管理,让业务线可以将这些细分结果推送到现有的交互营销环境中。这种数据称为标签数据,通常被称为标签库。数据标注的概念近年来在大数据的发展中也越来越流行。

  标签值

  标签的核心价值,还是最常用的场景:实时智能推荐、精准数字营销。

  二、数据标签1、标签划分

  属性标签

  属性标签的变化最少。例如,用户实名认证后,根据身份信息获取相关标签:性别、生日、出生日期、年龄等相关标签。变化的频率很小,而且是最准确的。

  行为标签

  行为标签是用户基于行为日志分析,通过对产品的一系列操作获得的:如购买能力、消费偏好、季节性消费标签等。在信息流的APP上,就是基于这个逻辑不断推荐用户通过相关浏览行为感兴趣的内容。

  规则标签

  根据业务场景需求,配置指定规则,并根据规则生成分析结果,例如:

  这样的标签可以基于动态规则进行配置,经过计算分析后生成描述结果,即规则标签。

  适合标签

  拟合类的标签是最复杂的。通过上述标签的智能组合分析,用户给出的预测值,如:未婚,浏览相关婚礼内容,通过分析预测用户将举行婚礼,得到拟合结果:预测将是已婚。这个预测逻辑也可以反向执行,用户购买婴儿用品:预测结婚和生育。

  这是数据时代的一句俗语:用户对应用进行操作后,算法分析的结果可能比用户对自己的描述更真实。

  2、标签处理流程

  

  数据采集

  数据的渠道比较多采集,比如同一个APP里面的各个业务线:购物、支付、理财、外卖、信息浏览等,通过一个数据渠道传输到统一的数据聚合平台. 在这些海量日志数据的支持下,我们具备了进行数据分析的基本条件。无论是数据智能、深度学习、算法等,都是基于海量数据的基本条件,从而获得有价值的分析结果。

  数据处理

  结合上述业务,通过对海量数据的处理、分析和提取,得到相对准确的用户标签。这里还有一个关键步骤,就是不断验证和修复现有的用户标签,尤其是规则和配件。类的相关标签。

  标签库

  通过标签库,管理复杂的标签结果,除了复杂的标签和基于时间线的标签变化,这里的标签数据具有相当的价值,可以围绕标签库开通一些付费服务,比如常见的,安e中的用户-commerce APP浏览某些产品,可以在信息流平台上看到产品推荐。大数据时代是如此的聪明和令人窒息。

  标签业务

  数据被转换成标签已经走了很长一段路。自然要回归到业务层面。通过对标签数据用户的分析,可以进行精准营销、智能推荐等相关操作。在电子商务应用中,可以增加交易量和信息流。可以更好的吸引用户。

  应用层

  将上述业务发展为服务,融入现有应用,不断提升应用服务质量,不断吸引用户,提供服务。当然,用户的数据是在应用层面不断产生的,最终在传输数据采集服务中形成一个完整的闭环过程。

  3、应用案例

  从流程和业务层面的描述很简单,到开发层面会变得复杂难处理,这可能是产品和开发的差距。

  标签的数据类型

  不同标签的分析结果需要用不同的数据类型来描述。在标签系统中,常用来描述标签的数据类型有:枚举、数值、日期、布尔值、文本类型。不同的类型需要不同的分析过程。

  商品和标签

  下面是一个通过标签分析产品的基本案例,例如通过产品产地、价格、状态等条件查询产品库中有多少产品满足条件。

  数据表设计

  主要分为四个表:标签分类、标签库、标签值、标签数据。

  CREATE TABLE `tc_tag_catalog` (

`id` INT (11) NOT NULL AUTO_INCREMENT COMMENT '主键ID',

`catalog_name` VARCHAR (50) NOT NULL DEFAULT '' COMMENT '名称',

`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',

`update_time` datetime DEFAULT NULL COMMENT '更新时间',

`state` INT (1) DEFAULT '1' COMMENT '状态1启用,2禁用',

PRIMARY KEY (`id`)

) ENGINE = INNODB DEFAULT CHARSET = utf8 COMMENT = '标签层级目录';

CREATE TABLE `tc_tag_cloud` (

`id` INT (11) NOT NULL AUTO_INCREMENT COMMENT '主键ID',

`catalog_id` INT (11) NOT NULL COMMENT '目录ID',

`tag_name` VARCHAR (100) DEFAULT '' COMMENT '标签名称',

`tag_code` INT (11) DEFAULT NULL COMMENT '标签编码',

`bind_column` VARCHAR (100) DEFAULT '' COMMENT '绑定数据列',

`data_type` INT (2) NOT NULL COMMENT '1枚举,2数值,3日期,4布尔,5值类型',

`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',

`update_time` datetime DEFAULT NULL COMMENT '更新时间',

`remark` VARCHAR (150) DEFAULT NULL COMMENT '备注',

`state` INT (1) DEFAULT '1' COMMENT '状态1启用,2禁用',

PRIMARY KEY (`id`)

) ENGINE = INNODB DEFAULT CHARSET = utf8 COMMENT = '标签云';

CREATE TABLE `tc_tag_data_enum` (

`tag_code` INT (11) NOT NULL COMMENT '标签编码',

`data_value` VARCHAR (150) NOT NULL COMMENT '枚举值',

`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',

KEY `tag_code_index` (`tag_code`) USING BTREE

) ENGINE = INNODB DEFAULT CHARSET = utf8 COMMENT = '标签枚举值';

CREATE TABLE `tc_tag_data_set` (

`id` INT (11) NOT NULL AUTO_INCREMENT COMMENT '主键ID',

`product_name` VARCHAR (100) DEFAULT '' COMMENT '商品名称',

`unit_price` DECIMAL (10, 2) DEFAULT '0.00' COMMENT '单价',

`is_shelves` INT (1) DEFAULT '1' COMMENT '是否上架:1否,2是',

`origin_place` VARCHAR (100) DEFAULT '' COMMENT '产地',

`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',

PRIMARY KEY (`id`)

) ENGINE = INNODB DEFAULT CHARSET = utf8 COMMENT = '标签数据集';

  

  模拟输入接口

  这里的参数应该根据需求动态选择并组织在一起:

  

  比如图中这里给出的标签值列表,就称为枚举值。

  @RestController

public class AnalyzeController {

@Resource

private TagDataSetService tagDataSetService ;

@GetMapping("/analyze")

public String analyze (){

List tagParamList = new ArrayList() ;

TagParam tagParam1 = new TagParam(1,"产地","origin_place") ;

List valueList1 = new ArrayList() ;

valueList1.add("深圳");

valueList1.add("广东");

tagParam1.setValueList(valueList1);

tagParamList.add(tagParam1) ;

TagParam tagParam2 = new TagParam(2,"价格","unit_price") ;

List valueList2 = new ArrayList() ;

valueList2.add("1999");

tagParam2.setValueList(valueList2);

tagParamList.add(tagParam2) ;

TagParam tagParam3 = new TagParam(3,"生产日期","create_time") ;

List valueList3 = new ArrayList() ;

valueList3.add("2020-05-01 13:43:54");

tagParam3.setValueList(valueList3);

tagParamList.add(tagParam3) ;

TagParam tagParam4 = new TagParam(4,"是否上架","is_shelves") ;

List valueList4 = new ArrayList() ;

valueList4.add("1");

tagParam4.setValueList(valueList4);

tagParamList.add(tagParam4) ;

TagParam tagParam5 = new TagParam(5,"产品名称","product_name") ;

List valueList5 = new ArrayList() ;

valueList5.add("智能");

tagParam5.setValueList(valueList5);

tagParamList.add(tagParam5) ;

Integer count = tagDataSetService.analyze(tagParamList) ;

return "Result:" + count ;

}

}

  参数解析查询

  通过参数的解析,最终形成查询的SQL语句,得到准确的结果数据。

  @Service

public class TagDataSetServiceImpl extends ServiceImpl implements TagDataSetService {

@Resource

private TagDataSetMapper tagDataSetMapper ;

@Override

public Integer analyze(List tagParamList) {

StringBuffer querySQL = new StringBuffer() ;

for (TagParam tagParam:tagParamList){

querySQL.append(" AND ") ;

querySQL.append(tagParam.getBindColumn()) ;

// 1枚举,2数值,3日期,4布尔,5值类型

List valueList = tagParam.getValueList();

switch (tagParam.getDataType()){

case 1:

querySQL.append(" IN (") ;

for (int i = 0 ; i < valueList.size() ;i++){

if (i != valueList.size()-1){

querySQL.append("'").append(valueList.get(i)).append("',");

} else {

querySQL.append("'").append(valueList.get(i)).append("'");

}

}

querySQL.append(" )") ;

break;

case 2:

querySQL.append("=").append(tagParam.getValueList().get(0)) ;

break;

case 3:

querySQL.append(">='").append(tagParam.getValueList().get(0)).append("'") ;

break;

case 4:

querySQL.append("=").append(tagParam.getValueList().get(0)) ;

break;

case 5:

querySQL.append(" LIKE '%").append(tagParam.getValueList().get(0)).append("%'") ;

break;

default:

break;

}

}

/* 最终执行的 SQL

SELECT COUNT(*) FROM tc_tag_data_set

WHERE 1 = 1

AND origin_place IN ('深圳', '广东')

AND unit_price = 1999

AND create_time >= '2020-05-01 13:43:54'

AND is_shelves = 1

AND product_name LIKE '%智能%'

*/

String whereCondition = String.valueOf(querySQL);

return tagDataSetMapper.analyze(whereCondition);

}

}

  有人可能会说,这不是查询过程吗?如果你有这样的疑惑,把上面的案例换成用户查询,标签数据的取值会更直观。

  三、智能人像1、基本概念

  用户画像

  用户画像作为勾画目标用户、连接用户需求和设计方向的有效工具,已广泛应用于各个领域。它最初应用于电子商务领域。在大数据时代背景下,用户信息在网络中泛滥。将用户的每一个具体信息抽象成标签,通过这些标签将用户形象具体化,从而为用户提供有针对性的信息。性服务。

  行业画像

  通过对行业内的行业属性标签和用户标签进行综合分析,生成行业分析报告,并提供有价值的指导。这是过去两年非常流行的应用程序。

  图像补全

  通过不断分析用户数据,丰富标签库,用户画像更加丰富,立体感更强。

  2、纵向报道

  通过对标签数据的分析,生成分析报告,报告内容收录丰富的用户标签统计信息。

  例如:90后画像报告

  网民们一定或多或少看过这份报告。主要是一些标签统计,常见标签的展示,或者说哪些群体对90后、收入来源、教育等三观影响最大的分析解读。

  四、源码地址

  GitHub·地址

https://github.com/cicadasmile/data-manage-parent

GitEE·地址

https://gitee.com/cicadasmile/data-manage-parent

  

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线