• En
  • /
  • Jp
  • Watson APIを使ってチャットボットに自動会話をさせよう

    2016.11.30
    • Share
    • Twitter
    • Google+
    • はてなブックマーク

    introduction

    皆さんこんにちは!Commudeのグレックです。
    今日は最近の課題についてお話ししたいと思います。課題は、Watsonで日本語が話せるチャットボットを作ることです。その目的はユーザーに対し各プロジェクトの担当者名を伝えさせることです。サービスでは日本語が正式にサポートされていないため(2016年10月25日現在)、作ることは難しく、dialogの設定方法を探す必要があります。実用的なチャットボットを作るためには、果たして日本語のキーワードと文を入力するだけでよいのでしょうか?
    それでは、試してみましょう!

    目次
    1.チャットボットサービスのの起動方法
    2.Dialog(対話)サービス
    3.Dialogを開く

    1.チャットボットサービスの起動方法

    まず、カタログページから[conversation]APIを選択します。

    次に、conversationサービスの新しいインスタンスを作成しましょう。
    すると、数秒後にconversationサービスページが現れます。

    右下、緑のボタン「 Launch Toolをクリックすると、下記の画面が読み込まれます。

    次の画面で、ワークスペース、つまりプロジェクトそのものを作成しましょう。 中央の[create]をクリックし、プロジェクト名(Name)を決め、簡単な説明(Description)を入力します。

    今回のプロジェクト名は、画面のように、シンプルに「 Test 」という名前にしました。

    これで、conversationサービスのインストールは完了です。
    次からがようやく、チャットボットの設定をしていきます。[Get Started]をクリックする時がやってきました!

    2.Dialog(対話)サービス

    Dialogとは会話の流れを組み立て管理するメニューです。
    Watsonが正しく返答出来るように、今度はdialogのパラメーターを設定する必要があります。
    インターフェースを簡単に見てみましょう。
    作成したワークスペースをクリックするとこんな画面が表示されます。

    ■トップメニューの見方

     トップメニューは、至ってシンプルです。

    現在のプロジェクト名(Test)・・・A back to workspace button.
    Intents・・・トピックリスト(話題・質問)のことです。トピックごと5つ以上の表現が必要です。
    Entities・・・ユーザーが使用する主語のリストのことです。
    Dialog・・・Dialogを作成し、会話の流れを管理することができます。
    Improve・・・Watsonの改良をサポートします。まだ試していません。
    チャットアイコン

    メインオプションは[Intents],[Entities],[Dialog] and [improve]です。
    [create new+]ボタンをクリックし、新しいintentsを作成してみましょう。

    ■実際に文章を入力してみましょう

    チャットの基本は挨拶です。では文章を追加してみましょう!
    greetings」(挨拶)というintent名を付け、#を先頭に付けます。
    また、つづりが異なる一般的な日本語の挨拶文なども加えていきます。

    作成したら、右上の[Create]をクリックします。

    intentリストに戻ってきました。 今回の目的は、特定のプロジェクトの担当者名を表示させることなので、「who is in charge (担当者は誰で すか)」というトピックに関連するキーワードリストを作成します。 これで、担当者に関するトピックが作成されました。 人物名またはプロジェクト名が挙げられることが予想されます… Entitiesを定義する時がやってきました! [Entities]をクリックします。

    担当者とその担当プロジェクトをこの画面で定義しなければなりません。
    [Create New]をクリックします。

    フォームに記入していきます。
    記入後は、[create]をクリックします。これでentitiesリストに戻ります。

    名前をクリックすることにより、entity編集と変更ができます。

    ここで、名前のASCII(ローマ字)バージョンを追加します。

    ※カタカナver,ローマ字verなど、別の名称を追加したい場合に使います。
    [Projects] entityでも同じ作業をします。
    これで、@projectsと@person_in_chargeと2つのentityを作りました。

    3.Dialogを開く

    [Dialog]をクリックすると、下記の画面が現れます。
    次に、[create]をクリックし、チャットツリーを構成します。

    まずは一般的な歓迎メッセージから始めてみましょう。

    Anything else」では、デフォルト文として「Commudeのチャットです」という正式な文を入力します。

    正式な文を入力したため、メッセージを起動する条件を設定しました。
    [Enter a condition]フィールドに#greetingsを追加して下さい。
    右上にあるチャットアイコンをクリックして試してみましょう。

    このように、デフォルト文が発生します。
    [Enter something to test your bot]というフィールドが一番下にあります。
    例えば、「test」と入力してみましょう。

    • 試しに入れてみた「test」は、一般的な歓迎メッセージではないにも関わらず、入力後にWatsonの歓迎メッセージが表示されてしまいます…。
      他の条件でdialogを追加してみましょう。
      プロジェクトに関するメッセージが発生するかを試してみます。下記を追加します。

    条件: @projects AND true.

    キーワードの一つは「人工知能」です。 このキーワードを使った場合、一体どのようなことが起きるのでしょうか?

    Watsonはキーワードを認識していますが、期待していたメッセージを出力してくれません…。 右の+をクリックし、分岐にサブdialogueを追加してみましょう。

    文を入力する必要があります…。
    プロジェクトのキーワード「人工知能」をもう一度試してみましょう…
    上手くいかないようです。

    期待通りの応答をしてくれません…
    [continue from]を試してみても、同じです…
    「テスト」というキーワードをプロジェクトのIntentsに追加する場合、どういうことが起きるでしょうか?

    • この部分ではもっと時間をかける必要があるみたいです!

    to be continued…