【助睿实验指导】实验7-2:自媒体运营分析-作品特征构建
一、实验目标
在实验7-1产出的清洗数据基础上,借助Uniplore ETL完成两大类特征的计算与存储工作:
任务A:标题特征提取与互动总数计算(回填明细表)
- 计算每条记录的互动总数,公式为:total_interaction = likes + favorites + shares + coins
- 提取5个标题特征标志字段:has_best(保姆级)、has_lowcode(零代码)、has_practice(实战)、has_tutorial(教程/指南)、has_pit(踩坑)
- 将上述计算结果通过"插入/更新"方式回填到 content_analysis 表中
任务B:关键词级别的汇总统计
- 分别计算含有每个关键词的作品的平均互动数
- 将汇总结果输出到新建的 title_feature_analysis 表中
通过本实验,你将掌握:
- 特征工程在数据分析全流程中的关键作用
- 使用Uniplore ETL的"计算器"组件创建衍生指标
- 使用"JavaScript代码"组件进行文本关键词的自动标注
- 使用"插入/更新"组件实现增量数据回填(不新增表、不覆盖已有的基础字段)
- 使用"过滤+聚合"组件组合完成分组统计计算
二、实验环境
实验平台:Uniplore在线实验环境(https://lab.guilian.cn/)
数据处理引擎:Uniplore ETL(数据集成平台)
本次用到的核心组件一览:
|
组件名称 |
功能用途 |
|
表输入 |
读取 content_analysis 表中待处理的数据 |
|
计算器 |
计算互动总数(likes + favorites + shares + coins) |
|
JavaScript代码 |
从标题文本中自动提取5个关键词特征标志 |
|
插入/更新 |
按 id 匹配记录,更新 content_analysis 表中的特征字段 |
|
过滤记录 + 聚合 |
分别统计整体平均值和每个关键词维度的平均值 |
|
增加常量 |
为每个关键词分支添加名称标识字段 |
|
合并记录 |
将5个关键词的统计结果纵向合并为5行数据 |
|
表输出 |
将互动汇总数据写入 title_feature_analysis 表 |
三、核心设计思路
本次特征工程围绕两个维度展开:
- 互动总量特征:likes + favorites + shares + coins,这是一个绝对值指标,反映作品整体的用户互动规模。它不区分互动类型,而是将所有互动行为加总,方便横向对比不同作品的"热度"
- 标题关键词特征:将标题中是否出现特定高频关键词转化为0/1二值变量。这种编码方式的优势在于——后续在BI中可以直接按0/1分组求均值,快速量化每个关键词对互动数据的实际提升效果
ETL处理流程采用"先计算后回填"的策略:从 content_analysis 表中读取数据 → JavaScript标注关键词 → 计算器求互动总数 → 插入/更新回填到原表。另一条分支则对每条记录按关键词维度进行聚合统计,最终输出到 title_feature_analysis 汇总表。

四、实验操作步骤
4.1 更新 content_analysis 表(标题特征 + 互动总数)
步骤1:读取数据
将实验7-1输出的 content_analysis 表作为数据源,拖入ETL工作区。Uniplore ETL支持跨项目引用数据集,可以直接选择上一个实验产出的结果表,无需重新导入原始文件。
步骤2:标题关键词自动标注(核心步骤)
在"JavaScript代码"组件中编写脚本,对 title 字段进行关键词匹配,生成5个0/1标志字段。在Uniplore ETL环境中,字段名可以直接作为JavaScript变量使用,无需额外声明。示例代码如下:
var title = title; // 字段名可直接作为变量使用
// 逐个判断关键词是否存在
var has_best = title.indexOf("保姆级") !== -1 ? 1 : 0;
var has_lowcode = title.indexOf("零代码") !== -1 ? 1 : 0;
var has_practice = title.indexOf("实战") !== -1 ? 1 : 0;
var has_tutorial = (title.indexOf("教程") !== -1 || title.indexOf("指南") !== -1) ? 1 : 0;
var has_pit = title.indexOf("踩坑") !== -1 ? 1 : 0;
// 将结果赋值给输出字段(需在字段表中预先定义)
has_best = has_best;
has_lowcode = has_lowcode;
has_practice = has_practice;
has_tutorial = has_tutorial;
has_pit = has_pit;
各字段的返回值含义:
|
字段名 |
返回值 |
判定条件 |
|
has_best |
1 或 0 |
标题中包含"保姆级"为1,否则为0 |
|
has_lowcode |
1 或 0 |
标题中包含"零代码"为1,否则为0 |
|
has_practice |
1 或 0 |
标题中包含"实战"为1,否则为0 |
|
has_tutorial |
1 或 0 |
标题中包含"教程"或"指南"为1,否则为0 |
|
has_pit |
1 或 0 |
标题中包含"踩坑"为1,否则为0 |

设计考量:这五个关键词在数据集中出现频率较高,且与"教学价值""实操属性"强关联,是分析标题影响力的理想切入点。每个特征独立提取、互不影响,便于后续在BI工具中做灵活的分组对比分析。
步骤3:计算互动总数
接入"计算器"组件,新增一个名为 interactions 的字段,计算公式为:interactions = likes + favorites + shares + coins。计算器组件支持加减乘除四则运算和字段之间的组合运算,非常适合快速生成衍生指标。
步骤4:回填数据到原表
使用"插入/更新"组件将计算结果写回 content_analysis 表。关键配置如下:
|
配置项 |
设置值 |
|
目标表 |
content_analysis |
|
查询关键字(匹配依据) |
id |
|
需要更新的字段 |
total_interaction, has_best, has_lowcode, has_practice, has_tutorial, has_pit |
字段映射关系:
|
流字段(计算后的字段名) |
表字段(content_analysis中的目标列) |
|
id |
id |
|
interactions |
total_interaction |
|
has_best |
has_best |
|
has_lowcode |
has_lowcode |
|
has_practice |
has_practice |
|
has_tutorial |
has_tutorial |
|
has_pit |
has_pit |
💡 "插入/更新"与"表输出"的本质区别:如果使用"表输出",每次运行都会追加新行,日积月累会造成大量重复数据。而"插入/更新"按主键 id 进行匹配——如果 id 已存在则仅更新指定的字段值,如果 id 不存在才插入新行(本场景中 id 一定存在,所以只做更新操作)。这意味着本实验可以反复运行调试,不会产生数据冗余。
步骤5:执行转换流
确认转换流配置无误后,点击运行按钮。运行成功后可在数据预览面板中查看 content_analysis 表,验证 total_interaction 和各 has_* 字段是否已正确填充。


4.2 构建关键词级别的互动汇总表
步骤1:创建目标表
在Uniplore ETL中新建 title_feature_analysis 表,字段定义如下:
|
字段名 |
数据类型 |
说明 |
|
id |
INT |
自增主键 |
|
platform |
VARCHAR(20) |
平台名称(B站 / CSDN) |
|
feature_name |
VARCHAR(50) |
关键词名称 |
|
avg_interaction |
DECIMAL(10,2) |
含该关键词的作品平均互动总数 |
|
overall_avg |
DECIMAL(10,2) |
该平台所有作品的整体平均互动总数 |
|
sample_count |
INT |
含该关键词的作品数量(样本量) |
步骤2:计算平台整体平均互动数
接入"排序记录"和"分组"组件,先按id升序排列,不设分组条件,直接计算 AVG(total_interaction) 得到 overall_avg(全平台均值)。聚合完成后,接入"增加常量"组件,新增 feature_name 字段并赋值为"保姆级",为这一行数据标记上名称标签,便于后续与关键词分支的数据做关联。
步骤3:计算各关键词维度的平均互动数
以"保姆级"关键词为例说明流程——从表输入复制分发出一条独立分支:
- 先接"过滤记录"组件,设置条件 has_best = 1,只保留标题中含有"保姆级"的作品记录
- 再接"排序记录"+"分组"组件,按id升序排列,计算 AVG(total_interaction) 得到 avg_interaction(含该词的平均互动数),同时 COUNT(id) 得到 sample_count(样本数量)
- 聚合完成后,接入"增加常量"组件,新增 feature_name 字段并赋值为"保姆级"
为什么必须加这个常量字段?因为聚合之后的数据只保留了数值,关键词信息已经丢失了。如果不给每一行贴上名称标签,五个分支的数据合并之后根本无法区分对应的是哪个关键词。常量字段的本质就是给数据行打上一个标识,"告诉下游系统这一行是保姆级的数据"。
步骤4:合并整体均值与关键词均值
使用"记录集连接"组件将整体平均值分支和关键词平均值分支进行合并,匹配字段设定为 feature_name。由于两条分支各自都只有一行数据,无需预先排序即可直接连接。
步骤5:数据入库
使用"表输出"组件将合并后的数据写入 title_feature_analysis 表。务必注意:不要勾选"裁剪表"选项,因为后续还有其他四个关键词的数据也需要写入同一张表,裁剪会删掉先前的数据。
步骤6:批量复制处理其余关键词
完成一个关键词的完整流程后,其余四个关键词(零代码、实战、教程/指南、踩坑)的处理方式完全相同——直接复制整个转换流分支,只需修改两处配置:过滤条件(如 has_lowcode = 1)和常量字段的值(如"零代码")。其余组件的参数无需任何变动。

完整数据:

五、实验产出物
- 一份完整的内容分析明细表(content_analysis),新增了互动总数和5个标题特征标志字段
- 一张关键词级别的互动汇总表(title_feature_analysis),包含5个关键词 × 2个平台共10行数据
- 掌握了Uniplore ETL特征工程的完整操作流程:从数据读取→特征计算→数据回填→分组聚合→结果输出
#助睿数智 #商业数据分析 #数据分析 #ETL
更多推荐



所有评论(0)