Googleフォーム × ChatGPTで回答を自動分類する方法

Googleフォームの自由記述回答を、
人の目で読んで・考えて・分類する作業に時間を取られていませんか?

GAS(Google Apps Script)だけでも自動分類は可能ですが、
ルールが増えるほど if文が複雑になり、保守が大変 になります。

そこで活躍するのが ChatGPT(AI) です。
この記事では、Googleフォームの回答をChatGPTで自動分類する方法を、 初心者の方でも実装できるように、順を追って解説します。


目次

この記事でできること

  • Googleフォームの自由記述回答を
  • ChatGPTが内容を理解して
  • あらかじめ決めたカテゴリに自動分類し
  • スプレッドシートに結果を書き戻す

問い合わせ対応・アンケート分析・社内申請の仕分けなど、 実務でそのまま使える内容です。


全体の仕組み

今回の構成はとてもシンプルです。

  1. Googleフォームで回答を受け取る
  2. スプレッドシートに回答が保存される
  3. GASが回答内容を取得
  4. ChatGPT APIに送信
  5. 分類結果をシートに書き戻す

「フォーム × スプレッドシート × GAS × ChatGPT」
この4つが連携します。


STEP1:ChatGPT APIの準備

ChatGPTをGASから使うには OpenAIのAPIキー が必要です。

  1. OpenAIの公式サイトにアクセス
  2. APIキーを発行
  3. キーをメモ(※後でGASに設定します)

※ APIは従量課金制ですが、
フォーム分類程度であれば 少額(数十円〜) で十分です。


STEP2:スプレッドシートの準備

Googleフォームと連携したスプレッドシートを開き、
以下のような列を用意します。

  • A列:タイムスタンプ
  • B列:回答内容(自由記述)
  • C列:ChatGPT分類結果(新規追加)

この C列 に、ChatGPTが判断したカテゴリを書き込みます。


STEP3:GASでChatGPTに送るコード

スプレッドシートから
拡張機能 → Apps Script を開いてください。

以下が基本コード例です。


function classifyByChatGPT(text) {
  const apiKey = 'ここにAPIキー';
  const url = 'https://api.openai.com/v1/chat/completions';

  const payload = {
    model: 'gpt-3.5-turbo',
    messages: [
      {
        role: 'system',
        content: 'あなたは問い合わせ内容を分類するアシスタントです。'
      },
      {
        role: 'user',
        content: `
次の文章を以下のカテゴリのいずれかに分類してください。

【カテゴリ】
・問い合わせ
・クレーム
・要望
・その他

文章:
${text}

カテゴリ名のみを返してください。
`
      }
    ]
  };

  const options = {
    method: 'post',
    headers: {
      'Authorization': 'Bearer ' + apiKey,
      'Content-Type': 'application/json'
    },
    payload: JSON.stringify(payload)
  };

  const response = UrlFetchApp.fetch(url, options);
  const result = JSON.parse(response.getContentText());

  return result.choices[0].message.content.trim();
}

STEP4:回答を自動分類して書き戻す

次に、シートの回答をループ処理し、
分類結果をC列に書き込みます。


function runClassification() {
  const sheet = SpreadsheetApp.getActiveSheet();
  const lastRow = sheet.getLastRow();

  for (let i = 2; i <= lastRow; i++) {
    const text = sheet.getRange(i, 2).getValue();
    const resultCell = sheet.getRange(i, 3);

    if (text && !resultCell.getValue()) {
      const category = classifyByChatGPT(text);
      resultCell.setValue(category);
    }
  }
}

これで、
未分類の回答だけを自動でAI分類できます。


実務での活用例

  • お問い合わせフォームの自動仕分け
  • クレームのみを別シートに抽出
  • アンケート結果の傾向分析
  • 社内申請の一次振り分け

「読む → 判断する」作業を、
AIに任せるだけで業務が一気に軽くなります。


まとめ

GASだけのルールベース分類と比べて、
ChatGPTを使うと以下のメリットがあります。

  • 表現の揺れに強い
  • ルール追加が不要
  • 実務に近い判断ができる

次の記事では、
分類した回答をChatGPTで自動要約・返信文生成する方法を解説予定です。

ぜひシリーズとして活用してみてください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次