API.AIってなに?
API.AIは自然言語で会話できるボットを作るためのツール(API)を提供するサービスです。2016年9月にAPI.AIのチームをGoogleが買収しました。
API.AIを育てると頭が良くなる!
自然言語には、分かりにくい表現や特定の環境でのみ使用する言葉が存在します。こういった微妙なニュアンスの違いや、業界用語、方言などをAPI.AIに学習させれば適切な処理を行う手助けをしてくれます。
API.AIのすごいところ
★SDKが豊富
以下のプラットフォームのSDKを提供しています。
- Android
 - iOS / Watch OS / Mac OS X
 - Ruby
 - Webkit HTML5
 - Javascript
 - Node.js
 - Cordova
 - Unity
 - .NET(WP8,W10)
 - C++
 - Xamarin
 - Python
 - PHP(Community supported)
 - Java
 
★ノンコーディングで作成できるシンプルなコンソールを提供している
API.AIを使ってみよう
コーディングが不要なので非エンジニアでもできます。
API.AIの登録
API.AIでサインアップをしてください。
Create new agentをクリック
以下の内容で保存します
- Agent name:ラーメン
 - Agent type:Public
 - DESCRIPTION:これはラーメン屋のプロジェクトです
 - LANGUAGE:日本語
 - DEFAULT TIME ZONE:(GMT+9:00) Asia/Tokyo
 
Entitiesを作成する
Agentの作成が終わったらEntitiesというタブをクリックしてください。
Entities名にRamenMenuと入れます。
Entitiesは自然言語を認識するための単語をまとめておくところです。
Entryにラーメンのメニューをどんどん入れていきます。
Enter reference value...には idを
Enter sysnonym... には キーワードになる単語を入れてください。
入力が終わったら保存します。
Intentsの作成
自然言語を処理するIntentsを作成します。IntentsタブよりIntents編集画面を開きCreate Intentをクリックしてください。
Intent nameにOrderと入れます。
Action にorderといれます。
User says に「RamenMenuをお願いします。」と入力し、RamenMenuをクリックし先ほど作成したRamenMenuを選択します。
すると自動的にPARAMETER NAME ENTITY VALUEが入ったと思います。
最後にText responseに「かしこまりました。」と登録します。
入力が終わったら保存しましょう。
話しかける
右のテキストバーから、テキストもしくは音声で「味噌ラーメンをお願いします。」と入力してください。
このように「かしこまりました」と結果が帰ってくれば成功です。
Show jsonをクリックすれば詳しい情報を取得することができます。
{
  "id": "",
  "timestamp": "2017-02-23T06:44:00.057Z",
  "lang": "ja",
  "result": {
    "source": "agent",
    "resolvedQuery": "味噌ラーメンをお願いします",
    "action": "order",
    "actionIncomplete": false,
    "parameters": {
      "RamenMenu": "miso_ramen"
    },
    "contexts": [],
    "metadata": {
      "intentId": "",
      "webhookUsed": "false",
      "webhookForSlotFillingUsed": "false",
      "intentName": "Order"
    },
    "fulfillment": {
      "speech": "かしこまりました。",
      "messages": [
        {
          "type": 0,
          "speech": "かしこまりました。"
        }
      ]
    },
    "score": 1
  },
  "status": {
    "code": 200,
    "errorType": "success"
  },
  "sessionId": ""
}
ちゃんとこの2つが取れましたね。あとはこの情報をもとに適切な処理を行えば、BOTの完成です。簡単ですね。
"action": "order"
"RamenMenu": "miso_ramen"
失敗した時/他の言葉で注文したい時
失敗した時はとにかくUser sayに入力し学習させてください。使えば使うほど頭が良くなります。またこのままだと1対1のコマンドなだけなので、どんどんユーザーが発しそうな言葉を予想してUser saysに入力します。
学習させる(保存を忘れずに!!)
まとめ
いかがだったでしょうか。API.AIを使用すれば簡単に自然言語処理のツールを作成することができます。API.AIを活用し、自分のサービスに自然言語を活用したインターフェイスを採用してみてはいかがでしょうか。


