3. 文本分类入门

在金融公告处理场景中,我们面对的往往不是“一段文字属于什么主题”这么简单的问题,而是“这条公告是否涉及重大资产重组”“是否触发退市风险警示”“是否属于关联交易”等具有明确业务含义的判断。文本分类正是把这类判断从人工阅读转化为可计算任务的基础方法。本节从定义出发,串联完整流程、评估指标、常用算法,并落到金融公告的真实应用。

一、核心原理:文本分类到底在做什么

文本分类的本质是学习一个映射函数 f: X → Y,其中 X 是文本的向量化表示,Y 是预定义的类别集合。模型通过训练数据学习文本特征与类别标签之间的统计关联,再对未见文本给出类别预测。与多标签识别不同,单标签分类假设每个样本只属于一个类别;而金融公告中“一份公告同时涉及担保、关联交易、诉讼”是常态,因此多标签识别是本章后续的重点延伸。

理解文本分类需要抓住三个关键点:第一,文本必须被转化为数值特征,常见方式包括词袋、TF-IDF、词嵌入和预训练语言模型编码;第二,分类器负责在特征空间中划分决策边界,如朴素贝叶斯、逻辑回归、SVM、树模型和神经网络;第三,评估必须与业务目标对齐,准确率高不代表对“高风险公告”的召回率高。

金融公告文本分类:从原始公告到业务标签 原始公告 PDF / HTML / 公告正文 文本预处理 去噪、分句、分词 特征表示 TF-IDF / 词向量 / BERT 分类器 LR / SVM / 神经网络 标签 业务类别 评估指标(金融场景重点关注) 准确率 Accuracy:整体正确比例,类别不均衡时容易虚高 精确率 Precision / 召回率 Recall / F1:高风险公告更关注召回率 宏平均 Macro-F1:各类别同等重要 微平均 Micro-F1:受大类别主导 金融应用场景 风险警示 / 重组 / 关联交易 常见误区 只看准确率 / 忽略类别不平衡 落地关键 标注质量 / 阈值调优 / 人工复核

二、方法流程:从公告到标签的六步闭环

一个可落地的金融公告分类项目通常遵循以下流程,每一步都会影响最终效果:

  1. 业务定义与标签体系设计:明确要识别的类别,例如“重大资产重组”“业绩预告”“股权激励”“诉讼仲裁”“退市风险”等,并给出每类的判定标准。
  2. 数据采集与清洗:从交易所公告、PDF、HTML 中抽取正文,去除页眉页脚、表格噪声和乱码。
  3. 标注与质检:由金融背景人员标注,采用双人交叉复核,计算标注一致性(如 Kappa 系数)。
  4. 文本表示:根据数据规模选择 TF-IDF、Word2Vec 或预训练模型微调。
  5. 模型训练与调参:划分训练集、验证集、测试集,处理类别不平衡,调整阈值。
  6. 评估、部署与监控:上线后持续监控指标漂移,定期用新公告回流再训练。
在金融场景中,建议把“高风险类别”的召回率作为第一优先级指标。例如退市风险警示公告漏判的代价远高于误判,因此可以适当降低阈值以提高召回。

三、常用算法与评估指标对照

不同算法适用于不同数据规模和业务要求。下表给出常见方法的对比,便于在项目中快速选型:

算法 适用场景 优点 局限
朴素贝叶斯 小样本、基线快速验证 训练快、可解释 特征独立假设强,效果有限
逻辑回归 + TF-IDF 中等规模、需可解释 稳定、易调参 对长文本语义捕捉弱
SVM 高维稀疏特征 边界清晰、泛化好 大规模数据训练慢
BERT 微调 语义复杂、标注充足 效果强、上下文理解好 算力要求高、推理成本大

评估时,混淆矩阵是最直观的工具。以下代码片段展示如何用 Python 输出分类报告:

from sklearn.metrics import classification_report, confusion_matrix

y_true = [0, 1, 1, 0, 1, 0]
y_pred = [0, 1, 0, 0, 1, 1]

print(confusion_matrix(y_true, y_pred))
print(classification_report(y_true, y_pred, target_names=["正常", "风险"]))

输出中的 precision、recall、f1-score 分别对应精确率、召回率和 F1 值。金融风控中,若“风险”类的召回率偏低,说明有风险公告被漏判,需要优先优化。

四、金融领域应用与误区复盘

在真实业务中,文本分类可以支撑多个高价值场景:交易所公告自动打标、舆情风险预警、研报主题归类、客服工单路由、合规审查辅助等。以“退市风险警示”识别为例,模型需要从公告标题和正文中捕捉“终止上市”“财务类退市”“交易类退市”等关键信号,并结合公司历史公告序列做综合判断。

常见误区一:只追求准确率。金融公告中风险类样本通常占比极低,若模型全部预测为“正常”,准确率也可能超过 95%,但业务上完全失效。误区二:忽略标签体系的一致性。不同标注员对“重大”的理解不同,会导致模型学到噪声。误区三:训练集与线上分布不一致。公告格式、行业术语会随时间变化,必须建立回流和再训练机制。

复盘时建议回答三个问题:第一,当前模型在哪些类别上召回不足?第二,错误样本是否集中在特定公告类型或特定年份?第三,阈值调整后业务收益是否提升?只有把模型指标与业务成本挂钩,文本分类才能真正从“实验”走向“生产”。

小结:文本分类是金融公告智能处理的入口能力。掌握定义、流程、指标与算法选型,并始终以业务风险为导向评估模型,才能为后续多标签识别和更复杂的公告理解任务打下坚实基础。