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%。

三、方法流程:从业务需求到标注规范

类型体系不是拍脑袋列清单,而应遵循以下流程:

  1. 业务动作映射:列出下游需要抽取的字段,如“股票代码→行情关联”“金额→财务计算”“时间→时序对齐”。
  2. 语料预标注:抽取200~500条真实金融文本,人工试标,统计高频实体形态。
  3. 类别合并与拆分:若两类实体在标注中混淆率超过20%,考虑合并或增加边界规则;若一类内部形态差异过大,考虑拆分。
  4. 编写标注手册:每个标签给出定义、正例、负例、边界规则和歧义处理优先级。
  5. 一致性检验:多人标注同一批数据,计算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,下游财务计算和行情关联都会出错。

金融实体类型体系:8类实体与下游动作映射 金融NER 类型体系 COMPANY 公司名 STOCK_CODE 股票代码 FIN_INST 金融机构 PRODUCT 金融产品 INDICATOR 指标 TIME 时间 AMOUNT 金额 PERCENT 百分比 下游动作:行情关联 · 财务计算 · 时序对齐 · 产品匹配 · 合规审查

五、误区与复盘:常见设计陷阱

误区一:类别过细导致标注不一致。例如将“银行”拆为“国有银行”“股份制银行”“城商行”,标注员需反复查证,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%,类型体系需要重新对齐业务语义。