LLM(大規模言語モデル)を用いて株のスクリーニングを行うには、人間が判断していた定性的・定量的な条件を自然言語処理・データ解析で代替・補強するアプローチが取れます。
以下に、全体像から精度向上まで、実用的な手法を段階的に解説します。
✅ 前提:株のスクリーニングとは?
特定の条件(PER, ROE, 時価総額, ニュース, 業種など)で投資対象の銘柄を絞り込む行為
LLMを使う目的は以下のようになります:
| 項目 | 内容 |
|---|
| 機械的スクリーニングの自動化 | 条件に合う銘柄の選定(定量) |
| ニュースや決算短信の評価 | 文脈理解による定性的分析(自然言語) |
| 市場心理の反映 | SNS、IR情報などからの「雰囲気読み」 |
| 将来性の予測補助 | テーマ・技術トレンドをテキストから抽出 |
✅ スクリーニングにLLMを活用する手順(全体像)
【STEP 1】基本的な定量スクリーニングを構築
【STEP 2】定性的要素の評価にLLMを使う
【STEP 3】結果を重みづけして統合スコア化
✅ LLMをどう使うか(より精度を上げるための方法)
| 方法 | 内容 | 精度向上のポイント |
|---|
| ① テキスト分類 | 「このニュースは株価にポジティブか?」 | ファインチューニング or LLM API活用(例:OpenAI) |
| ② 要約と要点抽出 | 決算短信から重要点のみ抽出 | 冗長な情報を削減し、正確な判断材料を得る |
| ③ 評価文生成 | 「この企業は今後成長する理由は?」と聞く | LLMが人間のように要因を説明(反証や補足に役立つ) |
| ④ 連続プロンプト | 条件→要約→評価と段階的に処理 | 精度と信頼性が向上する(Chain-of-Thought的) |
✅ 高精度にするための工夫(重要)
| 工夫 | 解説 |
|---|
| 独自データで微調整(ファインチューニング) | 財務文書・証券ニュースを使って自社ニーズに特化 |
| 複数モデル併用(Ensemble的発想) | 数値モデル(LightGBMなど)+ LLM出力を統合 |
| プロンプト設計の最適化 | 判断基準や文脈を明示し、安定した出力を得る |
| 外部知識の事前注入(RAG) | 最新データや証券レポートを併用しLLMの知識を補完 |
| 信頼スコアをつける | LLMの出力に対して信頼度指標を設けることで過信を避ける |
✅ 実例(Python+LLM API)
import openaitext = "この企業は生成AIに注力し、海外市場への進出も発表している。"prompt = f"""次の文章は企業の将来性に関するものです。投資家の視点で見て、この企業の将来性を5段階で評価し、その理由を述べてください。文章: {text}"""response = openai.ChatCompletion.create( model="gpt-4o", messages=[{"role": "user", "content": prompt}])print(response['choices'][0]['message']['content'])
✅ より高度な例:IR資料 → LLMで自動分析
各企業のPDF形式IR資料をOCR+PDF読み取り
セグメント別業績・戦略説明文を抽出
LLMで次のように評価させる:
「この会社はどの事業に力を入れており、それは将来的に有望か?」「前年と比較して、どの点が改善・悪化しているか?」
✅ 注意点(LLM活用時)
| リスク | 回避策 |
|---|
| ハルシネーション(事実誤認) | 定量データやRAG(検索連携)で補完 |
| ブラックボックス化 | プロンプトと出力ログを保存・監査可能に |
| 法的リスク(助言扱い) | LLMはあくまで補助、最終判断は人間と明記 |
✅ まとめ
| ステップ | 内容 |
|---|
| ① 定量スクリーニング | PERやROEなどで候補を機械抽出 |
| ② 定性情報収集 | 決算短信、ニュース、SNSを対象に |
| ③ LLMでテキスト評価 | ポジティブ/ネガティブ判定、将来性判断など |
| ④ スコア統合 | 数値と文章を合わせて最終ランキング |
| ⑤ 精度向上の工夫 | プロンプト設計、RAG、ファインチューニングなど |
この記事へのコメント