【人工知能】WatsonでBotを体験してみた(手順あり)【Bot】

【人工知能】WatsonでBotを体験してみた(手順あり)【Bot】

人工知能に触れたい!作ってみたい!!

そう思って勉強会に参加してきました。

今回はIBMのWatsonを使用して自然言語の理解・学習をするBotを作成・体験したのでその記録。

実際に使える様になるまでの手順ありです。

このWatsonを利用してLine Botを作成したりしています。(そちらも記事にしたい・・・)

事前知識

本記事で出てくるキーワードについて簡単な説明です。直接サービスに触れてみての印象やHPからの言葉を噛み砕いて記載しています。本記事で頻繁に出てきます。

Watson

IBMが開発した人工知能。様々なAPIを提供している。自然言語を理解・学習することが出来る。質問応答システム・意思決定支援システム

Watson Assistant

Watsonを使用し、ユーザー・コンピューター間の自然言語で対話可能なアプリケーションを簡単に開発するためのサービス。無料利用プランが存在し、簡単に人工知能・自然言語を利用したアプリケーションに触れることが出来る。自動応答のBot、カスタマーサービスなどに利用されている。

Intent

Watson Assistantでアプリケーション開発する際に使用されるキーワード。質問に対する目的または目標・意図のことです。 使用者の入力で表現されたIntent(意図)を認識することによって、Watson Assistant サービスは、そのIntentに応答するための正しいダイアログ・フローを選択することができます。

Dialog

使用者の入力で表現されたIntent(意図)からWatsonが返答するフローを設定、可視化したもの。

事前準備

IBM Developerアカウント

以下のリンクからIBMのDeveloperアカウントを作成してください。

https://www.ibm.com/watson/developer

IBM CloudでWatsonの設定

My IBMからIBM Cloudを起動

IBMアカウントを作成したら「My IBM」から【IBM Cloud】を起動します。

IBM CloudでWatson Assistantを作成・起動

【IBM Cloud】を起動したらカテゴリから【Watson Assistant】を選択します。

Watson Assistantを選択すると以下を設定してインスタンスを作成します。

  • プラン
  • サービス名

プランは【ライト】を選択します。様々な制限がありますがお試しで触れてみるには十分すぎる機能が利用できます。※ライトプラン以外は費用が発生します。

サービス名は任意で設定できます。

Watson Assistantを起動・設定

作成した【Watson Assistant】を起動します。

【IBM Cloud】のリソースから作成した【IBM Assistant】のサービス名を検索→選択します。

すると以下の様な画面が開くので起動を選択します。

Watson AssistantでAssistantを作成

【Watson Assistant】を起動したら新しいページが開きます。そこからCreate Assistantを選択し、Assistant名と説明(任意)を入力します。

Dialog Skillを作成・設定する

Dialogでは受け取った文字・文章から、言葉を分析し返答する内容を設定していきます。

テンプレート Intent(意図)を使用する

今回はあらかじめ用意されているテンプレートを使用して、Watson-人工知能-による言語解析を体験していきます。

作成したDialog Skillを選択し、新たにSkillを設定していきます。

Add to skill を選択することでIntentsのセットが設定されます。

今回は一般的な会話のセットを利用したので挨拶や簡単な質問のIntent(意図)がセットされています。

それぞれのIntentの中に属する言葉が設定されています。設定されている言葉に類する文字かをWatsonが判断します。

一覧から選択すると以下の様な画面開きます。

Try itを選択して言葉を入力してみましょう。どんな言葉がとのIntent(意図)に属するかを確認することができます。

Dialogを設定する

Intentでは言葉の意味付けを設定しました。

Dialogでは会話の流れを設定します。

Nodo毎に情報を追加します。今回は簡単に以下を設定します。

  • 挨拶されたら返事を返す。
  • 返事の内容はランダム(2パターン)

赤枠を設定したらTry itで挨拶を入力してください。Watsonが挨拶と判断した言葉の場合は設定した返事が返ってきます。

学習させる

想定外の言葉を受け付けた場合、Watsonはその言葉を識別・分類することができません。この場合、人の手で言葉を分類させることでWatsonを学習させる必要があります。

言葉の意図(Intents)を人の手で教えてあげましょう。ここでは挨拶に分類するため「#General_Greetings」を選択しました。

学習後は同じ様な言葉を受け取った場合は、学習させた意図(Intents)に分類されます。

Watson Assistantに触れてみて

便利です。アプリ(LINEやオリジナルのもの)との連携も知識さえあればすぐに使えてしまいます。

ハードルの高さは「自然言語の理解」に関する知識でしょうか・・・

Watsonに自然言語を学習させる必要があります。如何に効率よく、無駄なく学習させるかは専門の知識、経験が必要ではないでしょうか?

そういった知識がない場合、利用するハードルが上がるでしょう。

そもそも自然言語(ユーザーが入力する文章)を理解させる必要がなければ、データベース化された固定文、定型文のBotで事足りますしね。(例:某黒猫LINE Bot、〒のLINE Bot etc)

サービスを利用する時代

Watsonのサービスを利用するには、プログラミングの知識が(ほぼ)必要ありません。頑張ってプログラムを覚えて、自然言語を理解・学習させるシステムを構築するよりも、既存サービスを利用するのみの方が圧倒的にコストが低いです。

オリジナリティ溢れる自社システムを構築したい場合を除けば、現時点で世の中で既に利用されているサービスで事足ります。

この際に必要なのは、「サービスを利用する知識」ですね。

「Amazon Web Services」 だったり「Google Cloud Platform」だったりと、クラウド・APIサービスを利用してシステムを組み上げることが前提となってきています。

プログラム言語を勉強して仕事に使用している身としては辛い部分がありますが、時代の流れに取り残されない様にこれらのサービスの利用方法を勉強していかなくてはと感じました。

技術カテゴリの最新記事