news 2026/8/25 10:05:42

FinBERT的ESG分类怎么用?快速识别企业年报中环境、社会与治理内容的完整教程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
FinBERT的ESG分类怎么用?快速识别企业年报中环境、社会与治理内容的完整教程

FinBERT的ESG分类怎么用?快速识别企业年报中环境、社会与治理内容的完整教程

【免费下载链接】FinBERTA Pretrained BERT Model for Financial Communications. https://arxiv.org/abs/2006.08097项目地址: https://gitcode.com/gh_mirrors/finbe/FinBERT

FinBERT是一个在金融通信文本上预训练的 BERT 语言模型,其官方模型FinBERT-ESG可直接用于 ESG 分类任务——只需输入一句年报文本,即可自动判断它属于环境(Environmental)、社会(Social)、治理(Governance)还是无关内容。本文面向新手,手把手带你完成 FinBERT ESG 分类从安装、调用到微调的完整流程。

什么是 FinBERT?为什么选它做 ESG 分类

FinBERT 由香港科技大学团队发布(相关论文:arXiv 2006.08097),专为金融文本理解而生。它的预训练语料规模达49 亿 token(4.9B tokens),覆盖三大金融文本来源:

语料类型规模说明
公司年报 10-K & 10-Q25 亿 token年报与季报,ESG 内容的主要来源
财报电话会实录13 亿 token管理层与分析师的问答记录
分析师研报11 亿 token券商研究与投资建议文本

正因为 FinBERT 在企业年报上"泡过",它对年报语境中的 ESG 表述理解更准确,在 ESG 分类等金融 NLP 任务上的表现优于传统机器学习与通用 BERT 微调模型。项目目前提供 4 个官方模型:

  • FinBERT-Pretrained:金融文本预训练模型(用于二次微调)
  • FinBERT-Sentiment:金融情感分析
  • FinBERT-ESG:ESG 分类(本文主角)
  • FinBERT-FLS:前瞻性陈述(FLS)识别

FinBERT-ESG 能识别哪些内容?

FinBERT-ESG 是在2,000 条人工标注句子(来自企业年报与 ESG 报告)上微调得到的分类模型:

  • 输入:一段金融文本(建议以句子为单位)
  • 输出Environmental/Social/Governance/None四类标签之一,并附带置信度分数

也就是说,它可以帮你批量扫描年报,自动把"我们致力于降低运营对环境的负面影响"归入环境类,把"公司年报由独立会计师事务所审计"归入治理类,而"截至 2012 年 12 月 31 日,某贷款余额为 4.925 亿美元"这类纯财务数字则会被判为无关(None)。

三步快速上手:FinBERT-ESG 分类环境、社会与治理文本

第 1 步:获取项目并安装依赖

先克隆项目仓库,然后安装requirements.txt中列出的 4 个核心依赖(transformers、torch、numpy、scikit-learn):

git clone https://gitcode.com/gh_mirrors/finbe/FinBERT pip install -r requirements.txt

依赖版本以 requirements.txt 为准,其中transformers==4.18.0与演示代码经过实测验证。

第 2 步:加载 FinBERT-ESG 模型

模型权重托管在 Hugging Face 上,模型名为yiyanghkust/finbert-esg,通过 transformers 一行加载即可(注意标签数为 4):

from transformers import BertTokenizer, BertForSequenceClassification, pipeline finbert = BertForSequenceClassification.from_pretrained('yiyanghkust/finbert-esg', num_labels=4) tokenizer = BertTokenizer.from_pretrained('yiyanghkust/finbert-esg') nlp = pipeline("text-classification", model=finbert, tokenizer=tokenizer)

第 3 步:对年报文本运行 ESG 分类

把句子列表直接交给 pipeline,即可得到每条文本的标签与置信度:

results = nlp([ 'Managing and working to mitigate the impact our operations have on the environment is a core element of our business.', 'Rhonda has been volunteering for several years for a variety of charitable community programs.', "Cabot's annual statements are audited annually by an independent registered public accounting firm.", 'As of December 31, 2012, the 2011 Term Loan had a principal balance of $492.5 million.' ])

实战效果:4 条年报语句的 ESG 分类结果

上面这段演示代码来自项目自带的 FinBERT-demo.ipynb 中的「ESG-Classification」章节,实际输出如下:

年报语句(节选)分类结果置信度
降低运营对环境的影响是业务的核心要素…Environmental0.98
多年来持续参与慈善社区志愿服务…Social0.99
公司年报每年由独立注册公共会计师事务所审计…Governance0.67
某贷款本金余额为 4.925 亿美元…None1.00

可以看到:环境、社会两类识别非常稳定,治理类得分略低但方向正确,纯财务语句被准确排除。这正是构建年报 ESG 内容抽取流水线的理想起点。

如何用自有数据微调 FinBERT-ESG?

如果你有自己的标注数据(例如中文 ESG 报告),可以基于 FinBERT-Pretrained 权重继续微调。项目已提供完整的微调演示:

  • finetune.ipynb:展示从数据准备到微调训练的全过程,是最直接的参考模板
  • archive/train_bert.py、archive/datasets.py、archive/bertModel.py:旧版训练代码,可从中了解训练参数与数据加载细节

使用 FinBERT-ESG 的注意事项与常见问题

  • 建议以句子为单位输入:模型针对句子级文本训练,过长的段落建议先分句再批量分类
  • 大规模推理请用 GPU:官方 demo 中明确提示,处理大规模数据集时请使用 GPU 加速
  • 模型名别记错finbert-esg(ESG 分类)、finbert-tone(情感分析)、finbert-fls(前瞻性陈述)、finbert-pretrain(预训练底座),四者任务不同
  • 置信度可作过滤阈值:低分结果(如 0.6 左右)建议保留人工复核,高分结果可直接入库

项目文件导航:从 Demo 到微调脚本

文件用途
README.md项目说明:背景、模型清单与更新日志
FinBERT-demo.ipynb核心教程:Sentiment / ESG / FLS 三个任务的即用演示
finetune.ipynb微调指南:用自有数据训练 FinBERT
requirements.txt依赖清单(transformers、torch、numpy、scikit-learn)
archive/早期训练代码存档(train_bert.py 等)

小结

FinBERT 的 ESG 分类能力让"从年报中识别环境、社会与治理内容"这件事变得非常简单:加载yiyanghkust/finbert-esg模型 → 传入文本 → 得到四类标签与置信度,三步即可完成。配合项目中的 demo 与微调脚本,无论是快速验证效果,还是基于自有语料进一步微调,都有现成路径可循。现在就可以打开FinBERT-demo.ipynb,跑通你的第一条 ESG 分类。

【免费下载链接】FinBERTA Pretrained BERT Model for Financial Communications. https://arxiv.org/abs/2006.08097项目地址: https://gitcode.com/gh_mirrors/finbe/FinBERT

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/25 10:04:44

SQLite数据库文件损坏:从诊断修复到预防的完整指南

1. 从一次深夜告警说起:当SQLite数据库文件突然“变砖”凌晨两点,手机屏幕突然亮起,不是消息推送,而是监控系统发来的告警邮件。一个核心的后台服务进程卡死了,日志里赫然写着:“database disk image is ma…

作者头像 李华
网站建设 2026/8/25 10:01:00

UniApp全局字体调节方案:基于Rem与Vuex的跨平台实现

1. 项目概述:为什么我们需要全局字体调节功能?在移动应用开发中,用户体验的细微差别往往决定了产品的成败。最近在做一个面向中老年用户的健康管理类UniApp项目时,我们收到了大量反馈:默认字体太小,阅读起来…

作者头像 李华