前回は、ユーザーおよびチャットボットの発言が、相手方に伝わるまでの仕組みを解説しました。今回は、チャットボットのプログラムについて説明します。チャットボットのプログラムが行う処理の流れや、開発に使うプログラミング言語、そしてチャットボットの開発を支援する開発環境について解説します。
第3回「チャットボットの開発」を解説していきます。
1. チャットボットのプログラム
チャットボットのプログラムが行う基本的な処理は、ユーザーの発言を受信し、その発言に対する応答を送信することです。チャットボットによって違いはありますが、大まかな処理の流れは多くのチャットボットで共通しています。図1 にチャットボットのプログラムの処理の流れを示します。
最初に行うのは、入力したユーザーの発言を解析する処理です。多くのチャットボットは、発言のテキストにキーワード(特定の言葉)が含まれているかどうかを調べて、そのキーワードに対応する動作をします。例えば、テキストに「おはよう」という言葉が含まれていたら「おはようございます!」と応答し、「天気」という言葉が含まれていたら天気予報を応答する、といった要領です。自然言語処理と呼ばれる、人間が日常的に使っている言語をコンピュータに解析させる技術を利用して、より複雑な解析を行うチャットボットもあります。
次に行うのは、応答を作成するための情報を取得する処理です。この処理は必要に応じて行います。例えば「おはようございます!」のような単純な応答をするだけならば、この処理は不要です。一方で、例えば天気予報や商品価格などを提供するには、データベースやWeb API(ウェブエーピーアイ)などを使って、これらの情報を取得する必要があります。Web API は、インターネット経由でいろいろな情報を取得したり操作したりするための仕組みで、近年広く活用されています。WebAPI を活用すると、さまざまな情報を扱う高機能なチャットボットを、比較的簡単に開発することが可能です。
最後に行うのは、ユーザーに対して出力する応答を作成する処理です。一番簡単なのは「おはようございます!」のような、あらかじめ決められたテキストを応答する方法です。次に簡単なのは「明日の○○の天気は□□です。」のような定型文を用意しておき、取得した情報を○○や□□の部分に埋め込んで、応答を作成する方法です。このほかに、記録しておいたユーザーの過去の発言を流用して応答を作る方法などもあります。
ユーザーの発言やチャットボットの応答は、前回紹介した JSON(ジェイソン)という形式で表現することが一般的です。例えば LINE(ライン)の場合、「Hello!」というユーザーの発言は次のような JSON データ(JSON 形式のデータ)としてチャットボットに届きます(図2)。このJSON データは、ユーザーID、テキスト、リプライトークン、タイムスタンプなどを含んでいます。ここでは「...」のように値を省略しましたが、実際には「123456789...」のような数値が記入されています。
2. チャットボットのプログラミング言語
プログラミング言語は、プログラムを開発するために使う人工言語です。プログラミング言語には非常に多くの種類があり、それぞれ得意とする分野が違います。
チャットボットのプログラムを開発するために使えるプログラミング言語には、例えばGo(ゴー)、Java(ジャバ)、JavaScript(ジャバスクリプト)、Per(l パール)、PHP(ピーエイチピー)、Python(パイソン)、Ruby(ルビー)などがあります。これらはLINE 用のチャットボット開発環境であるLINEMessaging API SDK(ライン・メッセージング・エーピーアイ・エスディーケー)が対応しているプログラミング言語を、アルファベット順に並べたものです。
これらのプログラミング言語は、ウェブサイトの構築によく使います。実はチャットボットのプログラムは、ウェブサイトのプログラムとよく似た処理を行うので、ウェブサイト用のプログラミング言語が向いているのです。一方、C(シー)やC++(シープラスプラス)など、先ほどは挙げなかったプログラミング言語を使ってチャットボットを開発することも不可能ではありません。
登録商標・商標:
LINE は、LINE 株式会社の商標または登録商標です
3. チャットボットの開発環境
全6回で下記の内容を解説しています。
- 第1回 チャットボットとは
- 第2回 チャットボットの仕組み
- 第3回 チャットボットの開発
- 第4回 簡単なチャットボットを作ってみよう~あいさつボット
- 第5回 実用的なチャットボットを作ってみよう~割り勘ボット
- 第6回 Web APIを使ったチャットボットを作ってみよう~価格検索ボット