# 複数の手がかりを利用した小説発話の話者推定

石川和樹 1 佐藤理史 ${ }^{1}$ 宮田玲 ${ }^{1}$ 小川浩平 ${ }^{1}$
1 名古屋大学大学院工学研究科
ishikawa.kazuki.h8@s.mail.nagoya-u.ac.jp

## 概要

人間は，小説中のセリフの話者が誰なのかを苦も なく理解することができる。これは話者を推測する ための様々な手がかりが，テキスト中に存在するた めである. 本論文では, 複数の手がかりを利用した 話者推定システムを提案する．本システムは 2 つの モジュールから構成されており, 前者の話者候補リ スト作成では，セリフの周囲に出現する人物名を抽出して話者候補リストを作成したのち, 直前直後の 文における話者の明記，話者交替，一人称の 3 つの 手がかりを利用して話者候補を絞り込む。後者の口調に基づく話者推定では，セリフの口調を手がかり に話者を推定する。

## 1 はじめに

小説は，脚本とは異なり各セリフの話者が明記さ れない。しかし，我々読者は，話者が誰なのかを苦 もなく理解することができる.

これは，テキスト中に話者を推測するための多く の手がかりが存在するためである。 それらのうち，主要なものに次の 3 種類がある。

1. セリフの直前直後の文で，話者が明示される場合がある.

2. 連続するセリフでは，話者が交替する。

3. セリフの内容や使われている口調から，話者を 推測できる。

英語の小説の場合は，1と2の手がかりのみでほ とんどのセリフの話者を推定することができる.こ れは, “replied Kitty”のように話者が明記される場合 や，“said her father” のようにセリフの直後に代名詞 で話者が記される場合が多いためである。 He ら [1] は，英語小説の “Pride and Prejudice”を対象に調査を 行った結果，前者の割合は約 $25 \%$ ，後者の割合は約 15\%であったと報告している.

一方日本語の小説では，セリフの話者が直前直後
の地の文で明記される割合は全体の数\%程度しかな く, 1 と 2 の手がかりのみで話者を推定できるセリ フは限定される.

我々は昨年，39手がかり，すなわち口調に基づ く話者推定の方法を提案した [2]. この方法ではセ リフを口調ベクトルに変換する変換器を実現し，少数の訓練例 (話者が既知のセリフ集合) から算出した 各話者の代表口調ベクトルとの類似度に基づき，セ リフの話者を決定する。

今回，この方法を小説テキストに適用可能にする ために，各セリフに対して話者候補リストを生成す るモジュールをその前段として追加した.このモ ジュールは，セリフの周囲に出現する人物名を抽出 して候補リストを作成したのち，直前直後の文にお ける話者の提示 (手がかり 1), 話者交替 (手がかり 2)，一人称表現の 3 つの手がかりを用いて候補を絞 り込む.

本論文で提案するような話者の自動推定システム は，セリフに話者を付与したデータベースの作成支援に応用できる. これは，小説のセリフを題材とし た研究 (セリフの話者推定や、話者の性別推定 [3]、性格推定 [4] など) や，キャラクタ性を付与したセリ フ生成 [5] の実現のための基礎データとなる. さら に，音声合成と組み合わせることにより，話者ごと に音声を変えたオーディオブックの自動作成も可能 となる。

## 2 関連研究

英語の小説を対象とした研究では，地の文に提示 されている人名 (手がかり1) や，話者交替のルール (手がかり2）といった表層に現れている手がかりを 使って話者推定を行っている．英語の小説はこれら の手がかりのみで十分な推定が可能であり，例え ば，He らは地の文の情報を特徴量としたSVMを用 いて話者推定を行い，86.5\%の精度を達成した [1].英語小説を対象とした研究には他にも, Muzny ら [6] のルールベースの手法や，遠田ら [7] の教師なし
小説テキスト 主要人物リスト

## (1) 話者候補リスト作成

1. 周辺文脈からの候補抽出

2. 直前直後の文に基づく話者推定

3. 話者交替に基づく候補限定

4. 一人称に基づく候補限定

各セリフの話者候補リスト -

## (2) 口調に基づく話者推定

各セリフの推定話者

図 1 システム構成

機械学習を用いた手法が存在する。どちらも，1 節 で示した手がかり 1 と 2 を主要な手がかりとして 扱ったものであり，手がかり 3 はほとんど使われて いない.

## 3 話者推定システム

## 3.1 問題設定

本システムの入出力は以下の通りである.

・入力 : 小説テキストと主要人物リスト
- 出力 : 各セリフの推定話者

さらに，以下の制約を設けている。
- 推定対象作品：日本語のエンタメ小説およびラ イトノベル

-推定対象のセリフ：主要人物のセリフのみ
- 推定先の候補：主要人物のみ

なお，主要人物とは，発話数の多い人物 5 名程度 を指す。主要人物リストをシステムの入力として与 える設定のため，解くべきタスクは分類問題 (各セ リフに対して主要人物リストから 1 人選択する問題)となる。

## 3.2 システム構成

図 1 亿提案システムの構成を示す. 本システム は，「話者候補リスト作成 (3.3 節)」と「口調に基づ く話者推定 (3.4 節)」の2つのモジュールから構成さ れている.

## 3.3 話者候補リスト作成

話者候補リスト作成は，以下の 4 ステップで構成 されている。

1. 周辺文脈からの候補抽出

2. 直前直後の文に基づく話者推定

3. 話者交替に基づく候補限定

4. 一人称に基づく候補限定

## 3.3.1 ステップ 1: 周辺文脈からの候補抽出

まず，各セリフに対して，そのセリフの周辺に出 てくる人名を抽出することによって話者候補リスト を作成する。具体的な手順を以下に示す。

1. 対象のセリフの $N_{b}$ 文前から $N_{a}$ 文後を候補抽出範囲とする．ただし候補抽出範囲にセリフが 含まれる場合，そのセリフを候補抽出範囲には 含めるが，N のカウントには含めない。

2. 候補抽出範囲に名前が出てくる主要人物を話者候補とする。ただし，一人称小説の場合は，主人公は必ず話者候補に含める.

なお，システムに与える主要人物のリストでは， それぞれの人物に対して姓と名を与えるため，姓ま たは名だけでも，人物を同定できる。

## 3.3.2 ステップ 2: 直前直後の文に基づく話者推定

次に，セリフの直前直後の地の文が，話者名と発話動詞を含む特定パターンにマッチしている場合， そのセリフの話者を一意に定める．その詳細を付録 A に示す.

例えば，以下の例の場合，U1 の話者を $\mathrm{A}$ に決定 する。

$
\begin{aligned}
& N 1 \text { : A は、 } \\
& U 1 \text { : 「こんにちは」 } \\
& N 2 \text { ：と言った。 }
\end{aligned}
$

## 3.3.3 ステップ 3: 話者交替に基づく候補限定

地の文を挟まずに連続するセりフでは，話者が交替するというルールを利用して話者候補を限定す る。具体的には，以下の手続きを適用する。

あるセリフの話者が $S$ で，かつ，その直前また

は直後がセリフだった場合に，それらのセリフ の話者候補から $S$ を除外する。

なお，この手続きにより新たに話者候補が 1 人とな

 &  \\

るセリフが得られた場合は，そのセリフに対しても この手続きを適用する。

例えば，以下の例の場合，直前直後の文に基づく 話者推定 (3.3.2 節) によって U1 の話者候補が $\mathrm{A}$ のみ になるため，U2 の話者候補から A を除外する。

$
\begin{aligned}
& N 1 \text { ：A はお礼を言った。 }
\end{aligned}
$

$
\begin{aligned}
& U 2 \text { :「どういたしまして」 }
\end{aligned}
$

## 3.3.4 ステップ 4: 一人称に基づく候補限定

最後に，各話者が使う一人称を収集し，その情報 を用いて話者候補を限定する．以下に手順を示す。

1. 話者が一意に定まったセリフを用いて，それぞ れの話者が使う一人称を決定する。複数の一人称を使用していた場合は，最も使用頻度が高い 一人称を，その人物の一人称とする。

2. セリフ中に一人称 $X$ が含まれる場合，そのセリ フの話者候補から， $X$ 以外の一人称を使う人物 を除外する。

表 1 に，一人称として認定する語の一覧を示す.

例えば，以下の例の場合，U1の話者候補から A を除外する。

$
\begin{aligned}
& \text { 各人物の一人称：\{A：俺, } \mathrm{B}: \text { 私, } \mathrm{C}: \text { 私 }\} \\
& U 1 ： 「 \text { 私はこれがいいです」 }
\end{aligned}
$

## 3.4 口調に基づく話者推定

各セリフに対して話者候補リストを作成した後，話者候補が複数であるセリフに対して口調に基づく 話者推定を適用する。この時点で，すでに話者が一意に決定されているセリフは，その結果をそのまま 出力すると同時に，以下の手続きの代表ベクトルの 算出に用いる。セリフを口調べクトルに変換する方法には，すでに提案した方法 [2] を用いるが，口調 ベクトルの次元数は 64 を用いる.

1. 代表口調ベクトルの算出

それぞれの主要人物に対し，その人物の既知の セリフを口調ベクトルに変換し，その平均を代表口調ベクトル (話者の口調を表すべクトル)と する。表 2 口調に基づく話者推定の結果

2. 話者推定

各推定対象のセリフ (話者候補が複数のセリフ) に対して，そのセリフの口調ベクトルと各主要人物の代表口調ベクトルとの類似度を計算し， その値が最も高い話者を推定話者とする。

## 4 実験

## 4.1 実験条件

以下の条件で実験を行った。
- 対象作品 : 米澤穂信『氷菓』及び『愚者のエン ドロール』(一人称小説)
- 主要人物 : 5 人

・全セリフのうち，主要人物のセリフが占める割合 : $69.9 \%$
- 周辺文脈からの候補抽出での候補収集範囲 : セ リフの前 10 文 後ろ 3 文 $\left(N_{b}=10, N_{a}=3\right)$

なお，対象作品の『氷菓』と『愚者のエンドロール』 は同一シリーズの作品であり, 主要人物も共通して いる. そのため，これら 2 作品を繋げ， 1 つの作品 とみなし実験を行った。

## 4.2 口調に基づく話者推定の結果

表 2 に, 口調に基づく話者推定の, 主要人物 5 人の 結果 (recall, precision, F1) と, 全体の結果 (macro-F1, micro-F1)を示す.

先の研究 [2] 一各主要人物のセリフの $10 \%$ を代表口調ベクトルの算出に用い，残り $90 \%$ を推定対象 セリフとした場合—の macro-F1 は 61.4, micro-F1 は 68.3 であったが，今回は，それぞれ 72.9 と 75.4 に向上した. さらに，先の研究では各話者の F1 の 值はばらついた $(28.2 \% \sim 77.6 \%)$ が，今回は $64.2 \% \sim$ $85.1 \%$ どらつきも抑えられた。この結果より，口調以外の手がかりを用いて一部のセリフの話者を確定し，それらのセリフを用いて代表口調べクトルを 算出する方法で，口調に基づく話者推定が実行でき
表 3 話者候補リスト作成の各ステップの話者候補数と話者推定結果

 &  &  &  \\

ることが示された。

## 4.3 話者候補リスト作成の詳細

次に，話者候補リスト作成の各ステップで，セリ フの話者候補リストがどのように推移しているかを 調べた。この結果を表 3 に示す。

ステップ 1 (候補抽出) では, 平均 3.14 人の候補 が得られ，その中に正解が含まれる割合は $98.8 \%$ で あった．ただし，話者が一意に決定できるセリフの 数は 19 と少ない.

ステップ 2 (直前直後の文の利用)では，新たに 94 セリフの話者が一意に決定され，この段階で 113 セ リフ(全 1468 セリフ中の 7.7\%)の話者が一意に決定 された。その精度は 102/113=90.3\%である。この時点の結果を (つまり, ステップ 3,4 を省略して) 後段 の話者推定に入力した場合，口調による話者推定の 精度は $76.5 \%$ ，システム全体の精度は $77.6 \%$ となる。 なお, 口調に基づく話者推定では，話者候補が複数存在するセリフのみを対象とするため，対象セリフ の平均候補者数は，話者候補リスト作成時の平均候補者数とは一致しない。

ステップ 3 (話者交替の利用) を追加すると，話者 が一意に決定されるセリフが 12 増加した。このス テップで候補が削減できるのは，セリフが連続し， かつ，それらのいずれかのセリフの話者が確定して いる場合のみである. 加えて，1つのセリフから削減できる候補数も 1 候補である。このため，このス テップの効果は限定的である.

ステップ 4 (一人称の利用)を追加すると, 話者が 一意に決定されるセリフが 148 増加し, 一意に決定されるセリフの精度も $94.9 \%$ に向上した. このス テップで候補が削減できるのは，一人称が含まれる セリフで，かつ，そのセリフから複数の話者候補を 除外することができる．たとえば，実験対象の作品 の主要人物が用いる一人称は，A は「俺 $\mathrm{B}, \mathrm{B}$ と は「わたし」，Cは「僕」，Eは「私」であり，もしある セリフに「俺」が含まれる場合は，そのセリフの話者を $\mathrm{A}$ と確定できる。エンタメ小説では，主要人物 が使う一人称は異なる場合が多いと考えられ，この ステップはエンタメ小説一般に対して高い候補削減効果を持つと考えられる。

## 5 今後の課題

現状のシステムの課題として，以下の 2 点が挙げ られる。

1. 主要人物のみのセリフを推定対象としており, それ以外の話者のセリフを対象外としている。

2. 周辺文脈からの候補抽出での候補収集範囲は,作品によって適切な範囲が異なるが，固定した 値を用いている。

1 つ目の課題に対する解決策として，口調に基づ く話者推定の際に，推定話者だけでなく，各話者候補の確信度を同時に出力することを考えている。も しも全ての候補の確信度が低ければ，その中に正解 の話者はいないと判断し，話者は主要人物以外の人物であると推定することが可能となる．実際にシス テムを使用する際には，各セリフが主要人物のセリ フかどうかは事前には分からないため，全てのセり フを推定対象とする必要がある。そのため，少なく とも話者が「主要人物以外の話者」であると判定す る機能が不可欠である。

2 つ目の課題に対しては，小説の単語数に対する 人名数の割合を元に，収集範囲を自動決定すること を検討している。この割合が小さい場合は収集範囲 を広く取り，割合が大きい場合は収集範囲を狭く取 ることで，候補が集まらないといった問題や過剰に 集めてしまうといった問題を解決できると考えて いる.

## 謝辞

本研究は JSPS 科研費 JP21H03497 の助成を受けた ものです.

## 参考文献

[1] Hua He, Denilson Barbosa, and Grzegorz Kondrak. Identification of speakers in novels. In Proceedings of the 51st Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), 2013.

[2] 石川和樹, 宮田玲, 小川浩平, 佐藤理史. 口調ベクトル を用いた小説発話の話者推定. Technical report, 情報処理学会第 253 回自然言語処理研究会, 2022.

[3] 中川翔太, 孫昊, 金明哲. 小説会話文における発話者 の性別推定. 日本行動計量学会大会抄録集, Vol. 47, pp. 362-365, 2019.

[4] 津崎誠也, 山本博史. キャラクタの性格推定. 2017 年度 情報処理学会関西支部 支部大会 講演論文集, 2017.

[5] 米田智美, 佐藤理史, 夏目和子, 宮田玲, 小川浩平. 話者の性格を反映した発話文の生成. 言語処理学会第 28 回年次大会発表論文集, 2022.

[6] Grace Muzny, Michael Fang, Angel Chang, and Dan Jurafsky. A two-stage sieve approach for quote attribution. In Proceedings of the 15th Conference of the European Chapter of the Association for Computational Linguistics: Volume 1, Long Papers, 2017.

[7] 遠田哲史, 吉永直樹. 文学作品における教師なし話者同定. 言語処理学会第 25 回年次大会発表論文集, 2019.

[8] 国立国語研究所. 分類語彙表増補改訂版データベー ス (ver.1.0), 2004

[9] Mecab: Yet another part-of-speech and morphological analyzer. https://taku910.github.io/mecab/.

[10] Yuji Matsumoto Taku Kudo. Japanese dependency analysis using cascaded chunking. In CoNLL 2002: Proceedings of the 6th Conference on Natural Language Learning 2002 (COLING 2002 Post-Conference Workshops), pp. 63-69, 2002.

## A 直前直後の文に基づく話者推定

直前直後の文に基づく話者推定では，各セリフに 対して，以下に示す 4 つのパターンにマッチするか どうかを順に確認する。もし，いずれかのパターン にマッチしたならば，そのパターン中の A に対応す る人物をそのセリフの話者だと推定する。

なお，発話動詞とは，「言った・答えた」などの 発話を示唆する動詞である。発話動詞としては，国立国語研究所の「分類語彙表増補改訂版データベー ス」[8] から収集した 940 語を使用する。

## パターン 1

$N 1$ : (任意の地の文)

U1: (推定対象のセリフ)

## パターン 2

N1: $\cdots \mathrm{A} \cdots$

U1: (推定対象のセリフ)

## パターン 3

$N$ 1: (任意の地の文)

$N 2: \cdots \mathrm{A} \cdots$ (発話動詞 $V$ ) $\cdots$

U1: (推定対象のセリフ)

## パターン 4

U1: (推定対象のセリフ)

$N 1$ : (任意の地の文)

いずれのパターンにおいても以下の条件を満たす 必要がある.

## 条件 1

A の係り先に発話動詞 $V$ が存在する.

## 条件 2

発話動詞 $V$ の後ろに否定を表す助動詞が付か ない.

この条件の判定で必要となる形態素解析と係り受 け解析には， MeCab (IPAdic) [9] と CaboCha[10] を用 いる.
 石川和樹 1 佐藤理史 ${ }^{1}$ 宮田玲 ${ }^{1}$ 小川浩平 ${ }^{1}$ 1 名古屋大学大学院工学研究科 ishikawa.kazuki.h8@s.mail.nagoya-u.ac.jp  