一、实验目的

本实验在实验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_interactionhas_besthas_lowcodehas_practicehas_tutorialhas_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_interactionoverall_avgsample_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 表从单纯的作品明细表,进一步变成了包含互动总数和标题特征的分析宽表。互动总数能够综合反映作品的用户反馈情况,而标题关键词特征则把文本信息转化为可以统计和比较的数据字段。

从分析意义上看,标题特征构建是本实验的重要部分。由于班级作品内容主题接近,平台相对固定,作品数量也较为接近,因此标题写法可能是造成浏览量和互动量差异的重要因素。通过提取“保姆级”“零代码”“实战”“教程/指南”“踩坑”等关键词,并计算对应的平均互动数,可以为后续标题优化提供数据依据。


Logo

一站式 AI 云服务平台

更多推荐