4. 金融文本预处理与特征工程面试
金融NLP岗位的面试官很少直接问“你会不会分词”,而是把预处理与特征工程嵌入到业务场景里考察。他们真正想确认的是:面对一份券商研报、一段央行公告或一条股吧评论,你能否在有限时间内完成清洗、切分、向量化,并解释每一步对下游任务的影响。本章围绕高频问题、回答框架和公司侧重点展开,帮助你把“数据清洗工”的表达升级为“特征设计者”的表达。
一、核心原理:金融文本的“脏”与“专”
金融文本的预处理难点集中在两点:一是噪声形态特殊,二是领域语义高度依赖上下文。通用语料里常见的HTML标签、表情符号只是基础,金融场景还要处理表格残留、PDF换行断句、股票代码与公司简称混写、数字与单位粘连等问题。例如“2023年Q3营收同比+12.5%”如果被简单按空格切分,就会丢失“同比”与“+12.5%”的绑定关系。
特征工程的核心原理是把“金融先验”注入到向量表示中。常见做法包括:构建领域词典(如“降准”“MLF”“北向资金”),设计规则特征(如情感词前后否定窗口、数字变化方向),以及在微调模型中保留实体边界标记。面试官常问“你如何处理未登录词”,其实是在考察你是否理解金融新词的生命周期——从股吧黑话到正式公告用语的迁移速度极快。
二、方法流程:从原始文本到可训练特征
一个可复现的流程通常包含以下步骤,建议在面试中用“先定目标、再定粒度、后做消融”的顺序表达:
- 任务对齐:明确是分类、抽取还是生成,标签粒度决定清洗强度。情感分类可保留表情符号,事件抽取则必须保留时间与主体。
- 噪声清洗:去除HTML、页眉页脚、免责声明;统一全半角;处理PDF断行时优先按标点合并,而非直接拼接。
- 领域切分:在通用分词器基础上加载金融词典,对股票代码、财务指标、机构简称做强制合并。
- 归一化:数字统一为阿拉伯数字,百分比与绝对值分离,时间表达式标准化为“YYYY-MM-DD”。
- 特征构造:稀疏特征(TF-IDF、BM25)与稠密特征(FinBERT、领域预训练向量)拼接,加入规则特征作为补充。
- 消融验证:逐项移除特征,观察F1变化,确认每个模块的边际贡献。
面试表达模板:“我拿到的是券商研报摘要,目标是做事件类型分类。我先用规则去掉免责声明和页脚,再加载金融词典做切分,把‘同比+12.5%’合并为一个特征片段。向量化时用TF-IDF捕捉关键词,同时用FinBERT取句向量拼接。最后做消融,发现去掉数字方向特征后F1下降3.2个点,说明该特征对事件极性判断关键。”
三、案例/场景:三类高频追问与应对
| 追问场景 | 考察点 | 回答要点 |
|---|---|---|
| “股吧评论里全是错别字和拼音缩写,你怎么处理?” | 噪声鲁棒性与领域适配 | 先统计高频黑话构建映射表,再用编辑距离做模糊匹配;对拼音缩写保留原形并加入特征,避免过度归一丢失情感强度。 |
| “央行公告和财报的预处理能共用一套流程吗?” | 文本类型差异与迁移能力 | 不能完全共用。公告正式、结构固定,适合规则模板;财报表格多、数字密集,需要表格解析与单位对齐。可共享词典,但清洗策略要分治。 |
| “你的特征工程在线上推理时延迟多少?” | 工程落地意识 | 稀疏特征用哈希技巧控制维度,稠密向量做缓存;规则特征尽量在离线预计算,线上只做轻量拼接。给出P99延迟与降级方案。 |
四、误区/复盘:面试中容易失分的表达
误区一:只谈工具不谈决策。“我用jieba分词”是无效回答,面试官想听的是“为什么选jieba而不是LTP,词典怎么维护,未登录词怎么兜底”。
误区二:把预处理当一次性工作。金融文本分布漂移快,新政策、新术语每月都在出现。要强调监控机制,例如定期统计未登录词比例、特征分布PSI,超过阈值触发词典更新。
误区三:忽略合规与隐私。金融文本常含客户信息或未公开数据,预处理阶段就要做脱敏与权限隔离。面试中主动提及合规意识是加分项。
复盘时建议用“指标归因”收尾:把预处理与特征工程的每一步都映射到最终指标上。例如“去掉页眉页脚后准确率提升1.8%,加入金融词典后召回提升4.1%,数字方向特征使F1提升3.2%”。这种量化表达能让面试官迅速判断你的工程判断力,也自然引出下一轮关于模型选型的讨论。
# 金融文本预处理关键参数示例
{
"tokenizer": "jieba",
"user_dict": "finance_dict.txt",
"stopwords": "finance_stopwords.txt",
"normalize": {
"full_to_half": true,
"digit_unify": true,
"time_format": "YYYY-MM-DD"
},
"feature": {
"tfidf_max_features": 50000,
"ngram_range": [1, 2],
"dense_model": "FinBERT",
"rule_features": ["negation_window", "number_direction"]
}
}
把预处理讲成“业务目标驱动的特征设计”,而不是“数据清洗流水账”,你就已经超过了大多数候选人。面试官真正想招的,是能在噪声中识别信号、在规则与模型之间做权衡、并能用指标证明自己判断的人。