Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
AIによる自然言語処理・音声解析を用いたゲーム内会話パートの感情分析への取り組み
Search
Cygames
August 31, 2023
Technology
0
2.1k
AIによる自然言語処理・音声解析を用いたゲーム内会話パートの感情分析への取り組み
2023/08/23 CEDEC2023
Cygames
August 31, 2023
Tweet
Share
More Decks by Cygames
See All by Cygames
『GRANBLUE FANTASY Relink』キャラクターの魅力を支えるリグ・シミュレーション制作事例
cygames
0
290
『GRANBLUE FANTASY: Relink』最高の「没入感」を実現するカットシーン制作手法とそれを支える技術
cygames
1
250
『GRANBLUE FANTASY Relink』ソフトウェアラスタライザによる実践的なオクルージョンカリング
cygames
0
270
高品質なフォトグラメトリデータを取得するためのハードウェア&ソフトウェア開発
cygames
0
670
AIを活用した柔軟かつ効率的な社内リソース検索への取り組み
cygames
0
360
『GRANBLUE FANTASY: Relink』開発からリリースまでを支えたCI/CDの取り組み
cygames
0
170
『GRANBLUE FANTASY: Relink』専任エンジニアチームで回す大規模開発QAサイクル
cygames
0
190
『GRANBLUE FANTASY: Relink』クオリティと物量の両立に挑戦したフェイシャルアニメーション事例 ~カットシーンからランタイムまで~
cygames
0
190
『GRANBLUE FANTASY: Relink』キャラクターの個性にlinkした効果音表現
cygames
0
89
Other Decks in Technology
See All in Technology
【shownet.conf_】革新と伝統を融合したファシリティ
shownet
PRO
0
340
【㈱アイモバイル】エンジニア向け会社説明資料
imobile
0
470
エムスリー全チーム紹介資料 / Introduction of M3 All Teams
m3_engineering
1
320
入門 KRR
donkomura
0
110
【shownet.conf_】AI技術とUX監視の応用でShowNetの基盤を支えるモニタリングシステム
shownet
PRO
0
380
I tried the newly introduced certification "Applied Skills" on Microsoft Learn
mappie_kochi
0
150
【shownet.conf_】放送局とShowNetが共創する、未来の放送システム ~Media over IP 特別企画の裏側~
shownet
PRO
0
350
LINEヤフー新卒採用 コーディングテスト解説 実装問題編
lycorp_recruit_jp
1
12k
【shownet.conf_】コンピューティング資源を統合した分散コンテナ基盤の進化
shownet
PRO
0
410
【shownet.conf_】クロージングセッション
shownet
PRO
0
310
CData Virtuality を活かせるキーシナリオと製品デモ
cdataj
0
220
業務ヒアリングと知識の呪い
tamai_63
0
290
Featured
See All Featured
Ruby is Unlike a Banana
tanoku
96
11k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
228
52k
Robots, Beer and Maslow
schacon
PRO
157
8.2k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
664
120k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
37
1.7k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
31
2.6k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.8k
The Invisible Side of Design
smashingmag
297
50k
Atom: Resistance is Futile
akmur
261
25k
How to Think Like a Performance Engineer
csswizardry
16
1k
Debugging Ruby Performance
tmm1
73
12k
Into the Great Unknown - MozCon
thekraken
31
1.4k
Transcript
AIによる自然言語処理・音声解析を用いた ゲーム内会話パートの感情分析への取り組み 株式会社Cygames 開発運営支援 ゲームエンジニア / 立福 寛 エンジニアリング
2/61 はじめに
3/61 今回の講演について ◼ AIを活用してキャラクターの表情を自動で求めるツールの紹介 ◆ゲーム内会話パートの感情分析の事例紹介 ◼ AIを用いた感情分析を行う手法に関するノウハウ ◼ 自然言語処理・音声解析の2パターン ◆この講演で得られること
4/61 立福 寛 開発運営支援 ゲームエンジニア 複数のゲーム会社でコンテンツパイプラインの構築、モバイルゲームの開発・運営などを担当。 2018年10月に株式会社Cygamesへ入社。2019年後半からAIの社内導入に取り組んでいる。 過去のCEDECの講演 CEDEC2021「ゲーム制作効率化のためのAIによる画像認識・自然言語処理への取り組み」 CEDEC2022「AIによる自然言語処理を活用したゲームシナリオの誤字検出への取り組み」
自己紹介
5/61 スクリプトチームからツール作成の相談 ◼ ゲームのストーリーパートのスクリプト作成が大変 ◼ シナリオと音声からキャラクターの表情を設定したい ◼ ツールの実行も簡単にしたい スクリプト作成を効率化したい
6/61 ストーリーパートの作り方 シナリオ執筆 音声収録 スクリプト作成 ・表情設定 ・エフェクト追加 シナリオを スクリプトへ変換 AIを使って効率化したい!
7/61 ストーリーパートのスクリプトとは? ◼ 登場するキャラクター、セリフ、表情などを指定 ◼ 背景・音声も指定 ◼ テキスト形式、制御用のコマンドが含まれる ◼ 今回は表情部分をAIで求めたい
ゲーム中のストーリーパートの制御を行うもの 背景:公園 <表情1>こんにちは<表情2>また会ったね! <表情1>やあ!<表情3>今日はどうする? BGM:曲A キャラクターA キャラクターB
8/61 解決したい問題
9/61 AIで解決したいこと 感情分析の問題として扱うので以降では「感情」と表現 シナリオ・音声から表情を求めたい シナリオの テキスト 収録した 音声 キャラクターの表情 自然言語処理
音声解析 AIによる判定 出 力 入 力
10/61 感情を設定するシナリオについて ◼ 1行=スマートフォンゲームのストーリーパートの1単位 ◼ 対象は会話文のみ(地の文は対象外) ◼ 感情は「句読点・記号区切り」で設定される(最低限の長さは考慮) ◼ 文章のすべての部分に感情が割り振られる
◆仕様 標 準 喜 び こんにちは。 今日も元気です! 1行
11/61 キャラクターの感情 ◆基本感情は5種類 ◼ 実際にはキャラクターごとにバリエーションがある(8〜16種類) ◼ 5種類以外は「標準」として扱っておく ◆3種類に分類するケースも調べる 標 準
喜 び 悲しみ 怒 り 照 れ 標 準 ポジティブ ネガティブ 喜び・照れ 悲しみ・怒り
12/61 シナリオと音声について ◆1シナリオには1人以上のキャラクターが登場 ◆音声はある場合とない場合がある ◆文章の長さ ◆音声の長さ 1行 句読点区切り 平均 7.9秒
3.6秒 最小 0.2秒 0.2秒 最長 50.6秒 41.1秒 1行 句読点区切り 平均 38文字 17文字
13/61 AIを活用した感情分析 ◆自然言語処理による感情分析 ◆音声解析による感情分析 ◼ CNNを使った分類タスク ◼ Wav2Vec2を使った感情分析 ◼ 固有表現抽出タスク
◼ 文章分類タスク ◼ 質問応答タスク
14/61 自然言語処理による感情分析
15/61 固有表現抽出タスクによる感情分析
16/61 固有表現抽出タスクによる感情分析(導入) ◼ 今回はすべてのテキストに5種類の感情(属性)を割り当てる ◼ 属性といえば固有表現抽出タスク! ◆感情分析=テキストの部分ごとに属性を付ける ◆学習データを作成 株式会社Cygamesの所在地は東京です 会社名
はい。よろしくお願いします! 標 準 喜 び 地 名
17/61 固有表現抽出タスクによる感情分析(結果) ◼ 9:1で分割して学習データ、テストデータとして利用 ◼ 結果がかなり悪く、正解度を求めるレベルではなかった ◼ 感情の精度が低い&属性を割り当てる範囲が違う ◼ 文章の一部にしか属性が割り当てられない
◼ 例:じゃあ今日は、おすすめの公園に、連れて行くね ◆BERTで学習して精度を測定 ◆原因:推論時に属性を求める範囲を指定できない ◼ 属性を割り当てる範囲は確定している ◼ 固有表現抽出タスクでは割り当てる範囲を指定できない ◆結論:固有表現抽出タスクは向いていなかった 標準 喜び
18/61 文章分類タスクによる感情分析
19/61 文章分類タスクによる感情分析(導入) ◼ 一番簡単な文章分類タスクを試してみた ◼ 1行単位、句読点単位で試す ◆そもそも感情分析はどの程度できるのか? ◆1行単位の文章分類 ◆句読点ごとの文章分類
20/61 1行単位の文章分類 ◼ しかし1行に複数の感情が入っている ◼ 「標準」は登場頻度が高い ◼ 5種類、3種類に分類 シナリオの1行を感情ごとに分類してみる 学習してテスト(学習は1時間弱)
5種類に分類 標準のみ 標準+喜び 標準+悲しみ 標準+ポジティブ(喜び+照れ) 標準+ネガティブ(悲しみ+怒り) 3種類に分類 標準のみ 標準+ポジティブ(喜び+照れ) 標準+ネガティブ(悲しみ+怒り) ◼ 9:1に分割して学習データ、テストデータとして利用
21/61 文章の水増しでデータセットを増やす ◆かかり受けを利用した文章水増し(参考文献) ◼ 例:赤い大きな甘いリンゴ > 甘い赤い大きなリンゴ ◼ 「赤い」「大きな」「甘い」は「リンゴ」を修飾 ◼
この3つは入れ替えが可能 > 甘い赤い大きなリンゴ ◆BERTによる文章水増し ◼ ランダムに文章中の単語をマスクし、BERTで別の単語を割り当てる ◼ 例:赤い[MASK]甘いリンゴ > 赤い小さな甘いリンゴ ◆いずれの方法でも精度は上がらなかった ◼ 新しい文章として学習してくれなかった ◆類義語辞書を使った単語入れ替え ◼ 類義語検索モジュールchikkarpyを使用
22/61 1行単位の文章分類(結果) 5種類に分類したときのデータの比率と精度 行数:86,000 標準のみ 標準+喜び 標準+悲しみ 標準+ポジティブ 標準+ネガティブ 標準のみ
標準+喜び 標準+ポジティブ 標準+ネガティブ 標準+悲しみ 行数:86,000 正解率 49%
23/61 1行単位の文章分類(結果) 3種類に分類したときのデータの比率と精度 感情分析は可能 標準のみ 標準+ポジティブ 標準+ネガティブ 行数:86,000 標準のみ 標準+ポジティブ
標準+ネガティブ 行数:86,000 正解率 69%
24/61 句読点単位の感情分析 ◼ 実際のスクリプトでは句読点単位に感情が設定されている ◼ この単位で高い精度が出れば実現できそう ◆句読点単位で分類 ◆学習してテスト ◼ 満足いく精度は出なかった
◼ 句読点区切りの単位では文字数が少ない=情報量が少ない ◼ 前後の文章の情報がない ◼ 例:「そうですね……」これだけでは判断がつかない ◆別のアプローチが必要
25/61 質問応答タスクによる感情分析
26/61 要件を整理 ◼ 感情を求めたい文章 ◼ その前後の文章 ◆推論時には以下2つの情報を渡したい ◆Transformer系モデルのタスクを調べる ◆質問応答タスクが応用できる
27/61 質問応答タスクとは? ◼ コンテキスト:伊藤博文は日本の初代内閣総理大臣です ◼ 質問:日本の最初の内閣総理大臣は誰ですか? ◼ 回答:伊藤博文 コンテキストと質問から回答を返すタスク 伊藤博文
伊藤博文は日本の初代内閣総理大臣です 質問:日本の最初の内閣総理大臣は誰ですか? コンテキスト 回答
28/61 質問応答タスクとは? 今回の感情分析への適用 ◼ コンテキスト:感情を求めたい文章&前後の文章 ◼ 質問:感情を求めたい文章 ◼ 回答:求めたい感情(0〜4) 0(標準)
今日は、おすすめの公園に、連れて行くね 質問:おすすめの公園にの感情 コンテキスト 回答 今日は、おすすめの公園に、連れて行くね コンテキスト 1(喜び) 質問:連れていくねの感情 回答
29/61 抽出型、生成型 ◼ 抽出型:コンテキストの文章から回答を抽出 ◼ 生成型:回答の文章を新たに生成 ◆質問応答タスクは抽出型と生成型の2つ ◆0から4の数値を返すだけ 抽出型 ◼
簡単な分、精度が高くなる ◆コンテキストの先頭に選択肢を追加 ◼ コンテキスト=0 1 2 3 4 : 今日は、おすすめの公園に、連れて行くね ◼ 数値以外が返る場合は「標準」扱いに
30/61 質問応答タスクによる感情分析 ◼ これまでで一番高い精度 ◼ 事前学習モデルによって精度が変わってくる ◼ RTX4090で9時間程度 ◆BERTで学習してテスト ◆学習データの作成
◼ 既存のスクリプトから22万件のデータセットを作成 ◼ 9:1に分割して学習データ、テストデータとして利用 ◼ コンテキストには可能な限り前後の行の文章を追加
31/61 改善点(うまくいったケース①) ◼ バッチサイズは限界まで大きい方がよい(48が限界) ◼ VRAM 24GB RTX 4090で学習 ◆バッチサイズを変更してテスト
◆BERT系のモデルはどれがよいか? ◼ 質問応答に使えるBERT系モデルではRoBERTaが最高精度 ◼ RoBERTa : BERTの改良版 ◼ RoBERTa+日本語+質問応答のモデルが公開済 ◼ やりたいことに一番近いモデルが最適だった
32/61 改善点(うまくいったケース②) ◼ 今までは基本感情の5種類以外は「標準」に置き換え(全体の20%) ◼ 基本感情以外のものを、基本感情で置き換える表を用意してもらった ◼ これにより学習データの質が向上、数%正解率が向上 基本感情以外のデータも利用する 基本感情の5種類で置き換える
感情 標準 喜び 悲しみ 怒り 照れ 喜び+目閉 悲しみ+目閉 その他1 その他2 置き換え 標準 喜び 悲しみ 怒り 照れ 喜び 悲しみ 怒り 照れ 感情 標準 喜び 悲しみ 怒り 照れ 喜び+目閉 悲しみ+目閉 その他1 その他2 置き換え 標準 喜び 悲しみ 怒り 照れ 標準 標準 標準 標準
33/61 改善点(うまくいかなかったケース) ◼ かかり受け/類義語/BERT ◼ 水増しで精度が上がることはなかった ◆学習データを水増し ◆モデルのトークン数を増やしてみた ◼ 質問応答系のモデルでは380程度が標準
◼ 前後の文章をより長く与える学習データを作成 ◼ 精度は上がらなかった
34/61 最終結果:混同行列 ◼ 怒り・照れ:精度低い ◼ ポジティブ・ネガティブを間違えることは少ない 精度高い 標準 喜び 悲しみ
怒り 照れ 喜 び 悲しみ 標準 ポジティブ ネガティブ 5種類 3種類 正解率 66% 正解率 70%
35/61 考察 ◼ 「怒り」「照れ」はデータ数が少ない ◼ 怒り:6.3% ◼ 照れ:4.2% ◼ 学習が難しい
◆登場頻度の差 感情の比率 標準 喜び 怒り 悲しみ 照れ ◆人間でも判断が難しい 例:うん……(喜び) ふふっ(照れ) あ、いえ。(悲しみ) その、えっと……(怒り)
36/61 人間がやってみた場合 ◼ 1シナリオ 400問 プロジェクト以外のエンジニア 3名 ◼ 「怒り」「照れ」の正解率が低い。全体的にAIより低い結果 テスト問題を作って測定
標準 喜び 悲しみ 怒り 照れ 人間の結果 質問応答タスク ※再掲 標準 喜び 悲しみ 怒り 照れ 正解率 57% 正解率 66%
37/61 音声解析による感情分析
38/61 音声の感情分析ってどうやるんだろう? ◼ 無料で一定回数利用できるAPIを試してみた ◼ (元気よく)「おはようございます!」>悲しみ、怒り ◼ 精度がかなり低く、使えるレベルではなかった ◆有料で利用できる感情分析システム ◆感情分析ができる音声解析モデル
◼ CNNを利用したモデル ◼ Wav2Vec2を利用したモデル
39/61 CNNを使った感情分析
40/61 CNNによる効果音分類モデル ◼ 簡単に試せる状態だったので適用してみた ◼ 特徴量抽出+CNNタイプの簡単なもの ◆別件で効果音の分類を試していた ◆例:「電話のベル+会話」の音声 ◼ 会話:
0.89 ◼ 電話のベル: 0.75 ◼ 室内、小さい部屋: 0.23 ◆今回利用したモデル ◼ PANNs: Large-Scale Pretrained Audio Neural Networks for Audio Pattern Recognition ◼ 効果音を分類するためのモデル ◼ 大きな効果音のデータセットで学習済み 数値は類似度(1〜0)
41/61 学習データの準備 ◼ スクリプトには文字の表示タイミングを調整するための数値が含まれる ◼ ffmpegで音声区間・無音区間を取得して計算したもの ◼ こちらの数値を使うとある程度の精度で切り出せる ◼ (後ほどやり方を改善)
句読点ごとに音声ファイルを分割 有音区間 有音区間 無音区間
42/61 学習データのファイル数 分割後のファイル数:105,000 標準 喜び 悲しみ 怒り 照れ 学習データのファイル数と比率 59,000
122,000 元のwavファイルの数 分割後のファイル数
43/61 学習してテスト ◼ 効果音分類のための事前学習モデル ◼ 感情分析に向いていない ◼ そもそも音声が正しく分割されている保証がない ◆学習後の正解率: 30.8%
◆いったん諦めて自然言語処理の作業を進める ◼ 数ヶ月後に便利なモデルを発見したので再開
44/61 Wav2Vec2を使った感情分析
45/61 新しい感情分析モデル ◼ 音声解析のためのパッケージ ◼ 感情分析のサンプル: recipes/IEMOCAP/emotion_recognition ◼ 内部的にはWav2Vec2を利用 ◆SpeechBrain
◆データセットが利用できなかった ◼ 研究機関のみダウンロード可能 ◼ 感情分析系のデータセットは利用規約が厳しい ◆実際のデータで試す ◼ 精度が高い ◼ 学習データを作り直す
46/61 Wav2Vec2 ◼ wav2vec 2.0: A Framework for Self-Supervised Learning
of Speech Representations ◼ CNN + Transformerの組み合わせ ◼ ラベルなしデータでの「自己教師あり学習」が特徴 ◆Facebook AIの音声認識モデル
47/61 学習データの作り直し ◼ 分割した結果が正しいのかチェックできない ◆音声ファイルの分割の問題 ◆音声認識モデルWhisper ◼ OpenAIから公開された音声認識モデル ◼ 音声ファイルを分割
> Whisperでチェック
48/61 Whisperを活用した音声ファイルの確認 分割した音声を書き起こして比較 ◼ 編集距離:2つの文章の差を数値で表す(同じ場合0) ◼ ひらがなへの変換はMeCabを利用 ◼ 「編集距離/文章の長さ」が一定以下なら採用 小さい場合
大きい場合 採 用 編 集 距 離 不 採 用 ①書き起こし ②編集距離 ③採用 編集距離の差が… 音声データ 元のテキスト Whisperでテキスト化 ひ ら が な 変 換
49/61 WhisperXを使って分割 ◆WhisperX ◼ 文字単位のタイムスタンプを取得できる ◼ 文章の分割に合わせて音声を切り出せる ◼ 音声分割の精度が上がる >
利用できるデータを増やせた ◆ただし不具合あり ◼ タイムスタンプと音声のタイミングが不一致 ◼ 試した時点の情報なので現在は解決されているかも {'text': 'お', 'start': 0.10, 'end': 0.12} {'text': 'は', 'start': 0.30, 'end': 0.32} {'text': 'よ', 'start': 0.44, 'end': 0.52} {'text': 'う', 'start': 0.72, 'end': 0.82}
50/61 SpeechBrainを使って学習・テスト ◆感情分析のサンプルコードを利用 ◼ WhisperXを利用して作成したデータセットを利用 ◼ 9:1に分割して、学習データ、テストデータとする ◼ SpeechBrainを利用することで少ないコードで学習可能 ◆学習は8時間程度
◼ RTX2080を2枚搭載したPC
51/61 結果 学習してテスト ◼ 自然言語処理と同じ傾向 ◼ 該当部分の音声しか使えていない ◼ 連続した音声を渡せると精度の向上が期待できる 標準
ポジティブ ネガティブ 標準 喜び 悲しみ 怒り 照れ 5種類 3種類 正解率 63% 正解率 66%
52/61 最終的な実装
53/61 最終的な実装 ◼ 自然言語処理のほうが全般的に精度が高い ◼ 自然言語処理の結果のみ利用 自然言語処理と音声解析の結果を比較 標準 喜び 悲しみ
怒り 照れ 正解率 63% 正解率 66% 自然言語処理 音声解析
54/61 感情分析ツールの提供
55/61 従来のワークフロー 音声ファイルを 共有フォルダから コピー コマンドライン ツールを実行 ・表情を設定 ・エフェクト追加 シナリオ執筆ツールから
シナリオをダウンロード スクリプト作成
56/61 新しいワークフロー Jenkinsで シナリオのIDを 指定して実行 スクリプト作成 ・表情を調整 ・エフェクト追加
57/61 システム構成 ◼ 当初は音声解析にGPUを使う予定だったのでローカルPC ◼ クラウドのGPUインスタンスは高額なため ◆社内のWindowsPCで実行 ◆1シナリオ 5〜10分程度 ◼
音声のダウンロードと処理が長い(AIではなく、ゲーム側で利用) ◼ AIの処理は1〜2分程度 ◼ 処理に時間がかかってもいい用途なのでCPU実行 ◼ GPUでも実行可能だが使っていない
58/61 得られた成果 ◆スクリプトチーム全体で10%程度の効率化 ◆ツールの統合化が助かった ◆AIだけでなくJenkinsも役に立った ◼ 新規合流者が慣れるまで一月ぐらい > 大幅に改善 ◼
スクリプトチームはプロジェクト間の移動が多い部署なので助かった
59/61 まとめ
60/61 まとめ ◆「期待通りのものが提供された」とフィードバック ◆音声解析を使えなかったのが残念 ◼ 自然言語処理の精度を超えることができなかった ◼ 音声による感情分析は既存事例が少ない ◼ 最近増えてきたのでまた試したい
◆最終的な正解率:66% ◼ ポジティブ・ネガティブの間違いは少ないので、そのまま使えるレベル ◆「データ数の少ない感情」の精度が低かった ◼ 「怒り」「照れ」の推定が難しい
61/61 CygamesではAIの強みを活かして、 最高のコンテンツを作り続けていきます
62/61 補足資料&参考文献
63/61 精度周りの数値(全て5パターンの場合) 文章分類タスク 質問応答タスク 人間でテスト Wav2Vec2 Accuracy 0.49 Precision 0.42
Recall 0.37 F1 score 0.36 Accuracy 0.63 Precision 0.42 Recall 0.33 F1 score 0.33 Accuracy 0.57 Precision 0.34 Recall 0.37 F1 score 0.34 Accuracy 0.66 Precision 0.50 Recall 0.41 F1 score 0.41
64/61 シナリオ執筆ツール「こえぼん」 社内で広く利用されているWebアプリ ◼ シナリオの執筆、監修、台本出力まで可能 ◼ AIによる表記揺れ、誤字検出 ◼ Youtubeで講演動画が視聴可能 ◼
https://youtu.be/g7uY5zRpz4g?list=PLSx6MdBnoFbAzBFI-gBTYO0-GowOZx3Nc
65/61 参考文献 ◆テキスト分類学習における文節入れ替えによる データ水増し手法 ◼ https://www.jstage.jst.go.jp/article/pjsai/JSAI2021/0/JSAI2021_3J1G S6a04/_pdf/-char/ja ◆SpeechBrain ◼ https://speechbrain.github.io/
◆PANNs ◼ PANNs: Large-Scale Pretrained Audio Neural Networks for Audio Pattern Recognition ◼ https://github.com/qiuqiangkong/audioset_tagging_cnn
66/61 参考文献 ◆Whisper ◼ https://github.com/openai/whisper ◆WhisperX ◼ https://github.com/m-bain/whisperX ◼ This
product includes software developed by Max Bain.
67/61 質問用のスライド
68/61 質問応答タスクの学習のコード ◆transformersのexampleのコードを利用 ◼ 設定を渡すことで各種パラメータ、事前学習モデルの指定が可能 ◼ 学習データはSQuAD 2.0形式を利用
69/61 キャラクターの表情≠感情分析 ◆今回は感情分析として扱ったが適切だったのか ◼ キャラクターの表情の変化は純粋に感情の変化を反映するわけではない ◼ 人間を使ったテストを自分でやってみてわかった ◼ 同じ表情だと単調になるので、表情を変えているケースもありそう ◆1行の感情をまとめて推定する手法
◼ 1行の感情をまとめて推定することで表情の変化を扱えそう ◼ 記号などを使って文章中の区切りをAIに知らせる
70/61 LLMを使う場合は? ◆日本語理解力が高いほど有利 ◼ 該当キャラクターの感情のパターンをいくつか与える方法 ◆Few shotで事例を数件与える方法 ◆オープンなLLMで学習する方法 ◆キャラクターの性格・タイプを渡す方法 ◼
キャラクターの特徴や口癖などをプロンプトに入れてしまう方法 ◼ 文章を渡すと感情を返すように学習させる