4、文本预处理基础:分词、去停用词、词形还原、词干提取、正则表达式清洗金融文本

金融文本是自然语言处理(NLP)在金融领域落地时最典型、也最具挑战性的数据形态。无论是上市公司年报、券商研报、财经新闻、股吧评论,还是监管公告、信贷审批意见,原始文本中往往夹杂着大量噪声:HTML标签、特殊符号、数字单位、中英文混排、时态与复数变化、停用词干扰等。如果不对这些文本进行系统化预处理,后续的向量化、情感分析、主题建模、实体识别等任务都会受到严重干扰。本章围绕金融文本预处理的核心链路——正则表达式清洗、分词、去停用词、词干提取与词形还原——展开讲解,并结合金融场景给出可落地的操作流程与案例拆解。

金融文本预处理链路与关键决策点 原始金融文本 年报/新闻/评论/公告 ① 正则表达式清洗 去HTML/特殊符号/数字 ② 分词 中文分词/英文Tokenize ③ 去停用词 金融停用词表/通用停用词 ④ 词形还原(Lemmatization) 保留词义,还原为词典原形 ⑤ 词干提取(Stemming) 粗暴截断,可能丢失词义 清洗后的结构化序列 供向量化/模型训练使用 关键决策点 金融领域:词形还原优先于词干提取 保留数字与百分比语义,谨慎去除

上图展示了金融文本预处理的标准链路。需要特别强调的是,金融场景下预处理并非“一刀切”的流水线,而是需要根据下游任务(情感分析、信息抽取、文本分类等)灵活调整。例如,在情感分析中,“不看好”中的“不”字是核心情感词,不能简单归为停用词;在信贷审批文本中,“逾期90天”中的数字“90”具有关键语义,不能直接删除。因此,预处理策略必须结合业务语义进行定制。

4.1 正则表达式清洗:金融文本的第一道防线

核心原理

正则表达式(Regular Expression)是一种基于模式匹配的文本处理技术,通过定义字符模式来识别、提取或替换特定文本片段。在金融文本中,正则清洗主要解决四类问题:噪声字符去除(HTML标签、URL、emoji、特殊符号)、格式统一(日期格式、数字格式、货币单位)、敏感信息脱敏(身份证号、手机号、银行卡号)、无用内容过滤(版权声明、免责条款、表格乱码)。

操作流程与常用模式

清洗目标正则模式示例说明
HTML标签<[^>]+>匹配所有尖括号包裹的内容
URL链接https?://\S+匹配http或https开头的链接
特殊符号[^\w\s\u4e00-\u9fa5]保留中英文、数字、空格,去除其他符号
多余空白\s+将多个空白字符压缩为一个空格
日期统一(\d{4})年(\d{1,2})月(\d{1,2})日将中文日期转为标准格式
手机号脱敏(1[3-9]\d)\d{4}(\d{4})保留前3后4,中间用*替换

案例拆解:清洗一份上市公司公告

假设我们获取到一段原始公告文本:

【公告】XX科技2024年年度报告摘要\n
来源:巨潮资讯网 发布时间:2024-03-28 18:30:00\n
本公司董事会及全体董事保证本公告内容不存在任何虚假记载、误导性陈述或者重大遗漏。\n
联系电话:010-88886666,邮箱:ir@xxtech.com.cn\n
公司实现营业收入1,234,567,890.12元,同比增长15.3%;净利润987,654,321.45元,同比下降2.7%。\n
<div class="footer">版权声明:本公告仅供参考,不构成投资建议。</div>

清洗步骤与结果如下:

  1. 去除HTML标签:使用 <[^>]+> 删除 <div class="footer"> 和 </div>。
  2. 去除URL和邮箱:使用 \S+@\S+ 删除邮箱,使用 https?://\S+ 删除URL。
  3. 去除特殊符号:使用 [^\w\s\u4e00-\u9fa5] 删除冒号、分号、括号等,但保留数字中的逗号和点号需要额外处理。
  4. 数字格式统一:将 1,234,567,890.12 中的逗号去除,转为 1234567890.12,便于后续数值提取。
  5. 去除停用段落:根据业务规则,删除“版权声明”“免责条款”等固定模板内容。
经验提醒:金融文本中的数字往往具有重要语义。在清洗时,建议先提取并保存关键数字(如营收、利润、增长率),再进行噪声去除。否则,一旦数字格式被破坏,后续的数值型特征工程将无法进行。

常见误区

  • 过度清洗:将“%”和“.”等符号全部删除,导致“15.3%”变成“153”,语义完全改变。
  • 忽略中文标点:中文文本中的“,”“。”与英文逗号句号编码不同,需要单独处理。
  • 正则性能陷阱:在超长文本上使用回溯量词(如 .*)可能导致性能急剧下降,应使用非贪婪模式或原子组。

4.2 分词:中英文金融文本的切分艺术

核心原理

分词是将连续的文本序列切分为独立的词语单元。英文文本天然以空格分隔,但存在时态、复数、所有格等变形;中文文本则没有天然分隔符,需要借助算法进行切分。金融领域的分词难点在于:专业术语识别(如“量化宽松”“不良贷款率”)、新词发现(如“元宇宙概念股”)、歧义消解(如“中国/人民银行”vs“中国人/民银行”)。

主流分词方法对比

方法代表工具优点缺点金融场景适用性
基于词典Jieba、HanLP速度快、易定制对未登录词处理差需加载金融词典
基于统计THULAC、LTP对新词有一定识别能力训练数据依赖大适合大规模语料
基于深度学习BERT分词、Lattice LSTM语义理解强、歧义消解好计算资源消耗大适合复杂语义场景

金融分词实战要点

  1. 加载金融领域自定义词典:将“市盈率”“市净率”“定向增发”“可转债”等术语加入自定义词典,避免被错误切分。
  2. 处理中英文混合:金融文本常出现“GDP增长”“CPI数据”等中英混排,需保留英文单词完整性。
  3. 数字与单位绑定:将“15.3%”作为一个整体,而非拆分为“15.3”和“%”。
风险提示:分词错误会直接传导至下游任务。例如,“净利润/同比下降”被错误切分为“净利润/同比/下降”,会导致情感判断偏差。建议在分词后人工抽检100条样本,评估分词准确率。

4.3 去停用词:金融语境下的取舍之道

核心原理

停用词(Stop Words)指对文本语义贡献较小的高频词,如“的”“了”“是”“在”等。去除停用词可以降低特征维度、减少噪声。但金融场景中,停用词表需要定制化,不能直接套用通用停用词表。

金融停用词表的特殊考量

  • 保留否定词:“不”“无”“非”等词在金融舆情中具有关键语义反转作用,如“不看好”“无风险”。
  • 谨慎处理程度副词:“大幅”“小幅”“显著”等词在研报中表达程度差异,对情感强度分析有用。
  • 删除金融模板词:“本公司”“董事会”“公告”等词在多数公告中高频出现,但区分度低,可考虑去除。

案例拆解:股吧评论的情感分析预处理

假设我们处理一条股吧评论:“这只股票今天涨了5个点,但是我觉得明天可能会回调,不打算加仓了。”如果使用通用停用词表去除“了”“的”“可能”,会得到“股票 今天 涨 5个点 但是 觉得 明天 回调 不 打算 加仓”。其中“不”被保留,但“但是”作为转折词也被保留,这对情感分析至关重要。若进一步使用金融定制停用词表,可去除“股票”“今天”等低信息词,保留“涨”“回调”“不”“加仓”等核心情感词。

经验提醒:建议构建三层停用词表:第一层为通用停用词(的、了、是);第二层为金融模板词(公告、本公司、董事会);第三层为场景特定词(根据具体任务动态调整)。每次调整后,用下游任务的性能指标(如F1值)来验证停用词表的效果。

4.4 词形还原与词干提取:英文金融文本的规范化

核心原理

词干提取(Stemming)和词形还原(Lemmatization)都用于将单词的变形形式归并为基本形式,但二者有本质区别:词干提取是启发式截断,如“trading”变为“trad”,“investing”变为“invest”;词形还原则基于词典和词性标注,将“trading”还原为“trade”,“better”还原为“good”。金融英文文本中,词形还原更受青睐,因为它保留了单词的真实语义。

对比分析

维度词干提取(Porter/Snowball)词形还原(WordNet/Spacy)
输出形式可能不是合法单词一定是词典中的原形
依赖资源无需词典需要词典和词性标注
处理速度快较慢
语义保真度低高
金融场景示例“overvalued”→“overvalu”“overvalued”→“overvalue”

金融场景选择建议

在构建金融知识图谱或信息抽取系统时,推荐使用词形还原,因为“defaulted”和“default”需要被映射到同一实体“default”。但在大规模文本检索场景中,词干提取的速度优势更明显,且对检索效果影响不大。实际项目中,可以混合使用:先词形还原,再对未命中词使用词干提取兜底。

实战案例:某券商研报情感分析系统,原始文本包含“outperformed”“outperforming”“outperform”三种形式。使用词形还原后统一为“outperform”,情感词典匹配率从82%提升至94%,模型F1值从0.71提升至0.78。代价是预处理耗时增加约15%,但整体收益显著。

4.5 金融文本预处理完整流程与质量评估

标准处理流水线

  1. 文本去噪:正则清洗HTML、URL、特殊符号、乱码。
  2. 编码统一:统一为UTF-8编码,处理全角/半角转换。
  3. 分句与分段:按句号、感叹号、问号分句,保留段落结构。
  4. 分词/Tokenize:中文用Jieba+金融词典,英文用Spacy或NLTK。
  5. 去停用词:使用三层定制停用词表。
  6. 词形还原/词干提取:英文文本执行,中文可跳过。
  7. 标准化:数字格式化、日期统一、货币单位转换。
  8. 质量抽检:随机抽取200条样本,人工检查清洗效果。

质量评估指标

指标计算方式金融场景合格标准
分词准确率正确切分词语数/总词语数≥95%
清洗完整率成功去除噪声字符数/应去除噪声总数≥98%
信息保留率清洗后保留的关键信息数/原始关键信息总数≥90%
词形还原准确率正确还原单词数/总还原单词数≥92%
风险提示:预处理阶段的信息丢失是不可逆的。建议在预处理前保存原始文本备份,并记录每一步的清洗日志。当发现下游模型效果异常时,可以回溯检查预处理环节是否存在过度清洗或错误清洗。

总结复盘

金融文本预处理不是简单的“清洗+分词”机械操作,而是一个需要结合业务语义、下游任务和计算资源进行综合权衡的工程环节。核心要点可归纳为:正则清洗要保留关键数字与语义符号;分词要加载金融词典并处理中英混排;去停用词要定制化并保留否定词;词形还原优先于词干提取;每一步都要有质量评估与人工抽检机制。只有将预处理做到位,后续的金融NLP模型才能建立在干净、准确、语义完整的数据基础之上。