IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社サテライトオフィスの特許一覧

特許7271942ボットシステムのプログラム、人工知能スピーカシステムのプログラム
<>
  • 特許-ボットシステムのプログラム、人工知能スピーカシステムのプログラム 図1
  • 特許-ボットシステムのプログラム、人工知能スピーカシステムのプログラム 図2
  • 特許-ボットシステムのプログラム、人工知能スピーカシステムのプログラム 図3
  • 特許-ボットシステムのプログラム、人工知能スピーカシステムのプログラム 図4
  • 特許-ボットシステムのプログラム、人工知能スピーカシステムのプログラム 図5
  • 特許-ボットシステムのプログラム、人工知能スピーカシステムのプログラム 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-05-01
(45)【発行日】2023-05-12
(54)【発明の名称】ボットシステムのプログラム、人工知能スピーカシステムのプログラム
(51)【国際特許分類】
   G06F 40/30 20200101AFI20230502BHJP
   G06F 40/242 20200101ALI20230502BHJP
【FI】
G06F40/30
G06F40/242
【請求項の数】 4
(21)【出願番号】P 2018240846
(22)【出願日】2018-12-25
(65)【公開番号】P2020102090
(43)【公開日】2020-07-02
【審査請求日】2021-11-25
(73)【特許権者】
【識別番号】516346218
【氏名又は名称】株式会社サテライトオフィス
(74)【代理人】
【識別番号】100168538
【弁理士】
【氏名又は名称】加藤 来
(72)【発明者】
【氏名】原口 豊
【審査官】成瀬 博之
(56)【参考文献】
【文献】特開2005-059185(JP,A)
【文献】特開2018-185561(JP,A)
【文献】特開2008-146150(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 40/00-40/58
H04R 3/00- 3/14
G10L 15/00-17/26
(57)【特許請求の範囲】
【請求項1】
ユーザー端末とサーバとの間で文字データを通信自在なボットシステムのプログラムであって、
前記サーバのボットが、前記ユーザー端末から文字データを受信したことにより入力の有無を判定する入力判定ステップと、
前記ボットが、前記文字データを事前に登録された辞書データベースを参照して動作コマンド、目的パラメータまたは別の文字データに変換する情報変換ステップと、
前記ボットが、変換後の動作コマンド、目的パラメータまたは別の文字データを実行可能か否か判定する実行可能判定ステップと、
前記ボットが、前記動作コマンドおよび目的パラメータを実行する実行ステップとを具備し
前記実行可能判定ステップにおいて、前記ボットが、実行不可と判定したとき、文字データを事前に登録された辞書データベースを参照して動作コマンド、目的パラメータに変換する情報変換ステップを再度行い、入力された文字データを1回目の変換で整えて2回目の変換で動作コマンドおよび目的パラメータに変換する構成であることを特徴とするボットシステムのプログラム。
【請求項2】
前記情報変換ステップの前段階において、受信した文字データを形態素解析または分かち書きルールで区切ってユーザーの意図を把握するとともに意図にとって意味のある単語を把握する意図把握ステップをさらに具備し、
前記意図にとって意味のある単語とされた文字データの目的パラメータが複数あり、
複数の目的パラメータが、前記ユーザーの意図の動作コマンドに応じて関連づけされて辞書データベースに登録されており、
前記情報変換ステップにおいて、ボットが、ユーザーの意図を所定の動作コマンドに変換した後に、意図にとって意味のある単語を動作コマンドの対応自在な属性に応じた目的パラメータに変換する構成であることを特徴とする請求項1に記載のボットシステムのプログラム。
【請求項3】
マイクと、スピーカと、通信手段と、制御手段と、サーバのデータベースとを備えた人工知能スピーカシステムのプログラムであって、
前記制御手段が、前記マイクから入力された音声データの有無を判定する入力判定ステップと、
前記制御手段が、入力された音声データまたは音声データから変換された文字データを事前に登録されたサーバの辞書データベースを参照して動作コマンド、目的パラメータまたは別の文字データに変換する情報変換ステップと、
前記制御手段が、変換後の動作コマンド、目的パラメータまたは別の文字データを実行可能か否か判定する実行可能判定ステップと、
前記制御手段が、前記動作コマンドおよび目的パラメータを実行する実行ステップとを具備し
前記実行可能判定ステップにおいて、前記制御手段が、実行不可と判定したとき、文字データを事前に登録された辞書データベースを参照して動作コマンド、目的パラメータに変換する情報変換ステップを再度行い、入力された音声データまたは音声データから変換された文字データを1回目の変換で整えて2回目の変換で動作コマンドおよび目的パラメータに変換する構成であることを特徴とする人工知能スピーカシステムのプログラム。
【請求項4】
前記情報変換ステップの前段階において、入力された音声データまたは音声データから変換された文字データを形態素解析または分かち書きルールで区切ってユーザーの意図を把握するとともに意図にとって意味のある単語を把握する意図把握ステップをさらに具備し、
前記意図にとって意味のある単語とされた音声データまたは文字データの目的パラメータが複数あり、
複数の目的パラメータが、前記ユーザーの意図の動作コマンドに応じて関連づけされて辞書データベースに登録されており、
前記情報変換ステップにおいて、制御手段が、ユーザーの意図を所定の動作コマンドに変換した後に、意図にとって意味のある単語を動作コマンドの対応自在な属性に応じた目的パラメータに変換する構成であることを特徴とする請求項3に記載の人工知能スピーカシステムのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ユーザー端末とサーバとの間で文字データを通信自在なボットシステムのプログラム、および、マイクとスピーカと通信手段と制御手段とサーバのデータベースとを備えた人工知能スピーカシステムのプログラムに関する。
【背景技術】
【0002】
従来、コンピュータで読み取り可能な命令を実行するように実現される少なくとも1つのプロセッサを含み、少なくとも1つのプロセッサは、質問データを選択し、メッセージングサービスに登録されたユーザーのうち少なくとも1つのユーザーのアカウントとメッセージングサービスに登録された人工知能アカウントとの間に設定された通信セッションを確認し、質問データを人工知能アカウントのインスタントメッセージとして確認された通信セッションを通じて少なくとも1つのユーザーに送信し、確認された通信セッションを通じて少なくとも1つのユーザーから質問データに対する返答データを受信し、質問データおよび受信した返答データに基づいて人工知能のための学習データを生成する人工知能学習システムが知られている(例えば、特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2017-153078号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上述した従来の人工知能学習システムは、人工知能とユーザーとを端末を介してテキストデータで対話させて人工知能に学習させる構成であったため、ユーザーの命令を予め学習する必要があり、ユーザーはプログラム言語を使用せずにボットに所望の動作を簡単に実行させることが困難であるという問題があった。
【0005】
そこで、本発明は、前述したような従来技術の問題を解決するものであって、すなわち、本発明の目的は、ユーザーはプログラム言語を使用せずにボットに所望の動作を簡単に実行させることができるボットシステムのプログラム、および、人工知能スピーカシステムのプログラムを提供することである。
【課題を解決するための手段】
【0006】
本請求項1に係る発明は、ユーザー端末とサーバとの間で文字データを通信自在なボットシステムのプログラムであって、前記サーバのボットが、前記ユーザー端末から文字データを受信したことにより入力の有無を判定する入力判定ステップと、前記ボットが、前記文字データを事前に登録された辞書データベースを参照して動作コマンド、目的パラメータまたは別の文字データに変換する情報変換ステップと、前記ボットが、変換後の動作コマンド、目的パラメータまたは別の文字データを実行可能か否か判定する実行可能判定ステップと、前記ボットが、前記動作コマンドおよび目的パラメータを実行する実行ステップとを具備し、前記実行可能判定ステップにおいて、前記ボットが、実行不可と判定したとき、文字データを事前に登録された辞書データベースを参照して動作コマンド、目的パラメータに変換する情報変換ステップを再度行い、入力された文字データを1回目の変換で整えて2回目の変換で動作コマンドおよび目的パラメータに変換する構成であることにより、前述した課題を解決するものである。
【0007】
本請求項2に係る発明は、請求項1に記載されたボットシステムのプログラムの構成に加えて、前記情報変換ステップの前段階において、受信した文字データを形態素解析または分かち書きルールで区切ってユーザーの意図を把握するとともに意図にとって意味のある単語を把握する意図把握ステップをさらに具備し、前記意図にとって意味のある単語とされた文字データの目的パラメータが複数あり、複数の目的パラメータが、前記ユーザーの意図の動作コマンドに応じて関連づけされて辞書データベースに登録されており、前記情報変換ステップにおいて、ボットが、ユーザーの意図を所定の動作コマンドに変換した後に、意図にとって意味のある単語を動作コマンドの対応自在な属性に応じた目的パラメータに変換する構成であることにより、前述した課題をさらに解決するものである。
【0008】
本請求項3に係る発明は、マイクと、スピーカと、通信手段と、制御手段と、サーバのデータベースとを備えた人工知能スピーカシステムのプログラムであって、前記制御手段が、前記マイクから入力された音声データの有無を判定する入力判定ステップと、前記制御手段が、入力された音声データまたは音声データから変換された文字データを事前に登録されたサーバの辞書データベースを参照して動作コマンド、目的パラメータまたは別の文字データに変換する情報変換ステップと、前記制御手段が、変換後の動作コマンド、目的パラメータまたは別の文字データを実行可能か否か判定する実行可能判定ステップと、前記制御手段が、前記動作コマンドおよび目的パラメータを実行する実行ステップとを具備し、前記実行可能判定ステップにおいて、前記制御手段が、実行不可と判定したとき、文字データを事前に登録された辞書データベースを参照して動作コマンド、目的パラメータに変換する情報変換ステップを再度行い、入力された音声データまたは音声データから変換された文字データを1回目の変換で整えて2回目の変換で動作コマンドおよび目的パラメータに変換する構成であることにより、前述した課題を解決するものである。
【0009】
本請求項4に係る発明は、請求項3に記載された人工知能スピーカシステムのプログラムの構成に加えて、前記情報変換ステップの前段階において、入力された音声データまたは音声データから変換された文字データを形態素解析または分かち書きルールで区切ってユーザーの意図を把握するとともに意図にとって意味のある単語を把握する意図把握ステップをさらに具備し、前記意図にとって意味のある単語とされた音声データまたは文字データの目的パラメータが複数あり、複数の目的パラメータが、前記ユーザーの意図の動作コマンドに応じて関連づけされて辞書データベースに登録されており、前記情報変換ステップにおいて、制御手段が、ユーザーの意図を所定の動作コマンドに変換した後に、意図にとって意味のある単語を動作コマンドの対応自在な属性に応じた目的パラメータに変換する構成であることにより、前述した課題をさらに解決するものである。
【発明の効果】
【0011】
本発明のボットシステムのプログラムは、ユーザー端末とサーバとの間で文字データを通信することができるばかりでなく、以下のような特有の効果を奏することができる。
【0012】
本請求項1に係る発明のボットシステムのプログラムによれば、辞書データベースに事前に登録された内容をユーザーがユーザー端末において入力情報として入力するだけで所定の動作コマンド、目的パラメータまたは別の文字データに変換されて実行可能な場合はボットによって実行されるため、ユーザーはプログラム言語を使用せずにボットに所望の動作を簡単に実行させることができる。
さらに、想定内の誤字入力の場合、音声から想定内で誤字文字データへ変換された場合、1回目の変換において誤字を正すように変換され、2回目の変換において文字データから所定の動作コマンドや目的パラメータに変換されて、2回目の実行可能判定ステップにおいて実行可能と判定されるため、ボットは入力誤差を吸収して所望の動作を簡単に実行することができる。
また、所定の動作コマンド、目的パラメータへ変換可能な文字データの短縮された短縮文字データで入力された場合、1回目の変換において所定の動作コマンドや目的パラメータに変換可能な文字データに変換されて、2回目の変換において文字データから所定の動作コマンドや目的パラメータに変換されて、2回目の実行可能判定ステップにおいて実行可能と判定されるため、ユーザーは短縮文字データを入力するだけでボットに所望の動作を簡単に実行させることができる。
【0013】
本請求項2に係る発明のボットシステムのプログラムによれば、請求項1に係る発明が奏する効果に加えて、ユーザーの意図が把握されるため、入力された文字データと動作コマンドとのずれを最小または無にすることができる。
さらに、ユーザーの意図(インテント)である動作コマンドに応じて意図にとって意味のある単語(エンティティ)である目的パラメータが関連付けされているため、入力された文字データと動作コマンドおよび目的パラメータとのずれを最小または無にすることができる。
【0014】
本請求項3に係る発明の人工知能スピーカシステムのプログラムによれば、請求項1に係る発明が奏する効果と同様、辞書データベースに事前に登録された内容をユーザーが人工知能スピーカシステムのマイクにおいて入力情報として入力するだけで所定の動作コマンド、目的パラメータまたは別の文字データに変換されて実行可能な場合は制御手段によって実行されるため、ユーザーはプログラム言語を使用せずに制御手段に所望の動作を簡単に実行させることができる。
さらに、所定の動作コマンド、目的パラメータへ変換可能な音声データや文字データの短縮された短縮音声データや短縮文字データで入力された場合、1回目の変換において所定の動作コマンドや目的パラメータに変換可能な音声データや文字データに変換されて、2回目の変換において音声データや文字データから所定の動作コマンドや目的パラメータに変換されて、2回目の実行可能判定ステップにおいて実行可能と判定されるため、ユーザーは短縮音声データや短縮文字データを入力するだけで制御手段に所望の動作を簡単に実行させることができる。
【0015】
本請求項4に係る発明の人工知能スピーカシステムのプログラムによれば、請求項3に係る発明が奏する効果に加えて、ユーザーの意図が把握されるため、入力された音声データまたは音声データから変換された文字データと動作コマンドとのずれを最小または無にすることができる。
さらに、ユーザーの意図(インテント)である動作コマンドに応じて意図にとって意味のある単語(エンティティ)である目的パラメータが関連付けされているため、入力された文字データと動作コマンドおよび目的パラメータとのずれを最小または無にすることができる。
【図面の簡単な説明】
【0017】
図1】本発明の実施例であるボットシステムおよび人工知能スピーカシステムの概念を示す図。
図2】本発明の実施例であるボットシステムおよび人工知能スピーカシステムの動作を示す図。
図3】(A)(B)は入力された文字データ、変換後のデータおよび辞書データベースの例を示す図。
図4】(A)(B)は入力された文字データ、1回目の変換後のデータおよび2回目の変換後のデータの例を示す図。
図5】(A)(B)は入力された文字データおよび変換後のデータの例を示す図。
図6】(A)~(C)は入力された文字データ、変換後のデータおよび辞書データベースの例を示す図。
【発明を実施するための形態】
【0018】
本発明のボットシステムのプログラムは、サーバのボットが、ユーザー端末から文字データを受信したことにより入力の有無を判定する入力判定ステップと、ボットが、文字データを事前に登録された辞書データベースを参照して動作コマンド、目的パラメータまたは別の文字データに変換する情報変換ステップと、ボットが、動作コマンドおよび目的パラメータを実行する実行ステップとを具備していることにより、ユーザーはプログラム言語を使用せずにボットに所望の動作を簡単に実行させることができるものであれば、その具体的な実施態様は、如何なるものであっても構わない。
例えば、ユーザー端末は、デスクトップ型パーソナルコンピュータ端末、ノート型パーソナルコンピュータ端末、スマートフォン端末、タブレット端末などの情報を送受信するものであって、所謂インターネットである広域ネットワーク、ローカルネットワーク、電話回線などを含む通信ネットワークによりサーバと接続自在なものであれば如何なるものであっても構わない。
また、サーバは、1つのサーバやクラウド上の複数のサーバでもよい。
さらに、ユーザー端末とサーバとの通信は、無線通信や有線通信でチャットアプリケーションソフトウェアを用いてボットと対話するチャットボット形式でもよいし、電子メールソフトウェアを用いてボットと対話する形式でもよい。
【0019】
本発明の人工知能スピーカシステムのプログラムは、制御手段が、マイクから入力された音声データの有無を判定する入力判定ステップと、制御手段が、入力された音声データまたは音声データから変換された文字データを事前に登録されたサーバの辞書データベースを参照して動作コマンド、目的パラメータまたは別の文字データに変換する情報変換ステップと、制御手段が、動作コマンドおよび目的パラメータを実行する実行ステップとを具備していることにより、ユーザーはプログラム言語を使用せずに制御手段に所望の動作を簡単に実行させることができるものであれば、その具体的な実施態様は、如何なるものであっても構わない。
例えば、制御手段を有する端末と、データベースを有する端末とが別体の構成でもよいし、共通の構成でもよい。
言い換えると、制御手段をマイクおよびスピーカと一緒の端末に設けた構成でもよいし、データベースを有するサーバと一緒の端末に設けた構成でもよい。
制御手段およびデータベースは、1つのサーバやクラウド上の複数のサーバに設けられた構成でもよい。
【実施例
【0020】
以下に、本発明の実施例であるボットシステム100Aのプログラムおよび人工知能スピーカシステム100Bのプログラムについて、図1乃至図5(B)に基づいて説明する。
ここで、図1は、本発明の実施例であるボットシステム100Aおよび人工知能スピーカシステム100Bの概念を示す図であり、図2は、本発明の実施例であるボットシステム100Aおよび人工知能スピーカシステム100Bの動作を示す図であり、図3(A)は、入力された文字データ、変換後のデータの例を示す図であり、図3(B)は、辞書データベース121の例を示す図であり、図4(A)は、入力された短縮の文字データ、1回目の変換後のデータおよび2回目の変換後のデータの例を示す図であり、図4(B)は、入力された誤字の文字データ、1回目の変換後のデータおよび2回目の変換後のデータの例を示す図であり、図5(A)は、「教えて」をインテント(ユーザーの意図)として捉えた場合の入力された文字データおよび変換後のデータの例を示す図であり、図5(B)は、「何?」をインテント(ユーザーの意図)として捉えた場合の入力された文字データおよび変換後のデータの例を示す図であり、図6(A)および図6(B)は、入力された文字データおよび変換後のデータの例を示す図であり、図6(C)は、辞書データベースの例を示す図である。
【0021】
本発明の実施例であるボットシステム100Aは、図1に示すように、ユーザー端末の一例であるスマートフォン端末110Aと、サーバ120とを備えている。
スマートフォン端末110Aは、ボットシステム100Aのプログラムであるチャットアプリケーションソフトウェアによって、サーバ120との間で文字データを通信自在に設けられている。
ユーザーは、スマートフォン端末110Aにおいて、表示部に表示されたキーボードによってチャットアプリケーションソフトウェアのチャット画面に文字を入力してもよいし、スマートフォン端末110Aに設けられたマイクを用いて音声によって入力してもよい。
音声によって入力された場合、スマートフォン端末110Aの制御部(プログラム)が、音声データを読み取って文字データに変換し、チャットアプリケーションソフトウェアのチャット画面に文字入力するように構成されている。
また、サーバ120は、データベースを有している。
データベースには、予め登録された辞書データベース121が保存されている。
【0022】
また、本発明の実施例である人工知能スピーカシステム100Bは、人工知能スピーカ端末110Bと、サーバ120とを備えている。
このうち、人工知能スピーカ端末110Bは、マイクと、スピーカと、通信手段とを備えている。
また、サーバ120は、制御手段(ボット、プログラム)と、データベースとを備えている。
そして、ユーザーが、人工知能スピーカ端末110Bに向かって話しかけると、マイクによって音声データとして入力され、音声データが、通信手段によってサーバ120へ送信される。
サーバ120は、受信した音声データを文字データに変換するように構成されている。
なお、人工知能スピーカ端末110Bにおいて、音声データから文字データへ変換され、文字データが、通信手段によってサーバ120へ送信されるように構成してもよい。
【0023】
続いて、ボットシステム100Aおよび人工知能スピーカシステム100Bの動作について詳しく説明する。
図1に示すように、スマートフォン端末110Aのチャット画面には、ボットのアイコンが表示されている。
そして、一例として、ボットからの「こんにちは! やりたいことを入力してください!」の旨のメッセージが表示されている。
つまり、ユーザーがチャット画面において入力自在な状態になっている。
ユーザーは、一例として、「佐藤さんにメール送信」と入力したとする(図3(A)参照)。
なお、入力方式は、前述したように、テキスト入力でもよいし、音声入力して文字変換されてチャット画面に文字入力されてもよい。
【0024】
すると、入力された「佐藤さんにメール送信」の文字データが、スマートフォン端末110Aからサーバ120へ送信され、サーバ120が、「佐藤さんにメール送信」の文字データを受信する(図3(A)参照)。
【0025】
図2に示すように、ステップS1では、入力判定ステップとして、サーバ120のボットが、ユーザーのスマートフォン端末110Aから「佐藤さんにメール送信」の文字データを受信したことにより入力の有無を判定する。
入力ありと判定した場合はステップS2へ進み、他方、まだ入力なしと判定した場合はステップS1を繰り返す。
【0026】
ステップS2では、情報変換ステップとして、ボットが、「佐藤さんにメール送信」の文字データを事前に登録された辞書データベース121を参照して動作コマンド、目的パラメータまたは別の文字データに変換する。
具体的には、図3(A)および図3(B)に示すように、ボットが、受信した「佐藤さんにメール送信」の文字データの文字毎に、サーバ120の辞書データベース121を参照する。
この際、「佐藤さん」および「メール送信」の文字が、図3(B)に示す辞書データベース121に登録されていることがわかる。
そして、「佐藤さん」の文字データを<sato@abc.co.jp>のパラメータに変換する。
同様に、「メール送信」の文字データを<mailsend>のコマンドに変換する。
つまり、図3(A)に示すように、「佐藤さんにメール送信」の文字データが、<sato@abc.co.jp>に<mailsend>のコマンドおよびパラメータを含むデータに変換される。
【0027】
ステップS3では、実行可能判定ステップとして、ボットが、変換後の動作コマンド、目的パラメータまたは別の文字データを実行可能か否か判定する。
この例では、「<sato@abc.co.jp>に<mailsend>」を実行可能な否か判定する。
<sato@abc.co.jp>宛に電子メールを送信すればよいので実行可能と判定した場合はステップS4に進み、仮に実行不可と判定した場合はステップS2を繰り返す。
【0028】
ステップS4では、実行ステップとして、ボットが、動作コマンドおよび目的パラメータを実行する。
この例では、ボットが、サーバ120において、<sato@abc.co.jp>宛の電子メールの送信を実行する。
これにより、辞書データベース121に事前に登録された内容をユーザーがユーザーのスマートフォン端末110Aにおいて入力情報として入力するだけで所定の動作コマンド、目的パラメータまたは別の文字データに変換されて実行可能な場合はボットによって実行される。
その結果、ユーザーはプログラム言語を使用せずにボットに所望の動作を簡単に実行させることができる。
【0029】
実行後、一例として、ボットが、チャット画面において、「佐藤さんにメール送信しました!」とユーザーに報告するように構成してもよい。
なお、送信元のメールアドレスは、ユーザーのアドレスでもよいし、ボットのアドレスでもよい。動作コマンドにいずれかを登録しておけばよい。
また、電子メールの本文については、別途指定すればよい。この例では、理解しやすくするために、宛先のパラメータおよびメール送信の動作コマンドのみについて説明した。
【0030】
以上、ボットシステム100Aのプログラムについて説明したが、人工知能スピーカシステム100Bのプログラムについても同様である。
ステップS1では、入力判定ステップとして、制御手段が、マイクから入力された「さとうさんにめーるそうしん」の音声データの有無を判定する。
ステップS2では、情報変換ステップとして、制御手段が、入力された「さとうさんにめーるそうしん」の音声データまたは音声データから変換された「佐藤さんにメール送信」の文字データを事前に登録されたサーバ120の辞書データベース121を参照して動作コマンド、目的パラメータまたは別の文字データに変換する。
【0031】
ステップS3では、実行可能判定ステップとして、制御手段が、変換後の動作コマンド、目的パラメータまたは別の文字データを実行可能か否か判定する。
ステップS4では、実行ステップとして、制御手段が、動作コマンドおよび目的パラメータを実行する。
これにより、辞書データベース121に事前に登録された内容をユーザーが人工知能スピーカシステム100Bのマイクにおいて入力情報として入力するだけで所定の動作コマンド、目的パラメータまたは別の文字データに変換されて実行可能な場合は制御手段によって実行される。
その結果、ユーザーはプログラム言語を使用せずに制御手段に所望の動作を簡単に実行させることができる。
【0032】
続いて、他の入力の例について説明する。
図4(A)に示すように、一例として、ユーザーが、スマートフォン端末110Aのチャット画面において、「さ め」の文字データを入力したとする。
ここで、「さ」および「め」は、辞書データベース121に予め登録されている。
そして、ユーザーの送信操作によって、「さ め」の文字データが、スマートフォン端末110Aからサーバ120へ送信される。
【0033】
前述した図2のステップS1では、ボットが、ユーザーのスマートフォン端末110Aから「さ め」の文字データを受信したことにより入力ありと判定する。
ステップS2では、ボットが、受信した「さ め」の文字データの文字毎に、サーバ120の辞書データベース121を参照する。
この際、「さ」および「め」の文字が、図3(B)に示す辞書データベース121に登録されていることがわかる。
そして、「さ」の文字データを「佐藤さん」の文字データに変換する。
同様に、「め」の文字データを「メール送信」の文字データに変換する。
つまり、図4(A)に示すように、1回目の変換により、「さ め」の文字データが、「佐藤さん メール送信」の文字データに変換される。
【0034】
ステップS3では、変換後の「佐藤さん メール送信」の文字データが動作コマンドや目的パラメータではないので、ボットが、変換後の「佐藤さん メール送信」の文字データを実行不可と判定する。
そして、ステップS2へ戻り、2回目の変換を行う。
ボットが、「佐藤さん メール送信」の文字データの文字毎に、サーバ120の辞書データベース121を参照する。
【0035】
そして、「佐藤さん」の文字データを<sato@abc.co.jp>のパラメータに変換する。
同様に、「メール送信」の文字データを<mailsend>のコマンドに変換する。
つまり、図4(A)に示すように、2回目の変換により、「佐藤さん メール送信」の文字データが、<sato@abc.co.jp> <mailsend>のコマンドおよびパラメータを含むデータに変換される。
ステップS3では、ボットが、<sato@abc.co.jp> <mailsend>を実行可能と判定する。
ステップS4では、ボットが、サーバ120において、<sato@abc.co.jp>宛の電子メールの送信を実行する。
【0036】
このように、本実施例では、ボットが、前述したステップS3において、実行不可と判定したとき、文字データを事前に登録された辞書データベース121を参照して動作コマンド、目的パラメータまたは別の文字データに変換する情報変換ステップS2を再度行うように構成されている。
これにより、所定の動作コマンド、目的パラメータへ変換可能な文字データの短縮された短縮文字データで入力された場合、1回目の変換において所定の動作コマンドや目的パラメータに変換可能な文字データに変換されて、2回目の変換において文字データから所定の動作コマンドや目的パラメータに変換されて、2回目の実行可能判定ステップS3において実行可能と判定される。
その結果、ユーザーは短縮文字データを入力するだけでボットに所望の動作を簡単に実行させることができる。
【0037】
なお、辞書データベース121において、予め登録された短縮文字データについて、「さ」の文字データを<sato@abc.co.jp>のパラメータに変換し、「め」の文字データを<mailsend>のコマンドに変換するように予め登録しておいてもよい。
これにより、1回目の変換において所定の動作コマンドや目的パラメータに変換される。
その結果、変換を複数回実行しなくても、所望の動作を簡単に実行することができる。
想定内の短縮文字データを正すように1回目の変換を行い、2回目の変換において所定の動作コマンドや目的パラメータに変換する理由は、文字データと所定の動作コマンドや目的パラメータとを1対1で対応させるとともに、短縮文字データを正す辞書データベース121の管理が簡単になるからである。
【0038】
また、図4(B)に示すように、一例として、ユーザーが、スマートフォン端末110Aのチャット画面において、変換ミスによりうっかり「砂糖3にメールしたい」の文字データを入力したとする。
ここで、「砂糖3」および「メールしたい」は、辞書データベース121に予め登録されている。
そして、ユーザーの送信操作によって、「砂糖3にメールしたい」の文字データが、スマートフォン端末110Aからサーバ120へ送信される。
【0039】
前述した図2のステップS1では、ボットが、ユーザーのスマートフォン端末110Aから「砂糖3にメールしたい」の文字データを受信したことにより入力ありと判定する。
ステップS2では、ボットが、受信した「砂糖3にメールしたい」の文字データの文字毎に、サーバ120の辞書データベース121を参照する。
この際、「砂糖3」および「メールしたい」の文字が、図3(B)に示す辞書データベース121に登録されていることがわかる。
そして、「砂糖3」の文字データを「佐藤さん」の文字データに変換する。
同様に、「メールしたい」の文字データを「メール送信」の文字データに変換する。
つまり、図4(A)に示すように、1回目の変換により、「砂糖3にメールしたい」の文字データが、「佐藤さんにメール送信」の文字データに変換される。
【0040】
ステップS3では、変換後の「佐藤さんにメール送信」の文字データが動作コマンドや目的パラメータではないので、ボットが、変換後の「佐藤さんにメール送信」の文字データを実行不可と判定する。
そして、ステップS2へ戻り、2回目の変換を行う。
ボットが、「佐藤さんにメール送信」の文字データの文字毎に、サーバ120の辞書データベース121を参照する。
【0041】
そして、「佐藤さん」の文字データを<sato@abc.co.jp>のパラメータに変換する。
同様に、「メール送信」の文字データを<mailsend>のコマンドに変換する。
つまり、図4(A)に示すように、2回目の変換により、「佐藤さんにメール送信」の文字データが、<sato@abc.co.jp>に<mailsend>のコマンドおよびパラメータを含むデータに変換される。
ステップS3では、ボットが、<sato@abc.co.jp>に<mailsend>を実行可能と判定する。
ステップS4では、ボットが、サーバ120において、<sato@abc.co.jp>宛の電子メールの送信を実行する。
【0042】
このように、本実施例では、ボットが、前述したステップS3において、実行不可と判定したとき、文字データを事前に登録された辞書データベース121を参照して動作コマンド、目的パラメータまたは別の文字データに変換する情報変換ステップS2を再度行うように構成されている。
これにより、想定内の誤字入力の場合、音声から想定内で誤字文字データへ変換された場合、1回目の変換において誤字を正すように変換され、2回目の変換において文字データから所定の動作コマンドや目的パラメータに変換されて、2回目の実行可能判定ステップS3において実行可能と判定される。
その結果、ボットは入力誤差を吸収して所望の動作を簡単に実行することができる。
本実施例では、「砂糖3」の文字データを「佐藤さん」へ変換したが、より細かく文節毎となるように辞書データベース121に登録してもよい。
例えば、誤字入力「砂糖」を「佐藤」へ変換し、誤字入力「棚か」を「田中」へ変換し、誤字入力「3」を「さん」へ変換し、「田中さん」を<tanaka@abc.co.jp>のパラメータに変換するように辞書データベース121に予め登録すると、よくある誤字として共通の「3」を含む誤字入力「棚か3」にも簡単に対応することができる。
【0043】
なお、辞書データベース121において、想定内の誤字入力の一例として「砂糖3」の文字データを<sato@abc.co.jp>のパラメータに変換するように予め登録しておいてもよい。
これにより、1回目の変換において所定の動作コマンドや目的パラメータに変換される。
その結果、変換を複数回実行しなくても、所望の動作を簡単に実行することができる。
想定内の誤字入力を正すように1回目の変換を行い、2回目の変換において所定の動作コマンドや目的パラメータに変換する理由は、文字データと所定の動作コマンドや目的パラメータとを1対1で対応させるとともに、誤字入力を正す辞書データベース121の管理が簡単になるからである。
【0044】
さらに、本実施例では、情報変換ステップS2の前段階において、受信した文字データを形態素解析または分かち書きルールで区切ってユーザーの意図を把握するとともに意図にとって意味のある単語を把握する意図把握ステップをさらに具備するように構成してもよい。
この場合、情報変換ステップS2において、ボットが、ユーザーの意図、意図にとって意味のある単語の順で所定の動作コマンドや目的パラメータに変換するように構成する。
これにより、ユーザーの意図が把握される。
その結果、入力された文字データと動作コマンドとのずれを最小または無にすることができる。
【0045】
例えば、図5(A)に示すように、「為替情報教えて」の文字データが入力された場合、「為替」、「情報」、「教えて」のように、分かち書きルールに沿って文節毎に区切る。
ここで、分かち書きルールについて説明する。
ルール1:文節は、きりはなす。
ルール2:文節中の一部分が、文節をつくれるときは、その部分をきりはなす。
ルール3:そのあいだに別のことばをわりこませられる部分は、きりはなす。
ルール4:そのうしろにいろいろなことばをつづけられる部分は、きりはなす。
【0046】
そして、「為替」、「情報」、「教えて」の単語から、ユーザーの意図である所謂、インテントが「尋ねている(知りたい)」ということをボット(人工知能制御手段)が把握(推定)する。
また、インテントにとって意味を持つ単語である所謂、エンティティが知りたい対象である「為替」の「情報」であると把握(推定)する。
これにより、為替情報について返事(為替情報のリソースをユーザーに通知する)をするという動作をすればよい。
本実施例では、一例として円対ドルの為替のURL情報が特定されて辞書データベース121に登録されている。
なお、辞書データベース121の登録によって特定できない場合は、インテントにとって意味を持つ単語である所謂、エンティティをさらに把握する。
例えば、具体的にどのような「為替」(円対ドルや円対ユーロなど)を尋ねているのかを把握する必要がある。
【0047】
そして、ボットが、「為替」の文字データを<url=https:yahoo/kawase/>のパラメータに変換する。
同様に、「教えて」の文字データを<respond>のコマンドに変換する。
つまり、図5(A)に示すように、変換により、「為替情報教えて」の文字データが、<url=https:yahoo/kawase/>情報<respond>のコマンドおよびパラメータを含むデータに変換される。
ボットが、<url=https:yahoo/kawase/>情報<respond>を実行可能と判定する。
そして、ボットが、サーバ120において、<url=https:yahoo/kawase/>の情報を取得してユーザーのスマートフォン端末110Aへ返信する。
なお、<url=https:yahoo/kawase/>のリソースページの全部または一部の情報を返信してもよいし、URL情報のみを返信して、ユーザーのスマートフォン端末110Aのチャット画面にURL情報で特定されるウェブサイトのプレビュー(サムネイル)を表示させてもよい。
【0048】
また、図5(B)に示すように、「為替って何?」の文字データが入力された場合、「為替」、「って」、「何」、「?」のように、分かち書きルールに沿って文節毎に区切る。
そして、「為替」、「って」、「何」、「?」の単語から、ユーザーの意図であるインテントが『何かの言葉の意味を調べたい(知りたい)』ということをボット(人工知能制御手段)が把握(推定)する。
次に、インテントにとって意味を持つ単語である所謂、エンティティを把握する。
この例の場合、「為替」の言葉が目的として意味を持つエンティティとなると推定する。
これにより、「為替」の言葉の意味について調べて返事をするという動作をすればよい。
【0049】
そして、ボットが、先ずインテントである「何」の文字データを<googlesearch[]>のコマンドに変換し、次にエンティティである「為替」の文字データを<為替>のパラメータに変換する。
つまり、1回目の変換で、「為替って何?」を<為替>って<googlesearch[]>?に変換する。
そして、ボットが、<為替>って<googlesearch[]>?を実行不可と判定し、ステップS2を繰り返す。
2回目の変換で、動作コマンドに目的パラメータを入れて、<googlesearch[為替]>に変換する。
ボットが、<googlesearch[為替]>を実行可能と判定する。
そして、ボットが、サーバ120において、所定の検索サイトで「為替」を検索して為替の言葉の意味の情報を取得してユーザーのスマートフォン端末110Aへ返信する。
【0050】
さらに、図3(B)の「為替」の欄に示すように、本実施例では、意図にとって意味のある単語とされた文字データの目的パラメータが複数あり、複数の目的パラメータが、ユーザーの意図の動作コマンドに応じて関連づけされて辞書データベース121に登録されている構成である。
これにより、ユーザーの意図(インテント)である動作コマンドに応じて意図にとって意味のある単語(エンティティ)である目的パラメータが関連付けされている。
その結果、入力された文字データと動作コマンドおよび目的パラメータとのずれを最小または無にすることができる。
【0051】
図5(A)に示すように、「為替情報教えて」の文字データが入力された場合、「為替」、「情報」、「教えて」のように、分かち書きルールに沿って文節毎に区切る。
そして、「為替」、「情報」、「教えて」の単語から、ユーザーの意図である所謂、インテントが「教えて(知りたい)」ということをボット(人工知能制御手段)が把握(推定)する。
また、インテントにとって意味を持つ単語である所謂、エンティティが知りたい対象である「為替」の「情報」であると把握(推定)する。
ここで、図3(B)に示す辞書データベース121において、「為替」の目的パラメータのうち、<url=https:yahoo/kawase/>が、動作コマンド<respond>と関連付けられている。
他方、<為替>が、動作コマンド<googlesearch[]>と関連付けられている。
【0052】
そして、ボットが、先ずインテントである「教えて」の文字データを<respond>のコマンドに変換する。
次に、エンティティである「為替」を、辞書データベース121の関連付けに基づいて、<url=https:yahoo/kawase/>のパラメータに変換する。
つまり、図5(A)に示すように、変換により、「為替情報教えて」の文字データが、<url=https:yahoo/kawase/>情報<respond>のコマンドおよびパラメータを含むデータに変換される。
ボットが、<url=https:yahoo/kawase/>情報<respond>を実行可能と判定する。
そして、ボットが、サーバ120において、<url=https:yahoo/kawase/>の情報を取得してユーザーのスマートフォン端末110Aへ返信する。
【0053】
また、図5(B)に示すように、「為替って何?」の文字データが入力された場合、「為替」、「って」、「何」、「?」のように、分かち書きルールに沿って文節毎に区切る。
そして、「為替」、「って」、「何」、「?」の単語から、ユーザーの意図であるインテントが『何かの言葉の意味を調べたい(知りたい)』ということをボット(人工知能制御手段)が把握(推定)する。
次に、「為替」の言葉が目的として意味を持つエンティティとなると推定する。
これにより、「為替」の言葉の意味について調べて返事をするという動作をすればよい。
【0054】
そして、ボットが、先ずインテントである「何」の文字データを<googlesearch[]>のコマンドに変換する。
次に、エンティティである「為替」を、辞書データベース121の関連付けに基づいて、<為替>のパラメータに変換する。
つまり、図5(B)に示すように、1回目の変換により、「為替って何?」の文字データが、<為替>って<googlesearch[]>?のコマンドおよびパラメータを含むデータに変換される。
【0055】
ボットが、<為替>って<googlesearch[]>?を実行不可と判定し、ステップS2を繰り返す。
2回目の変換で、動作コマンドに目的パラメータを入れて、<googlesearch[為替]>に変換する。
ボットが、<googlesearch[為替]>を実行可能と判定する。
そして、ボットが、サーバ120において、検索サイトで「為替」を検索して為替の言葉の意味の情報を取得してユーザーのスマートフォン端末110Aへ返信する。
【0056】
上述した実施例の変形例として、動作コマンドが対応自在な目的パラメータの属性、目的パラメータ自体の1つまたは複数の属性を辞書データベース121に予め登録した構成でもよい。
例えば、図6(A)に示すように、「オレンジを注文」の文字データが入力された場合、ボットが、「オレンジを注文」の文字データを事前に登録された辞書データベース121を参照して動作コマンド、目的パラメータに変換する。
具体的には、図6(C)に示すように、ボットが、受信した「オレンジを注文」の文字データの文字毎に、サーバ120の辞書データベース121を参照する。
【0057】
ここで、「オレンジ」は、「物」、「色」および「かな」の複数の属性にまたがって登録されている。
また、「注文」は、「mono(物)」の属性に対応自在に登録されている。
そこで、エンティティである「オレンジ」よりも先に、インテントである「注文」の文字データを<order>のコマンドに変換する。
次に、「オレンジ」の文字データを「物」の属性の目的パラメータとして<url=https:storeshop/orange/>に変換する。
つまり、図6(A)に示すように、「オレンジを注文」の文字データが<url=https:storeshop/orange/>を<order>のコマンドおよびパラメータを含むデータに変換される。
そして、ボットが、<url=https:storeshop/orange/>を<order>を実行可能と判定する。
その後、ボットが、サーバ120において、<url=https:storeshop/orange/>のウェブサイトにおいてオレンジの注文を実行する。
【0058】
また、例えば、図6(B)に示すように、「HP文字をオレンジに変更」の文字データが入力された場合、ボットが、「HP文字をオレンジに変更」の文字データを事前に登録された辞書データベース121を参照して動作コマンド、目的パラメータに変換する。
ここで、「オレンジ」は、上述したように、「物」および「色」の複数の属性にまたがって登録されている。
また、「変更」は、「color(色)、size(大きさ)」の属性に対応自在に登録されている。
そこで、エンティティである「オレンジ」よりも先に、インテントである「変更」の文字データを<change>のコマンドに変換する。
次に、「HP文字」の文字データを<url=https:abc.com/admin/text>に変更し、同様に「オレンジ」の文字データを「色」の属性の目的パラメータとして<color=&H0066FF>に変換する。
【0059】
ここで、「&H0066FF」は、オレンジのインデックスカラー情報である。
つまり、図6(B)に示すように、「HP文字をオレンジに変更」の文字データが<url=https:abc.com/admin/text>を<color=&H0066FF>に<change>のコマンドおよびパラメータを含むデータに変換される。
そして、ボットが、<url=https:abc.com/admin/text>を<color=&H0066FF>に<change>を実行可能と判定する。
その後、ボットが、サーバ120において、<url=https:abc.com/>のウェブサイトに管理者としてアクセス・ログインして所定の文字について、オレンジ色への変更を実行する。HTMLソースコードを変更して保存する具体的なやり方については公知であるので、その説明を省略する。
このように、ボットが辞書データベース121を参照し、エンティティの文字データを目的パラメータに変換する際、インテントの文字データ(動作コマンドの対応自在な属性)に応じて、エンティティの文字データを属性に基づいて適切な目的パラメータを選択してその目的パラメータに変換する。
その結果、ユーザーが意図した内容を、ボットが実行することができる。
【0060】
なお、図5(B)で説明した「為替って何?」と同様、「オレンジって何?」の文字データが入力された場合、「オレンジ」がかな文字の目的として検索エンジンにおいて検索される。その詳しい説明については、省略する。
また、スマートフォン端末110Aを用いたボットシステム100Aについて説明したが、人工知能スピーカ端末110Bを用いた人工知能スピーカシステム100Bについても基本的な動作は同様であるので、その詳しい説明を省略する。
また、本実施例では、一例として、実行可能判定ステップS3の後に実行ステップS4を実行したが、逆の順番でもよい。
先に実行ステップS4を試みて、実行不可だった場合に実行不可と判定してもよい。
さらに、実行可能判定ステップS3を行わずに、情報変換ステップS2の後に実行ステップS4を行う構成でもよい。
【0061】
このようにして得られた本発明の実施例であるボットシステム100Aのプログラムは、サーバ120のボットが、ユーザー端末の一例であるスマートフォン端末110Aから文字データを受信したことにより入力の有無を判定する入力判定ステップS1と、ボットが、文字データを事前に登録された辞書データベース121を参照して動作コマンド、目的パラメータまたは別の文字データに変換する情報変換ステップS2と、ボットが、動作コマンドおよび目的パラメータを実行する実行ステップS4とを具備していることにより、ユーザーはプログラム言語を使用せずにボットに所望の動作を簡単に実行させることができる。
【0062】
さらに、ボットが、変換後の動作コマンド、目的パラメータまたは別の文字データを実行可能か否か判定する実行可能判定ステップS3をさらに具備し、ボットが、実行不可と判定したとき、文字データを事前に登録された辞書データベース121を参照して動作コマンド、目的パラメータまたは別の文字データに変換する情報変換ステップS2を再度行う構成であることにより、想定内の誤字入力の場合、ボットは入力誤差を吸収して所望の動作を簡単に実行することができ、所定の動作コマンド、目的パラメータへ変換可能な文字データの短縮された短縮文字データで入力された場合、ユーザーは短縮文字データを入力するだけでボットに所望の動作を簡単に実行させることができる。
【0063】
また、情報変換ステップS2の前段階において、受信した文字データを形態素解析または分かち書きルールで区切ってユーザーの意図を把握するとともに意図にとって意味のある単語を把握する意図把握ステップをさらに具備し、情報変換ステップS2において、ボットが、ユーザーの意図、意図にとって意味のある単語の順で所定の動作コマンドや目的パラメータに変換する構成であることにより、入力された文字データと動作コマンドとのずれを最小または無にすることができる。
【0064】
さらに、意図にとって意味のある単語とされた文字データの目的パラメータが複数あり、複数の目的パラメータが、ユーザーの意図の動作コマンドに応じて関連づけされて辞書データベース121に登録されている構成であることにより、入力された文字データと動作コマンドおよび目的パラメータとのずれを最小または無にすることができる。
【0065】
また、本発明の実施例である人工知能スピーカシステム100Bのプログラムは、制御手段が、マイクから入力された音声データの有無を判定する入力判定ステップS1と、制御手段が、入力された音声データまたは音声データから変換された文字データを事前に登録されたサーバ120の辞書データベース121を参照して動作コマンド、目的パラメータまたは別の文字データに変換する情報変換ステップS2と、制御手段が、動作コマンドおよび目的パラメータを実行する実行ステップS4とを具備していることにより、ユーザーはプログラム言語を使用せずに制御手段に所望の動作を簡単に実行させることができるなど、その効果は甚大である。
【符号の説明】
【0066】
100A・・・ ボットシステム
100B・・・ 人工知能スピーカシステム
110A・・・ スマートフォン端末(ユーザー端末)
110B・・・ 人工知能スピーカ端末
120 ・・・ サーバ
121 ・・・ 辞書データベース
図1
図2
図3
図4
図5
図6