Voiceflowでやってみるシチュエーショナルデザインの最終回です。今回は「自然な会話にする: 一方的なコミュニケーションではなく、会話ができること」がテーマです。
Alexa道場のシチュエーショナルデザインの回はこちら。
シチュエーショナルデザインの日本語ドキュメントは以下にあります。
ちなみに、今回も英文の「シチュエーショナルデザイン」のホワイトペーパーの方をベースに説明します。ホワイトペーパーは以下でダウンロード可能です。
この記事は「Voiceflowでやってみるシチュエーショナルデザイン」シリーズの第4回の記事です。他の記事は以下にあります。よろしければあわせて読んでみてください。
第1回
第2回
第3回 Part1
第3回 Part2
ユーザの言い回しに対応する
ユーザは様々な発話のバリエーションで話しかけてきます。第1回では、インテントにおけるサンプル発話のバリエーションや、ダイアログモデルを使ってスロット値を柔軟に収集するのを試しました。今回はスロットそのもののバリエーションです。
例えば、「コーヒー」ひとつにしても言い方はいろいろあります。
- コーヒー
- アメリカン
- ブレンド
- ホットコーヒー
- アイスコーヒー
- 冷コー(多分関西だけですね)
- ホット
総じてこれらは「コーヒー」なわけですね。もちろん、場合によってはこの違いを意識しないといけない場合もあります。例えば、カフェの注文だと、アイスコーヒーとホットコーヒーは違いますよね。でも、単に「コーヒー」であることがわかればいいだけの場合はどうでしょうか?
ということで以下のサンプルを用意しました。好きな飲物であなたの性格が占えるというものです。
占いの結果は適当なので気にしないでください。まず、drink_name_intentのChoice Blockでユーザから飲み物名を取得、drink_nameスロットに飲み物名が入ります。
drink_nameスロットはカスタムスロットタイプを選択して、コーヒー、紅茶、オレンジジュースを候補値として入れてます。
drink_nameスロットで受け取った値をもとにCondition Blockで分岐をします。条件として用意していない飲み物名が発話された場合はElseで対応していないことを伝えてもう一度別の名前で発話を促します。
ではテストしてみます。
ちゃんと動いてます。次は、用意していない飲み物名を言った場合です。
はい、想定通りではあるのですが、この占いではアイスコーヒーもざっくり「コーヒー」として扱いたいですね。ということで、アイスコーヒーにも対応してみます。まずは今のやり方をそのまま踏襲してやってみましょう。
カスタムスロットのスロット値を追加します。
Condtion Blockの条件を追加します。
Condtion Blockから「コーヒー」のSpeak Blockにつなげます。
テストしてみます。
はい、一応想定通りに動いていますね。じゃあこれを繰り返せばよい・・・のですが、追加したいスロット値がたくさんあった場合はどうなるでしょう?
カスタムスロットのスロット値を追加して・・・
Condtion Blockの条件を追加して・・・
うぅ、めんどくさいし、ちょっと見にくくなってきました。しかも、紅茶とオレンジジュースも対応するとなるとゾッとしますね・・・
シノニムを使おう
そこで「シノニム」の出番です。日本語でいう「同意語」「類義語」のことですね。シノニムを使うと、同じ意味・似た意味だけど発話が違う表現を、ひとまとめにして同じものとして扱ってくれます。早速やってみましょう。
スロットの設定画面を開いて、同じように扱いたいスロット値を右側の入力欄に追加します。複数ある場合はカンマ区切りで入力してください。せっかくなので、紅茶とオレンジジュースにもシノニムを設定してみました。
やることはこれだけです。
テストしてみます。
はい、ちゃんとシノニムを発話した場合でもそれぞれ「コーヒー」「オレンジジュース」というふうに認識されていますね。
少しフローを少しシンプルにしてどういうことなのか確かめてみます。単純に受け取ったスロット値を言い返すだけのSpeak Blockにつなげてみます。テスト用にちょっとメッセージも最低限に。
テストです。
つまり、ユーザの発話がシノニムとして登録してある内容と一致した場合、常にその代表となるカスタムスロット値として値として渡されるということです。これにより、シノニムを増やしていくだけで、いろんな言い方に対応できますし、分岐や処理の方はいじらなくていいのでとても楽ちんです。
シチュエーショナルデザインの最終回「4. 自然な会話にする: 一方的なコミュニケーションではなく、会話ができること」でした。シノニムを使うことで、ユーザのいろんな発話バリエーションに対応できるだけでなく、効率的なスキル開発ができますので、積極的に使っていきましょう。
デザインガイドには上記でご紹介した以外にも、会話を自然にするためのテクニックが紹介されていますので、ぜひ一度ご一読ください。