3. 实体识别与关系抽取:从文本中挖出投资线索
做投资分析,最头疼的是什么?
我个人觉得,是信息太多。每天几百份研报、新闻、公告,光靠人眼看,根本看不过来。你想想看,如果能用程序自动把「公司A收购了公司B」、「张三辞去CEO职务」这类关键信息抽出来,那该多爽?
嗯,这就是实体识别和关系抽取要干的事。
3.1 命名实体识别(NER)——先找到「谁」和「什么」
命名实体识别,说白了就是让机器学会认人、认公司、认钱。
比如这句话:「宁德时代与特斯拉签署了2026年供货协议,涉及金额约200亿元。」
NER要能标出:
- 宁德时代 → 公司实体
- 特斯拉 → 公司实体
- 2026年 → 时间实体
- 200亿元 → 金额实体
我在项目中遇到过最坑的事:把「小米」识别成粮食公司,而不是科技公司。这种歧义在投资领域特别致命。你想想,如果系统把「小米宣布造车」理解成粮食涨价,那投资决策就全歪了。
投资领域常见实体类型:
- 公司名(含简称、曾用名、股票代码)
- 人名(高管、股东、监管人员)
- 金额(营收、利润、融资额)
- 时间(财报日、解禁日、会议日期)
- 产品名(药品、车型、软件版本)
- 行业术语(PE、ROE、DCF)
3.2 关系分类——把孤立的实体连起来
光认出实体还不够。你得知道它们之间是什么关系。
比如:
- 「宁德时代」和「特斯拉」是供货关系
- 「张三」和「某公司」是任职关系
- 「某公司」和「200亿」是融资关系
关系分类的难点在哪?我举个例子:
「腾讯投资了小红书,同时小红书与阿里有合作。」
这里「腾讯」和「小红书」是投资关系,「小红书」和「阿里」是合作关系。同一个实体「小红书」,跟不同对象的关系完全不同。机器得学会区分。
我的经验:关系分类别贪多。一开始只做5-10种核心关系(投资、收购、任职、供货、竞争、合作),准确率能到85%以上。贪多嚼不烂,我见过有人一口气定义50种关系,结果模型直接崩了。
3.3 基于规则的方法——老派但管用
别一上来就搞深度学习。规则方法在某些场景下又快又准。
规则方法的核心就是:写模板,做匹配。
# 一个简单的投资关系规则
规则1:如果句子包含「投资了」,且前后都是公司名
→ 判定为「投资关系」
规则2:如果句子包含「收购了」,且前后都是公司名
→ 判定为「收购关系」
规则3:如果句子包含「担任CEO」,且前面是人名,后面是公司名
→ 判定为「任职关系」
我曾经用纯规则方法处理过一批财报公告。效果出奇的好——准确率92%,而且处理速度是深度学习模型的10倍。为什么?因为财报语言非常规范,规则几乎全覆盖。
注意:规则方法的死穴是「没见过的情况」。比如「张三空降某公司任CEO」这种表达,如果规则里没写「空降」,就抓不到。所以规则需要持续维护,我一般每两周更新一次规则库。
3.4 基于深度学习的方法——灵活但费资源
深度学习的好处是:不用手写规则,模型自己学。
目前主流方案:
- BERT + 序列标注:做NER,效果最好
- BiLSTM + CRF:经典组合,适合小数据集
- 预训练语言模型微调:比如用金融领域预训练的FinBERT
我建议的实践路径:
- 先用规则方法快速出活(1-2周)
- 同时用规则方法标注一批数据(几千条就够了)
- 用标注数据训练一个深度学习模型
- 规则+模型混合使用:规则能处理的走规则,规则处理不了的走模型
混合策略效果:
| 方法 | 准确率 | 召回率 | 处理速度 |
|---|---|---|---|
| 纯规则 | 92% | 65% | 快 |
| 纯深度学习 | 88% | 83% | 慢 |
| 规则+深度学习混合 | 91% | 88% | 中等 |
3.5 知识体系框架图
下面这张图,是我自己梳理的实体识别与关系抽取的整体流程。你看一眼就能明白各模块怎么配合。
3.6 避坑指南
做这块几年下来,踩过的坑不少。分享几个印象深刻的:
- 别迷信准确率:模型报告准确率95%,但一上线就崩。为什么?因为测试集和真实数据分布不一样。我建议用真实业务数据做验证,别用公开数据集。
- 注意实体嵌套:比如「北京小米科技有限公司」,里面包含「北京」(地名)、「小米」(公司名)、「科技有限公司」(公司类型)。普通NER模型容易只认出最外层。
- 关系抽取的负样本问题:很多句子里根本没有关系,但模型会强行给你抽一个。我一般会加一个「无关系」类别,让模型学会说「不」。
- 长文本处理:一篇研报5000字,模型上下文窗口只有512。怎么办?我习惯用滑动窗口+实体链接,把跨段的同一实体合并。
一个小技巧:做投资领域的NER,一定要维护一个「公司别名表」。比如「阿里」、「阿里巴巴」、「9988.HK」指的是同一家公司。这个表我每周更新一次,从公告和新闻里自动提取。
实体识别和关系抽取,是投资知识网络的基石。没有这一步,后面的推理和决策支持都是空中楼阁。我个人觉得,这块做扎实了,整个投资分析系统的上限能提高一大截。
公众号:蓝海资料掘金营,微信deep3321