ProsusAI/finBERT
Financial Sentiment Analysis with BERT
FinBERT – 基于 BERT 的金融情感分析
简介 – FinBERT 是一个预训练的自然语言处理模型,用于对金融文本(如新闻标题、财报电话会议或分析师报告)的情感(正面、中性、负面)进行分类。它基于通用的 BERT 模型,并在金融特定语料库和 Financial PhraseBank 数据集上进行了进一步训练。
重要性 – 通用情感模型往往会误解金融术语(例如“bearish”、“bullish”)。FinBERT 捕捉到了这些细微差别,使其适用于:
- 量化交易信号
- 风险监控
- 市场研究仪表板
主要组件
- 模型权重 – 托管在 Hugging Face 的
ProsusAI/finbert仓库中。代码通过AutoModelForSequenceClassification.from_pretrained('ProsusAI/finbert')加载它们。 - 训练代码 – 一个 Jupyter 笔记本 (
finbert_training.ipynb),用于在 Financial PhraseBank 上微调bert-base-uncased(或其他检查点)。它包含 discriminate 和 gradual_unfreeze 选项,以减轻灾难性遗忘。 - 数据准备 –
scripts/datasets.py将 Financial PhraseBank 中的Sentences_50Agree.txt文件转换为data/sentiment_data/下的train.csv、validation.csv和test.csv。 - 预测脚本 –
scripts/predict.py读取纯文本文件,运行模型,并写入一个包含每句 softmax 概率、预测标签和情感得分 (prob(pos) - prob(neg)) 的 CSV 文件。
入门指南
# 1. 创建 environment.yml 中定义的 Conda 环境
conda env create -f environment.yml
conda activate finbert
# 2. (可选) 从 Hugging Face 下载预训练权重
# 运行脚本时代码会自动获取它们。
# 3. 运行快速预测
python scripts/predict.py --text_path test.txt --output_dir output/
如果您想训练自己的版本,请将三个 CSV 文件放入 data/sentiment_data/ 并启动 finbert_training.ipynb 笔记本。根据需要调整 Config 参数(epoch、学习率、批次大小等)。
许可协议 – 本仓库的代码在 Apache-2.0 下发布(由 MIH AI B.V. 授权)。该许可不涵盖预训练模型权重(托管在 Hugging Face 上)或 Financial PhraseBank 数据集;用户必须遵守这些资产的独立条款。
联系方式 – 如有疑问,请联系 Dogu Araci (dogu.araci@prosus.com) 或 Zulkuf Genc (zulkuf.genc@prosus.com)。
FinBERT 是 Prosus AI 团队的实习生研究项目,并非 Prosus 的官方产品。
相关
- 项目
- 项目
- 项目
- 项目