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の公式製品ではありません。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト