2. 金融文本处理基础
在把 BERT 用于金融新闻分类与事件识别之前,真正决定模型上限的往往不是网络结构,而是进入模型之前的文本质量。金融新闻是一种高度专业、噪声密集、格式多变的语料:它既有严谨的公告语言,也有口语化的快讯、研报摘要和社交媒体转述。本节围绕“金融新闻特点—中文分词—去噪—标准化—数据清洗—工具链”这条主线,建立可复用的预处理认知。
一、金融新闻的文本特点
金融文本与通用新闻最大的差异在于实体密集、数字密集、时间敏感、语义依赖上下文。同一家公司可能有简称、全称、股票代码、英文名等多种指代;同一事件在不同来源中可能被表述为“拟收购”“筹划重大资产重组”“签署股权转让协议”。此外,金融新闻常包含表格、括号注释、免责声明、来源标记和 HTML 残留,这些都会干扰分词与向量化。
- 实体歧义强:“苹果”可能是水果,也可能是公司;“中行”需结合上下文判断。
- 数字与单位关键:“同比增长 12.3%”“募资不超过 5 亿元”中的数值是事件识别的核心特征。
- 时间表达多样:“昨日”“2024 年 Q3”“本报告期”“截至公告日”需要归一化。
- 噪声来源多:网页标签、广告、免责声明、重复转载、乱码、全半角混排。
- 领域术语多:如“可转债”“商誉减值”“定向增发”“质押式回购”,通用分词器容易切碎。
二、中文分词:从通用切分到金融领域适配
中文没有天然空格,分词是后续词向量、关键词抽取和规则匹配的基础。通用工具如 jieba、pkuseg、HanLP 在新闻语料上表现良好,但金融领域需要自定义词典与停用词表。例如“贵州茅台”“宁德时代”“北向资金”“LPR”应作为整体保留,否则会被切成无意义片段。
import jieba
jieba.load_userdict("finance_dict.txt") # 每行:词语 词频 词性
text = "宁德时代拟定向增发募资不超过50亿元"
tokens = jieba.lcut(text)
print(tokens)
# ['宁德时代', '拟', '定向增发', '募资', '不超过', '50', '亿元']
分词策略上,建议采用“通用分词 + 领域词典 + 规则保护”三层结构:先用通用分词获得基础切分,再用金融词典合并术语,最后用正则保护股票代码、百分比、金额、日期等不可切分单元。对于 BERT 类模型,分词结果主要用于数据分析和规则特征,最终输入仍以字或子词为主,但高质量分词能显著提升关键词、实体和事件触发词的召回。
三、去噪、标准化与数据清洗流程
去噪的目标是删除与任务无关的字符和片段,标准化则是把不同写法统一为同一表示。二者常交替进行。典型流程如下:
- 编码统一:统一为 UTF-8,处理乱码与转义字符。
- HTML 清洗:去除标签、脚本、样式、注释,保留正文。
- 全半角与大小写归一:全角转半角,英文统一小写或保留原形。
- 空白与标点规整:合并连续空白,统一引号、破折号、省略号。
- 模板与免责声明剔除:如“本文不构成投资建议”“转载请注明出处”。
- 数字与时间标准化:将“5亿”“5 亿元”统一为“500000000 元”或保留带单位规范形式。
- 去重:基于标题、正文指纹或 SimHash 去除重复转载。
四、常见工具与选型对比
| 环节 | 常用工具 | 适用场景 | 注意事项 |
|---|---|---|---|
| 中文分词 | jieba、pkuseg、HanLP、LAC | 关键词、实体、规则特征 | 需加载金融词典 |
| HTML 清洗 | BeautifulSoup、lxml、readability | 网页新闻正文抽取 | 注意保留表格与数字 |
| 正则与标准化 | re、unicodedata、ftfy | 全半角、乱码、模板剔除 | 规则需版本管理 |
| 去重 | SimHash、MinHash、difflib | 转载与近似重复检测 | 阈值需按语料调优 |
| 流水线编排 | Pandas、Spark、Airflow | 批量与增量处理 | 关注可复现性 |
五、案例:一条快讯的清洗前后对比
原始文本常带有来源、时间和 HTML 残留:
<p>【财联社9月12日讯】<b>宁德时代</b>(300750)公告,拟向特定对象发行股票募集资金不超过<em>50亿元</em>,用于电池研发。本文不构成投资建议。</p>
清洗与标准化后:
宁德时代 300750 公告 拟 向特定对象 发行股票 募集资金 不超过 50亿元 用于 电池 研发
可以看到,来源标记、HTML 标签和免责声明被移除,实体、代码、金额和动作词被保留,为后续事件识别提供了干净输入。
六、误区与复盘
- 误区一:分词越细越好。金融术语被切碎会丢失事件触发词,应优先保证领域词完整。
- 误区二:清洗规则一次写死。不同来源模板变化频繁,规则应模块化、可配置、可回归测试。
- 误区三:忽略标签泄漏。若去重不彻底,训练集与验证集出现近似样本,指标会虚高。
- 误区四:标准化丢失数值精度。金额、比例、日期是事件识别的关键,归一化后应保留可还原信息。
掌握本节内容后,你应能独立搭建一条可配置、可回溯的金融文本预处理管道,并理解每一步对 BERT 分类与事件识别任务的真实影响。数据质量决定模型上限,预处理不是“跑通即可”,而是需要持续迭代的工程能力。