Dataverse for Teams でつくるクラシックボットの自然言語理解が上達!?
Copilot (GPT搭載型) の登場で話題の Microsoft Copilot Studioですが、Teams 上で動かすクラシックボット (Dataverse for Teams ベース) でも、ちょっとした工夫で “自然な会話っぽい” やりとりができるようになってきています。
この 「クラシックボット」 は、Microsoft 365 ライセンスで利用できる Teams アプリ版 Copilot Studio で作成できる、Dataverse for Teams ベースのチャットボットを指しています。
たとえば、「大阪支店の住所を教えて」 と話しかけるだけで、支店名を読み取って、質問をスキップしてそのまま応答してくれる場面も。
今回はクラシックボットへの “ひと工夫” をご紹介してみます。
今回やりたい事
クラシックボットで作成した事業所検索のシナリオをベースにご紹介します。
ユーザーが 「大阪支店の住所を教えて」 と話しかけるだけで、支店名を自動で認識し、住所と電話番号を返すことができているのがわかります。
このボットは、Microsoft 365 に含まれる Teams アプリの Copilot Studio(クラシックボット)で作成しています。
なお、このボットの内部では、「事業所の名前を選択してください。」 という質問ノード+選択肢が設定されており、通常であればユーザーに選んでもらう設計になっています。
ところが今回は、ユーザーの自然文から支店名が自動で変数に入り、選択肢の提示をスキップしてそのまま応答まで進んだというのがポイントです。
しくみの解説
今回のチャットボットでは、ユーザーの自然な質問文から 「大阪支店」 という情報を抜き出し、追加の質問をせずにそのまま応答まで進めることができました。
このしくみを支えている要素は大きく分けて次の2つです。
💡 トリガーと AI によるゆらぎ対応
ユーザーの質問がチャットボットのトピックにマッチするには、「トリガーフレーズ」 と呼ばれるキーワードとの一致が必要です。
Copilot Studio のクラシックボットでは、トリガー部分に対して ある程度のゆらぎ (表記の違いや文の構造違い) にも対応する AI モデルが動いています。
たとえば今回のように 「大阪支店の住所を教えて」 と話しかけた場合、トリガーフレーズに含めていた 「住所」 というキーワードが検出され、トピックが起動しました。
この AI モデルは、半角/全角、カタカナ/ひらがな、英語/日本語といった表記ゆれにも対応しています。
💬 質問ノードとエンティティの組合せ
次に注目したいのが、支店名 (たとえば「大阪支店」) が自動で変数に入るしくみです。
今回のチャットボットでは、次のような構成で実装しています:
- 「どの事業所を調べますか?」 という 質問ノード を設置
- 回答の選択肢を あらかじめ設定
- 選ばれた値を 「事業所」 という変数に格納
本来であれば、ユーザーに選択肢を表示して選んでもらう形式ですが、「大阪支店の住所を教えて」と話しかけると、質問ノードをスキップして選択肢に一致する支店名がそのまま変数に入るという動きが確認できました。
この動作は、質問ノードに設定されている回答候補 (選択肢) を、ユーザーが話しかけた内容の中からキーワードとして拾ってくれているためと考えられます。
表記ゆれ検証
クラシックボットでトピックのトリガーや質問の選択肢が、どこまで“表記ゆれ”に対応してくれるのかを検証してみました。
話しかけた内容 |
結果 |
備考 |
---|---|---|
大阪支店の住所を教えて |
◎ |
正常に応答 |
おおさか支店の住所を教えて |
◎ |
地名のひらがな対応 OK |
Osaka Branch の住所を教えて |
◎ |
英語 OK |
where is Osaka Branch |
◎ | 英文質問も OK |
Osaka Shiten の住所を教えて |
× |
ローマ字表記混在は通常どおり質問ノードへ |
おおさかしてんの住所を教えて |
× |
連続ひらがな表現は通常どおり質問ノードへ |
名古屋営業所の住所を教えて |
× |
選択肢対象外は通常どおり質問ノードへ |
「Osaka Shiten」 は拾えませんでしたが、次の項で紹介する対応により、さらに柔軟な表記揺れにも対応できるようになります。
エンティティで応答力を高める!
前の項では 「Osaka Shiten」 のようなローマ字表記では認識されず、変数に値が入らないパターンがありました。
このようなケースでも、エンティティにシノニムを追加することで対応可能です。
📘 エンティティとは
特定の言葉やフレーズをトピック外で定義・管理する仕組みです。チャットボットが特定のカテゴリの語句を認識できるようにするために使われます。
たとえば 「本社」 「大阪支店」 「名古屋支店」 などの事業所名をひとつのエンティティにまとめておけば、複数トピックで共通の選択肢として利用できたり、チャットボットがその意味を理解して柔軟に応答できたりします。また、エンティティにはスマート マッチング機能もあり、完全一致でなくても近い語句を自動的に認識してくれる場合もあります。
🧩 シノニム (同義語) 登録でゆらぎに強く
エンティティには、シノニム(同じ意味の別表現)を登録することができます。
質問ノードの選択肢にエンティティを使えば、ユーザーの発言がシノニムに一致した場合でも自動で認識されるようになります。
スマート マッチング機能が 「オン」 だと類似の単語を AI がある程度判断してくれます。
とはいえ、「●● Shiten」 や 「本社ビル」 などは自動でカバーできなかったため、今回はシノニムとして追加してみました。
🧪 実際にシノニムを追加してみた結果
各事業所名に対して「●● Shiten」などの表現をシノニムとして追加したうえで、再度テストをしてみました。その結果、以前は認識されなかった表現でも応答が実行されるようになりました👏✨
🧪 おまけ:スマート マッチングはシノニムにも反応するのか検証
エンティティの 「大阪支店」 に 「Osaka Shiten」 だけでなく、まったく関係ない単語である 「会議」 を追加し、「Meeting の住所を教えて」 と話しかけてみました。どうなったかというと・・・。
大阪支店が返ってきました。つまり、シノニムに対してもスマート マッチング機能は “有効” であるということがわかりました。
ちなみに、スマート マッチングを 「オフ」 にした状態ではこの挙動は再現されませんでした。シノニム登録の設計には、この挙動も踏まえて工夫が必要というのがわかりましたね!
まとめ
Microsoft 365 で使える Teams アプリの Copilot Studio (クラシックボット) でも、ちょっとした工夫を加えることで、“自然な会話っぽさ” のある応答が実現できることがわかりました。
✅ 活用のヒント
- まずは選択肢だけで検証し、動作が安定してからエンティティに切り替えると、より柔軟に!
- シノニムは “似た言い回し” だけでなく、“よくある誤入力” も想定して加えておくと安心
- スマート マッチングは便利ですが、意図しない反応を防ぐ工夫 (再確認ステップなど) も大切
クラシックボットは Copilot (GPT搭載型) ほど賢くはないかもしれませんが、設定次第でまだまだ実用レベルに活用できます。ぜひ試してみてくださいね!
当社では、実務で役立つ Copilot Studio の研修コースも!自分にぴったりの講座を見つけてみてくださいね💡
関連コース
- CI615-H Power Automate 入門 – Excel 連携
Power Automate をこれからはじめる業務ユーザー向けの基礎コース。業務でよく利用する Excel での自動化を課題とした実習ベースで解説します。 - CI617-H Power Automate によるフロー作成
基本を理解した方がより上級者レベルへと進むためのステップアップコース。Microsoft 365 各製品との連携や、より高度な設定の理解をめざします。 - CI614-H SharePoint & Power Apps & Power Automate 実践ラボ
Microsoft 365 ライセンスの範囲で Power Apps や Power Automate を活用した業務アプリを作成する方法を基本を理解されている方を対象に実践的なラボを行いながら解説する上位コースです。 - CI713-H Copilot Studio による Microsoft 365 チャットボット作成
Microsoft Copilot Studio を利用したチャットボット (Copilot) の作成を Teams や Microsoft 365 に含まれるライセンスの範囲でご紹介します。
チャットボットを作成する方や Microsoft 365 に含まれるライセンス範囲でチャットボットを活用されたい方におすすめのコースです。