投稿日:

    カテゴリー 技術 / デザイン / 制作

    LINE BOTにも対応!賢いチャットボットの作り方

    こんにちは、バイタイリフィでチャットボットAIのコンサルをしています神尾です。
    この記事では弊社Webチャットサービス「FirstContact」にも対応している「Watson Assistant」を使ったチャットボットについて、精度の高い会話シナリオ作成のコツを解説したいと思います。

    Watson Assistantとは?

    「人工知能ワトソン」といえば、クイズ大会で優勝したり医学論文を読んだりで有名な、言語処理AI界のトップランナーです。
    IBMが開発しました。
    「Watson Assistant」は、そのワトソンのテクノロジーを使ったチャットボットシステムです。

    ※「チャットボットとは何か」についてはこちらのページで解説しています

    とはいえ、言語処理能力に関してはGoogleの「Dialogflow」などの他のプラットフォームとも大差なくなってきています。
    「Watson Assistant」が優位なのは、ユーザーインターフェイスの使いやすさです。これは他の企業に比較してサービスの歴史が長いからでしょうね。

    本日は「Watson Assistant」について解説しますが、他のシステムもおおむね仕組みは一緒ですので、参考になる部分はあるかと思います。

    本当にAIなの?

    チャットボットのお仕事をしていてよく言われるのは、お客様にチャットボットの仕組みについて説明すると、「これってAIじゃなくない・・?」といったご意見です。

    その気持ち、すごくわかります。
    というのも、チャットボットというのは基本的に固定の回答しかできないツールなのです。
    単語を組み合わせて、自分で文章を作ったり、目的を持ったり、会話相手がどんな人なのかを考えたり、私たちが「AI」と聞いて想像するほど高機能ではないのです。

    でも、まったくAIではないとも言えません。
    先ほど言語処理のお話をしましたが、チャットボットの仕組みのうち、入力テキストを解析する機能で、人工知能が使われております。
    これは、「自然言語処理(NLP=natural language processing)」と呼ばれる人工知能のhotな研究分野で、とっても優れたAIなのです。

    チャットボットAPIサービスが言葉を解析する仕組み

    クイズ大会に優勝した博識なワトソンさんですが、私たちが「Watson Assistant」で使うことができる人工知能は、何の単語も知らない赤ん坊の脳みそです。
    最低限の日本語のルールだけを知っている状態です。

    そのため、ユーザーが
    「今日の天気は何ですか?」
    と問いかけたとしても、「今日」とか「天気」などの言葉を知らないため、何の解析もできない状態なのです。

    そのため、人間(使う側)がワトソンに会話のデータを入力していくことが必要になります。

    『今日の天気は何ですか?』と聞かれたときは、『今日はよく晴れています』と答えて」というように登録していきます。

    そうするとここが人工知能の賢いところで、例えば
    「天気はどうですか?」といった異なる文章にも、『今日はよく晴れています』と答えることができるわけです。
    これは、「天気」「ですか」という言葉をワトソンが覚えたからですね。

    でも、「今日の晩御飯は何ですか?」なんていう質問にも、『今日はよく晴れています』と答えてしまいます。
    「今日」「ですか」という言葉が一致しているから、これは仕方のないことですね。

    チャットボットに言葉を教える

    「今日の晩御飯は何ですか?」という言葉に反応しないようにするにはどうすればいいでしょうか?4つの方法を紹介します。

    1.別の文章として登録する

    一番簡単なのは、「今日の晩御飯は何ですか?」という言葉を別の文章として登録することです。
    「『今日の晩御飯は何ですか?』と聞かれたときは、『チャーハンです』と答えて」
    というように登録してしまえばよいのです。

    2.言葉を忘れさせる

    Watson Assistantでは、一度ワトソンに覚えさせた言葉を削除したり変更することができます。
    さきほど、「今日の天気は何ですか?」という言葉を覚えさせたわけですが、これを「天気は何ですか?」に変えてしまえば、「今日」という言葉に反応しなくなります。

    3.複数の文章を同じ意味として登録する

    『天気について』と『今日の天気は何ですか?』は同じ質問だよ」という風に登録します。
    そうすると、「両方の文章に含まれる『天気』という言葉が特に重要なんだな」と学習してくれるため、「天気」が含まれない文章に反応しにくくなります。

    4.「天気」というキーワードを特別なキーワード(Entity)として登録する

    「天気」というキーワードが含まれる場合のみ、『今日はよく晴れています』と返すようにします。
    これにより、確実に天気という言葉が含まれる場合にのみ反応します。

    チャットボットを鍛えるコツ

    今回のケースだと、「天気」が重要な言葉であることを教えたいため、「3」または「4」を行うのが有効そうです。
    チャットボットがより正しく言葉に反応するには、いろんな手法を組み合わせて調整していくことが重要です。

    まとめ

    人工知能は、どのような動きをするのが予測できなくて難しいですよね。
    チャットボットを作っているけれども、なかなかうまく答えてくれない・・という方は、こちらのサイトまで質問・お問い合わせください。

    AI対応型Webチャット FirstContact