この記事で分かること
- センチメント分析の成否を決めるのはモデルの精度ではなく、「どのテキストを使ってよいか」の判断と「ラベル定義書」を先に固めたかどうかであること
- データ取得の可否を5区分(公式API/契約データ/自社保有/要確認/使わない)で切り分ける判断フローと、生成AIに投入する場合に追加で確認すべき論点
- 同じ3文でも、ラベル定義を変えると平均スコアが−0.67と0.00に分かれる設例と、粒度・集計方法で結論が反転する検算つきの数値例
- 人手ラベル(正解データ)を作ってAIの分類と一致率を測る手順と、日本語特有の落とし穴(婉曲表現・定型文・二重否定)の潰し方
※本記事は分析設計の教育目的の解説であり、投資判断・銘柄推奨・投資助言ではありません。
結論:精度を上げる前に、「使ってよいテキスト」と「ラベルの定義」を決める
市場センチメント分析と聞くと、まず「どのモデルを使うか」「どの辞書を使うか」を考えたくなります。しかし実務で分析が止まる原因は、ほとんどが別のところにあります。ひとつは、使いたいテキストを取得・保存・AIへ投入してよいのかが確認できていないこと。もうひとつは、「ポジティブ」「ネガティブ」が何を意味するのかを、分類を始める前に文章で定義していないことです。
この2つを飛ばすと、後戻りのコストが非常に大きくなります。取得の可否を確認しないまま数万件を集めてしまえば、成果物ごと使えなくなる可能性があります。ラベルの定義を決めないまま分類を進めれば、後から「この『中立』はどういう意味だったのか」を誰も再現できず、検証も引き継ぎもできません。センチメント分析は数値が出てしまうぶん、定義の曖昧さが数字の顔をして残ってしまう、という厄介さがあります。
そこで本記事は、精度の話に入る前段として、①目的の定義 → ②データ取得の可否判断 → ③ラベル定義書の作成 → ④分類の実行 → ⑤人手検証 → ⑥集計 → ⑦解釈という順序で作業を組み立て、最終成果物として「センチメント分析の設計書」を1枚にまとめるところまでを扱います。EDINET APIの具体的な呼び出し方はPythonでのEDINET APIによる財務データ取得で解説しているため本記事では繰り返さず、機械学習の基礎もファイナンスのための機械学習入門に譲ります。
全体像:センチメント分析の7工程
作業の流れは次の7段階です。生成AIやモデルが主役になるのは④だけで、その前後はほぼ人の設計作業だと考えてください。特に②と③を飛ばして④から始めた分析は、後で必ずやり直しになります。
この記事で作る成果物は、この7工程を1枚にまとめた「センチメント分析の設計書」です。記載項目は、目的/対象テキストと取得区分/粒度/ラベル定義/除外ルール/集計方法/検証方法/限界の明示、の8項目です。分析を他人に引き継げるかどうかは、この1枚があるかどうかで決まります。
工程②:データ取得の可否を5区分で判断する
センチメント分析でいちばん最初に手が止まるべき場所が、ここです。分析対象になり得るテキストには、報道記事、アナリストのコメント、適時開示、有価証券報告書、SNSの投稿、掲示板、決算説明会の書き起こしなど幅広い候補がありますが、「公開されている」ことと「取得・保存・解析に使ってよい」ことは別の問題です。
本記事は、テキストを次の5区分に切り分けることを勧めます。区分が決まらないものは④以降に進めない、という運用にしてください。
区分①:公式APIが提供されているもの
金融庁のEDINETは、有価証券報告書・半期報告書・臨時報告書・大量保有報告書などを取得するAPIを公開しています。API仕様書(Version 2、2026年6月版)にはエンドポイント、パラメータ、取得可能期間、レスポンス項目が明記されており、この仕様と利用規約の範囲で使うのが最も安全な入口です(2026年8月3日確認)。なおEDINETの利用規約には、二次利用の際に編集・加工を行ったこととその主体を記載すること、API機能の運用に支障を与える行為を禁じることなどが定められています。公式APIがある場合は、原則としてAPI以外の手段でのデータ収集を検討しないでください。取得手順そのものは前掲のPythonでのデータ取得の記事で扱っています。
区分②:自社で契約したデータサービス
適時開示(TDnet)については、東証の適時開示情報閲覧サービスが無料で公開しているのは開示日を含めて31日分に限られ、それ以前を体系的に扱うにはJPX総研の有料サービスを契約する必要があります。2026年8月3日時点で公開されている料金体系では、TDnet APIサービスが基本料金月額7万円+データ量に応じた従量制、TDnetDBSサービスが月額33,400円(税抜)などとされています。センチメント分析を継続業務にするなら、この「データ調達コスト」を最初に見積もってください。無料範囲だけで設計してしまうと、31日を超えた時点で時系列が途切れます。契約データの場合、社外への再配布や第三者への提供の可否は契約条項で決まりますので、生成AIサービスへの投入が「第三者提供」に当たらないかを含めて、契約書の該当条項を確認する必要があります。
区分③:自社が作成・保有する情報
社内の投資メモ、営業日報、顧客からの問い合わせ記録などは、外部の利用規約の制約は受けませんが、そのぶん社内規程と守秘義務の問題になります。とくに顧客情報や取引先の非公開情報を含む場合、生成AIに投入してよいかは生成AIに入れてよい情報・いけない情報の社内ルールの枠組みで判断してください。
区分④:公開されているが利用条件の確認が必要なもの
ここが実務でいちばん多く、いちばん危ないゾーンです。代表例は、取引所や公的機関のウェブサイトに掲載されている情報のうち、APIが用意されていないものです。JPXのサイト利用条件(2026年7月29日更新、2026年8月3日確認)には、有料情報として契約する場合等を除き商用目的でのデータ収集及び二次利用はできない旨、また利用者が生成AI等を用いてサイトの情報を学習・解析・生成に利用する場合であってもJPXが不利益を被る可能性のある一切の行為を禁止する旨、さらに高頻度・高負荷につながる自動取得は遠慮してほしい旨が記載されています。
つまり、「ウェブサイトで誰でも読める」ことは「機械的に集めて解析してよい」ことを意味しません。本記事では、利用条件に反するデータ取得の方法や、技術的な制限を回避する手法は一切扱いません。取りたいデータに公式APIや有料契約という正規の入口があるなら、そちらを使ってください。入口が無い場合は、提供元に利用条件を照会するか、分析対象から外すという判断になります。
報道記事やアナリストのコメントも、この区分に入ることが多い素材です。これらの文章には著作権が生じ得るため、全文をAIに投入する、社内データベースに保存する、要約を社内外に配布する、といった行為はそれぞれ別々に利用条件の確認が必要です。「読む」ことが許されていても「保存する」「解析する」「再配布する」が同じ条件で許されているとは限りません。契約先の報道データベースを使っている場合でも、生成AIへの投入が契約上想定されているかは改めて確認する価値があります。個別の可否は契約内容と利用態様によって変わりますので、法務部門や提供元にご確認ください。本記事は法的な結論を示すものではありません。
区分⑤:使わない
利用条件が確認できないもの、規約で明確に禁じられているものは、分析対象から外します。「グレーだから小さく試す」という運用はしないでください。試した時点でデータの取得と保存が発生しており、後から取り消せません。センチメント分析は対象を絞っても成立します。区分①〜③だけで設計し直すほうが、結果的に早く前に進みます。
| 区分 | 代表例 | 確認する場所 | 生成AIに投入する前の追加確認 |
|---|---|---|---|
| ①公式API | EDINET API(有報・臨時報告書等) | API仕様書・利用規約 | 二次利用時の加工主体の表示、アクセス頻度 |
| ②契約データ | TDnet APIサービス等の有料サービス | 利用契約・約款 | 第三者提供・再配布・保存期間の条項 |
| ③自社保有 | 社内メモ、営業記録、問い合わせ履歴 | 社内規程・守秘義務契約 | 個人情報・顧客の非公開情報の有無 |
| ④要確認 | 報道記事、アナリストコメント、APIの無いサイト | サイト利用条件・購読契約・提供元への照会 | 学習・解析利用の可否、保存と要約配布の可否 |
| ⑤使わない | 条件が確認できないもの、禁止されているもの | — | 取得も保存もしない |
工程③:ラベル定義の曖昧さが結果を変える
ここからが本記事の中心です。「ポジティブ/ネガティブ」は、定義を書かないかぎり人によって別のものを指します。それを設例で確認します。以下は架空の企業「洋光テクノ株式会社」の開示文・説明資料から取ったという想定で作成した、架空の3文です(実在の開示文の転載ではありません)。
- 文A:「第2四半期までの進捗は当初想定を下回りましたが、通期の業績予想は据え置きます。」
- 文B:「上期は堅調に推移したものの、下期は市況の不透明感が増すと見込んでおります。」
- 文C:「構造改革費用の計上により営業利益は減少しましたが、改革の効果は次期以降に発現する見込みです。」
この3文に、次の3通りのラベル定義を当てはめます。値は ポジティブ=+1、中立=0、ネガティブ=−1 とします。
- 定義① 文そのものの評価:文を読んだ人が受ける全体の印象を3値で判定する
- 定義② 業績への含意:会社が示した業績の見通しが従来より上向いたか下向いたかで判定する
- 定義③ 株価への含意:株価にとってプラスかマイナスかで判定する
| 設例文 | 定義① 文の評価 | 定義② 業績への含意 | 定義③ 株価への含意 |
|---|---|---|---|
| 文A(進捗未達+予想据置) | ネガティブ(−1) 「下回った」の印象が残る | 中立(0) 予想は据え置き=見通し不変 | 判定不能 市場の織り込み水準が不明 |
| 文B(上期堅調+下期不透明) | ネガティブ(−1) 後半の警戒が印象を支配 | ネガティブ(−1) 下期見通しが下向き | 判定不能 既知の情報かが不明 |
| 文C(構造改革で減益+次期以降に効果) | 中立(0) 減益と前向き補足が拮抗 | ポジティブ(+1) 次期以降の見通しが上向き | 判定不能 織り込み済みの可能性 |
| 3文の平均 | −0.67 (−1−1+0)÷3 | 0.00 (0−1+1)÷3 | 算出不能 有効件数0件 |
検算:定義①は合計 (−1)+(−1)+0=−2、3で割って −0.6666…=−0.67。定義②は合計 0+(−1)+(+1)=0、3で割って 0.00。同じ3文を同じ手順で分類しても、定義①では「ややネガティブ」、定義②では「中立」という別の結論になります。定義③に至っては、市場が何を織り込んでいるかが分からない以上、公開テキストだけから判定することはできず、無理に付ければ根拠のない数字が生まれます。
だから「ラベル定義書」を先に作る
実務上の規律はひとつです。1文でも分類する前に、ラベル定義書を文章で書き、承認を取ること。定義書に最低限入れる項目は次の6つです。
- 判定軸:何に対する評価か(文の印象/業績への含意/会社の見通しの変化 など。1つだけ選ぶ)
- ラベルの値:使う値と、それぞれの意味を1〜2文で説明
- 「判定不能(NA)」の扱い:NAを必ず用意し、迷ったらNAにするルールを明記
- 優先順位:1文に複数の要素があるときにどれを採るか(例:数値を伴う記述>見通しの記述>形容表現のみ)
- 除外ルール:定型文、免責文、リスク要因の定型的な列挙などを対象から外す条件
- 境界事例集:判断が割れた実例を5〜10件、確定ラベルと理由つきで載せる
とくに③のNAは重要です。NAを用意しない分類は、必ずどこかに嘘が混ざります。定義③のように「そもそも公開テキストだけでは決められない」軸を扱うときは、NAが多発すること自体が正しい設計の証拠です。なお、株価反応との関係を分析したい場合は、テキストのラベルとしてではなく、別途価格データを突き合わせる分析として設計します。市場参加者の反応が必ずしも情報の内容どおりにならない背景は、行動ファイナンスと市場効率性の論点として整理されています。
工程③(続き):粒度と集計方法で結論が反転する
ラベル定義と並んで結果を左右するのが「粒度」です。粒度とは、1つのスコアを何に対して付けるかという単位のことです。実務では次の4つが使われます。
| 粒度 | 1件= | 向いている用途 | 主な弱点 |
|---|---|---|---|
| 文単位 | 句点で区切った1文 | 表現の細かい変化を追う、検証がしやすい | 文数の多い文書に結果が引きずられる |
| 段落単位 | 見出し配下の1ブロック | 論点ごとの温度差を見る | 段落の切り方が文書によって違う |
| 文書単位 | 開示1本、記事1本 | 件数を数えたい、文書種別で重みを変えたい | 長文の中の重要な一文が薄まる |
| 企業-日次単位 | ある企業のある日 | 時系列で推移を見る、他データと結合する | その日の文書数の偏りが出る |
粒度と集計方法の組み合わせで結論がどれだけ変わるかを、整数の設例で確認します。架空の洋光テクノ株式会社について、ある1営業日に3本の文書が出たとします。文単位で分類した結果は次のとおりです(ポジ=+1、ネガ=−1、中立=0)。
| 文書 | 文数 | ポジ | ネガ | 中立 | スコア合計 | 文書内の平均 |
|---|---|---|---|---|---|---|
| ①決算説明資料(要約版) | 12 | 4 | 2 | 6 | +2 | +0.17 |
| ②適時開示(通期予想の下方修正) | 4 | 0 | 3 | 1 | −3 | −0.75 |
| ③自社リリース(新製品の販売開始) | 8 | 5 | 0 | 3 | +5 | +0.63 |
| 合計 | 24 | 9 | 5 | 10 | +4 | — |
検算:文数 12+4+8=24。ポジ 4+0+5=9、ネガ 2+3+0=5、中立 6+1+3=10。9+5+10=24 で文数と一致します。スコア合計は (4−2)+(0−3)+(5−0)=2−3+5=+4。
この同じデータを、4通りの方法で集計します。
| 集計方法 | 計算式 | 結果 | 読み取られる結論 |
|---|---|---|---|
| A 全文をプールして単純平均 | +4 ÷ 24文 | +0.17 | ややポジティブ |
| B 文書平均の単純平均 | (0.17−0.75+0.63) ÷ 3 | +0.01 | ほぼ中立 |
| C 文書種別で加重平均 (適時開示3・説明資料2・自社リリース1) | (2×0.17 + 3×(−0.75) + 1×0.63) ÷ 6 | −0.22 | ネガティブ |
| D ネガティブ文の件数 | 2+3+0 | 5件 | 要注意(うち3件が適時開示) |
検算:Aは 4÷24=0.1666…=+0.17。Bは 1/6 −3/4 +5/8 を24分母に揃えると 4/24 −18/24 +15/24=1/24≒0.0417、これを3で割って 0.0139=+0.01。Cは 2×(1/6)=0.3333、3×(−0.75)=−2.25、1×0.625=0.625、合計 −1.2917 を重みの合計6で割って −0.2153=−0.22。
同一のデータから「ややポジティブ」「ほぼ中立」「ネガティブ」の3通りの結論が出ました。誤りがあるわけではありません。3つとも計算は正しく、違うのは集計の設計だけです。だからこそ、集計方法は結果を見る前に決めて設計書に書いておく必要があります。結果を見てから集計方法を選ぶと、それは分析ではなく結論の後付けになります。この設例では、法定の適時開示である業績予想の修正を重く見るCの設計に合理性がありますが、その理由も設計書に書いておきます。
工程④:分類の実行(プロンプト例と出力例)
ラベル定義書ができて初めて、分類作業に入ります。生成AIに分類させる場合、プロンプトには定義書の内容をそのまま埋め込みます。「ポジティブかネガティブか判定して」という一文だけのプロンプトは、定義をAIに委ねているのと同じで、再現性がありません。
プロンプト例1:ラベル定義書に基づく文単位の分類
# 役割 あなたは日本の上場企業の開示文書を扱うリサーチアシスタントです。要約はせず、指定した定義に従った分類だけを行ってください。 # 目的 以下の日本語テキストを「文」単位に分割し、ラベル定義書に従って1文ごとに1つのラベルを付与する。 # 入力資料 ・対象テキスト:末尾の【本文】に貼り付けたもののみ。ここに無い情報は使わない。 ・出典情報:文書名( )/発行主体( )/公表日( ) # 対象期間・単位 ・対象期間:(例)2026年4月1日〜2026年6月30日に公表された文書 ・分類の単位:文(句点「。」で区切る。箇条書きは1項目を1文とみなす) ・スコアの単位:POS=+1/NEU=0/NEG=-1/NA=集計から除外(無次元) # ラベル定義書(この定義以外の基準を使わないこと) 判定軸:当期(進行期)の業績見通しへの含意 ・POS=当期の業績が従来想定より良い方向であることを示す記述 ・NEG=当期の業績が従来想定より悪い方向であることを示す記述 ・NEU=当期業績への方向性を含まない記述(事実の列挙、方針、定型的な表現) ・NA =上記のいずれにも決められない、または情報が不足している 判定の優先順位:数値を伴う記述 > 会社の見通しに関する記述 > 形容表現のみの記述 除外ルール:免責文、リスク要因の定型的な列挙、前期と同一の定型文は NEU ではなく EXCLUDE とする # 出力形式 以下の列を持つCSV(ヘッダ行あり、カンマ区切り、各値を引用符で囲む)だけを出力する。前置き・後書き・解説は書かない。 文番号,原文,ラベル,判定根拠となった語句,確信度(高/中/低) # 計算方法 CSVの最終行の後に、コメント行として集計を1行出す。 形式:#集計 総文数=◯ POS=◯ NEG=◯ NEU=◯ NA=◯ EXCLUDE=◯ 合計=◯ スコア合計=◯ # 禁止事項 ・要約、言い換え、原文の修正をしない(原文列は一字一句そのまま) ・定義書に無いラベルを作らない ・株価の予想、投資判断、売買の推奨を書かない ・本文に無い事実を補わない # 不明情報の処理 判断できない文は必ず NA とし、確信度を「低」とする。推測で POS/NEG を付けない。 本文から読み取れない情報を問われた場合は「不明」と書く。 # 出典の表示 各行の判定根拠は、必ず本文中に実在する語句をそのまま引用する。言い換えた表現は使わない。 # 検算 POS+NEG+NEU+NA+EXCLUDE が総文数と一致することを確認する。一致しない場合はCSVを出力せず、その旨だけを報告する。 # レビュー項目(人が確認する) 1. 文の分割が原文どおりか(表・脚注・注記が混入していないか) 2. 「〜ものの」「〜ながらも」「〜とはいえ」を含む文で、主節と従属節のどちらを採ったか 3. 毎期同一の定型文が EXCLUDE になっているか 4. 確信度「低」の文の割合と、その内容 【本文】 (ここに対象テキストを貼り付ける)
出力例(プロンプト例1の想定出力・抜粋)
文番号,原文,ラベル,判定根拠となった語句,確信度(高/中/低) "1","第2四半期までの進捗は当初想定を下回りましたが、通期の業績予想は据え置きます。","NEU","通期の業績予想は据え置き","中" "2","上期は堅調に推移したものの、下期は市況の不透明感が増すと見込んでおります。","NEG","下期は市況の不透明感が増す","高" "3","構造改革費用の計上により営業利益は減少しましたが、改革の効果は次期以降に発現する見込みです。","NEU","次期以降に発現","中" "4","本資料に記載された将来に関する記述は、現時点で入手可能な情報に基づく判断であります。","EXCLUDE","将来に関する記述","高" #集計 総文数=4 POS=0 NEG=1 NEU=2 NA=0 EXCLUDE=1 合計=4 スコア合計=-1
この出力例では、文1が定義②(当期業績見通しへの含意)に従ってNEUになっている点に注意してください。読んだ印象はネガティブでも、定義に従えばNEUです。ここで「直感と合わない」と感じたなら、それはAIの誤りではなく定義の選び方の問題です。定義書に戻って、測りたいものが本当にその軸かを見直します。
プロンプト例2:人手ラベルとの不一致の原因分類
# 役割 あなたは分類結果の点検役です。新しい分類はせず、既に付いている2つのラベルの食い違いの原因だけを分類します。 # 入力資料 CSV:文番号, 原文, 人手ラベル, AIラベル(人手とAIが不一致の行のみ) ラベル定義書:(ここに定義書の全文を貼り付ける) # 目的 不一致の原因を、次の6区分のいずれか1つに割り当てる。 D1 定義の不備(定義書で判定基準が決まっていない) D2 否定・二重否定の解釈違い D3 従属節と主節のどちらを採るかの違い D4 定型文(毎期同一表現)の扱いの違い D5 業界特有の言い回しの解釈違い D6 単純な読み違い # 出力形式 CSVのみ。文番号,原文,人手ラベル,AIラベル,原因区分,理由(60字以内),定義書の修正案(不要ならNone) # 禁止事項 ・どちらのラベルが正しいかを断定しない(確定判断は人が行う) ・原文を書き換えない ・6区分に無い原因を新設しない # 不明情報の処理 6区分に当てはまらない場合は「D0 分類不能」とし、理由を書く。 # 検算 最後にコメント行で「#検算 入力行数=◯ 出力行数=◯ D1=◯ D2=◯ D3=◯ D4=◯ D5=◯ D6=◯ D0=◯」を出し、区分の合計が出力行数と一致することを確認する。 # レビュー項目(人が確認する) D1に分類された件数が最多であれば、分類をやり直す前に定義書を改訂する。
AIに任せる部分と人が判断する部分
この工程で線を引いておかないと、「AIが出した数字」がいつのまにか判断そのものになってしまいます。本記事の推奨は次のとおりです。
| 工程 | AIに任せてよいこと | 人が判断すること |
|---|---|---|
| ②取得可否 | 規約文書の該当箇所の抜き出し(原文引用のみ) | 利用してよいかの最終判断、法務への確認 |
| ③ラベル定義 | 定義案のたたき台、境界事例の候補出し | 判定軸の選択、NAの範囲、除外ルールの確定 |
| ④分類 | 大量の文への一次ラベル付与、根拠語句の抽出 | 確信度「低」の文と境界事例の確認 |
| ⑤検証 | 不一致行の原因分類の候補出し | 正解ラベルの作成、一致率の合否判定 |
| ⑥集計 | 集計の実行と検算の再現 | 重みづけの設計、対象期間の決定 |
| ⑦解釈 | — | 結論、限界の明示、報告先への説明 |
とくに⑦は、全面的に人の仕事です。「センチメントが下がったから株価が下がる」という因果を、AIにも自分にも言わせないでください。公表のタイミングと株価の動きが同じ日に重なっても、それは相関ですらないことがあります。開示情報が公表された時点でどう扱われるかについては、インサイダー取引規制と公表措置の考え方が参考になります。
センチメント分析の検証方法
センチメント分析に固有の検証は、「正解データを人が作り、AIの分類と突き合わせる」ことに尽きます。生成AI出力の一般的な検証手順は生成AI出力の検証手順で扱っているため、ここではこの業務に固有の項目だけを書きます。
手順:人手ラベルによる一致率の測定
- 検証用サンプルを無作為に抜く:全体から100〜300文程度。文書種別の構成比が全体と揃うように層化して抽出します。ポジ・ネガの多そうな文だけを選ぶと一致率が実態より良く見えます。
- 2名が独立にラベルを付ける:AIの出力を見ずに、ラベル定義書だけを見て付けます。ここが崩れると検証全体が意味を失います。
- 2名の一致率を先に測る:人同士が一致しない文は、AIにも一致させられません。人同士の一致率は、AIに期待できる精度の上限です。
- 不一致を協議して確定ラベルを作る:協議の結果は必ず定義書の境界事例集に追記します。
- AIの分類と確定ラベルの一致率を測る:全体だけでなく、ラベル別に測ります。
- 不一致の原因を分類する:プロンプト例2の6区分に割り当て、D1(定義の不備)が多ければ定義書に戻ります。
整数の設例で示します。検証サンプル100文について、次の結果が出たとします。
| 項目 | 件数 | 率 | 読み方 |
|---|---|---|---|
| 人手2名の一致 | 82 / 100 | 82.0% | AIに期待できる精度の上限の目安 |
| AIと確定ラベルの一致(全体) | 71 / 100 | 71.0% | 上限82%に対して11ポイントの差 |
| うち ポジティブ | 26 / 30 | 86.7% | 明示的な良い表現は捉えやすい |
| うち ネガティブ | 13 / 25 | 52.0% | 取りこぼしが多い。婉曲表現が原因 |
| うち 中立 | 32 / 45 | 71.1% | 定型文の扱いのぶれが混ざる |
検算:確定ラベルの内訳 30+25+45=100。AIの正解数 26+13+32=71で全体の一致件数と一致します。率は 26÷30=86.66…=86.7%、13÷25=52.0%、32÷45=71.11…=71.1%、71÷100=71.0%。
この設例で読むべきなのは、全体の71%という数字ではなくネガティブの52%です。ネガティブを半分近く取りこぼしているなら、「センチメントが改善した」という結論はほぼ確実に上振れています。日本語の開示文では、悪い情報ほど「〜については引き続き注視してまいります」「想定に対して一部進捗の遅れが見られます」のように婉曲に書かれるため、この非対称は構造的に起きます。ラベル別の一致率を見ない検証は、検証をしたことになりません。
この業務に固有の検証項目
- 文分割の再現性:同じ文書を2回処理して、文数が一致するか。表・脚注・注記が本文に混入していないか。
- 定型文の除外率:前期と同一の文がEXCLUDEになっているか。除外率が期によって大きく変わっていないか。
- NA率の妥当性:NAが0%なら、判定不能を無理に判定している疑いがあります。逆に50%を超えるなら判定軸が実データに合っていません。
- 時系列の断層:モデルやプロンプトを変更した日を境にスコアが不連続に動いていないか。変更履歴とスコアの推移を並べて確認します。
- 再実行の安定性:同じ入力・同じプロンプトで再実行し、ラベルの変動率を測る。変動が大きいなら結論に幅を持たせます。
機密情報・個人情報の注意
センチメント分析では、社内メモや顧客からの問い合わせ記録など、個人情報や取引先の非公開情報を含むテキストが入り込みやすい点に注意してください。個人情報保護委員会は2023年6月2日付で生成AIサービスの利用に関する注意喚起を公表しており、個人情報を含む内容をプロンプトとして入力する場合は、特定した利用目的の達成に必要な範囲内であることの十分な確認を求めています(2026年8月3日確認)。入力してよい情報の切り分けと社内ルールの作り方は前掲の機密管理の記事に整理してあるため、ここでは繰り返しません。実際の判断は自社の規程と法務部門にご確認ください。
よくある失敗
- 否定・二重否定を取り違える:「減益とはならない見込み」「懸念が払拭されないわけではない」といった文は、表面の語(減益、懸念)に引きずられて誤分類されがちです。定義書の境界事例集に、否定表現の実例を必ず入れてください。
- 定型文をカウントしてしまう:将来見通しに関する免責文、リスク要因の定型的な列挙は毎期ほぼ同一です。これを数えると、文数の多い企業・多い期ほどスコアが特定方向に引っ張られます。前期との差分を取って同一文を除外するのが最も確実です。
- 業界特有の言い回しを一般語として読む:「在庫調整が進捗」「特別損失を計上」「保守的に見積もる」は、業界と文脈でプラスにもマイナスにも読めます。業界を跨ぐ分析では、業界ごとに定義書の付録を分けてください。
- 翻訳を経由して意味が変わる:英文の開示や海外報道を機械翻訳してから分類すると、婉曲表現の強度が翻訳の段階で変質します。可能なかぎり原語のまま分類し、翻訳を経由した分は別系列として分けて集計します。
- 公表タイミングと株価の因果を取り違える:開示の前から株価が動いていたのか、開示の後に動いたのかは、テキストからは分かりません。センチメントの変化と価格の動きを並べて見せるときは、必ず「これは因果ではない」と明記してください。この点はモデルの当てはまりの良さとは無関係で、過学習とはまた別の、設計そのものの誤りです。
日本語テキストと日本市場での留意点
英語圏で開発された辞書やモデルをそのまま日本語に持ち込むと、次の点で無理が出ます。
- 敬語と婉曲表現:日本語の開示文は「〜してまいります」「〜と認識しております」のように、断定を避ける形が標準です。強い否定語が出てこないため、ネガティブの検出感度が構造的に低くなります。前掲の設例でネガティブの一致率が52%にとどまったのは、この性質を反映させたものです。
- 逆接の多用:「〜ものの」「〜ながらも」「〜とはいえ」を含む文が非常に多く、主節と従属節のどちらを採るかで結果が変わります。定義書で優先順位を明記してください。
- 素材の違い:英語圏では決算説明会の書き起こしが広く流通していますが、日本では決算説明会の内容が「説明資料」「質疑応答要旨」といった形で会社ごとにばらばらの粒度で公開されることが多く、書き起こしが揃わない企業もあります。素材の入手可能性そのものが企業によって違う点を、対象企業の選定段階で確認してください。
- 公表チャネルの制度差:法定開示はEDINET、適時開示はTDnetと入口が分かれており、両者は制度上の位置づけも保存期間も異なります。単一企業の開示資料を読み込ませる方法は生成AIで有価証券報告書・決算資料を読むで扱っています。
- アナリスト予想との関係:会社側の表現と、市場の市場コンセンサスの水準は別物です。テキストのセンチメントだけを見て「予想比で良い/悪い」と読むことはできません。
実務チェックリスト
- 分析の目的を1文で書き、何が分かれば成功かを先に決めた
- 対象テキストを5区分(公式API/契約データ/自社保有/要確認/使わない)に割り当て、区分不明のものを対象から外した
- 区分④に該当するテキストについて、利用条件の確認先(提供元・契約書・法務)を特定した
- 報道記事・アナリストコメントを使う場合、投入・保存・要約配布のそれぞれについて可否を確認した
- 生成AIへの投入が契約や規約で想定されているかを、データ提供元ごとに確認した
- ラベル定義書を作成し、判定軸・値・NA・優先順位・除外ルール・境界事例の6項目を書いた
- 粒度(文/段落/文書/企業-日次)を1つに決め、設計書に書いた
- 集計方法と重みづけを、結果を見る前に決めて設計書に書いた
- 検証用サンプルを層化無作為で100件以上抽出した
- 2名が独立に人手ラベルを付け、人同士の一致率を先に測った
- AIと確定ラベルの一致率を、全体だけでなくラベル別に測った
- 不一致の原因を6区分に分類し、定義の不備によるものを定義書に反映した
- 定型文の除外率とNA率が妥当な範囲か確認した
- プロンプト・モデル・定義書の変更履歴を日付つきで残した
- 報告資料に「これは因果関係の主張ではない」と限界を明記した
面接での答え方(30秒回答例)
クオンツ・リサーチ職やデータ活用を掲げるアセットマネジメント、金融機関のDX部門では、この論点はそのまま面接の質問になります。
Q.「ニュースのセンチメント分析をやったことがあると書いていますが、どう設計しましたか?」
A.「まずデータの取得区分を整理しました。公式APIがあるものと自社で契約したサービスに限定し、利用条件が確認できないソースは対象から外しています。次に、分類を始める前にラベル定義書を作りました。判定軸を『当期業績見通しへの含意』に固定し、判定不能はNAとして必ず残す設計です。同じ文でも判定軸を『文の印象』に変えると平均が反対方向に動いたので、軸を1つに固定することが結論の再現性を決めると考えました。検証は100文の人手ラベルを2名で独立に付け、人同士の一致率を上限として見たうえで、ラベル別の一致率まで確認しています。ネガティブの取りこぼしが多かったので、婉曲表現の境界事例を定義書に追加しました。」
この回答が評価されるのは、精度の数字ではなく「使ってよいデータか」と「定義を先に固めたか」を自分で判断した形跡が見えるからです。逆に「精度が◯%出ました」だけを答えると、定義と検証の設計を聞き返されて詰まります。
よくある質問(FAQ)
Q. センチメント分析の結果を投資判断に使ってよいですか。
A. 本記事は分析の設計手順を解説するものであり、投資判断の方法や推奨を示すものではありません。センチメントスコアは「テキストにどういう表現がどれだけ含まれていたか」の集計であって、将来の価格を示すものではない、という位置づけを設計書に明記しておくことをおすすめします。実際の投資判断は、ご自身の責任で、必要に応じて専門家にご確認ください。
Q. 既製のセンチメント辞書を使えば、ラベル定義書は不要ではないですか。
A. 辞書を使う場合でも、その辞書がどの判定軸で作られたのか(文の印象か、業績への含意か)を確認し、自分の目的と合っているかを判断する必要があります。合っていなければ、辞書の精度が高くても測っているものが違います。また、対象を業界や文書種別で絞る際の除外ルールは辞書には含まれないため、結局は定義書が必要になります。
Q. 無料で使える範囲だけで分析を組めますか。
A. 対象を絞れば可能です。EDINET APIで取得できる法定開示書類は、公式APIという最も安全な区分に入ります。一方、適時開示は無料の閲覧サービスでは31日分に限られるため、それ以前を含む時系列分析には有料サービスの契約が必要になります(2026年8月3日時点の公開情報)。「無料で集められる範囲」に合わせて分析設計を歪めるより、最初から対象期間と対象書類を絞るほうが健全です。
まとめ
市場センチメント分析で最初に決めるべきは、モデルでも辞書でもなく、「どのテキストを使ってよいか」と「ポジティブ/ネガティブが何を意味するか」の2点です。データ取得は5区分に切り分け、区分が決まらないものは対象から外します。公式APIや契約データという正規の入口があるなら、そちらを使ってください。ラベル定義は、同じ3文でも判定軸を変えれば平均が −0.67 と 0.00 に分かれるほど結果を左右します。粒度と集計方法も同様で、同じデータから「ややポジティブ」と「ネガティブ」の両方が導けてしまいます。だからこそ、定義と集計方法は結果を見る前に文章で固定し、人手ラベルとの一致率をラベル別に測って初めて、その数字を人に見せられる状態になります。AIが出した分類は、検証を通るまでは分析結果ではなく、下書きです。
※繰り返しになりますが、本記事はテキスト分析の設計手順に関する教育目的の解説であり、投資助言・銘柄推奨ではありません。
出典・参考(2026-08-03確認)
- 金融庁「EDINET API仕様書(Version 2)」2026年6月版 https://disclosure2dl.edinet-fsa.go.jp/guide/static/disclosure/download/ESE140206.pdf
- 金融庁「EDINET利用規約」 https://disclosure2dl.edinet-fsa.go.jp/guide/static/disclosure/WZEK0030.html
- JPX「サイトのご利用上の注意と免責事項」2026年7月29日更新 https://www.jpx.co.jp/term-of-use/
- JPX(東証)「TDnetの概要」 https://www.jpx.co.jp/equities/listing/disclosure/tdnet/
- JPX総研「有料情報(適時開示情報 TDnet)」2026年7月6日更新 https://www.jpx.co.jp/markets/paid-info-listing/tdnet/index.html
- 個人情報保護委員会「生成AIサービスの利用に関する注意喚起等について」2023年6月2日 https://www.ppc.go.jp/news/careful_information/230602_AI_utilize_alert/
- 総務省・経済産業省「AI事業者ガイドライン(第1.2版)」2026年3月31日 https://www.soumu.go.jp/main_sosiki/kenkyu/ai_network/02ryutsu20_04000019.html
- 金融庁「AIディスカッションペーパー(第1.1版)」2026年3月3日 https://www.fsa.go.jp/news/r7/sonota/20260303/aidp.html
※本記事は教育目的の一般的な解説であり、法務・税務・会計・投資に関する助言ではありません。実際の判断は専門家にご確認ください。設例は理解のための仮設例です。AI製品の仕様・料金は変更されることがあるため、利用前に各社の公式情報をご確認ください。