初心者向け
n8n Text Classifierの使い方
AIに文章を読ませて、決めた分類ごとに出口を分ける Text Classifier を、問い合わせ6件で動かして確かめました。既定ではどの分類にも当てはまらない文が黙って消えること、複数の分類を許すと同じデータが2つの出口に出ること、用件が分かりにくい文は1つにしか分けないことを実測しています。
公開
動作確認: — n8n 2.36.8 / Text Classifier v1.1 / Claude Haiku 4.5
Text Classifier は、AIに文章を読ませて、あらかじめ決めた分類(「在庫の質問」「来店の相談」など)のどれに当たるかを判断させ、分類ごとに別の出口へ流すノードです。 問い合わせを用件ごとに振り分けるときに使います。
実際に動かして分かったことは、次の3つです。
- 既定のままだと、どの分類にも当てはまらない文は、エラーも出さずに消える
- 複数の分類を許す設定にすると、同じデータが2つの出口の両方から出る
- それでも、用件が分かりにくい文は1つの分類にしか入らない
まず1回動かす
問い合わせの文を6件用意し、Text Classifier に流しました。
-
Manual Trigger の後ろに Code ノードを置き、次のようなアイテムを6件返す
return [ { json: { id: 'stock', text: 'グレーのリネン2人掛けソファの在庫はありますか?' } }, { json: { id: 'visit', text: '今週土曜の午後に見に行きたいです' } }, { json: { id: 'both', text: '3人掛けソファを見に、日曜にお店に行きたいです' } }, { json: { id: 'claim', text: '先月買ったチェアの脚がぐらつきます' } }, { json: { id: 'greet', text: 'こんにちは' } }, { json: { id: 'english', text: 'Do you have oak dining tables in stock?' } }, ]; -
その後ろに Text Classifier を置き、Text to Classify に
{{ $json.text }}を入れる -
Categories に2つ追加する
- 在庫の問い合わせ(説明:商品の在庫、価格、サイズ、取り扱いの有無についての質問)
- 来店予約(説明:店舗に来店する日時の相談や予約)
-
下の Model に、AIのモデル(ここでは Claude Haiku 4.5)をつなぐ
-
Execute workflow を押す
結果はこうでした。
| 文 | 出た出口 |
|---|---|
| グレーのソファの在庫は? | 在庫の問い合わせ |
| Do you have oak dining tables in stock? | 在庫の問い合わせ |
| 今週土曜の午後に見に行きたい | 来店予約 |
| 3人掛けソファを見に、日曜に行きたい | 来店予約 |
| チェアの脚がぐらつく | どこにも出ない |
| こんにちは | どこにも出ない |
英語の文も、日本語で書いた分類に正しく振り分けられました。
出口から出てくるデータは、入ってきたものがそのままです(id と text)。分類の名前などは足されません。
当てはまらない文は、黙って消える
上の表で、チェアの不具合と「こんにちは」は、どの出口からも出てきませんでした。エラーも出ず、実行は「成功」です。
これは When No Clear Match(どの分類にも当てはまらないとき)という設定の既定値が「捨てる」だからです。 しかもこの設定は、Options の Add Option から追加しないと画面に出てきません。置いたままでは、捨てる設定になっていることが見えません。

When No Clear Match を Output on Extra, ‘Other’ Branch にすると、出口が1つ増え、当てはまらない2件はそこから出てきました。 問い合わせの振り分けに使うなら、必ずこの設定にして、Other の出口を人に回す処理につないでください。 黙って消えた問い合わせには、誰も返事をしません。
消えても、ほかのデータは止まらない
6件まとめて流したときは、消えたのは当てはまらない2件だけで、残りの4件はそのまま先に進みました。
ただし、Loop Over Items で1件ずつ回している中で使うと話が変わります。 捨てられた1件はループの「次へ」に戻る線を通らないので、ループがそこで止まり、後ろに並んでいたデータが全部処理されません。 メール対応を自動化したときに、実際にこれで5通が放置されました(記録)。
用件が2つある文は、1つの出口にしか出ない
「3人掛けソファを見に、日曜にお店に行きたい」は、ソファの在庫と来店の2つの用件を含みますが、来店予約にしか入りませんでした。 既定では、1つの文は1つの分類にしか入りません。
複数の分類を許すと、同じデータが2つの出口に出る
Options に Allow Multiple Classes To Be True を追加してオンにし、用件がはっきり2つある文で試しました。
| 文 | 既定 | 複数の分類を許す |
|---|---|---|
| グレーのソファの在庫があるか教えてください。あと、今週土曜の午後に来店の予約をしたいです。 | 在庫の問い合わせ | 在庫の問い合わせ と 来店予約 の両方 |
| ダイニングテーブルの在庫と価格を知りたいです。実物を見たいので、来週の水曜に伺えますか? | 在庫の問い合わせ | 両方 |
| 3人掛けソファを見に、日曜にお店に行きたいです | 来店予約 | 来店予約だけ |
用件をはっきり2つ書いた文は、同じデータが2つの出口の両方から出てきました。 一方、「ソファを見に、日曜に行きたい」は、複数を許しても来店予約だけでした。AIには「見に行く」用件の一部と読めたのだと思います(ここは推測です)。
両方の出口から出るということは、後ろの処理も2回動くということです。 問い合わせに返事の下書きを作る仕組みなら、1通のメールに下書きが2通できることになります。使うときは、後ろでどう合わせるかまで決めておく必要があります(2通できるところまでは試していません)。
費用と回数
AIを呼ぶのは、1件につき1回でした。6件を流すと、AIの呼び出しは6回です。 1回あたりの量は、入力が約550〜620、出力が約40トークンでした(Claude Haiku 4.5、分類2つ、短い文の場合)。
分類の説明を長く書くほど、入力は増えます。
ほかの設定
Add Option から追加できる、残りの設定です。どれも試していません。
| 設定 | 定義に書かれている内容 |
|---|---|
| System Prompt Template | AIへの指示の文。既定は「次の分類のどれかに分けて、説明せずに JSON だけを出す」という内容 |
| Enable Auto-Fixing | AIの出力が壊れていたときに、もう一度AIを呼んで直す(既定はオン) |
| Batch Processing | 何件ずつ同時に処理するか(既定は5件)と、間の待ち時間 |
確認していないこと
- 使ったモデルは Claude Haiku 4.5 だけです。ほかのモデルで分類の結果が変わるかは見ていません
- 分類は2つ(在庫・来店)だけで試しました。分類を増やしたときの正確さは見ていません
- 同じ文を何度も流したときに、毎回同じ分類になるかは、ここでは1回ずつしか見ていません(メール対応のときは、「ソファを見に日曜に」を5回流して5回とも来店予約でした)
- System Prompt Template、Enable Auto-Fixing、Batch Processing は試していません
次に読む
- 実際の問い合わせ対応で、捨てる設定のせいでメールが放置された記録は メール対応自動化で詰まったこと
- 振り分けたあとに、文から日付や商品の種類を取り出すのは Information Extractor です。メール対応自動化ワークフロー で使っています
- AIに分類も含めて全部任せたらどうなるかは AI Agentと手順型の比較
- n8n で業務を自動化した例のまとめは n8n 業務自動化の実例