4. 金融数据获取与预处理
异构图金融多实体关系建模的第一步,不是搭模型,而是把“数据地基”打牢。金融数据天然分散在行情、公告、财报、监管披露、新闻舆情、工商司法等多个来源中,格式从结构化表格到半结构化PDF、再到非结构化文本,质量参差不齐。本节围绕四个关键环节展开:数据源选择、实体识别、关系抽取、数据清洗与隐私合规,并给出可落地的工程化处理思路。
一、核心原理:金融数据的“多源异构”本质
金融数据建模的核心矛盾在于:实体相同但表述不同,关系真实但来源分散。例如“贵州茅台”可能以“贵州茅台酒股份有限公司”“茅台”“600519.SH”等多种形式出现;而“控股”“参股”“担保”“供应链合作”等关系,往往需要从公告、新闻、工商信息中交叉验证。因此,预处理的目标不是简单清洗,而是构建可对齐、可追溯、可合规的实体—关系底座。
关键原则:先定义实体体系与关系体系,再反向约束数据源与抽取规则。否则会出现“抽取了很多关系,但无法对齐到统一Schema”的返工。
二、方法流程:从数据源到合规入库
建议采用“五步流水线”:数据源接入 → 实体识别 → 关系抽取 → 数据清洗 → 隐私合规校验。每一步都需保留原始出处与时间戳,便于后续审计与回溯。
- 数据源接入:结构化数据(行情、财务指标)优先走API或数据库直连;半结构化数据(公告PDF、年报)需解析表格与段落;非结构化数据(新闻、研报)需分句、去噪、去重。
- 实体识别:金融领域实体包括公司、人物、机构、产品、股票代码、行业、地区等。可采用“词典+规则+模型”混合策略:先用工商库、股票代码表构建强词典,再用BERT-CRF或大模型做补充召回。
- 关系抽取:关系类型建议控制在20~40类,如“控股”“参股”“任职”“担保”“供应商”“客户”“竞争对手”。抽取方式包括基于规则的模式匹配、远程监督、以及基于Prompt的LLM抽取。
- 数据清洗:处理缺失值、重复实体、冲突关系、时间失效。例如同一对实体在不同年份存在“控股”与“非控股”,需按时间切片保留版本。
- 隐私合规:对个人身份信息(PII)进行脱敏,对敏感关系(如实际控制人、关联交易)做权限分级,确保符合《个人信息保护法》《数据安全法》及交易所披露规则。
三、案例/场景:上市公司关联关系抽取
以“A公司为B公司提供担保”为例,数据可能来自公告标题、正文表格、新闻快讯。处理时需:
- 从公告中抽取“担保方”“被担保方”“担保金额”“担保期限”;
- 将“A公司”“B公司”对齐到统一实体ID;
- 若新闻与公告冲突,以公告为准并标记置信度;
- 对涉及自然人(如法人代表)的字段进行脱敏或加密存储。
下表给出常见数据源与预处理要点的对照清单:
| 数据源 | 典型格式 | 实体识别重点 | 关系抽取重点 | 合规要点 |
|---|---|---|---|---|
| 交易所公告 | PDF/HTML | 公司全称、股票代码 | 控股、担保、诉讼 | 公开披露,可引用 |
| 财务报表 | XBRL/Excel | 科目、子公司 | 合并范围、关联方 | 注意内幕信息隔离 |
| 新闻舆情 | 文本 | 人物、机构、产品 | 合作、竞争、风险 | 去标识化处理 |
| 工商司法 | API/CSV | 法人、股东、地址 | 股权、任职、失信 | 个人信息最小化 |
四、误区/复盘:常见坑与修正建议
误区1:只做实体识别,不做实体对齐。结果同一公司在图中出现多个节点,关系断裂。
修正:建立“别名—主实体”映射表,定期合并。
误区2:关系抽取忽略时间维度。金融关系具有强时效性,如“控股”可能因股权变更失效。
修正:为每条关系增加valid_from与valid_to字段。
误区3:隐私合规后置。先抽取再脱敏,容易在中间环节泄露PII。
修正:在数据接入层即做字段级脱敏与访问控制。
以下是一个简化的实体对齐与关系版本化配置示例:
{
"entity_alignment": {
"canonical_id": "ORG_600519",
"aliases": ["贵州茅台", "茅台", "600519.SH"],
"source": "exchange_announcement"
},
"relation_version": {
"head": "ORG_600519",
"tail": "ORG_10001",
"type": "控股",
"valid_from": "2020-01-01",
"valid_to": "2023-06-30",
"confidence": 0.95
}
}
最后,用一张SVG梳理本节的核心数据流与合规检查点:
工程建议:将实体对齐表、关系Schema、脱敏规则作为三个独立配置文件管理,便于版本迭代与团队协作。每次数据更新都记录batch_id与source_snapshot,确保异构图可复现。