シンチャオ!中田椋介です。今回は第3回ChatBot製作日記です。今週はWomen’s Day や会社のみんなとサッカーをしたり内容の濃い一週間でした。今回はChatBotのトレーニングの項目について学んだことを説明していこうと思います。
Trainingで可能なこと、便利になること
Trainingでは、実際にトレーニングをすることが出来ます。少し、前回の復習を交えながら述べていきます。これまでのEntityやIntentsの説明では、ユーザーが言いそうな言葉を推測して、Intentsで登録しておくというものでした。しかし、この作業では、Dialogflowを作る人の負担がかなり大きくなってしまう。なぜなら、ユーザーの発言を全て予測することは厳しいためである。かなりの量のデータを打ち込む必要が出て来てしまう。IntentsやEntityで設定しても上手く反応しないことがあるため難しいのである。そこで、今回はTrainingで作業効率の向上方法について述べていく。下に一つの失敗例を挙げる。「会社の名前」とEntityに登録してあるが、Intentsでは「会社の名前を教えてください」と登録してない場合に、このように失敗してしまうことがある。これは、Intentsで似たような表現をしないとDialogflowが学習できないためである。ここで、DialogflowのTrainingの項目を利用してみる。ここでは、過去に自分が入力した言葉が履歴として残っている。ここで、自分が何を入力したかが分かり、さらに、何回入力されたかや、どのような発言に対して成功できたか、どのような発言に対して失敗したかを見ることが出来る。下にある画像をみると履歴として残っていることが分かる。表示画面は異なるかもしれないが、することは同じなので省略する。先ほど失敗したフレーズを見つけたら、Intentsに追加という項目がある。それを選択することでIntentsに追加できる。つまり、Dialogflowが学習してIntentsに追加されるのである。Intentsで手当たり次第にユーザーが発言しそうな言葉を入力していくのも一つの方法として良いと思うが、一度発言してみてテストをしてから上手く反応できなかった発言に対してだけTrainingで学習していくことが効率が良いと思う。こうすることで、再じ表現や似た表現をしたときに上手く反応できるように改善できるのである。
Entityについて
今回はTrainingを紹介しました。それは作業効率を挙げるためと述べました。では、ここで、一つ質問ですが「21日にホテルを予約して」と言われた時に「21日」と言う言葉に反応するためには、「21日」というEntityが必要ですよね。では、あなたは、これも全て手で入力しますか?それはさすがに少し非効率的ですよね。なので今回は、前回気付かなかったEntityのことについても紹介しようと思います。今言ったように、幅が広すぎるEntityがあります。このようなEntityに対して、どのような操作ができるのかというと、まずIntentsを開きます。「フレーズを入力」するところがあるのでそこに適当に入力してください。今回は私は、「カンパニーネーム」と会社の名前に似たフレーズを打ちました。しかし、Entityに追加もされていないためエンターキーを押しても無反応です。そこでカンパニーネームの所を選択します。
すると、何かの一覧が出てきます。これがEntityの一覧です。ここの@company_nameは私が自分で設定したEntityですが、残りは元々Dialogflowに設定されているEntityです。つまり、Entityを作る前にこれらのEntityがどのような条件で発動するのか考えていくことで圧倒的に作業効率が向上します。また、今回の場合だと、自分が元々作ってある@company_nameのEntityの中に「カンパニーネーム」という言葉が追加されていなかったため反応しなかった。ここで、1番上の@company_nameを選択すると、Entityにこのキーワードも追加されるのである。ここでEntityを把握したり、Entityの追加を行いながらIntents作成が出来ることは作業がはかどるポイントになってくると思います。
今回は、TrainingとEntityの新たな発見について述べました。
ChatBotについて気になった方、このようなものづくりに携わりたいと思った方!お気軽に下のボタンよりお問い合わせください!