4. 金融实体类型体系
在金融NER项目中,实体类型体系是连接业务需求与模型输出的桥梁。它决定了标注员看到什么、模型学什么、下游应用能拿到什么。一个设计不当的类型体系,往往在标注阶段就埋下歧义,在模型训练时表现为标签混淆,最终在业务落地时无法支撑风控、投研或合规场景。本节将系统讲解金融实体类型的设计原则、类别定义、边界规则与常见陷阱。
一、核心原理:为什么不能照搬通用NER体系
通用NER通常只覆盖人名、地名、组织机构、时间、数量等粗粒度类别。金融文本的密度和精度要求远高于此:一份上市公司公告中,同一句话可能同时出现公司全称、股票代码、交易所、财务指标、同比百分比和报告期。若仅用“组织机构”一个标签,模型无法区分“贵州茅台”与“上交所”;若仅用“数量”一个标签,“营收增长12.3%”中的百分比与“金额3.2亿元”会被混为一谈。
金融实体体系的设计目标可以概括为三点:业务可解释(每个标签对应明确的金融语义)、标注可操作(边界规则清晰,减少主观判断)、模型可学习(类别间有足够区分度,避免高频混淆)。
核心判断标准:如果一个实体类型无法对应到下游具体动作(如抽取股票代码用于行情关联、抽取金额用于财务计算),它就不应该出现在体系中。
二、金融实体类型清单与边界定义
以下是一套经过实战验证的金融NER类型体系,共8个主类,可根据业务场景裁剪或扩展。
| 类型标签 | 定义 | 正例 | 边界说明 |
|---|---|---|---|
| COMPANY | 公司、企业法人名称 | 贵州茅台、宁德时代、中国平安 | 不含股票代码;不含“公司”“集团”等后缀单独出现 |
| STOCK_CODE | 股票、债券等证券代码 | 600519、300750、00700.HK | 需保留交易所后缀;纯数字需结合上下文判断 |
| FIN_INST | 银行、券商、基金、交易所等金融机构 | 上交所、中信证券、易方达基金 | 与COMPANY区分:持牌金融机构归此类 |
| PRODUCT | 金融产品、服务、理财产品 | 沪深300ETF、余额宝、国债逆回购 | 不含底层资产名称;不含泛化品类词 |
| INDICATOR | 财务指标、经济指标、技术指标 | 营业收入、CPI、MACD、市盈率 | 指标名称本身,不含其数值 |
| TIME | 时间点、时间段、报告期 | 2024年Q1、上周五、近30个交易日 | 相对时间需归一化;不含“近期”等模糊词 |
| AMOUNT | 货币金额 | 3.2亿元、$500万、1200万港元 | 含币种和数量级;不含百分比 |
| PERCENT | 百分比、比率、涨跌幅 | 12.3%、同比+5.6%、换手率2.1% | 与AMOUNT严格区分;含正负号 |
扩展建议:若面向舆情场景,可增加EVENT(事件)和PERSON(人物);若面向研报场景,可增加RATING(评级)和TARGET_PRICE(目标价)。但每增加一类,标注一致性成本约上升15%~20%。
三、方法流程:从业务需求到标注规范
类型体系不是拍脑袋列清单,而应遵循以下流程:
- 业务动作映射:列出下游需要抽取的字段,如“股票代码→行情关联”“金额→财务计算”“时间→时序对齐”。
- 语料预标注:抽取200~500条真实金融文本,人工试标,统计高频实体形态。
- 类别合并与拆分:若两类实体在标注中混淆率超过20%,考虑合并或增加边界规则;若一类内部形态差异过大,考虑拆分。
- 编写标注手册:每个标签给出定义、正例、负例、边界规则和歧义处理优先级。
- 一致性检验:多人标注同一批数据,计算Kappa系数,低于0.8则回到第4步修订。
# 标注规范片段示例:STOCK_CODE 与 AMOUNT 的区分
# 规则:6位纯数字且上下文含“股票”“代码”“上市”等词 → STOCK_CODE
# 规则:数字后带“元/万元/亿元/美元”等货币单位 → AMOUNT
# 规则:数字后带“%”或“个百分点” → PERCENT
# 歧义示例:“600519”单独出现 → 默认STOCK_CODE(金融语料先验)
# 歧义示例:“600519元” → AMOUNT(货币单位优先)
四、案例场景:一句话中的多实体标注
以真实公告句子为例:“2024年Q1,贵州茅台(600519)实现营业收入464.7亿元,同比增长15.6%,增速较上季度提升2.3个百分点。”
- TIME:2024年Q1
- COMPANY:贵州茅台
- STOCK_CODE:600519
- INDICATOR:营业收入
- AMOUNT:464.7亿元
- PERCENT:15.6%、2.3个百分点
该句覆盖了6类实体,且各类边界清晰。若将“464.7亿元”误标为PERCENT,或把“600519”误标为AMOUNT,下游财务计算和行情关联都会出错。
五、误区与复盘:常见设计陷阱
误区一:类别过细导致标注不一致。例如将“银行”拆为“国有银行”“股份制银行”“城商行”,标注员需反复查证,Kappa系数骤降。建议先粗后细,用属性字段而非实体类型表达细分。
误区二:AMOUNT与PERCENT混标。“增长3.2亿元”与“增长3.2%”语义完全不同,前者是绝对增量,后者是相对变化。若混标,下游无法区分。
误区三:忽略嵌套实体。“2024年Q1营业收入”中,TIME与INDICATOR相邻但不嵌套;但“贵州茅台2024年Q1营收”中,COMPANY与TIME可能被误标为整体。需明确最长匹配还是最短匹配原则。
误区四:股票代码与金额的纯数字歧义。“600519”在金融语料中优先判为STOCK_CODE,但若上下文为“600519元”则判为AMOUNT。需在标注手册中写明优先级规则。
复盘建议:每完成一轮标注,抽取混淆矩阵,重点观察COMPANY与FIN_INST、AMOUNT与PERCENT、STOCK_CODE与AMOUNT三组易混类别的F1值。若某组混淆率持续高于15%,应回到类型定义层面修订,而非单纯增加标注量。
最终检验标准:随机抽取50条标注样本,让未参与标注的金融业务人员判断“这个标签是否对应他理解的业务含义”。若一致率低于90%,类型体系需要重新对齐业务语义。