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')を使用して読み込みます。 - トレーニングコード – Financial PhraseBankで
bert-base-uncased(または他のチェックポイント)をファインチューニングするためのJupyterノートブック (finbert_training.ipynb) です。破滅的忘却を軽減するための discriminate および gradual_unfreeze オプションが含まれています。 - データ準備 –
scripts/datasets.pyは、Financial PhraseBankのSentences_50Agree.txtファイルをdata/sentiment_data/配下のtrain.csv、validation.csv、test.csvに変換します。 - 予測スクリプト –
scripts/predict.pyはプレーンテキストファイルを読み込み、モデルを実行し、文ごとのソフトマックス確率、予測ラベル、および感情スコア (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/
独自のバージョンをトレーニングしたい場合は、3つのCSVファイルを data/sentiment_data/ に配置し、finbert_training.ipynb ノートブックを起動してください。必要に応じて Config パラメータ(エポック数、学習率、バッチサイズなど)を調整してください。
ライセンス – このリポジトリのコードは 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の公式製品ではありません。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト