はじめに
物語に登場するキャラクターたちの関係性は、セリフの言葉づかいや口調に強く表れます。
たとえば、敬語を使っていれば距離がある、ため口であれば親しい――そんな印象を私たちは無意識に持っているものです。
この記事では、筆者が大学時代に取り組んだ卒業研究のアイデアをもとに、
「登場人物の会話に含まれる敬語の量から、親密度(関係の近さ)を推定できるのではないか?」という試みについて紹介します。
自然言語処理の手法を使いながら、形態素解析と敬語辞書を組み合わせて敬語スコアを算出し、
登場人物ペアの“距離感”を数値化できるかを検証したものです。
なぜこの研究をやったのか
このテーマを選んだきっかけは、人と人の関係性が、文章中の言葉づかいにどう現れるかに興味があったからです。
当時の自然言語処理分野では、構文解析や分類、機械学習によるテキストマイニングが主流でした。
しかしこの研究は、敬語に注目し、しかも主観的な“親密さ”を指標にするという、かなり人文寄りの内容でした。
そのため、当時は正直言って「NLPの王道からは外れている」と見なされ、あまり注目されることはありませんでした。
今だから意味があると思える理由
あれから10年近くが経ち、LLMの登場やキャラクター性を重視した対話モデルの開発が進む中で、
あらためて「登場人物の関係性を敬語で読み解く」というアプローチには、実用性や意義があると感じています。
たとえば、キャラクターの発話文を自動生成する際、「敬語をどれだけ使うか」は性格や関係性を伝えるうえで重要な要素です。
あるいは、LLMによる物語生成や要約においても、人間関係の温度感を補足する指標として、敬語の使用量はひとつの補助情報になり得ます。
目次
- 研究の全体構成
- 技術的構成:敬語スコアの算出方法
- 形態素解析:MeCabの利用
- 敬語辞書の利用
- 発話データの構造
- 発話者と被話者の推定
- 発話者の推定:ルールと優先度スコア
- 被話者(聞き手)の仮定
- スコア設計の意図
- 敬語スコアと親密度評価
- アンケートによる親密度スコア
- 敬語スコアとの比較
- 傾向と限界
- 今の技術と比べて
- LLM(大規模言語モデル)との接点
- 今でも意味のある点
- おわりに
- 人文と技術のあいだで
- 今だったらどうするか
- 最後に
研究の全体構成
この研究では、物語文中の登場人物どうしの親密度を推定するために、
会話文における敬語の使用量を指標として用いました。
全体の処理フローは次のようなステップで構成されていました:
-
対象作品の選定と前処理
- 青空文庫から物語テキストを取得(例:シャーロック・ホームズ等)
- 会話文(「」で囲まれた発話)を抽出
-
発話者と被話者の推定
- 固有表現抽出や話法パターンに基づき、発話主を推定
- 会話の流れや語り部の補助情報から聞き手を仮定
-
敬語の出現スコア算出
- 発話ごとに形態素解析を行い、敬語辞書に該当する表現をカウント
- 発話単位で敬語表現の比率(出現頻度/総形態素数)を計算
-
登場人物ペアごとのスコア集計
- 「誰が誰に話したか」の発話単位を累積し、ペアごとに敬語比率を集計
- 各ペアの“敬語スコア”を算出
-
主観的親密度評価との照合
- 各登場人物ペアの関係性を人間のアンケートによって評価(5段階)
- 敬語スコアとの相関を取り、親密度の推定精度を検証
このように、会話文という曖昧なデータから登場人物関係を抽出し、
言語的指標(敬語)を用いて“関係の近さ”を推定するという構成になっています。
技術的構成:敬語スコアの算出方法
ここでは、登場人物の発話に対してどのように敬語の出現を検出し、
その量をスコアとして定量化したのかを説明します。
形態素解析:MeCabの利用
敬語スコアの算出には、日本語の形態素解析エンジン「MeCab」を使用しました。
これにより、文中の単語(形態素)ごとに品詞や活用形などの情報を取得できます。
会話文の処理では、主に以下のような情報を使用しました:
- 動詞の活用形(丁寧語、尊敬語、謙譲語など)
- 補助動詞(「〜なさる」「〜ください」など)
- 特定の敬語的表現(「お〜になる」「ご〜いただく」など)
形態素解析の出力を1文ごとに取得し、後述の敬語辞書と照らし合わせてスコア化を行いました。
敬語辞書の利用
研究室で整備されていた「敬語表現辞書」を用い、
解析結果の各形態素がこの辞書に該当するかどうかを判定しました。
辞書は以下の3分類で構成されており、それぞれの出現回数をカウントしました:
- 丁寧語(です・ます体)
- 尊敬語(〜なさる・いらっしゃる など)
- 謙譲語(〜いたします・〜申し上げる など)
これらの出現頻度を合算し、文全体の形態素数で割ることで、
発話ごとの敬語使用比率(=敬語スコア)を求めました。
発話データの構造
会話文は「誰が誰に向かって話しているか」という構造を持っている必要があります。
そこで、以下のようなデータ構造で1件の発話データを表現しました:
- 発話者(推定された話し手)
- 被話者(仮定された聞き手)
- 発話本文(「〜だと思います」など)
- 敬語スコア(数値:0.0〜1.0)
この構造をベースに、後段で「人物ペアごとの敬語平均スコア」を累積し、
登場人物関係の“言語的温度感”を測るための基盤としました。
発話者と被話者の推定
日本語の物語文における会話は、明示的に「AがBに言った」という形式で記述されることが少なく、
その多くは文脈や描写、語尾、周辺の語彙から発話者を読み取る必要があります。
この研究では、規則ベースのスコアリング方式により、発話者と被話者を推定する仕組みを構築しました。
発話者の推定:ルールと優先度スコア
会話文の前後から発話者を推定するため、以下のようなヒューリスティックなルールを複数設定し、
それぞれにスコア(信頼度)を与えて総合判定を行いました。
ルール | 内容 | 信頼度(例) |
---|---|---|
直後に地の文で「〜と○○が言った」と記述されている | 明示的 | 高 |
発話中に一人称・口調など、特定人物に特徴的な語彙がある | 文体一致 | 中 |
発話の前の地の文で○○が登場している | 周辺描写 | 低 |
スコアが最も高い候補を発話者として採用し、
同点・曖昧な場合は「未定義」として対象外としました。
被話者(聞き手)の仮定
被話者の特定はさらに困難であり、以下のような簡易ルールに基づいて仮定しました:
- 同一場面にいると明示されている登場人物の中で、発話者以外の誰か
- 直前に発話していた人物(会話の交互性を前提にする)
この仮定はあくまで“仮の聞き手”であり、厳密には保証されません。
しかし、会話の流れ全体で見ると、統計的に意味ある傾向(たとえば一方通行の敬語など)が見えるようになりました。
スコア設計の意図
完全自動ではなく、人手の確認や修正を想定した設計にしていたため、
「完全に正しく分類すること」ではなく、
“敬語の傾向を分析するために信頼できる範囲を抽出する”ことが目的でした。
このスコア付きの発話者推定システムは、後述の敬語スコアとの組み合わせにより、
関係性の非対称性(例:A→Bは敬語、B→Aはため口)などの分析も可能としました。
敬語スコアと親密度評価
登場人物間の敬語使用量が、その関係性(親密度)とどれだけ一致するかを検証するため、
人間による評価と敬語スコアを照合する実験を行いました。
アンケートによる親密度スコア
比較のために用いた“正解データ”は、複数人の被験者に行ったアンケート評価によって得られたものです。
- 読者に物語の一部(会話を含む)を読んでもらい、登場人物ペアごとに「どれくらい親しいと感じたか」を5段階で評価してもらいました。
- 複数人の回答結果を平均し、ペアごとの主観的親密度スコア(数値)を作成しました。
これにより、登場人物AとBの関係が「親しい(1)」〜「非常に他人行儀(5)」までの定量値で表現できるようになりました。
敬語スコアとの比較
前章で説明した「敬語スコア」(=発話中の敬語表現の割合)と、
この主観的スコアとを対応づけて、相関関係を確認しました。
期待される傾向:
- 親密度が高い(=親しい) → 敬語スコアは低くなる
- 親密度が低い(=よそよそしい) → 敬語スコアは高くなる
実際の傾向:
- 多くのペアで、上記の傾向に沿う一致が確認できた
- ただし、一部例外もあり(年齢差があるが親しい場合など)
傾向と限界
このアプローチは、以下のような性質を持つことが観察されました:
-
非対称な関係性が可視化できる
例:A→Bには敬語だが、B→Aはため口(上下関係・年齢差など) -
文体やジャンルによって影響を受ける
例:ミステリと児童文学では敬語の使われ方が違う -
登場人物の性格・立場が反映される
敬語が多い=単に礼儀正しい性格の可能性もある
つまり、敬語スコアだけで親密度を“完全に”推定することはできないものの、
人間が受け取る関係性の印象に対する有力な補助指標にはなり得るというのが結論でした。
このあたりの“言語のあいまいさ”と“計算可能な範囲”のせめぎ合いが、この研究の一番面白い部分でもありました。
今の技術と比べて
この研究を行っていた当時は、深層学習はまだ一般化しておらず、
自然言語処理といえば統計ベースの分類や構文解析が中心でした。
敬語表現や話者関係のような“人間の感覚”に近い情報を扱う手法は、
人文学寄りのテーマとしてやや異端視されていたのが正直なところです。
LLM(大規模言語モデル)との接点
近年はChatGPTのような大規模言語モデル(LLM)の登場により、
言語の曖昧さや文脈理解、人間らしい語用論的な表現の再現が現実のものとなってきました。
LLMは以下のような観点で本研究の文脈と接点があります:
-
発話文における口調・丁寧さの制御が可能
例:「AはBに敬語を使って発話するように」などのプロンプト制御ができる -
登場人物のキャラクター性に基づく発話生成
関係性に応じた言葉づかいを学習的に再現する -
人物間の“温度感”を推論可能な能力
文体・文脈・感情などを含めた関係構築が可能になっている
今でも意味のある点
LLMがここまで高性能になった今でも、
本研究で扱っていたような「敬語の出現量を定量的に測る」というアプローチには意義があります。
- LLMに関係性や敬語制御を学ばせるときの教師データ設計に活かせる
- “文体的距離感”をスコア化することで、モデル出力の評価指標として利用可能
- 敬語の出現率という明確な数値は、人間の読解と比較しやすい
LLM時代だからこそ、「定量的に分析した結果」と「生成される言語の印象」をつなぐ橋渡しが求められており、
その一助として、こうした人文学的発想とNLP的処理の組み合わせは今でも活用の余地があると感じています。
おわりに
この研究では、物語の会話文における敬語の使用量を指標として、
登場人物どうしの親密度を定量的に推定できるかを試みました。
結果として、敬語スコアと人間による主観的な親密度評価には一定の相関が見られ、
関係性の非対称性(上下関係・礼儀・距離感)なども、スコアとして捉えられる可能性があることが分かりました。
人文と技術のあいだで
当時この研究は、自然言語処理としては異色で、NLPの主流からは外れたテーマでした。
けれども今振り返ると、“人間がどう感じるか”を数値で扱おうとする姿勢は、
むしろ現代のAI活用において重要な視点の一つです。
敬語の使い方には、その人の性格・立場・距離感・文脈がすべて含まれています。
だからこそ、それを扱うことは「単語」や「品詞」を超えて、
人間の関係性や認知に踏み込むことでもあります。
今だったらどうするか
今なら、おそらくこの研究は以下のように進化できたはずです:
- LLMを使って、発話者・被話者の推定を精度よく自動化できる
- 敬語表現の分類や揺らぎを深層学習モデルで吸収できる
- 物語全体のプロットと関係図を統合的に推論可能
しかし、MeCabと辞書と手作業ベースで、登場人物の関係をひとつずつ読み解いていく体験は、
今もなお価値ある学びだったと感じています。
最後に
自然言語は、人間の関係性や感情の“にじみ”が表れる領域です。
敬語の使用量という一見シンプルな数値からでも、人間関係の空気感が垣間見えるというのは、
とてもおもしろい発見でした。
この記録が、自然言語処理や文体分析、そして人文学と技術の交差点に関心のある方の参考になれば幸いです。