見出し画像

ChatGPTで『走れメロス』を感情分析してみた

Excel用のChatGPTアドイン「生成AIツール for Excel」がマイクロソフトのOfficeストアで公開された。APIに渡すmessagesをそのままExcelの表にして呼び出すCHAT関数、function callingで関数ではなくenumで指定した分類を返させるCATEGORIZE関数など、面白い機能がある。今回は、CATEGORIZE関数の使い勝手を量るため、文章の感情(ポジネガ)を学習なしで推定させ、どういうことができるか実験することにした。

訓練なし、プロンプトなしの分類

このアドインのCATEGORIZE関数はfunction callingを使っているので、ChatGPTへの指示にプロンプトがいらない。たとえば、=BB.CATEGORIZE("腐ってやがる。早すぎたんだ",{"肯定的","否定的","中立的"})とすることで、いきなり結果が得られる。

CATEGORIZE関数の例

データの準備

カート・ヴォネガットによれば、物語には6つの型しかないそうである。文章の感情を読み取るには、文章を文(センテンス)に分解し、各センテンスをポジティブ、ネガティブ、ニュートラルに分類し、数値化して累計を調べる方法が知られている。今回は短編で扱いやすい太宰治の『走れメロス』がどの型なのか調べてみよう。

青空文庫のテキストデータにはルビが振られているので、プレーンテキストだけがほしい。青空文庫 ルビ削除ツールα版という素晴らしいツールがあったので、『走れメロス』のURL(https://www.aozora.gr.jp/cards/000035/files/1567_14913.html)を指定して、プレーンテキストをローカルに保存した。次に、「。」を改行に変換、全角の空白文字と"「"と"」"などを削除し、464行(センテンス)のテキストに変換した。各行についてポジネガを判定させる関数を仕込むと、次のような表になる。

『走れメロス』の感情分析(表)

プロンプトなしにChatGPTにこんな分類ができるのは、「肯定的」「否定的」「中立的」という言葉の持つベクトルから、分類対象となるテキストとの角度を計算できるからだろう。ただし、Excelで計算するには数字に変換したい。そこで、値列を追加し、=SWITCH([@ポジネガ],"肯定的",1,"否定的",-1,0)という関数を全行に仕込むことにする。こうすると、各行の内容が肯定的なら1,否定的なら-1、どちらでもないなら0になる。いま知りたいのは『走れメロス』の物語がどの型に当てはまるかなので、得られた各行の感情(+1, 0, -1)を累計してみる。以下は、その折れ線グラフである。

『走れメロス』の感情の起伏をグラフ化する

『走れメロス』の感情分析(累計値)

走れメロスは全体で464センテンスの短編だが、書き出しの「メロスは激怒した」をChatGPTは肯定的と評価した。物語は、序盤で感情を上下させつつ、実は全体の約16%(76行目)では累計値が-8になって、マイナス方向が強い。ところが全体の約29%(135行目)で累計値が0になると、その後は物語の最後まで、プラス方向に感情が伸び続け、累計値64でクライマックスを迎える。ヴォネガットの型でいうと「『地下の国のアリス』(ルイス・キャロル)など、立身出世物語に見られる、感情値の「一定して継続的な上昇」型」の典型になっている。

この感情の起伏は、どれほど作為的なのか。今度はプラスのみ、マイナスのみの累計値を取る。以下は、その折れ線グラフである。

『走れメロス』の感情分析(ポジネガの累計値)

累計値ではプラス、マイナスが相殺されることがあるので見えなかったが、ポジティブのみ、ネガティブのみの累計値を見ると、作者の意図が垣間見える。たとえば、メロスが出発を決意する162行目前後ではネガティブな表現はほぼ無く、中立的なセンテンスの中に肯定的なセンテンスが時折現れ、メロスの決意が固まっていく様子が描かれている。グラフでいうと、マイナス値の累計を示す赤い線は物語が進んでもところどころに「踊り場」があり、否定的表現をあえて避け、肯定的表現をつなげることで物語をクライマックスに導いていることがわかる。

スピーチ原稿、小説は感情を揺さぶれるか?

感情分析は2010年代の機械学習ブームのとき、定量的に実施できるようになったが、素人には手が出しにくかった。今回、ChatGPTがExcelから利用できるようになったことで、誰でも使える手法になった。スピーチ原稿やウェブ小説(なろう系小説は感情の起伏が極めて乏しい。これは、感情そのものをストレスと感じる現代社会ならではのエンタテインメントであると言っておくと、評論家ぽいが、誰か研究してみるといいかもしれない)を発表する前に、物語としての6つの型に分類される出来になっているか、確認するとよいだろう。ChatGPT 3.5シリーズの性能で十分なので、長編小説でも非常に安価に分析できる。編集者や小説プロデューサーは、どのように読み手の感情を揺さぶっているか、視覚的に把握して作者にフィードバックできるし、マーケティング目的で、いま流行っているのはどのような感情カーブの物語なのかも把握できる。読者向けに、作品一覧画面にどんなカーブの物語なのかアイコン表示してもよいかもしれない。