# 話者の性格を反映した発話文の生成

米田智美 佐藤理史 夏目和子 宮田玲 小川浩平
名古屋大学大学院工学研究科
yoneda.tomomi@f.mbox.nagoya-u.ac.jp

## 概要

本稿では, 話者 (キャラクタ)の性格を反映した発話文を生成するシステムを提案する。このシステムは, 文型推定モジュールと発話文生成モジュールから構成されている. 文型推定モジュールは, 話者として設定したいキャラクタの性格ベクトルから, そのキャラクタが使用する表現文型のリストを推定する. 発話文生成モジュールは, 推定された表現文型のリストと, 発話意図およびキーワードを受け取り，そのキャラクタらしい発話文を生成する.

## 1 はじめに

近年，ユーザーからの質問に応答したり，ユー ザーと対話したりするエージェントを内部に組み込んだシステムやサービスが発展してきた. その代表例に, AI スピーカーがある.

対話相手であるエージェントにユーザーが好む個性や性格を付与すること(エージェントのキャラクタ化) は, エージェントへの愛着を生むことに繋がる [1] と考えられる. しかし, 現在のエージェン卜は没個性的に設定されているか, あるいは特定のキャラクタの性格と口調を作り込んでいるもの [2][3] がほとんどである. そのため, ユーザーは対話相手のエージェントの性格を自由に設定することができない.

この問題を解決するために，本稿では話者の性格, 発話意図, キーワードの 3 つの入力から, その性格を反映した発話文を生成するシステムを提案する. 本システムはこれらを入力とすることで, 既存研究 [2][4][5] とは異なり, 対話環境において話題・発話意図に即し, かつキャラクタらしい一発話を生成できる.

以下，まず 2 節で，話者の性格をどのように表現するかについて述べる. 続いて 3 節でシステムの概要を示し, 4 節と 5 節でシステムを構成する 2 つのモジュールについて説明する.

## 2 性格ベクトル

本研究では, 話者の性格を以下に示す 12 軸 (次元) のべクトルで表現する. 各次元の値は, -2 から 2 までの 5 段階の整数値である.

A. 話者の性質に関わる要素 (4 軸)

1. 現代的な一古びた

2. 男性的一女性的

3. 大人びたー幼い

4. 丁寧一荒っぽい

B. 話者の性格を表現する要素 (8 軸)

5. 活発一落ち着いた

6. ポジティブーネガティブ

7. 親しげーそっけない

8. せっかち—のんびり

9. 優しい一冷たい

10. 豪快一繊細

11. 積極的一消極的

12. 社交的一孤立的

これらのうち，Bの8軸の設計にあたっては BIG5 [6] や MBTI [7] などの性格診断を参考にした. それに加え，話者の性質を表す 4 軸 (A) を新たに導入した.

## 3 発話文生成システムの概要

作成した発話文生成システムの構成を図 1 に示す. 本システムは, (1) 文型推定モジュール (4 節), (2) 発話文生成モジュール (5 節) の 2 つのモジュー ルから構成されている。

## 4 文型推定モジュール

文型推定モジュールは, 文型データベース (文型 DB) とキャラクタデータベース (キャラクタ DB)を利用して, 入力された任意の性格ベクトルから, その性格を持つキャラクタが使用すると考えられる文型リストを出力する.

図 1 発話文生成システムの構成

## 4.1 文型データベース

文型 DB は『発話文表現文型辞書』[8] から発話意図 46 種類, 表現文型 7,826 件を選択し, データベー ス化したものである.『発話文表現文型辞書』では，各文型に対して, 接続形式 (文型に含まれる核となる述語の活用型とテンス・否定の有無), 主要部 (述語に後続する助動詞 (相当句) と接辞など), 末尾部 (終助詞と文末記号) が定義されている. 文型 DB では, 新たに主要部の先頭部の特徴を 7 種類, 主要部の終端部の特徴を 53 種類に分類し, これらの分類情報を追加した。また特徴べクトルは, 対立する 2 要素を 1 軸にまとめ, 全部で 11 次元のベクトルに変換した。文型 DB のレコード例を表 1 に示す.

なお, 各文型を構成する要素のうち, *をつけたものは, キャラクタ DB の拡張 (4.2.2 節) や性格を反映した文型の推定 (4.3 節)において重要な役割を担う.

## 4.2 キャラクタデータベース

キャラクタ DB は，それぞれのキャラクタに対して次の 2 種類の情報を定義したデータベースである (図2).
1. キャラクタ $h$ の性格ベクトル $\boldsymbol{c}(h)$

2. キャラクタ $h$ がそれぞれの発話意図 $I$ で使用する表現文型のリスト $\sum_{I} R_{I}(h)$

本研究で使用する発話意図は全部で 46 種類あり, これらすべてに使用文型のリスト $R_{I}(h)$ を定義するのは作業量が多い。そこで，まず， 7 種類の発話意図に対して使用文型を定義し，その定義に基づいて残りの 39 種類の発話意図の使用文型を自動推定する方法を採用した。

## 4.2.1 初期データベースの作成

ソーシャルゲームの男性キャラクタ 25 名 (付録 A.1) に対して，性格ベクトルを定義し， 7 種類の発話意図において使用すると考えられる文型を定義した.ソーシャルゲームのキャラクタを選択したのは，以下の理由による。

1. 多くの場合，強い個性が付与される。

2. 同じ人物 (ユーザー)への発話が必ずある.

3. 舞台や年齢設定の変化が少ない.

## 4.2.2 データベースの拡張

定義した 7 種類の発話意図のデータに基づいて,残りの 39 種類の発話意図の使用文型を以下のように決定した。

1. 文型 $\mathrm{DB}$ において, 発話意図 $I$ に属する表現文型 $r \in R_{I}$ に対して, キャラクタ $h$ のスコア $s(r, h)$ を算出する.

2. その最大值を $T$ とする.
3. $T>0$ の場合は, $s(r, h) \geq 4 T / 5$ を満たす文型 $r$ を，キャラクタ $h$ が発話意図 $I$ で使用する文型リスト $R_{I}(h)$ に含める.

それ以外の場合は，最大値 $\mathrm{T}$ をる文型 $r$ のみを $R_{I}(h)$ とする.

ここでスコア $s(r, h)$ は，次のように定義する.

$
\begin{aligned}
s(r, h)= & 50 * s_{1}(r, h)+100 * s_{2}(r, h) \\
& +200 * s_{3}(r, h)+200 * s_{4}(r, h)
\end{aligned}
$
- $s_{1}(r, h)$ キャラクタ $h$ が, 文型 $r$ の主要部の先頭部を使用する割合.

$\cdot$ $s_{2}(r, h)$ キャラクタ $h$ が, 文型 $r$ の主要部の終端部を使用する割合. ただし, 使用しない場合は, -1 .

$\cdot$ $s_{3}(r, h)$ キャラクタ $h$ が, 文型 $r$ の主要部の終端部と未尾部の組み合わせを使用する割合.た

図 2 キャラクタ DB

だし，使用しない場合は， -1 .
- $s_{4}(r, h)$ キャラクタ $h$ が使用する文型の特徵べクトルの平均と, 文型 $r$ の特徵ベクトルとのコサイン類似度.

なお, これらの値の計算に用いる文型は, 7 種類の発話意図に対して定義した, キャラクタ $h$ が使用する文型すべてである.

## 4.3 性格に対する文型推定

こうして完成させたキャラクタ DB を利用して，未知のキャラクタ $u$ の性格ベクトル $\boldsymbol{c}(u)$ から, そのキャラクタが使用する表現文型のリスト $R_{I}(u)$ を推定する．発話意図 $I$ を表す全文型 $R_{I}$ のうち，どの文型 $r$ を $R_{I}(u)$ に含めるかは, 次のスコアに基づいて決定する。

$
t(r, u)=t_{1}(r, u)+t_{2}(r, u)+t_{3}(r, u)
$

以下では，推定のための仮定と $t_{n}(r, u)$ の計算法を示す.

## 4.3.1 性格と表現文型の関連性

仮定 1 キャラクタの性格と使用する表現文型の間には，関連性がある

例えば，丁寧な振る舞いをするキャラクタは敬語を用いることが多く，女性的なキャラクタは「〜わよ」「〜だわ」を多用する.

このような関連性をスコアに反映するために，文型 $r$ の使用者特性ベクトル $\overline{\boldsymbol{c}}(r)$ (文型 $r$ の使用者の性格ベクトルの平均)を求める. この $\overline{\boldsymbol{c}}(r)$ とキャタクタ $u$ の性格ベクトル $\boldsymbol{c}(u)$ の類似度が高ければ，キャタクタ $h$ が文型 $r$ を使用する可能性が高いと考え, スコア $t_{1}$ を次のように定義する.

$
t_{1}(r, u)=\cos (\overline{\boldsymbol{c}}(r), \boldsymbol{c}(u))
$

## 4.3.2 性格の類似性

仮定 2 性格が似ているキャラクタは, 同じ表現文型を使用する可能性が高い

ここでは，仮定 2 に基づいて未知のキャタクタ $u$ の性格ベクトル $\boldsymbol{c}(u)$ とキャラクタ DB 内の既知のキャタクタ $h$ の性格ベクトル $\boldsymbol{c}(h)$ との類似度を考える. 性格べクトルの各軸は独立した意味を持っているため, 単純な差異よりも傾向の一致やその正負の一致が意味を持つと考えられる．そこでまず性格ベクトルの各要素において, スコアの計算の前提となる值を表 2 に従って定め, 性格類似度ベクトル $\boldsymbol{a}(h, u)$ を求める.

表 2 性格類似度ベクトルの要素の値の算出表

この性格類似度ベクトルをもとに，以下の式でスコアを計算する。

$
t_{2}(r, u)=\sum_{h_{i} \in H(r)} \frac{\boldsymbol{a}\left(h_{i}, u\right) \cdot \overline{\boldsymbol{c}}(r)^{T}}{\left|R_{I}\left(h_{i}\right)\right|}
$

ここで $H(r)$ は文型 $r$ を使用するキャラクタの集合, $\left|R_{I}\left(h_{i}\right)\right|$ はキャタクタ $h_{i}$ が発話意図 I で使用する文型の数である.この式の分数は，特定のキャタクタ $h_{i}$ と未知のキャラクタ $u$ との性格類似度に基づく寄与であり，それをすべての既存のキャラクタに対して足し合わせている.

## 4.3.3 文型の類似度

仮定 3 ある文型を使用するならば，それと類似する文型を使用する可能性も高い

この仮定に従い，ある文型 $r_{i}$ にスコア $t_{2}$ が与えられた時, 文型 $r_{i}$ に類似する文型にスコアを与える.
文型間の類似度の計算には文型 DB の特徴ベクトル $\boldsymbol{v}(r)$ のコサイン類似度を利用する。

$
t_{3}(r, u)=\sum_{r_{i} \in\left(R_{I}-\{r\}\right)} t_{2}\left(r_{i}, u\right) \cdot \cos \left(\boldsymbol{v}\left(r_{i}\right), \boldsymbol{v}(r)\right)
$

ここで $R_{I}$ は，与えられた発話意図 $I$ に属するすべての文型を表す。

## 4.3.4 文型リストの決定

発話意図 Iにおいて，(式2) のスコア上位 $20 \%$ の文型をキャラクタ $u$ が使用する文型リスト $R_{I}(u)$ に含める. 同時に，それらの文型にスコアに反映した確率を付与する.

## 5 発話文生成モジュール

発話文生成モジュールは，キャラクタ $u$ が使用する文型リスト $\sum_{I} R_{I}(u)$ と, 発話意図 $I$ およびキー ワードから，発話文 (表層文字列)を生成する，以下では，まず，発話文生成で利用する述語データベー スを説明し，次に，発話文生成の手順を述べる.

## 5.1 述語データベース

述語データベース (述語 DB) は，入力されたキー ワード (名詞) から文を作るためのデータベースで，「キーワード+助詞+述語」形式のデータ 239,645 件が収録されている。このデータベースは, Google の Web 日本語 N グラム (2007)[9] から, 以下の手順で作成した。

1.1-gram データから, 頻度上位 5,000 個の一般名詞を収集した。

2. 3-gram データから, 上記の各名詞 (N) に対して，パターン「 $\mathrm{N}+$ は/が/を+P」に合致するデー タを収集した。ここで $\mathrm{P}$ は述語であり，動詞 (V) は頻度上位の最大 20 個, イ形容詞 (A) とナ形容詞 (C) は最大 10 個を収集した。

以下に具体例を示す。

## 5.2 発話文の生成手順

発話文を以下の手順で生成する.

1. 使用文型の選択

与えられた発話意図 $I$ から使用文型リスト $R_{I}(u)$ を得る.このリストに含まれる文型には，確率が付与されているので，その確率に従って実際に使用する文型をひとつ選択する。

2. キーワード文の作成

選択された文型の接続形式に従って述語形式 (動詞, イ形容詞, ナ形容詞)をランダムにひとつ決定し，述語 DB を参照して，レコード (文) をひとつ，頻度に応じた確率で選択する。

3. 表層文の生成

ステップ 2 で選択された文とステップ 1 で選択された文型を HaoriBricks3[10] を用いて結合し，表層文を生成する。

## 6 生成例と検討

システムが生成した発話例を付録 A. 2 に示す.

キャラクタ 1 では，末尾部「ぞ」の使用や，「〜くれんか」といった時代がかった話し方の文型が出力されている。一方，キャラクタ 2 では，感嘆符や長音記号，促音化などの音変化を含んだ文型が用いられ, 子供っぽさの感じられる口調が多く見られる. キャラクタ 3 では, 総じて敬語表現が出力されており，末尾部の「よ」や「ね」などによって大人びた柔らかい印象が感じられる，以上のように，キャラクタの性格を反映した発話文が生成できていることが確認できる.

その一方で，発話意図を適切に表わさない発話文も生成されている．表現文型は，必ずしも任意のキーワード文と結合できるわけではない。たとえば，I07 (決心-実行) は，意志性を持った動詞を持つ文としか結合できず，それ以外の文と結合すると発話意図を表せなくなる。また，J01(褒める) や J02(暊す)などの JK区分される発話意図では，キーワー ド文の述語が意図伝達の中核要素となるため, 意図を適切に反映した述語の選択が必要となる.

現在のシステムは，キーワード文の選択 (述語補完) は，キーワードと表現文型の接続形式のみに依存している。表現文型の意図を反映した述語補完, および，性格を反映した述語補完の実現が，今後の課題である.

## 謝辞

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

## 参考文献

[1] 山本賢太, 井上昂治, 中村静, 高梨克也, 河原達也. 人間型ロボットのキャラクタ表現のための対話の振る舞い制御モデル. 人工知能学会論文誌, Vol. 33, No. 5, pp. C-I37 1-9, 2018.

[2] 沈睿, 菊池英明, 太田克己, 三田村健. 音声生成を前提としたテキストレベルでのキャラクタ付与. 情報処理学会論文誌, Vol. 53, No. 4, pp. 1,269-1,276, 2012.

[3] 小倉拓人, 谷津元樹, 原田実. 人物ベースの Seq2Seq モデルを用いた対話システム DeepEVEにおける小説中の登場人物らしい応答文の生成. 情報処理学会第 80 回全国大会講演論文集, No. 1, pp. 423-434, 2018.

[4] 宮崎千明, 平野徹, 東中竜一郎, 牧野俊朗, 松尾義博, 佐藤理史. 文節機能部の確率的書き換えによる言語表現のキャラクタ性変換. 人工知能学会論文誌, Vol. 31, No. 1, pp. DSF-E 1-9, 2016.

[5] 谷川晃大, 藤田寛泰, 壹岐太一. 変分オートエンコーダと注意機構を用いた発話文のキャラクタ性変換. 人工知能学会全国大会論文集, Vol. 32, pp. 4G2-01, 2018.

[6] Lewis R. Goldberg. The structure of phenotypic personality traits. American Psychologist, Vol. 48, No. 1, pp. 26-34, 1993.

[7] Isabel Briggs Myers and Peter B.Myers. Gifts Differing: Understanding Personality Type. Davies-Black Publishing, 1995. Originally published: 1980.

[8] 夏目和子, 佐藤理史. 話し言葉生成のための表現文型辞書. 言語処理学会第 28 回年次大会発表論文集（発表予定）, 2022.

[9] 工藤拓, 賀沢秀人. Web 日本語 $\mathrm{N}$ グラム第 1 版.言語資源協会発行, 2007.

[10] 佐藤理史. Haoribricks3: 日本語文を合成するためのドメイン特化言語. 自然言語処理学会論文誌, Vol. 27, No. 2, pp. 411-444, 2020.

## 付録 A

## A. 1 キャラクタDB に登録したキャラクター覧 (25キャラクタ)

 \\

## A. 2 発話文の生成例

 &  &  \\