多维特征体系:如何让机器“读懂”你的自媒体作品?(实验7-2)
一、实验目的
本实验在实验7-1输出的 content_analysis 表基础上继续加工,主要完成两类特征构建任务。第一类是作品互动总数,即把点赞数、收藏数、分享数和投币数相加,形成一个综合互动指标;第二类是标题关键词特征,即判断作品标题中是否包含“保姆级”“零代码”“实战”“教程/指南”“踩坑”等关键词,并将判断结果转化为0或1字段。
实验完成后,需要将作品级别的特征结果更新回 content_analysis 表,同时新建关键词级别的汇总表 title_feature_analysis,用于后续在BI中分析不同标题关键词对互动效果的影响。实验手册中明确要求,本实验使用计算器组件、JavaScript代码组件、插入/更新组件、过滤记录、分组、增加常量和表输出等组件完成特征加工。

二、实验环境与核心组件
| 组件 | 用途 |
|---|---|
| 表输入 | 读取实验7-1生成的 content_analysis 表 |
| JavaScript代码 | 从标题中提取关键词特征 |
| 计算器 | 计算互动总数 |
| 插入/更新 | 按 id 匹配,将特征字段回填到 content_analysis 表 |
| 过滤记录 + 分组 | 计算整体平均互动数和关键词平均互动数 |
| 增加常量 | 为每个关键词分支添加关键词名称 |
| 记录集连接 | 合并关键词平均值和整体平均值 |
| 合并记录 | 将多个关键词分支合并 |
| 表输出 | 输出 title_feature_analysis 表 |
三、作品级特征构建
步骤1:读取 content_analysis 表
首先,将实验7-1生成的 content_analysis 表作为输入数据。该表已经完成了平台筛选、无效记录删除和字段整理,因此可以直接用于特征构建。
步骤2:提取标题关键词特征
标题是影响用户点击和互动的重要因素。虽然本次班级自媒体作品的主题相对接近,但不同同学的标题写法不同,例如有的标题突出“保姆级”,有的强调“零代码”,有的突出“实战”或“教程”。因此,可以将标题中的关键词转化为结构化字段,方便后续量化分析。
本实验提取的标题特征如下:
| 字段名 | 返回值 | 判断条件 |
|---|---|---|
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 |
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;
通过该代码,系统会自动判断每条作品标题中是否出现指定关键词,并生成对应的0/1标志字段。这样原本不能直接统计的文本标题,就可以转化为可用于分组、筛选和对比分析的结构化变量。

步骤3:计算互动总数
互动总数用于综合衡量作品获得用户反馈的程度。本实验将点赞数、收藏数、分享数和投币数合并为一个指标,计算公式为:
total_interaction = likes + favorites + shares + coins
在助睿ETL中,可以使用“计算器”组件新增字段。实验手册中将该计算字段命名为 interactions,后续通过插入/更新组件映射到 content_analysis 表中的 total_interaction 字段。
| 字段 | 含义 |
|---|---|
likes |
点赞数量 |
favorites |
收藏数量 |
shares |
分享数量 |
coins |
投币数量,主要用于B站 |
total_interaction |
综合互动总数 |


步骤4:将特征结果更新回 content_analysis
计算完成后,需要使用“插入/更新”组件将结果回填到原来的 content_analysis 表中,而不是重新输出一张重复表。这样做可以避免每次运行转换流都新增重复记录。
插入/更新组件关键配置如下:
| 配置项 | 设置内容 |
|---|---|
| 目标表 | content_analysis |
| 查询关键字 | id |
| 更新字段 | total_interaction、has_best、has_lowcode、has_practice、has_tutorial、has_pit |
字段映射如下:
| 流字段 | 表字段 |
|---|---|
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 进行匹配,如果记录已经存在,就只更新指定字段。这样可以保证 content_analysis 表中的作品记录保持唯一,同时补充新的特征字段。



四、关键词级别汇总表构建
除了更新作品明细表,本实验还需要生成关键词级别的汇总数据,用于后续BI中制作标题影响分析图表。该部分需要新建 title_feature_analysis 表。
步骤1:创建 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 | 含该关键词的作品数量 |
该表的粒度不是单篇作品,而是“平台 + 关键词”。例如,一行数据可以表示“B站平台中包含‘保姆级’关键词的作品平均互动数”。
步骤2:计算整体平均互动数
首先,需要计算某个平台下所有作品的整体平均互动数,作为关键词效果分析的对照基准。可以使用“排序记录”和“分组”组件,对 total_interaction 求平均值,得到 overall_avg。
| 配置项 | 设置内容 |
|---|---|
| 输入表 | content_analysis |
| 聚合字段 | total_interaction |
| 聚合方式 | AVG |
| 输出字段 | overall_avg |
| 作用 | 作为关键词效果对照基准 |
聚合完成后,接入“增加常量”组件,新增字段 feature_name = '保姆级'。这样做是为了后续与“保姆级”关键词分支进行连接。


步骤3:计算关键词平均互动数
以“保姆级”为例,复制一条数据分支,先用“过滤记录”组件筛选出 has_best = 1 的作品,然后使用“排序记录”和“分组”组件计算这些作品的平均互动数和样本数量。
过滤条件如下:
has_best = 1
聚合配置如下:
| 聚合内容 | 聚合方式 | 输出字段 |
|---|---|---|
total_interaction |
AVG | avg_interaction |
id |
COUNT | sample_count |
聚合完成后,同样使用“增加常量”组件,新增字段:
feature_name = '保姆级'
增加常量的原因是,聚合之后的数据只有平均互动数和样本数量,如果不增加关键词名称,后续多个关键词分支合并后就无法区分每一行对应哪个关键词。



步骤4:合并整体平均值和关键词平均值
完成整体平均互动数和关键词平均互动数的计算后,使用“记录集连接”组件将两条分支合并。连接字段为 feature_name,这样可以把同一关键词对应的 avg_interaction、overall_avg 和 sample_count 放到同一行。
| 连接内容 | 说明 |
|---|---|
| 左侧分支 | 含关键词作品的平均互动数与样本数量 |
| 右侧分支 | 平台整体平均互动数 |
| 连接字段 | feature_name |
| 输出结果 | 一条完整的关键词分析记录 |
步骤5:复制分支计算其他关键词
其他关键词的处理方式与“保姆级”完全一致,只需要修改过滤条件和常量值即可。
| 关键词 | 过滤条件 | 常量值 |
|---|---|---|
| 保姆级 | has_best = 1 |
feature_name = '保姆级' |
| 零代码 | has_lowcode = 1 |
feature_name = '零代码' |
| 实战 | has_practice = 1 |
feature_name = '实战' |
| 教程/指南 | has_tutorial = 1 |
feature_name = '教程/指南' |
| 踩坑 | has_pit = 1 |
feature_name = '踩坑' |
将五个关键词分支分别处理完成后,使用“合并记录”组件把五条结果合并,最终输出到 title_feature_analysis 表。


五、实验输出
| 输出表 | 数据粒度 | 主要用途 |
|---|---|---|
content_analysis |
作品级 | 用于作品排名、趋势分析、平台明细分析 |
title_feature_analysis |
关键词级 | 用于标题关键词互动效果分析 |
六、实验结果分析
通过本实验,content_analysis 表从单纯的作品明细表,进一步变成了包含互动总数和标题特征的分析宽表。互动总数能够综合反映作品的用户反馈情况,而标题关键词特征则把文本信息转化为可以统计和比较的数据字段。
从分析意义上看,标题特征构建是本实验的重要部分。由于班级作品内容主题接近,平台相对固定,作品数量也较为接近,因此标题写法可能是造成浏览量和互动量差异的重要因素。通过提取“保姆级”“零代码”“实战”“教程/指南”“踩坑”等关键词,并计算对应的平均互动数,可以为后续标题优化提供数据依据。
更多推荐



所有评论(0)