弊社が生成AIの活用支援をしている中で、「AIを使ってテキストマイニングを自動化させたい!」「識別系AIではできない文章理解を生成AIを使って行いたい!」という声をよく耳にします。
例えば、ChatGPTを使えば、顧客の声を集計したものから、その声はポジティブなものなのか、ネガティブなものなのかを一瞬で判断することが可能です。
これまでは人が行ってきた作業も、生成AIを使用することで多くの時間を削減し、業務の効率化を行うことができます。
今回は、そうしたテキストマイニングの言葉の定義から、具体的な方法までを幅広く解説していきます。
WithAIメールマガジン登録(無料)
WithAIメールマガジンでは、生成AIの活用事例や、最新Newsから今すぐ使える実践ノウハウまで、
Webサイトではお届けしきれないさまざまなお役立ち情報を配信しています。ぜひご登録ください。
テキストマイニングとは
テキストマイニングとは、大量の文章データから有用な情報やパターンを自動的に見つけ出す技術です。例えば、インターネット上のSNSの投稿や、企業内の膨大なメールなど、人がすべて読むのが難しいようなテキストデータを分析し、そこから重要なキーワードや傾向を抽出します。この技術を使うと、どんな言葉が頻繁に使われているか、文章の中にどんな感情が含まれているか、あるいは文書のテーマやトピックが何かを特定することができます。テキストマイニングは、マーケティングやビジネス分析、医療分野などで広く使われており、データを整理して価値のある洞察を得るための便利な方法です。
ChatGPTを使ってテキストマイニングができるのか
ChatGPTはテキストマイニングに有効なツールです。文章の理解力に優れているため、人と同じようにテキストからその意図を読み取ることができます。
通常の場合は、ChatGPTのチャット欄にテキストを入力し、それらを分析してもらいますが、ChatGPTの公式プラグイン「Code interpreter」やOpenAIのAPIを用いることで、データの前処理や解析を自動化することも可能です。
ChatGPTを使ってテキストマイニングを行い、キーワードやトピックのトレンドを把握することで、業務の効率化やマーケティング戦略の策定など幅広いビジネスに活かすことができます。
この記事では以下の2種類のテキストマイニングを行う方法を解説していきます。
- ChatGPTの公式プラグイン「Code interpreter」
- OpenAIのAPI
①ChatGPTのChatGPTのAdvanced Data Analysisを使ってテキストマイニングを行う
ChatGPTでテキストマイニングを行う方法として、ChatGPTのAdvanced Data Analysisの活用があります。
Advanced Data Analysisは、ChatGPT上でPythonを実行できる機能で、2024年9月現在は無料ユーザーでも使うことができます。
まず初めに、エクセル形式のデータを用意します。
以下のようなダミーの顧客データを使用します。
ChatGPTへの入力文は次の通りです。
#命令文
こちらのxlsxファイルを読み込んでテキストマイニングを行ってほしいです。
次の#手順に従ってタスクを行ってください。
#手順
1."感想"の感情を分析して、C列にポジティブ/ネガティブ/ニュートラルのいずれかを入力してください。
2."感想"のテキストを分析して、#カテゴリの中から適切なものを一つ選んでD列に入力してください。
3."感想"のテキストを分析して、5段階評価でE列に点数を記入してほしいです。
4.1~3までの処理を行った後のデータをxlsx形式で出力してください。
#カテゴリ
配送,品質,デザイン,価格,サポート,情報,その他
ChatGPTの回答(Code Interpreter):
手順を示しながら、テキストマイニングを行ってくれました。感情分析については、評価が5段階で記載されていたため、この評価を基準にしてポジティブ/ネガティブ/ニュートラルを選択しました。
感情分析とカテゴリ分類を行ったあと、プロンプトの指示通りにxlsxファイルを出力してくれました。
ファイル名は特に指定していなかったため、自動的に”processed_review.xlsx”というファイル名で作成いてくれました。
ファイルをダウンロードして開くと、確かにD~F列にテキストマイニングの結果が出力されました。
ただし、こちらのAdvanced Data Analysisで行なったテキストマイニングの精度はかなり低いことがわかりました。特に配送などのカテゴリ分けの部分で正しい分別が行われていませんでした。これはそれぞれの思考を同時並行で行っていることが原因であると考えられます。
次の、Googleスプレッドシートと連携してテキストマイニングを行う方法は、各行や列に対してChatGPTを呼び出して思考させるため、精度はより高くなります。
また、テキストマイニングしたいデータは多くの場合、シートにまとめられているため、こちらの方法がより利便性が高いです。
言語生成AIを使うなら『BizAI』がおすすめです。ChatGPT、Gemini、Claudeが全て使えてたったの780円/月!
しかも、用途に合わせたプロンプトが100種以上搭載されており、AIスキルなしで使用できます!
今だけ500チケット(約500出力分)を無料配布してるので、この機会にお試しください!
OpenAIのAPIを使ってテキストマイニングを行う
用意するものは次の通りです。
- Googleアカウント
- ChatGPTに登録するアカウント
- 対象となるテキストデータ
①OpenAIのAPIキーを取得する
はじめに、OpenAIのAPIキーを取得します。OpenAI(https://openai.com/)にアクセスして、Log inまたはSign upをクリックします。アカウントを持っていない場合は、アカウントを作成する必要があります。
ログインしたら、画面上の“Personal”から“View API Keys”をクリックすると、APIキーに関する情報を確認することができます。
“Create new secret key”からAPIキーを作成できます。
これでChatGPT APIを利用するためのAPIキーの取得は完了です。
②Chromeの拡張機能「GPT for Sheets and Docs」をインストールする
次に、ChatGPTとGoogleスプレッドシートを連携できる、Chromeの拡張機能「GPT for Sheets and Docs」をインストールします。
Google Workspace Marketplace にアクセスしてツール名を検索すると見つけることができます。
「インストール」をクリックします。次に「続行」をクリックします。
スプレッドシートを起動して、拡張機能に「GPT for Sheets and Docs」が表示されていればインストール完了です。
③APIキーを設定する
続いて、OpenAIのAPIキーをGPT for Sheets and Docsに適用します。
拡張機能→GPT for Sheets and Docs→Set API keyを順に選択します。
「Enter your OpenAI API key」の入力欄に取得したAPIキーを打ち込みます。
設定が完了したら、GPT for Sheets and Docsのホーム画面が表示されます。
「LIST of GPT function」から、この拡張機能で使える関数の一覧を見ることができます。
<使用できる関数一覧>
- GPT:単一のセルにChatGPTの結果を表示
- GPT_TRANSLATE:スプレッドシートの内容を翻訳
- GPT_CLASSIFY:スプレッドシートの内容を単一のカテゴリに分類
- GPT_EXTRACT:Sheets™のデータからエンティティを抽出
- GPT_SUMMARIZE:スプレッドシートの内容を要約
- GPT_FORMAT:スプレッドシートのデータを同じ形式に整理
- GPT_EDIT:スプレッドシートの内容を編集
- GPT_TAG:スプレッドシートの内容にタグを適用
- GPT_MATCH:2つの列の値をマッチング
- GPT_SPLIT:テキストをセクション、段落、文、顧客などで意味的に分割
- GPT_LIST:複数の結果を列に表示(1アイテムずつセルに)
- GPT_TABLE:プロンプトからアイテムのテーブルを生成
- GPT_FILL:例から範囲を埋める
- GPT_WEB:ウェブからデータを取得/ウェブを検索
- GPT_VISION:画像を分析
④関数を入力してテキストマイニングを行う
ここから、実際にスプレッドシートに関数を入力して、テキストマイニングを行います。
先ほどと同様に、ダミーの顧客から収集したデータを使用します。
D列に関数を入力して様々な分析を行っています。
例①感情分析
対象のセルにあるテキストの内容を分析して、ユーザーの感情(ポジティブ/ネガティブ/ニュートラル)をGPTに判定してもらいます。
先ほども行いましたが、この感情分析が、ChatGPTのテキストマイニング活用の中でも、特に生成AIの特性を活かしたものになります。従来では識別系AIによって含まれている単語の有無を識別するぐらいが限界でしたが、生成AIの出現により、テキストから書き手の意図を読み取ることが可能になりました。
ここでは、次にような関数を入力します。
=GPT_CLASSIFY(判定対象のセル,分類元のセル)
「判定対象のセル」には、それぞれのレビュー内容(B列)を選択します。
「分類元のセル」には、分類ルールをカンマで区切り入力(ポジティブ,ネガティブ,ニュートラル)しておきます。今回はD1に入力します。
絶対参照を使ってこのような入力になりました。
分かりやすいように、条件付き書式で塗りつぶしを設定しておきます。
オートフィルで他のセルにも適用してGPTの出力を待ちます。
出力結果:
全てのセルのテキストについて、ポジティブ/ネガティブ/ニュートラルを判定してくれました。レビュー内容を読んでみると、ほとんど妥当な結果が得られていると思います。ニュートラルの判定は少し難しいかもしれません。
例②カテゴリの分析
対象のテキストの内容を分析して、同様にGPTにレビューのカテゴリを分類してもらいます。
<カテゴリ>
・配送
・品質
・デザイン
・価格
・サポート
・情報
・その他
カテゴリの分類方法は、例①と同様にGPT_CLASSIFY関数を使います。感情分析と同様に「分類元のセル」にカテゴリをカンマ区切りで入力することで、カテゴリを判定することができます。今回はE1にカテゴリを入力します。
E列に関数を入力してGPTの回答を待ちます。
出力結果:
「早く届きました(user1)」に対して配送のカテゴリを出力、「サイズが合わない(user3)」に対して、品質カテゴリを出力、「少し高い(user18)」に対して価格のカテゴリを出力するなど妥当な結果が多く出力されたことが分かります。品質というカテゴリが抽象的過ぎたため、品質カテゴリの個数が多くなってしまいました。
例③タグ付け
GPT_CLASSIFY関数のほかにも、別の関数を使ってテキストマイニングをすることができます。
GPT_TAG関数を使うことで、対象テキストのタグ付けを行うことができます。CLASSIFYが単一の出力であるのに対し、TAGは複数出力になることが特徴的です。ここでは、次のように入力します。
=GPT_TAG(判定対象のセル,分類元のセル)
ここで使う引数は、CLASSIFYと大きな違いはありません。分類元のセルはF1とし、例②と同じくカンマ区切りのカテゴリを入力します。
F列に関数を入力してGPTの回答を待ちます。
出力結果:
例②と異なり、多くのレビュー内容に対して複数のカテゴリ(タグ)が選択されました。
品質とデザインなど似たカテゴリは両方選択されている印象を受けます。ただし、user3のレビュー内容に対して価格が選択されているなど、少しクオリティには改善の余地があるように思えます。
テキストマイニングの新時代到来
言語生成AIの登場によってテキストマイニングは次のステージに進むことができます。人が一つ一つのテキストに目を通さなくとも、AIが意図を汲み取ったり、カテゴライズすることが可能です。
積極的にAIを活用し、自動化できる箇所は任せて自分はより専門性や技術レベルが求められるタスクに注力することで、あなたの生産性は飛躍的に向上します。
言語生成AIを使うなら『BizAI』がおすすめです。ChatGPT、Gemini、Claudeが全て使えてたったの780円/月!
しかも、用途に合わせたプロンプトが100種以上搭載されており、AIスキルなしで使用できます!
今だけ500チケット(約500出力分)を無料配布してるので、この機会にお試しください!