銀河鉄道

Intent Classification(意図分類)|チャットボットが自然に会話するために必要なもの

サムネイル
[What's AI?]Intent Classification
実は地味な
Intent Classification

Intent ?

日本語で言えば、
意図(Intent)を
分類すること

AIの意図分類(Intent Classification)って何?

ボットが一つの窓口でいろんな質問に答えようとする時に、
まずすべきことは、
「これって何の話?」を分類すること。

たとえば。

  • 「今の天気は?」
    • → 天気APIを叩かなければ!
  • 「ありがとう」
    • → 雑談として処理しよう!
  • 「PDFを読んで教えて」
    • → 自社文書の検索をしなければ!
  • 「明日の会議予定ある?」
    • → スケジュール確認をしなければ!

1つの入口で全部受け付けて、正しい返しをするには、“分類”が重要になる。

分類によって、
その後の処理を変えているんだ

チャットボットでの Intent Classification のやり方

分類方法は、いろいろある

Rule-based(ルールベース)

「ありがとう」「よろしく」みたいなキーワードで条件分岐。

手作業だけどシンプルで速い。精度はまあまあ。

MLモデル(機械学習)

過去の会話ログを学習させて、「これは雑談」「これは質問」を自動で判断。

精度は高いけど、学習データと保守がちょい重め。

LLM利用(ChatGPTなど)

プロンプトで「これって何系の質問?」と、分類させる。

ラクだけどAPIコストがかかる。

ハイブリッド型

最初はRuleでふるいにかけて、あいまいなものだけLLMに回す。

速さと精度のバランスが良くて、実用的なやり方。

実例:GoogleやLINE Botでも採用されてる

たとえばDialogflow(Google AssistantやLINE BOTで使われるもの)も、

  • ユーザーの入力を「Intent」として分類
  • そのIntentに応じた処理や返事を実行
  • GUIで「どんな言葉がどのIntentか」設定できる

Intent分類って、
設計なんだ

よくある誤解と実際の構造

「AIなら何でもいい感じにやってくれるだろう!」
っていうのは思い込み。

現実はぜんぜん違う。

人間の期待実際にやってること
勝手に意図を読み取ってくれるよね?ルールや分類器で「これは雑談」「これは質問」って一つずつ設計してる
適当に答えてくれるよね?DB検索とかRAGとかで、構造設計しながら返してる
文脈もずっと覚えてるよね?ログを残して順番や構造を細かく管理してる
どんなファイルでも答えてくれるよね?PDFごとにインデックス作って、フィルターも実装してる

裏では、
地味に分類してるんだ

魔法感を作るための「地道な構造設計」

AIが自然に見える裏には、これだけの設計が詰まってる。

  • ルールで意図分類
  • 質問文をチャンク分割
  • ベクトル検索
  • 結果の整形
  • 文章の生成
  • ログ出力と構造管理

ここまでして、ようやく「あっ、なんか自然に答えてくれた」ってなる。

まとめ

意図分類は、複数の機能を持たせたボットには必要な設計。

結局、ボットにとって「これは質問?お願い?それとも世間話?」っていうのは、教えてもらわないとわからない。
その“教え”をどうデザインするかが、チャットボット設計での大切なところ。

ひとことで言うと
けっこう大変!

著者

author
月うさぎ

編集後記:
この記事の内容がベストではないかもしれません。

記事一覧