GPTを活用して簡単にテキスト解析をする方法 -感情分析、カテゴリー分類-
GoogleSpreadSheetとOpenAI社のAPIを活用してテキスト解析をするやり方に関してまとめた記事です。
プログラミングに関してそこまで詳しくいない企画職の方でもできます。
時折やってくるテキスト解析の相談
本業で企画職側データ分析を生業にしていると時折こんな相談をうけることがあります。
”1年間くらいアンケートを取っているのだけれど、大量にあるフリーテキストの分析を依頼できないか”
”フリーテキストの内容を元に内容をカテゴリーに分類できないか”
どちらも定性的なテキストデータの分析相談でその時ごとに分析を引き受けることがあったのですが、分析コードが書けない方でも手軽にできると嬉しいのだろうなとふと思い今回の記事を書いてみます。
感情分析、カテゴリー分類、ワードクラウド
これまで何個かのテキスト解析の依頼を引き受けてきましたが、意外と示唆や気づきを与えられる分析アウトプットを作るのが難しいものです。
また案外Pythonでゴリゴリコードも書く必要もあるので慣れていないとコスパもよくない。頑張って可視化したけどなんか結果から何も見えないケースも過去の経験で多くありました。
そんな私の経験を元にビジネスの現場でも使いやすいテキスト解析を上げると以下の3つかなと思います。
感情解析はテキストをポジティブ、ネガティブ、ニュートラルの3つに分類、
カテゴリー分類も分析側で指定したいくつかの分類にテキストを分類していく手法で、各分類ごとに仕分けたのちにその内容を確認することでどんな意見が集まったかを効率的に調べることができます。
ワードクラウドは以下の写真のように、集まったテキストを単語レベルまで分解し、その出現頻度をカウントして出現頻度ごとに文字の大きさを変えて可視化することで中心となるテーマを視覚的にわかりやすくすることができます。
これまではカテゴリー分類をしたかった場合は学習データを用意したり、Pythonなどで自然言語のAIモデルを回したりと何かとやりたいことの割には費用と手間がかかるものでした。
また、ワードクラウドの方もテキストをMeCabやJanomeなどのライブラリで単語レベルまで分解し可視化する必要があるなどこちらもパッと出せるものではなかったのが現実です。
しかし、ChatGPTなどの自然言語生成AIの登場により、この手間もかなり軽くなりました。
ここからはPythonコードをゴリゴリ書いたりせずともこれらの分析を行う方法を簡単にまとめていきます(途中お金がかかる部分もあるのでご認識ください)。
感情分析、カテゴリー分類のやり方
ここからは感情分析とカテゴリー分類のやり方を紹介します。
とはいえ、いきなりChatGPTに投げれば解決というわけでなく、この2つに関してはOpenAIのAPIとGoogle Spread Sheetを活用した方が精度が良いので、そのやり方を紹介します。
STEP1:OpenAIのAPI Keyを取得する
まずはOpenAIのAPI Keyを取得していきます(API Keyの利用はお金が発生するのでご留意ください。)
以下のOpenAIのサイトにアクセスしてログインを済ませます。
すると以下の画面に遷移するのでAPIを選択してください。
すると次の画面に遷移するので右のタブを開き、”View API keys”を選択します。
以下の画面まで遷移すれば”Create new secreat key”で新しいAPI Keyを発行してください。
※API利用にはお金がかかるのでBilling画面で課金してください。
初めは2000-3000円くらいでチャージして、無くなった場合に自動チャージのオプションを切っておくことをオススメします。
STEP2:Google SpreadSheetの設定をする
次にGoogle Spread Sheetの設定を行なっていきます。
Googleアカウントをお持ちでない方は登録からお願いします。
Google Spread Sheetを開いた後に以下のサイトにアクセスして、
”GPT for Sheets™ and Docs™.”の拡張機能をインストールします。
インストールが終わってGoogle Spread Sheetを更新すると拡張機能のところに新しく今回インストールした機能が追加されます。
Sεt API keyを選択すると以下のように右側に先ほど作成したAPI Keyを設定する部分が出るのでそこにAPI Keyを入力してください。
これで設定完了です。
STEP3:感情分析の分類カテゴリーを作成する
では、今度は感情分析のポジティブ、ネガティブ、ニュートラルの分類タグを仕込みます。
実際に分析するデータとは別シートに以下の写真のようにカテゴリーを作成してください。
※拡張機能を提供しているところがチュートリアルで提供してくれている動画ではカラム名に分類タグを仕込んでいましたが、データ分析する立場からすると管理しづらくなるのでオススメしません。
STEP4:GPT_CLASSIFY関数を利用する
では、いよいよ感情分析を行なっていきます。
ここで使うのが拡張機能で追加された関数の1つである
”GPT_CLASSIFY関数”です。
写真のようにこの関数には値、カテゴリー、サンプル、生成する内容の柔軟さ、モデルのパラメータを入れることができます。
今回はこの中でも値、カテゴリー、サンプルを使っていきます。
※詳しい関数の説明は上記のドキュメントを参照ください。
サンプルとして使うのは、私の方で適当に作成した、ジムに入会する理由のコメントです。内容としては痩せたいからといった意思があるものもあれば、特になしや友人に誘われてなどどっちつかずのもの、また対応が悪くもう来ないといったネガティブなものを混ぜてます。
GPT_CLASSIFY関数に以下のように値を入れてみて実際に感情分析をかけてみました。
結果は以下のようになりました。
うまく仕分けられているものが多くある中、一部前向きに感じるようなものもニュートラルに分類されていることがわかります。
これはGPTが新しいデータに関してあまり学習していないため起こります。
この分類の精度を上げたい場合は、いくつかの分類の答えをGPT関数に入れて教える必要があります。
今回は以下のように別シートにどのケースがどのカテゴリーなのかを整理しました。
このサンプルを先ほどのGPT_CLASSIFY関数の3つ目のパラメータに入力して再度感情分析を行なってみましょう。
先ほどニュートラルだった部分もポジティブにしっかり変わっていたりと少しせいどが改善してます。
こういった流れでGPT_CLASSIFY関数を使えば、Pythonを書いたり、AIモデルを構築せずとも表計算ソフトで十分に感情分析を行えます。
カテゴリー分類のやり方
では、次にカテゴリー分類のやり方ですが、ここまでくると察しがつく方も多いと思います。
はい、感情分析をやることは同じです。
感情分析は分類のカテゴリーがポジティブ、ネガティブ、ニュートラルの3つのカテゴリー分類でした。
この感情以外で分類軸を作りたい場合は、同様の流れでカテゴリーを設定してGPT_CLASSIFY関数を使えば良いことになります。
では、今度は入会理由を以下の写真のように目的ごとにカテゴリーを決めて分類してみましょう。
サンプルも合わせて用意しました。
カテゴリーが準備できれば先ほどと同様に関数に値を入れていきます。
すると結果は以下の様になります。
ちゃんと分類ができていますね。
これほど手軽に分類ができると今までの苦労がなんだったのかとも感じますが、技術の進歩は凄まじいものですね、使っていきましょう!
タグを振ることだってできる
さて、今回GPT関数をGoogle Spread Sheetで紹介しましたが、この関数は今回のCLASSIFY関数以外にもいろいろあります。
それこそ要約に使えるGPT _SUMMARY関数やタグ付けに使えるGPT_TAG
関数も存在します。
今回おまけでタグの割り振りもやってみました。
使う関数はGPT _TAG関数です。
使い方は同様でタグとして割り振りたいものとそのサンプルを用意して関数にテキストと共に入力して完了です。
詳しいことはドキュメントを確認してもらうとして、入力した結果は以下になりました。
ちょっとつけなくても良いようなタグもありますが、ある程度はしっかりとタグをテキストに割り振ってくれています。
これらのタグやカテゴリーをもとにフィルターをかけてテキストを解析したり、あるいはクロス集計してカウントすることでどの理由が多いかなどの集計もできます。
みなさんも興味があれば是非今回のGPT関数をGoogle Spread Sheetで試してみてください。
注意書き
GPT関数は各セルごとでAPIを叩いている様に見えます。つまりその分だけ料金がかかっている可能性があるため、必要以上にAPIを叩きたくない方は1度関数計算した後はコピーして値だけペーストすることで関数を消してください。
まとめ
今回はOpenAIのAPIとGoogle Spread Sheetの拡張機能を使って感情分析とカテゴリー分類を行なってみました。
次回の記事ではChatGPTとGoogle Colabを使ってワードクラウドを作成するやり方を紹介しているので是非読んでみてください!
いいねとフォローもいただけると嬉しいです!