(57)【要約】【課題】ユーザーはプログラム言語を使用せずにボットに所望の動作を簡単に実行させることができるボットシステムのプログラムを提供する。【解決手段】ボットシステムのプログラムは、サーバのボットが、ユーザー端末から文字データを受信したことにより入力の有無を判定する入力判定ステップＳ１と、ボットが、文字データを事前に登録された辞書データベースを参照して動作コマンド、目的パラメータまたは別の文字データに変換する情報変換ステップＳ２と、ボットが、動作コマンドおよび目的パラメータを実行する実行ステップＳ４とを具備している。【選択図】図２
2020102090.tif 000002
【特許請求の範囲】
【請求項１】
ユーザー端末とサーバとの間で文字データを通信自在なボットシステムのプログラムであって、
前記サーバのボットが、前記ユーザー端末から文字データを受信したことにより入力の有無を判定する入力判定ステップと、
前記ボットが、前記文字データを事前に登録された辞書データベースを参照して動作コマンド、目的パラメータまたは別の文字データに変換する情報変換ステップと、
前記ボットが、前記動作コマンドおよび目的パラメータを実行する実行ステップとを具備していることを特徴とするボットシステムのプログラム。
【請求項２】
前記ボットが、変換後の動作コマンド、目的パラメータまたは別の文字データを実行可能か否か判定する実行可能判定ステップをさらに具備し、
前記ボットが、実行不可と判定したとき、文字データを事前に登録された辞書データベースを参照して動作コマンド、目的パラメータまたは別の文字データに変換する情報変換ステップを再度行う構成であることを特徴とする請求項１に記載のボットシステムのプログラム。
【請求項３】
前記情報変換ステップの前段階において、受信した文字データを形態素解析または分かち書きルールで区切ってユーザーの意図を把握するとともに意図にとって意味のある単語を把握する意図把握ステップをさらに具備し、
前記情報変換ステップにおいて、ボットが、ユーザーの意図、意図にとって意味のある単語の順で所定の動作コマンドや目的パラメータに変換する構成であることを特徴とする請求項１または請求項２に記載のボットシステムのプログラム。
【請求項４】
前記意図にとって意味のある単語とされた文字データの目的パラメータが複数あり、
複数の目的パラメータが、前記ユーザーの意図の動作コマンドに応じて関連づけされて辞書データベースに登録されている構成であることを特徴とする請求項３に記載のボットシステムのプログラム。
【請求項５】
マイクと、スピーカと、通信手段と、制御手段と、サーバのデータベースとを備えた人工知能スピーカシステムのプログラムであって、
前記制御手段が、前記マイクから入力された音声データの有無を判定する入力判定ステップと、
前記制御手段が、入力された音声データまたは音声データから変換された文字データを事前に登録されたサーバの辞書データベースを参照して動作コマンド、目的パラメータまたは別の文字データに変換する情報変換ステップと、
前記制御手段が、前記動作コマンドおよび目的パラメータを実行する実行ステップとを具備していることを特徴とする人工知能スピーカシステムのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザー端末とサーバとの間で文字データを通信自在なボットシステムのプログラム、および、マイクとスピーカと通信手段と制御手段とサーバのデータベースとを備えた人工知能スピーカシステムのプログラムに関する。
【背景技術】
【０００２】
従来、コンピュータで読み取り可能な命令を実行するように実現される少なくとも１つのプロセッサを含み、少なくとも１つのプロセッサは、質問データを選択し、メッセージングサービスに登録されたユーザーのうち少なくとも１つのユーザーのアカウントとメッセージングサービスに登録された人工知能アカウントとの間に設定された通信セッションを確認し、質問データを人工知能アカウントのインスタントメッセージとして確認された通信セッションを通じて少なくとも１つのユーザーに送信し、確認された通信セッションを通じて少なくとも１つのユーザーから質問データに対する返答データを受信し、質問データおよび受信した返答データに基づいて人工知能のための学習データを生成する人工知能学習システムが知られている（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１７−１５３０７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した従来の人工知能学習システムは、人工知能とユーザーとを端末を介してテキストデータで対話させて人工知能に学習させる構成であったため、ユーザーの命令を予め学習する必要があり、ユーザーはプログラム言語を使用せずにボットに所望の動作を簡単に実行させることが困難であるという問題があった。
【０００５】
そこで、本発明は、前述したような従来技術の問題を解決するものであって、すなわち、本発明の目的は、ユーザーはプログラム言語を使用せずにボットに所望の動作を簡単に実行させることができるボットシステムのプログラム、および、人工知能スピーカシステムのプログラムを提供することである。
【課題を解決するための手段】
【０００６】
本請求項１に係る発明は、ユーザー端末とサーバとの間で文字データを通信自在なボットシステムのプログラムであって、前記サーバのボットが、前記ユーザー端末から文字データを受信したことにより入力の有無を判定する入力判定ステップと、前記ボットが、前記文字データを事前に登録された辞書データベースを参照して動作コマンド、目的パラメータまたは別の文字データに変換する情報変換ステップと、前記ボットが、前記動作コマンドおよび目的パラメータを実行する実行ステップとを具備していることにより、前述した課題を解決するものである。
【０００７】
本請求項２に係る発明は、請求項１に記載されたボットシステムのプログラムの構成に加えて、前記ボットが、変換後の動作コマンド、目的パラメータまたは別の文字データを実行可能か否か判定する実行可能判定ステップをさらに具備し、前記ボットが、実行不可と判定したとき、文字データを事前に登録された辞書データベースを参照して動作コマンド、目的パラメータまたは別の文字データに変換する情報変換ステップを再度行う構成であることにより、前述した課題をさらに解決するものである。
【０００８】
本請求項３に係る発明は、請求項１または請求項２に記載されたボットシステムのプログラムの構成に加えて、前記情報変換ステップの前段階において、受信した文字データを形態素解析または分かち書きルールで区切ってユーザーの意図を把握するとともに意図にとって意味のある単語を把握する意図把握ステップをさらに具備し、前記情報変換ステップにおいて、ボットが、ユーザーの意図、意図にとって意味のある単語の順で所定の動作コマンドや目的パラメータに変換する構成であることにより、前述した課題をさらに解決するものである。
【０００９】
本請求項４に係る発明は、請求項３に記載されたボットシステムのプログラムの構成に加えて、前記意図にとって意味のある単語とされた文字データの目的パラメータが複数あり、複数の目的パラメータが、前記ユーザーの意図の動作コマンドに応じて関連づけされて辞書データベースに登録されている構成であることにより、前述した課題をさらに解決するものである。
【００１０】
本請求項５に係る発明は、マイクと、スピーカと、通信手段と、制御手段と、サーバのデータベースとを備えた人工知能スピーカシステムのプログラムであって、前記制御手段が、前記マイクから入力された音声データの有無を判定する入力判定ステップと、前記制御手段が、入力された音声データまたは音声データから変換された文字データを事前に登録されたサーバの辞書データベースを参照して動作コマンド、目的パラメータまたは別の文字データに変換する情報変換ステップと、前記制御手段が、前記動作コマンドおよび目的パラメータを実行する実行ステップとを具備していることにより、前述した課題を解決するものである。
【発明の効果】
【００１１】
本発明のボットシステムのプログラムは、ユーザー端末とサーバとの間で文字データを通信することができるばかりでなく、以下のような特有の効果を奏することができる。
【００１２】
本請求項１に係る発明のボットシステムのプログラムによれば、辞書データベースに事前に登録された内容をユーザーがユーザー端末において入力情報として入力するだけで所定の動作コマンド、目的パラメータまたは別の文字データに変換されて実行可能な場合はボットによって実行されるため、ユーザーはプログラム言語を使用せずにボットに所望の動作を簡単に実行させることができる。
【００１３】
本請求項２に係る発明のボットシステムのプログラムによれば、請求項１に係る発明が奏する効果に加えて、想定内の誤字入力の場合、音声から想定内で誤字文字データへ変換された場合、１回目の変換において誤字を正すように変換され、２回目の変換において文字データから所定の動作コマンドや目的パラメータに変換されて、２回目の実行可能判定ステップにおいて実行可能と判定されるため、ボットは入力誤差を吸収して所望の動作を簡単に実行することができる。
また、所定の動作コマンド、目的パラメータへ変換可能な文字データの短縮された短縮文字データで入力された場合、１回目の変換において所定の動作コマンドや目的パラメータに変換可能な文字データに変換されて、２回目の変換において文字データから所定の動作コマンドや目的パラメータに変換されて、２回目の実行可能判定ステップにおいて実行可能と判定されるため、ユーザーは短縮文字データを入力するだけでボットに所望の動作を簡単に実行させることができる。
【００１４】
本請求項３に係る発明のボットシステムのプログラムによれば、請求項１または請求項２に係る発明が奏する効果に加えて、ユーザーの意図が把握されるため、入力された文字データと動作コマンドとのずれを最小または無にすることができる。
【００１５】
本請求項４に係る発明のボットシステムのプログラムによれば、請求項３に係る発明が奏する効果に加えて、ユーザーの意図（インテント）である動作コマンドに応じて意図にとって意味のある単語（エンティティ）である目的パラメータが関連付けされているため、入力された文字データと動作コマンドおよび目的パラメータとのずれを最小または無にすることができる。
【００１６】
本請求項５に係る発明の人工知能スピーカシステムのプログラムによれば、請求項１に係る発明が奏する効果と同様、辞書データベースに事前に登録された内容をユーザーが人工知能スピーカシステムのマイクにおいて入力情報として入力するだけで所定の動作コマンド、目的パラメータまたは別の文字データに変換されて実行可能な場合は制御手段によって実行されるため、ユーザーはプログラム言語を使用せずに制御手段に所望の動作を簡単に実行させることができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施例であるボットシステムおよび人工知能スピーカシステムの概念を示す図。
【図２】本発明の実施例であるボットシステムおよび人工知能スピーカシステムの動作を示す図。
【図３】（Ａ）（Ｂ）は入力された文字データ、変換後のデータおよび辞書データベースの例を示す図。
【図４】（Ａ）（Ｂ）は入力された文字データ、１回目の変換後のデータおよび２回目の変換後のデータの例を示す図。
【図５】（Ａ）（Ｂ）は入力された文字データおよび変換後のデータの例を示す図。
【図６】（Ａ）〜（Ｃ）は入力された文字データ、変換後のデータおよび辞書データベースの例を示す図。
【発明を実施するための形態】
【００１８】
本発明のボットシステムのプログラムは、サーバのボットが、ユーザー端末から文字データを受信したことにより入力の有無を判定する入力判定ステップと、ボットが、文字データを事前に登録された辞書データベースを参照して動作コマンド、目的パラメータまたは別の文字データに変換する情報変換ステップと、ボットが、動作コマンドおよび目的パラメータを実行する実行ステップとを具備していることにより、ユーザーはプログラム言語を使用せずにボットに所望の動作を簡単に実行させることができるものであれば、その具体的な実施態様は、如何なるものであっても構わない。
例えば、ユーザー端末は、デスクトップ型パーソナルコンピュータ端末、ノート型パーソナルコンピュータ端末、スマートフォン端末、タブレット端末などの情報を送受信するものであって、所謂インターネットである広域ネットワーク、ローカルネットワーク、電話回線などを含む通信ネットワークによりサーバと接続自在なものであれば如何なるものであっても構わない。
また、サーバは、１つのサーバやクラウド上の複数のサーバでもよい。
さらに、ユーザー端末とサーバとの通信は、無線通信や有線通信でチャットアプリケーションソフトウェアを用いてボットと対話するチャットボット形式でもよいし、電子メールソフトウェアを用いてボットと対話する形式でもよい。
【００１９】
本発明の人工知能スピーカシステムのプログラムは、制御手段が、マイクから入力された音声データの有無を判定する入力判定ステップと、制御手段が、入力された音声データまたは音声データから変換された文字データを事前に登録されたサーバの辞書データベースを参照して動作コマンド、目的パラメータまたは別の文字データに変換する情報変換ステップと、制御手段が、動作コマンドおよび目的パラメータを実行する実行ステップとを具備していることにより、ユーザーはプログラム言語を使用せずに制御手段に所望の動作を簡単に実行させることができるものであれば、その具体的な実施態様は、如何なるものであっても構わない。
例えば、制御手段を有する端末と、データベースを有する端末とが別体の構成でもよいし、共通の構成でもよい。
言い換えると、制御手段をマイクおよびスピーカと一緒の端末に設けた構成でもよいし、データベースを有するサーバと一緒の端末に設けた構成でもよい。
制御手段およびデータベースは、１つのサーバやクラウド上の複数のサーバに設けられた構成でもよい。
【実施例】
【００２０】
以下に、本発明の実施例であるボットシステム１００Ａのプログラムおよび人工知能スピーカシステム１００Ｂのプログラムについて、図１乃至図５（Ｂ）に基づいて説明する。
ここで、図１は、本発明の実施例であるボットシステム１００Ａおよび人工知能スピーカシステム１００Ｂの概念を示す図であり、図２は、本発明の実施例であるボットシステム１００Ａおよび人工知能スピーカシステム１００Ｂの動作を示す図であり、図３（Ａ）は、入力された文字データ、変換後のデータの例を示す図であり、図３（Ｂ）は、辞書データベース１２１の例を示す図であり、図４（Ａ）は、入力された短縮の文字データ、１回目の変換後のデータおよび２回目の変換後のデータの例を示す図であり、図４（Ｂ）は、入力された誤字の文字データ、１回目の変換後のデータおよび２回目の変換後のデータの例を示す図であり、図５（Ａ）は、「教えて」をインテント（ユーザーの意図）として捉えた場合の入力された文字データおよび変換後のデータの例を示す図であり、図５（Ｂ）は、「何？」をインテント（ユーザーの意図）として捉えた場合の入力された文字データおよび変換後のデータの例を示す図であり、図６（Ａ）および図６（Ｂ）は、入力された文字データおよび変換後のデータの例を示す図であり、図６（Ｃ）は、辞書データベースの例を示す図である。
【００２１】
本発明の実施例であるボットシステム１００Ａは、図１に示すように、ユーザー端末の一例であるスマートフォン端末１１０Ａと、サーバ１２０とを備えている。
スマートフォン端末１１０Ａは、ボットシステム１００Ａのプログラムであるチャットアプリケーションソフトウェアによって、サーバ１２０との間で文字データを通信自在に設けられている。
ユーザーは、スマートフォン端末１１０Ａにおいて、表示部に表示されたキーボードによってチャットアプリケーションソフトウェアのチャット画面に文字を入力してもよいし、スマートフォン端末１１０Ａに設けられたマイクを用いて音声によって入力してもよい。
音声によって入力された場合、スマートフォン端末１１０Ａの制御部（プログラム）が、音声データを読み取って文字データに変換し、チャットアプリケーションソフトウェアのチャット画面に文字入力するように構成されている。
また、サーバ１２０は、データベースを有している。
データベースには、予め登録された辞書データベース１２１が保存されている。
【００２２】
また、本発明の実施例である人工知能スピーカシステム１００Ｂは、人工知能スピーカ端末１１０Ｂと、サーバ１２０とを備えている。
このうち、人工知能スピーカ端末１１０Ｂは、マイクと、スピーカと、通信手段とを備えている。
また、サーバ１２０は、制御手段（ボット、プログラム）と、データベースとを備えている。
そして、ユーザーが、人工知能スピーカ端末１１０Ｂに向かって話しかけると、マイクによって音声データとして入力され、音声データが、通信手段によってサーバ１２０へ送信される。
サーバ１２０は、受信した音声データを文字データに変換するように構成されている。
なお、人工知能スピーカ端末１１０Ｂにおいて、音声データから文字データへ変換され、文字データが、通信手段によってサーバ１２０へ送信されるように構成してもよい。
【００２３】
続いて、ボットシステム１００Ａおよび人工知能スピーカシステム１００Ｂの動作について詳しく説明する。
図１に示すように、スマートフォン端末１１０Ａのチャット画面には、ボットのアイコンが表示されている。
そして、一例として、ボットからの「こんにちは！  やりたいことを入力してください！」の旨のメッセージが表示されている。
つまり、ユーザーがチャット画面において入力自在な状態になっている。
ユーザーは、一例として、「佐藤さんにメール送信」と入力したとする（図３（Ａ）参照）。
なお、入力方式は、前述したように、テキスト入力でもよいし、音声入力して文字変換されてチャット画面に文字入力されてもよい。
【００２４】
すると、入力された「佐藤さんにメール送信」の文字データが、スマートフォン端末１１０Ａからサーバ１２０へ送信され、サーバ１２０が、「佐藤さんにメール送信」の文字データを受信する（図３（Ａ）参照）。
【００２５】
図２に示すように、ステップＳ１では、入力判定ステップとして、サーバ１２０のボットが、ユーザーのスマートフォン端末１１０Ａから「佐藤さんにメール送信」の文字データを受信したことにより入力の有無を判定する。
入力ありと判定した場合はステップＳ２へ進み、他方、まだ入力なしと判定した場合はステップＳ１を繰り返す。
【００２６】
ステップＳ２では、情報変換ステップとして、ボットが、「佐藤さんにメール送信」の文字データを事前に登録された辞書データベース１２１を参照して動作コマンド、目的パラメータまたは別の文字データに変換する。
具体的には、図３（Ａ）および図３（Ｂ）に示すように、ボットが、受信した「佐藤さんにメール送信」の文字データの文字毎に、サーバ１２０の辞書データベース１２１を参照する。
この際、「佐藤さん」および「メール送信」の文字が、図３（Ｂ）に示す辞書データベース１２１に登録されていることがわかる。
そして、「佐藤さん」の文字データを＜sato@abc.co.jp＞のパラメータに変換する。
同様に、「メール送信」の文字データを＜mailsend＞のコマンドに変換する。
つまり、図３（Ａ）に示すように、「佐藤さんにメール送信」の文字データが、＜sato@abc.co.jp＞に＜mailsend＞のコマンドおよびパラメータを含むデータに変換される。
【００２７】
ステップＳ３では、実行可能判定ステップとして、ボットが、変換後の動作コマンド、目的パラメータまたは別の文字データを実行可能か否か判定する。
この例では、「＜sato@abc.co.jp＞に＜mailsend＞」を実行可能な否か判定する。
＜sato@abc.co.jp＞宛に電子メールを送信すればよいので実行可能と判定した場合はステップＳ４に進み、仮に実行不可と判定した場合はステップＳ２を繰り返す。
【００２８】
ステップＳ４では、実行ステップとして、ボットが、動作コマンドおよび目的パラメータを実行する。
この例では、ボットが、サーバ１２０において、＜sato@abc.co.jp＞宛の電子メールの送信を実行する。
これにより、辞書データベース１２１に事前に登録された内容をユーザーがユーザーのスマートフォン端末１１０Ａにおいて入力情報として入力するだけで所定の動作コマンド、目的パラメータまたは別の文字データに変換されて実行可能な場合はボットによって実行される。
その結果、ユーザーはプログラム言語を使用せずにボットに所望の動作を簡単に実行させることができる。
【００２９】
実行後、一例として、ボットが、チャット画面において、「佐藤さんにメール送信しました！」とユーザーに報告するように構成してもよい。
なお、送信元のメールアドレスは、ユーザーのアドレスでもよいし、ボットのアドレスでもよい。動作コマンドにいずれかを登録しておけばよい。
また、電子メールの本文については、別途指定すればよい。この例では、理解しやすくするために、宛先のパラメータおよびメール送信の動作コマンドのみについて説明した。
【００３０】
以上、ボットシステム１００Ａのプログラムについて説明したが、人工知能スピーカシステム１００Ｂのプログラムについても同様である。
ステップＳ１では、入力判定ステップとして、制御手段が、マイクから入力された「さとうさんにめーるそうしん」の音声データの有無を判定する。
ステップＳ２では、情報変換ステップとして、制御手段が、入力された「さとうさんにめーるそうしん」の音声データまたは音声データから変換された「佐藤さんにメール送信」の文字データを事前に登録されたサーバ１２０の辞書データベース１２１を参照して動作コマンド、目的パラメータまたは別の文字データに変換する。
【００３１】
ステップＳ３では、実行可能判定ステップとして、制御手段が、変換後の動作コマンド、目的パラメータまたは別の文字データを実行可能か否か判定する。
ステップＳ４では、実行ステップとして、制御手段が、動作コマンドおよび目的パラメータを実行する。
これにより、辞書データベース１２１に事前に登録された内容をユーザーが人工知能スピーカシステム１００Ｂのマイクにおいて入力情報として入力するだけで所定の動作コマンド、目的パラメータまたは別の文字データに変換されて実行可能な場合は制御手段によって実行される。
その結果、ユーザーはプログラム言語を使用せずに制御手段に所望の動作を簡単に実行させることができる。
【００３２】
続いて、他の入力の例について説明する。
図４（Ａ）に示すように、一例として、ユーザーが、スマートフォン端末１１０Ａのチャット画面において、「さ  め」の文字データを入力したとする。
ここで、「さ」および「め」は、辞書データベース１２１に予め登録されている。
そして、ユーザーの送信操作によって、「さ  め」の文字データが、スマートフォン端末１１０Ａからサーバ１２０へ送信される。
【００３３】
前述した図２のステップＳ１では、ボットが、ユーザーのスマートフォン端末１１０Ａから「さ  め」の文字データを受信したことにより入力ありと判定する。
ステップＳ２では、ボットが、受信した「さ  め」の文字データの文字毎に、サーバ１２０の辞書データベース１２１を参照する。
この際、「さ」および「め」の文字が、図３（Ｂ）に示す辞書データベース１２１に登録されていることがわかる。
そして、「さ」の文字データを「佐藤さん」の文字データに変換する。
同様に、「め」の文字データを「メール送信」の文字データに変換する。
つまり、図４（Ａ）に示すように、１回目の変換により、「さ  め」の文字データが、「佐藤さん  メール送信」の文字データに変換される。
【００３４】
ステップＳ３では、変換後の「佐藤さん  メール送信」の文字データが動作コマンドや目的パラメータではないので、ボットが、変換後の「佐藤さん  メール送信」の文字データを実行不可と判定する。
そして、ステップＳ２へ戻り、２回目の変換を行う。
ボットが、「佐藤さん  メール送信」の文字データの文字毎に、サーバ１２０の辞書データベース１２１を参照する。
【００３５】
そして、「佐藤さん」の文字データを＜sato@abc.co.jp＞のパラメータに変換する。
同様に、「メール送信」の文字データを＜mailsend＞のコマンドに変換する。
つまり、図４（Ａ）に示すように、２回目の変換により、「佐藤さん  メール送信」の文字データが、＜sato@abc.co.jp＞  ＜mailsend＞のコマンドおよびパラメータを含むデータに変換される。
ステップＳ３では、ボットが、＜sato@abc.co.jp＞  ＜mailsend＞を実行可能と判定する。
ステップＳ４では、ボットが、サーバ１２０において、＜sato@abc.co.jp＞宛の電子メールの送信を実行する。
【００３６】
このように、本実施例では、ボットが、前述したステップＳ３において、実行不可と判定したとき、文字データを事前に登録された辞書データベース１２１を参照して動作コマンド、目的パラメータまたは別の文字データに変換する情報変換ステップＳ２を再度行うように構成されている。
これにより、所定の動作コマンド、目的パラメータへ変換可能な文字データの短縮された短縮文字データで入力された場合、１回目の変換において所定の動作コマンドや目的パラメータに変換可能な文字データに変換されて、２回目の変換において文字データから所定の動作コマンドや目的パラメータに変換されて、２回目の実行可能判定ステップＳ３において実行可能と判定される。
その結果、ユーザーは短縮文字データを入力するだけでボットに所望の動作を簡単に実行させることができる。
【００３７】
なお、辞書データベース１２１において、予め登録された短縮文字データについて、「さ」の文字データを＜sato@abc.co.jp＞のパラメータに変換し、「め」の文字データを＜mailsend＞のコマンドに変換するように予め登録しておいてもよい。
これにより、１回目の変換において所定の動作コマンドや目的パラメータに変換される。
その結果、変換を複数回実行しなくても、所望の動作を簡単に実行することができる。
想定内の短縮文字データを正すように１回目の変換を行い、２回目の変換において所定の動作コマンドや目的パラメータに変換する理由は、文字データと所定の動作コマンドや目的パラメータとを１対１で対応させるとともに、短縮文字データを正す辞書データベース１２１の管理が簡単になるからである。
【００３８】
また、図４（Ｂ）に示すように、一例として、ユーザーが、スマートフォン端末１１０Ａのチャット画面において、変換ミスによりうっかり「砂糖３にメールしたい」の文字データを入力したとする。
ここで、「砂糖３」および「メールしたい」は、辞書データベース１２１に予め登録されている。
そして、ユーザーの送信操作によって、「砂糖３にメールしたい」の文字データが、スマートフォン端末１１０Ａからサーバ１２０へ送信される。
【００３９】
前述した図２のステップＳ１では、ボットが、ユーザーのスマートフォン端末１１０Ａから「砂糖３にメールしたい」の文字データを受信したことにより入力ありと判定する。
ステップＳ２では、ボットが、受信した「砂糖３にメールしたい」の文字データの文字毎に、サーバ１２０の辞書データベース１２１を参照する。
この際、「砂糖３」および「メールしたい」の文字が、図３（Ｂ）に示す辞書データベース１２１に登録されていることがわかる。
そして、「砂糖３」の文字データを「佐藤さん」の文字データに変換する。
同様に、「メールしたい」の文字データを「メール送信」の文字データに変換する。
つまり、図４（Ａ）に示すように、１回目の変換により、「砂糖３にメールしたい」の文字データが、「佐藤さんにメール送信」の文字データに変換される。
【００４０】
ステップＳ３では、変換後の「佐藤さんにメール送信」の文字データが動作コマンドや目的パラメータではないので、ボットが、変換後の「佐藤さんにメール送信」の文字データを実行不可と判定する。
そして、ステップＳ２へ戻り、２回目の変換を行う。
ボットが、「佐藤さんにメール送信」の文字データの文字毎に、サーバ１２０の辞書データベース１２１を参照する。
【００４１】
そして、「佐藤さん」の文字データを＜sato@abc.co.jp＞のパラメータに変換する。
同様に、「メール送信」の文字データを＜mailsend＞のコマンドに変換する。
つまり、図４（Ａ）に示すように、２回目の変換により、「佐藤さんにメール送信」の文字データが、＜sato@abc.co.jp＞に＜mailsend＞のコマンドおよびパラメータを含むデータに変換される。
ステップＳ３では、ボットが、＜sato@abc.co.jp＞に＜mailsend＞を実行可能と判定する。
ステップＳ４では、ボットが、サーバ１２０において、＜sato@abc.co.jp＞宛の電子メールの送信を実行する。
【００４２】
このように、本実施例では、ボットが、前述したステップＳ３において、実行不可と判定したとき、文字データを事前に登録された辞書データベース１２１を参照して動作コマンド、目的パラメータまたは別の文字データに変換する情報変換ステップＳ２を再度行うように構成されている。
これにより、想定内の誤字入力の場合、音声から想定内で誤字文字データへ変換された場合、１回目の変換において誤字を正すように変換され、２回目の変換において文字データから所定の動作コマンドや目的パラメータに変換されて、２回目の実行可能判定ステップＳ３において実行可能と判定される。
その結果、ボットは入力誤差を吸収して所望の動作を簡単に実行することができる。
本実施例では、「砂糖３」の文字データを「佐藤さん」へ変換したが、より細かく文節毎となるように辞書データベース１２１に登録してもよい。
例えば、誤字入力「砂糖」を「佐藤」へ変換し、誤字入力「棚か」を「田中」へ変換し、誤字入力「３」を「さん」へ変換し、「田中さん」を＜tanaka@abc.co.jp＞のパラメータに変換するように辞書データベース１２１に予め登録すると、よくある誤字として共通の「３」を含む誤字入力「棚か３」にも簡単に対応することができる。
【００４３】
なお、辞書データベース１２１において、想定内の誤字入力の一例として「砂糖３」の文字データを＜sato@abc.co.jp＞のパラメータに変換するように予め登録しておいてもよい。
これにより、１回目の変換において所定の動作コマンドや目的パラメータに変換される。
その結果、変換を複数回実行しなくても、所望の動作を簡単に実行することができる。
想定内の誤字入力を正すように１回目の変換を行い、２回目の変換において所定の動作コマンドや目的パラメータに変換する理由は、文字データと所定の動作コマンドや目的パラメータとを１対１で対応させるとともに、誤字入力を正す辞書データベース１２１の管理が簡単になるからである。
【００４４】
さらに、本実施例では、情報変換ステップＳ２の前段階において、受信した文字データを形態素解析または分かち書きルールで区切ってユーザーの意図を把握するとともに意図にとって意味のある単語を把握する意図把握ステップをさらに具備するように構成してもよい。
この場合、情報変換ステップＳ２において、ボットが、ユーザーの意図、意図にとって意味のある単語の順で所定の動作コマンドや目的パラメータに変換するように構成する。
これにより、ユーザーの意図が把握される。
その結果、入力された文字データと動作コマンドとのずれを最小または無にすることができる。
【００４５】
例えば、図５（Ａ）に示すように、「為替情報教えて」の文字データが入力された場合、「為替」、「情報」、「教えて」のように、分かち書きルールに沿って文節毎に区切る。
ここで、分かち書きルールについて説明する。
ルール１：文節は、きりはなす。
ルール２：文節中の一部分が、文節をつくれるときは、その部分をきりはなす。
ルール３：そのあいだに別のことばをわりこませられる部分は、きりはなす。
ルール４：そのうしろにいろいろなことばをつづけられる部分は、きりはなす。
【００４６】
そして、「為替」、「情報」、「教えて」の単語から、ユーザーの意図である所謂、インテントが「尋ねている（知りたい）」ということをボット（人工知能制御手段）が把握（推定）する。
また、インテントにとって意味を持つ単語である所謂、エンティティが知りたい対象である「為替」の「情報」であると把握（推定）する。
これにより、為替情報について返事（為替情報のリソースをユーザーに通知する）をするという動作をすればよい。
本実施例では、一例として円対ドルの為替のＵＲＬ情報が特定されて辞書データベース１２１に登録されている。
なお、辞書データベース１２１の登録によって特定できない場合は、インテントにとって意味を持つ単語である所謂、エンティティをさらに把握する。
例えば、具体的にどのような「為替」（円対ドルや円対ユーロなど）を尋ねているのかを把握する必要がある。
【００４７】
そして、ボットが、「為替」の文字データを＜url=https:yahoo/kawase/＞のパラメータに変換する。
同様に、「教えて」の文字データを＜respond＞のコマンドに変換する。
つまり、図５（Ａ）に示すように、変換により、「為替情報教えて」の文字データが、＜url=https:yahoo/kawase/＞情報＜respond＞のコマンドおよびパラメータを含むデータに変換される。
ボットが、＜url=https:yahoo/kawase/＞情報＜respond＞を実行可能と判定する。
そして、ボットが、サーバ１２０において、＜url=https:yahoo/kawase/＞の情報を取得してユーザーのスマートフォン端末１１０Ａへ返信する。
なお、＜url=https:yahoo/kawase/＞のリソースページの全部または一部の情報を返信してもよいし、ＵＲＬ情報のみを返信して、ユーザーのスマートフォン端末１１０Ａのチャット画面にＵＲＬ情報で特定されるウェブサイトのプレビュー（サムネイル）を表示させてもよい。
【００４８】
また、図５（Ｂ）に示すように、「為替って何？」の文字データが入力された場合、「為替」、「って」、「何」、「？」のように、分かち書きルールに沿って文節毎に区切る。
そして、「為替」、「って」、「何」、「？」の単語から、ユーザーの意図であるインテントが『何かの言葉の意味を調べたい（知りたい）』ということをボット（人工知能制御手段）が把握（推定）する。
次に、インテントにとって意味を持つ単語である所謂、エンティティを把握する。
この例の場合、「為替」の言葉が目的として意味を持つエンティティとなると推定する。
これにより、「為替」の言葉の意味について調べて返事をするという動作をすればよい。
【００４９】
そして、ボットが、先ずインテントである「何」の文字データを＜googlesearch[]＞のコマンドに変換し、次にエンティティである「為替」の文字データを＜為替＞のパラメータに変換する。
つまり、１回目の変換で、「為替って何？」を＜為替＞って＜googlesearch[]＞？に変換する。
そして、ボットが、＜為替＞って＜googlesearch[]＞？を実行不可と判定し、ステップＳ２を繰り返す。
２回目の変換で、動作コマンドに目的パラメータを入れて、＜googlesearch[為替]＞に変換する。
ボットが、＜googlesearch[為替]＞を実行可能と判定する。
そして、ボットが、サーバ１２０において、所定の検索サイトで「為替」を検索して為替の言葉の意味の情報を取得してユーザーのスマートフォン端末１１０Ａへ返信する。
【００５０】
さらに、図３（Ｂ）の「為替」の欄に示すように、本実施例では、意図にとって意味のある単語とされた文字データの目的パラメータが複数あり、複数の目的パラメータが、ユーザーの意図の動作コマンドに応じて関連づけされて辞書データベース１２１に登録されている構成である。
これにより、ユーザーの意図（インテント）である動作コマンドに応じて意図にとって意味のある単語（エンティティ）である目的パラメータが関連付けされている。
その結果、入力された文字データと動作コマンドおよび目的パラメータとのずれを最小または無にすることができる。
【００５１】
図５（Ａ）に示すように、「為替情報教えて」の文字データが入力された場合、「為替」、「情報」、「教えて」のように、分かち書きルールに沿って文節毎に区切る。
そして、「為替」、「情報」、「教えて」の単語から、ユーザーの意図である所謂、インテントが「教えて（知りたい）」ということをボット（人工知能制御手段）が把握（推定）する。
また、インテントにとって意味を持つ単語である所謂、エンティティが知りたい対象である「為替」の「情報」であると把握（推定）する。
ここで、図３（Ｂ）に示す辞書データベース１２１において、「為替」の目的パラメータのうち、＜url=https:yahoo/kawase/＞が、動作コマンド＜respond＞と関連付けられている。
他方、＜為替＞が、動作コマンド＜googlesearch[]＞と関連付けられている。
【００５２】
そして、ボットが、先ずインテントである「教えて」の文字データを＜respond＞のコマンドに変換する。
次に、エンティティである「為替」を、辞書データベース１２１の関連付けに基づいて、＜url=https:yahoo/kawase/＞のパラメータに変換する。
つまり、図５（Ａ）に示すように、変換により、「為替情報教えて」の文字データが、＜url=https:yahoo/kawase/＞情報＜respond＞のコマンドおよびパラメータを含むデータに変換される。
ボットが、＜url=https:yahoo/kawase/＞情報＜respond＞を実行可能と判定する。
そして、ボットが、サーバ１２０において、＜url=https:yahoo/kawase/＞の情報を取得してユーザーのスマートフォン端末１１０Ａへ返信する。
【００５３】
また、図５（Ｂ）に示すように、「為替って何？」の文字データが入力された場合、「為替」、「って」、「何」、「？」のように、分かち書きルールに沿って文節毎に区切る。
そして、「為替」、「って」、「何」、「？」の単語から、ユーザーの意図であるインテントが『何かの言葉の意味を調べたい（知りたい）』ということをボット（人工知能制御手段）が把握（推定）する。
次に、「為替」の言葉が目的として意味を持つエンティティとなると推定する。
これにより、「為替」の言葉の意味について調べて返事をするという動作をすればよい。
【００５４】
そして、ボットが、先ずインテントである「何」の文字データを＜googlesearch[]＞のコマンドに変換する。
次に、エンティティである「為替」を、辞書データベース１２１の関連付けに基づいて、＜為替＞のパラメータに変換する。
つまり、図５（Ｂ）に示すように、１回目の変換により、「為替って何？」の文字データが、＜為替＞って＜googlesearch[]＞？のコマンドおよびパラメータを含むデータに変換される。
【００５５】
ボットが、＜為替＞って＜googlesearch[]＞？を実行不可と判定し、ステップＳ２を繰り返す。
２回目の変換で、動作コマンドに目的パラメータを入れて、＜googlesearch[為替]＞に変換する。
ボットが、＜googlesearch[為替]＞を実行可能と判定する。
そして、ボットが、サーバ１２０において、検索サイトで「為替」を検索して為替の言葉の意味の情報を取得してユーザーのスマートフォン端末１１０Ａへ返信する。
【００５６】
上述した実施例の変形例として、動作コマンドが対応自在な目的パラメータの属性、目的パラメータ自体の１つまたは複数の属性を辞書データベース１２１に予め登録した構成でもよい。
例えば、図６（Ａ）に示すように、「オレンジを注文」の文字データが入力された場合、ボットが、「オレンジを注文」の文字データを事前に登録された辞書データベース１２１を参照して動作コマンド、目的パラメータに変換する。
具体的には、図６（Ｃ）に示すように、ボットが、受信した「オレンジを注文」の文字データの文字毎に、サーバ１２０の辞書データベース１２１を参照する。
【００５７】
ここで、「オレンジ」は、「物」、「色」および「かな」の複数の属性にまたがって登録されている。
また、「注文」は、「mono（物）」の属性に対応自在に登録されている。
そこで、エンティティである「オレンジ」よりも先に、インテントである「注文」の文字データを＜order＞のコマンドに変換する。
次に、「オレンジ」の文字データを「物」の属性の目的パラメータとして＜url=https:storeshop/orange/＞に変換する。
つまり、図６（Ａ）に示すように、「オレンジを注文」の文字データが＜url=https:storeshop/orange/＞を＜order＞のコマンドおよびパラメータを含むデータに変換される。
そして、ボットが、＜url=https:storeshop/orange/＞を＜order＞を実行可能と判定する。
その後、ボットが、サーバ１２０において、＜url=https:storeshop/orange/＞のウェブサイトにおいてオレンジの注文を実行する。
【００５８】
また、例えば、図６（Ｂ）に示すように、「ＨＰ文字をオレンジに変更」の文字データが入力された場合、ボットが、「ＨＰ文字をオレンジに変更」の文字データを事前に登録された辞書データベース１２１を参照して動作コマンド、目的パラメータに変換する。
ここで、「オレンジ」は、上述したように、「物」および「色」の複数の属性にまたがって登録されている。
また、「変更」は、「color（色）、size（大きさ）」の属性に対応自在に登録されている。
そこで、エンティティである「オレンジ」よりも先に、インテントである「変更」の文字データを＜change＞のコマンドに変換する。
次に、「ＨＰ文字」の文字データを＜url=https:abc.com/admin/text＞に変更し、同様に「オレンジ」の文字データを「色」の属性の目的パラメータとして＜color=&H0066FF＞に変換する。
【００５９】
ここで、「&H0066FF」は、オレンジのインデックスカラー情報である。
つまり、図６（Ｂ）に示すように、「ＨＰ文字をオレンジに変更」の文字データが＜url=https:abc.com/admin/text＞を＜color=&H0066FF＞に＜change＞のコマンドおよびパラメータを含むデータに変換される。
そして、ボットが、＜url=https:abc.com/admin/text＞を＜color=&H0066FF＞に＜change＞を実行可能と判定する。
その後、ボットが、サーバ１２０において、＜url=https:abc.com/＞のウェブサイトに管理者としてアクセス・ログインして所定の文字について、オレンジ色への変更を実行する。ＨＴＭＬソースコードを変更して保存する具体的なやり方については公知であるので、その説明を省略する。
このように、ボットが辞書データベース１２１を参照し、エンティティの文字データを目的パラメータに変換する際、インテントの文字データ（動作コマンドの対応自在な属性）に応じて、エンティティの文字データを属性に基づいて適切な目的パラメータを選択してその目的パラメータに変換する。
その結果、ユーザーが意図した内容を、ボットが実行することができる。
【００６０】
なお、図５（Ｂ）で説明した「為替って何？」と同様、「オレンジって何？」の文字データが入力された場合、「オレンジ」がかな文字の目的として検索エンジンにおいて検索される。その詳しい説明については、省略する。
また、スマートフォン端末１１０Ａを用いたボットシステム１００Ａについて説明したが、人工知能スピーカ端末１１０Ｂを用いた人工知能スピーカシステム１００Ｂについても基本的な動作は同様であるので、その詳しい説明を省略する。
また、本実施例では、一例として、実行可能判定ステップＳ３の後に実行ステップＳ４を実行したが、逆の順番でもよい。
先に実行ステップＳ４を試みて、実行不可だった場合に実行不可と判定してもよい。
さらに、実行可能判定ステップＳ３を行わずに、情報変換ステップＳ２の後に実行ステップＳ４を行う構成でもよい。
【００６１】
このようにして得られた本発明の実施例であるボットシステム１００Ａのプログラムは、サーバ１２０のボットが、ユーザー端末の一例であるスマートフォン端末１１０Ａから文字データを受信したことにより入力の有無を判定する入力判定ステップＳ１と、ボットが、文字データを事前に登録された辞書データベース１２１を参照して動作コマンド、目的パラメータまたは別の文字データに変換する情報変換ステップＳ２と、ボットが、動作コマンドおよび目的パラメータを実行する実行ステップＳ４とを具備していることにより、ユーザーはプログラム言語を使用せずにボットに所望の動作を簡単に実行させることができる。
【００６２】
さらに、ボットが、変換後の動作コマンド、目的パラメータまたは別の文字データを実行可能か否か判定する実行可能判定ステップＳ３をさらに具備し、ボットが、実行不可と判定したとき、文字データを事前に登録された辞書データベース１２１を参照して動作コマンド、目的パラメータまたは別の文字データに変換する情報変換ステップＳ２を再度行う構成であることにより、想定内の誤字入力の場合、ボットは入力誤差を吸収して所望の動作を簡単に実行することができ、所定の動作コマンド、目的パラメータへ変換可能な文字データの短縮された短縮文字データで入力された場合、ユーザーは短縮文字データを入力するだけでボットに所望の動作を簡単に実行させることができる。
【００６３】
また、情報変換ステップＳ２の前段階において、受信した文字データを形態素解析または分かち書きルールで区切ってユーザーの意図を把握するとともに意図にとって意味のある単語を把握する意図把握ステップをさらに具備し、情報変換ステップＳ２において、ボットが、ユーザーの意図、意図にとって意味のある単語の順で所定の動作コマンドや目的パラメータに変換する構成であることにより、入力された文字データと動作コマンドとのずれを最小または無にすることができる。
【００６４】
さらに、意図にとって意味のある単語とされた文字データの目的パラメータが複数あり、複数の目的パラメータが、ユーザーの意図の動作コマンドに応じて関連づけされて辞書データベース１２１に登録されている構成であることにより、入力された文字データと動作コマンドおよび目的パラメータとのずれを最小または無にすることができる。
【００６５】
また、本発明の実施例である人工知能スピーカシステム１００Ｂのプログラムは、制御手段が、マイクから入力された音声データの有無を判定する入力判定ステップＳ１と、制御手段が、入力された音声データまたは音声データから変換された文字データを事前に登録されたサーバ１２０の辞書データベース１２１を参照して動作コマンド、目的パラメータまたは別の文字データに変換する情報変換ステップＳ２と、制御手段が、動作コマンドおよび目的パラメータを実行する実行ステップＳ４とを具備していることにより、ユーザーはプログラム言語を使用せずに制御手段に所望の動作を簡単に実行させることができるなど、その効果は甚大である。
【符号の説明】
【００６６】
１００Ａ・・・  ボットシステム
１００Ｂ・・・  人工知能スピーカシステム
１１０Ａ・・・  スマートフォン端末（ユーザー端末）
１１０Ｂ・・・  人工知能スピーカ端末
１２０  ・・・  サーバ
１２１  ・・・  辞書データベース
【図１】
2020102090.tif 000003
【図２】
2020102090.tif 000004
【図３】
2020102090.tif 000005
【図４】
2020102090.tif 000006
【図５】
2020102090.tif 000007
【図６】
2020102090.tif 000008