ここでは、早速、様々な表現にボットが対応できるようになる手法をご説明します。
各項目について、参照すると便利なページを紹介しておりますので、ご参考ください。

言い回しの追加の具体例

作例として、
◇犬の飼育方法にまつわるボットの中のボタン発話
→「犬に食べさせちゃダメなものはどんなもの?」
について、自由入力でも適切な返答が返るようユーザ発話の行を編集するノウハウをご説明します。

下図のようなシナリオがあるとします。

この状態の場合、ボタンを押すことによりこのボット発話を返答することはできますが、
・犬にやっちゃダメな食べ物は
・あげてはいけないものって何
・食べさせちゃいけない物はある
のような、幅広い言い回しに対応することができません。

ここに、幅広い言い回しの発話に返答できるようなシナリオを組み込みます。

最終的に組み込まれるユーザ発話を先に記載しておきます。
[[犬|]][[${食べさせる}|${与える}|あげる]][[${だめ}|いけない|${よくない}]][[${食べ物}|${物}|餌]][[教えて|知りたい|って|何]]
ここに行き着くまでの過程と、参照する資料をご説明していきます。

※ボタン発話の下部に記載しています。

疑問ポイント

そもそもこの中で頻出している記号${}とは何か?

${}は、cs-chatの言い回しを拾う機能のうちの1つ「『辞書』ファイルに登録された単語」を指定するための記号です。

辞書ファイルに関する詳細はこちらをご覧下さい。

そもそもこの中で頻出している記号[[|]]とは何なのか?

[[]]と|は、「『ある言葉a』もしくは『ある言葉b』のどちらかが使用されているOR記法」を表すための記号です。

OR記法に関する詳細はこちらをご覧下さい。

言い回しの追加の場合にはボット発話の行に何も記入しなくていいのか?

ユーザ発話が記入されている行で、ボット発話のセルが空行の場合、自動的にそのセルより上の最後に記入されているセルの発話を返答するようになっています。

コマンド列のresolvedとは?

ボット発話が終わった後に、ボットの回答で問題が解決できたかどうかを選択してもらうボタンを表示するためのコマンドです。

resolvedに関する詳細はこちらをご覧下さい。

サジェストなしの「1」とは?

サジェストなしの列に半角の「1」を記入することにより、サジェスト(入力欄に文字列を記入した際に表示される発話候補)に表示されないようにできます。

サジェストなしに関する詳細はこちらをご覧下さい。

ユーザ発話の分解

改めて、上記シナリオ
[[犬|]][[${食べさせる}|${与える}|あげる]][[${だめ}|いけない|${よくない}]][[${食べ物}|${物}|餌]][[教えて|知りたい|って|何]]
を分解して、詳細を見てみましょう。

[[犬|]]
横に何も記述しない|を最後に記載することにより、ユーザ発話の中に「犬」という言葉があってもなくてもシナリオにヒットするようにすることができます。

[[${食べさせる}|${与える}|あげる]]
2箇所に、辞書記号を使用しています。 2箇所は、「フレーズ辞書」に記述されており、辞書の中は下記のようになっています。 このように辞書に登録することにより、複数のシナリオで言い回しを共有し、逐一全ての言葉を記述する手間が省けます。 また、[[]]の中は、辞書記号を使用した言葉と、辞書を使用しない言葉を混ぜても大丈夫です。

2つの辞書シートに関しては、
ワード辞書…活用しない言葉。名詞、挨拶など。
フレーズ辞書…活用する言葉。動詞、形容詞など。
という使い分けをすることにより、エンジン内の負荷を軽減しています。

[[${だめ}|いけない|${よくない}]]
②と同様ですが、言われる可能性のあるひらがな・カタカナ・漢字のバリエーションは記載しておくことで、より返答の精度が上がります。

[[${食べ物}|${物}|餌]]
[教えて|知りたい|って|何]]
②、③と同様です。

これらを踏まえて入力することにより、

無事に、様々な言い回しに対応することができました。

results matching ""

    No results matching ""