(57)【特許請求の範囲】
【請求項１】
業務処理ごとに管理される情報であり、業務処理を特定するアクション名を有する情報である１以上のインテントが格納されるインテント格納部と、
インテントに対応付いている情報であり、情報検索を行うための情報であり、１以上の変数であるパラメータを特定する情報を有する情報である１以上のＡＰＩ情報が格納されるＡＰＩ情報格納部と、
インテントに対応付く情報であり、会話文の情報である１以上の会話文情報が格納されるコーパス格納部と、
いずれか１以上の会話文情報に対応付く単語である１以上のエンティティが格納されるエンティティ格納部と、
会話文を受け付ける会話文受付部と、
前記会話文受付部が受け付けた会話文に対応するインテントを決定するインテント決定部と、
前記インテント決定部が決定したインテントに対応する１以上の会話文情報の中から、前記会話文受付部が受け付けた会話文に最も近似する会話文情報を決定する会話文情報決定部と、
前記会話文情報決定部が決定した会話文情報に対応付いている１以上の各エンティティに対応し、前記会話文受付部が受け付けた会話文が有する単語である１以上のエンティティを取得するエンティティ取得部と、
前記エンティティ取得部が取得した１以上の各エンティティに対応する１以上のパラメータを取得するパラメータ取得部と、
前記インテント決定部が決定したインテントに対応するＡＰＩ情報を前記ＡＰＩ情報格納部から取得するＡＰＩ情報取得部と、
前記パラメータ取得部が取得した１以上のパラメータと、前記ＡＰＩ情報取得部が取得したＡＰＩ情報とを用いて、情報検索するための問合情報を構成する問合情報構成部と、
前記問合情報構成部が構成した問合情報を実行し、検索結果を取得する検索部と、
前記検索部が取得した検索結果を出力する検索結果出力部とを具備する情報出力装置。
【請求項２】
前記インテント決定部は、
前記会話文受付部が受け付けた会話文に対応するテキストを取得し、当該テキストから１以上の自立語を取得し、当該１以上の自立語と同一または類似する単語を有するアクション名を有するインテントを決定する請求項１記載の情報出力装置。
【請求項３】
日に関する単語である日単語と、当該日単語に対応する日に関する情報であり、問合情報を構成する際に使用する情報である日情報を取得するための日情報取得情報とを有する１以上の日変換情報が格納される日変換情報格納部をさらに具備し、
前記パラメータ取得部は、
前記エンティティ取得部が取得した１以上のエンティティの中の日単語に対応する日変換情報を前記日変換情報格納部から取得し、当該日変換情報を用いて、パラメータである日情報を取得する請求項１または請求項２記載の情報出力装置。
【請求項４】
前記エンティティ格納部のエンティティは、エンティティの名称であるエンティティ名に対応付いており、
テーブルを特定するテーブル識別子と、当該テーブル識別子で識別されるテーブル内の属性名であり、変換されるエンティティを特定する情報である翻訳項目名と、エンティティ名とを有する１以上のエンティティマッピング情報が格納されるエンティティマッピング情報格納部と、
テーブル識別子と当該テーブル識別子で識別されるテーブルの主キーを特定する主キー識別子とを有する１以上のＰＫ項目が格納されるＰＫ項目格納部とをさらに具備し、
前記パラメータ取得部は、
前記エンティティ取得部が取得したエンティティに対応するエンティティ名を取得するエンティティ名取得手段と、
前記エンティティ名取得手段が取得したエンティティ名と対になる翻訳項目名を前記エンティティマッピング情報格納部から取得する翻訳項目名取得手段と、
前記エンティティ名取得手段が取得したエンティティ名と対になるテーブル識別子を前記エンティティマッピング情報格納部から取得するテーブル識別子取得手段と、
前記テーブル識別子取得手段が取得したテーブル識別子と対になる主キー識別子を前記ＰＫ項目格納部から取得する主キー識別子取得手段と、
前記テーブル識別子取得手段が取得したテーブル識別子で識別されるテーブルから、前記翻訳項目名取得手段が取得した翻訳項目名の属性値が、前記エンティティ取得部が取得したエンティティと一致するレコードに含まれる属性値であり、前記主キー識別子取得手段が取得した主キー識別子の属性値である変換されたパラメータを取得する変換パラメータ取得手段とを具備する請求項１から請求項３いずれか一項に記載の情報出力装置。
【請求項５】
前記問合情報構成部は、
前記ＡＰＩ情報取得部が取得したＡＰＩ情報が有する１以上の各変数の箇所に、当該各箇所に対応付くパラメータであり、前記パラメータ取得部が取得したパラメータを配置し、問合情報を構成する請求項１から請求項４いずれか一項に記載の情報出力装置。
【請求項６】
前記受付部は、
会話文の音声を受け付ける音声受付手段と、
前記音声に対して音声認識処理を行い文字列である会話文を取得する音声認識手段とを具備する請求項１から請求項５いずれか一項に記載の情報出力装置。
【請求項７】
業務処理ごとに管理される情報であり、業務処理を特定するアクション名を有する情報である１以上のインテントが格納されるインテント格納部、インテントに対応付いている情報であり、情報検索を行うための情報であり、１以上の変数であるパラメータを特定する情報を有する情報である１以上のＡＰＩ情報が格納されるＡＰＩ情報格納部、インテントに対応付く情報であり、会話文の情報である１以上の会話文情報が格納されるコーパス格納部、いずれか１以上の会話文情報に対応付く単語である１以上のエンティティが格納されるエンティティ格納部、会話文受付部、インテント決定部、会話文情報決定部、エンティティ取得部、パラメータ取得部、ＡＰＩ情報取得部、問合情報構成部、検索部、および検索結果出力部によって実現される情報出力方法であって、
前記会話文受付部が、会話文を受け付ける会話文受付ステップと、
前記インテント決定部が、前記会話文受付部が受け付けた会話文に対応するインテントを決定するインテント決定ステップと、
前記会話文情報決定部が、前記インテント決定部が決定したインテントに対応する１以上の会話文情報の中から、前記会話文受付部が受け付けた会話文に最も近似する会話文情報を決定する会話文情報決定ステップと、
前記エンティティ取得部が、前記会話文情報決定部が決定した会話文情報に対応付いている１以上の各エンティティに対応し、前記会話文受付部が受け付けた会話文が有する単語である１以上のエンティティを取得するエンティティ取得ステップと、
前記パラメータ取得部が、前記エンティティ取得部が取得した１以上の各エンティティに対応する１以上のパラメータを取得するパラメータ取得ステップと、
前記ＡＰＩ情報取得部が、前記インテント決定部が決定したインテントに対応するＡＰＩ情報を前記ＡＰＩ情報格納部から取得するＡＰＩ情報取得ステップと、
前記問合情報構成部が、前記パラメータ取得部が取得した１以上のパラメータと、前記ＡＰＩ情報取得部が取得したＡＰＩ情報とを用いて、情報検索するための問合情報を構成する問合情報構成ステップと、
前記検索部が、前記問合情報構成部が構成した問合情報を実行し、検索結果を取得する検索ステップと、
前記出力部が、前記検索部が取得した検索結果を出力する検索結果出力ステップとを含む情報出力方法。
【請求項８】
業務処理ごとに管理される情報であり、業務処理を特定するアクション名を有する情報である１以上のインテントが格納されるインテント格納部、インテントに対応付いている情報であり、情報検索を行うための情報であり、１以上の変数であるパラメータを特定する情報を有する情報である１以上のＡＰＩ情報が格納されるＡＰＩ情報格納部、インテントに対応付く情報であり、会話文の情報である１以上の会話文情報が格納されるコーパス格納部、およびいずれか１以上の会話文情報に対応付く単語である１以上のエンティティが格納されるエンティティ格納部にアクセス可能なコンピュータを、
会話文を受け付ける会話文受付部と、
前記会話文受付部が受け付けた会話文に対応するインテントを決定するインテント決定部と、
前記インテント決定部が決定したインテントに対応する１以上の会話文情報の中から、前記会話文受付部が受け付けた会話文に最も近似する会話文情報を決定する会話文情報決定部と、
前記会話文情報決定部が決定した会話文情報に対応付いている１以上の各エンティティに対応し、前記会話文受付部が受け付けた会話文が有する単語である１以上のエンティティを取得するエンティティ取得部と、
前記エンティティ取得部が取得した１以上の各エンティティに対応する１以上のパラメータを取得するパラメータ取得部と、
前記インテント決定部が決定したインテントに対応するＡＰＩ情報を前記ＡＰＩ情報格納部から取得するＡＰＩ情報取得部と、
前記パラメータ取得部が取得した１以上のパラメータと、前記ＡＰＩ情報取得部が取得したＡＰＩ情報とを用いて、情報検索するための問合情報を構成する問合情報構成部と、
前記問合情報構成部が構成した問合情報を実行し、検索結果を取得する検索部と、
前記検索部が取得した検索結果を出力する検索結果出力部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、会話文を受け付け、会社等の組織内のデータベースに対して情報検索を行い、結果を出力する情報出力装置等に関するものである。
【背景技術】
【０００２】
従来、組織内のデータベースに対して情報検索を行うには、例えば、専用のプログラムを作成するか、検索ツールを使ってデータベースから情報を取得し、出力する技術を利用していた。
また、近年、ユーザが発した言葉でインターネット検索や予め決められた装置のオンオフを行う技術が存在した（例えば、非特許文献１参照）。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】“Siri”、［online］、Apple Inc.、［令和１年５月１７日検索］、インターネット［URL：https://www.apple.com/jp/siri/］
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、会話文（自然言語文といってもよい）は、同じ検索結果を求める問合せでも、例えば、それを発する人や人が属する会社等の組織などによって、動的に変化する。例えば、特定の社員の特定の月の残業時間を問い合わせる会話文は、「中村の先月の残業時間を教えて」や「先月の中村一郎の残業を教えて」などのように、何通りも存在する。【０００５】
上記のような従来技術では、こうした、同じ検索結果を求める問合せでも動的に変化する会話文を受け付け、情報検索することが困難であった。
【課題を解決するための手段】
【０００６】
本第一の発明の情報出力装置は、業務処理ごとに管理される情報であり、業務処理を特定するアクション名を有する情報である１以上のインテントが格納されるインテント格納部と、インテントに対応付いている情報であり、情報検索を行うための情報であり、１以上の変数であるパラメータを特定する情報を有する情報である１以上のＡＰＩ情報が格納されるＡＰＩ情報格納部と、インテントに対応付く情報であり、会話文の情報である１以上の会話文情報が格納されるコーパス格納部と、いずれか１以上の会話文情報に対応付く単語である１以上のエンティティが格納されるエンティティ格納部と、会話文を受け付ける会話文受付部と、会話文受付部が受け付けた会話文に対応するインテントを決定するインテント決定部と、インテント決定部が決定したインテントに対応する１以上の会話文情報の中から、会話文受付部が受け付けた会話文に最も近似する会話文情報を決定する会話文情報決定部と、会話文情報決定部が決定した会話文情報に対応付いている１以上の各エンティティに対応し、会話文受付部が受け付けた会話文が有する単語である１以上のエンティティを取得するエンティティ取得部と、エンティティ取得部が取得した１以上の各エンティティに対応する１以上のパラメータを取得するパラメータ取得部と、インテント決定部が決定したインテントに対応するＡＰＩ情報をＡＰＩ情報格納部から取得するＡＰＩ情報取得部と、パラメータ取得部が取得した１以上のパラメータと、ＡＰＩ情報取得部が取得したＡＰＩ情報とを用いて、情報検索するための問合情報を構成する問合情報構成部と、問合情報構成部が構成した問合情報を実行し、検索結果を取得する検索部と、検索部が取得した検索結果を出力する検索結果出力部とを具備する情報出力装置である。【０００７】
かかる構成により、同じ検索結果を求める問合せでも動的に変化する会話文を受け付け、情報検索することができる。【０００８】
また、本第二の発明の情報出力装置は、第一の発明に対して、インテント決定部は、会話文受付部が受け付けた会話文に対応するテキストを取得し、テキストから１以上の自立語を取得し、１以上の自立語と同一または類似する単語を有するアクション名を有するインテントを決定する情報出力装置である。【０００９】
かかる構成により、同じ検索結果を求める問合せでも動的に変化する会話文を受け付け、情報検索することができる。【００１０】
また、本第三の発明の情報出力装置は、第一または第二の発明に対して、日に関する単語である日単語と、日単語に対応する日に関する情報であり、問合情報を構成する際に使用する情報である日情報を取得するための日情報取得情報とを有する１以上の日変換情報が格納される日変換情報格納部をさらに具備し、パラメータ取得部は、エンティティ取得部が取得した１以上のエンティティの中の日単語に対応する日変換情報を日変換情報格納部から取得し、日変換情報を用いて、パラメータである日情報を取得する情報出力装置である。【００１１】
かかる構成により、同じ検索結果を求める問合せでも動的に変化する会話文を受け付け、適切に情報検索することができる。【００１２】
なお、上記構成において、パラメータ取得部は、エンティティ取得部が取得した１以上のエンティティの中に日単語が存在するか否かを判断する判断手段３４１と、判断手段３４１が日単語が存在すると判断した場合に、日単語に対応する日変換情報を日変換情報格納部から取得し、日変換情報を用いて、パラメータである日情報を取得する日情報取得手段とを具備していてもよい。これにより、日単語の有無によらず、同じ検索結果を求める問合せでも動的に変化する会話文を受け付け、適切に情報検索することができる。【００１３】
また、本第四の発明の情報出力装置は、第一から第三いずれか１つの発明に対して、エンティティ格納部のエンティティは、エンティティの名称であるエンティティ名に対応付いており、テーブルを特定するテーブル識別子と、テーブル識別子で識別されるテーブル内の属性名であり、変換されるエンティティを特定する情報である翻訳項目名と、エンティティ名とを有する１以上のエンティティマッピング情報が格納されるエンティティマッピング情報格納部と、テーブル識別子とテーブル識別子で識別されるテーブルの主キーを特定する主キー識別子とを有する１以上のＰＫ項目が格納されるＰＫ項目格納部とをさらに具備し、パラメータ取得部は、エンティティ取得部が取得したエンティティに対応するエンティティ名を取得するエンティティ名取得手段と、エンティティ名取得手段が取得したエンティティ名と対になる翻訳項目名をエンティティマッピング情報格納部から取得する翻訳項目名取得手段と、エンティティ名取得手段が取得したエンティティ名と対になるテーブル識別子をエンティティマッピング情報格納部から取得するテーブル識別子取得手段と、テーブル識別子取得手段が取得したテーブル識別子と対になる主キー識別子をＰＫ項目格納部から取得する主キー識別子取得手段と、テーブル識別子取得手段が取得したテーブル識別子で識別されるテーブルから、翻訳項目名取得手段が取得した翻訳項目名の属性値が、エンティティ取得部が取得したエンティティと一致するレコードに含まれる属性値であり、主キー識別子取得手段が取得した主キー識別子の属性値である変換されたパラメータを取得する変換パラメータ取得手段とを具備する情報出力装置である。【００１４】
かかる構成により、同じ検索結果を求める問合せでも動的に変化する会話文を受け付け、適切に情報検索することができる。【００１５】
また、本第五の発明の情報出力装置は、第一から第四いずれか１つの発明に対して、問合情報構成部は、ＡＰＩ情報取得部が取得したＡＰＩ情報が有する１以上の各変数の箇所に、各箇所に対応付くパラメータであり、パラメータ取得部が取得したパラメータを配置し、問合情報を構成する情報出力装置である。【００１６】
かかる構成により、同じ検索結果を求める問合せでも動的に変化する会話文を受け付け、情報検索することができる。【００１７】
また、本第六の発明の情報出力装置は、第一から第五いずれか１つの発明に対して、受付部は、会話文の音声を受け付ける音声受付手段と、音声に対して音声認識処理を行い文字列である会話文を取得する音声認識手段とを具備する情報出力装置である。【００１８】
かかる構成により、同じ検索結果を求める問合せでも動的に変化する音声による会話文を受け付け、情報検索することができる。
【発明の効果】
【００１９】
本発明によれば、同じ検索結果を求める問合せでも動的に変化する会話文を受け付け、情報検索することができる。
【図面の簡単な説明】
【００２０】
【図１】実施の形態における情報出力装置のブロック図
【図２】情報出力装置の動作を説明するフローチャート
【図３】パラメータ取得処理を説明するフローチャート
【図４】テーブル情報のデータ構造図
【図５】インテントのデータ構造図
【図６】ＡＰＩ情報格納部の内容の一例を示す図
【図７】コーパス格納部の内容の一例を示す図を示す図
【図８】各エンティティ名に対応する１以上のエンティティの例を示す図
【図９】エンティティマッピング情報のデータ構造図
【図１０】ＰＫ項目のデータ構造図
【図１１】コンピュータシステムの外観図
【図１２】コンピュータシステムの内部構成の一例を示す図
【発明を実施するための形態】
【００２１】
以下、情報出力装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
【００２２】
本実施の形態における情報出力装置は、例えば、サーバである。サーバは、例えば、情報検索等のサービスを提供する企業内のサーバであるが、クラウドサーバやＡＳＰサーバ等でもよく、そのタイプは問わない。サーバは、例えば、ＬＡＮやインターネット等のネットワーク、無線または有線の通信回線などを介して、１または２以上の端末（図示しない）と通信可能に接続される。端末は、例えば、情報検索等のサービスを利用するユーザの携帯端末であるが、据え置き型のＰＣ等でもよく、そのタイプは問わない。携帯端末は、例えば、タブレット端末、スマートフォン、携帯電話機、ノートＰＣ等であるが、その種類は問わない。
【００２３】
ただし、情報出力装置は、例えば、スタンドアロンの端末でもよく、その実現手段は問わない。
【００２４】
図１は、本実施の形態における情報出力装置のブロック図である。情報出力装置は、格納部１、受付部２、処理部３、および出力部４を備える。格納部１は、テーブル格納部１１、インテント格納部１２、ＡＰＩ情報格納部１３、コーパス格納部１４、エンティティ格納部１５、エンティティマッピング情報格納部１６、ＰＫ項目格納部１７、および日変換情報格納部１８を備える。受付部２は、会話文受付部２１を備える。会話文受付部２１は、音声受付手段２１１、および音声認識手段２１２を備える。
【００２５】
処理部３は、インテント決定部３１、会話文情報決定部３２、エンティティ取得部３３、パラメータ取得部３４、ＡＰＩ情報取得部３５、問合情報構成部３６、および検索部３７を備える。パラメータ取得部３４は、判断手段３４１、日情報取得手段３４２、エンティティ名取得手段３４３、翻訳項目名取得手段３４４、テーブル識別子取得手段３４５、主キー識別子取得手段３４６、および変換パラメータ取得手段３４７を備える。出力部４は、検索結果出力部４１を備える。
【００２６】
格納部１は、各種の情報を格納し得る。各種の情報とは、例えば、テーブル、インテント、ＡＰＩ情報、コーパス、エンティティ、エンティティマッピング情報、ＰＫ項目、および日変換情報などである。なお、テーブル等の情報については後述する。また、その他の情報については、適時説明する。
【００２７】
テーブル格納部１１には、１または２以上のテーブルが格納される。テーブルは、例えば、表形式のデータベースであってもよい。テーブルには、例えば、１または２以上の項目名が登録され、さらに、当該１以上の各項目名ごとに、１または２以上の値が登録される。なお、項目名は、属性名といってもよいし、一の項目名に対応する１以上の各値は、属性値といってもよい。また、テーブルは、例えば、リレーショナルデータベースのテーブル、ＴＳＶ、エクセル、ＣＳＶ等であるが、その種類は問わない。
【００２８】
格納されるテーブルは、具体的には、例えば、社員マスタ、業務マスタ、勤務時間テーブルなどである。社員マスタには、社員に関するマスタデータが登録される。社員に関するマスタデータとは、例えば、社員コード、社員名等のデータであるが、その種類は問わない。業務マスタには、業務に関するマスタデータが登録される。業務に関するマスタデータとは、例えば、業務ＩＤ、業務名等のデータであるが、その種類は問わない。
【００２９】
勤務時間テーブルには、勤務時間に関するデータが登録される。勤務時間に関するデータとは、例えば、日付、残業時間、合計勤務時間、業務ＩＤ等の可変的なデータであるが、その種類は問わない。なお、合計勤務時間とは、定時までの勤務時間と残業時間との合計である。
【００３０】
勤務時間テーブルには、通常、社員コードに対応付けて、上記のような勤務時間に関するデータが登録される。ただし、勤務時間に関するデータが対応付く情報は、例えば、社員名でもよく、社員を識別し得る情報でれば何でもよい。
【００３１】
インテント格納部１２には、１または２以上のインテントが格納される。インテントとは、業務処理ごとに管理される情報である。業務処理ごとに管理されることは、例えば、業務処理を特定する情報に対応付けて、インテント格納部１２に格納されることであってもよい。なお、業務処理を特定する情報は、通常、後述するアクション名であるが、その形式は問わない。また、対応付くことは、例えば、インテントが、業務処理を特定する情報を有する場合も含む。
【００３２】
業務処理とは、業務に関する処理である。業務は、例えば、会社や団体等の組織で行われる仕事である、といってもよい。業務は、例えば、定時までの勤務、定時後の残業、休暇、欠勤、Ａ案件、Ｂ案件、経理、製造などであるが、その種類は問わない。業務処理は、例えば、情報の検索である。なお、検索は、例えば、照会といってもよい。検索される情報は、例えば、残業時間や勤務時間等の勤怠情報であるが、残高や株価等の金融情報、または製造ラインの稼働情況などでもよく、その内容は問わない。
【００３３】
ただし、業務処理は、例えば、情報の登録、または情報に基づく処理（例えば、勤怠情報に基づく給与計算、財務情報に基づく金融取引等）などでもよく、その種類は問わない。
【００３４】
インテントは、通常、業務処理を特定するアクション名を有する。アクション名とは、アクションの名称である。アクションとは、通常、ＡＰＩを介して実行される業務処理である。ただし、アクションは、例えば、ＳＱＬ文に応じて実行される業務処理であってもよい。
【００３５】
なお、アクション名は、通常、後述するＡＰＩ情報にも対応付いている。従って、インテントは、例えば、アクション名を介して、ＡＰＩ情報に対応付けられる、と考えてもよい。
【００３６】
また、インテントは、通常、インテント名も有する。インテント名とは、インテントの名称である。従って、インテントは、インテント名または当該インテント名で特定されるインテントと、アクション名または当該アクション名で特定されるアクションとを対応付ける情報である、と考えることもできる。
【００３７】
アクション名は、具体的には、例えば、「残業時間照会」、「勤務時間データ照会」等であるが、業務処理を特定し得る情報であれば何でもよい。
【００３８】
ＡＰＩ情報格納部１３には、１または２以上のＡＰＩ情報が格納される。ＡＰＩ情報とは、ＡＰＩに関する情報である。ＡＰＩとは、プログラムの機能を利用するためのインターフェースである。ＡＰＩは、例えば、関数、メソッド、または実行モジュールなどのソフトウェアである。ＡＰＩは、例えば、ＷｅｂＡＰＩであるが、それ以外のＡＰＩでもよい。ＷｅｂＡＰＩとは、ＨＴＴＰやＨＴＴＰＳなどのＷｅｂ通信のプロトコルを用いて構築されたＡＰＩである。なお、ＷｅｂＡＰＩ等のＡＰＩについては、公知技術であるので、詳しい説明を省略する。
【００３９】
ＡＰＩ情報は、インテントに対応付いている情報である。ＡＰＩ情報は、前述したように、例えば、アクション名を介して、インテントに対応付いている。
【００４０】
ＡＰＩ情報は、通常、情報検索を行うための情報である。ただし、ＡＰＩ情報は、例えば、情報の登録、または情報に基づく処理などを行うための情報であってもよい。
【００４１】
ＡＰＩ情報は、１または２以上のパラメータ特定情報を有する。パラメータ特定情報とは、パラメータを特定する情報である。パラメータとは、特定の属性を有する値である、といってもよい。値は、通常、変数である。変数は、引数といってもよい。
【００４２】
パラメータは、通常、エンティティを変換した情報であるが、エンティティそのものでもよい。パラメータは、例えば、ＡＰＩに与える引数、またはＳＱＬ文の変数などである。
【００４３】
パラメータは、例えば、属性名と値との組で構成されてもよい。属性名と値との組とは、具体的には、例えば、“ｓｈａｉｎ＿ｃｏｄｅ＝２”、“ｓｔａ＿ｄａｔｅ＝２０１９０４０１，ｅｎｄ＿ｄａｔｅ＝２０１９０４３０”等であるが、その形式は問わない。
【００４４】
パラメータ特定情報は、例えば、パラメータ名である。パラメータ名とは、パラメータの名称である。または、パラメータ特定情報は、例えば、属性名であるが、パラメータを特定し得る情報であれば何でもよい。
【００４５】
ＡＰＩ情報は、例えば、メソッドである。メソッドは、例えば、“ｓｅｒｃｈ＿残業時間（社員コード＝＄１，開始日付＝＄２，終了日付＝＄３）”や“ｓｅｒｃｈ＿業務時間（社員コード＝＄１，作業日付＝＄２，業務ＩＤ＝＄３）”等であるが、その形式は問わない。なお、メソッドについては、公知であるので詳しい説明を省略する。
【００４６】
または、ＡＰＩ情報は、例えば、ＳＱＬ文でもよい。ＳＱＬ文とは、データベースに対して問い合わせを行うための文である、といってもよい。ＳＱＬ文は、例えば、“ｓｅｌｅｃｔ＿残業時間＿ｆｒｏｍ＿テーブル名＝＄１＿ｗｈｅｒｅ＿社員コード＝＄２，業務日付＝＄３”等であるが、その構造は問わない。なお、ＳＱＬ文については、公知であるので詳しい説明を省略する。
【００４７】
または、ＡＰＩ情報は、例えば、ＵＲＬとメソッドとの組などでもよく、その構造は問わない。ＵＲＬとメソッドとの組は、具体的には、例えば、“ｈｔｔｐ：／／ｄｅｖｅｌｏｐ．ｓｏｐｐｒａ・・・？社員コード＝＄１＆開始日付＝＄２＆終了日付＝＄３”等であるが、その形式は問わない。なお、この種のＡＰＩ情報は、例えば、ＷｅｂＡＰＩ情報といってもよい。
【００４８】
コーパス格納部１４には、１または２以上の会話文情報が格納される。会話文情報とは、会話文の情報である。会話文情報は、通常、会話文の例文である。例文は、例えば、“中村の先月の残業時間を教えて”や“中村の昨日のＡ案件の勤務時間を教えて”等であるが、その内容は問わない。
【００４９】
ただし、会話文情報は、会話文のテンプレートであってもよい。テンプレートは、例えば、“｛社員エンティティ｝の｛日付エンティティ｝の｛残業エンティティ｝を教えて”や“｛社員エンティティ｝の｛日付エンティティ｝の｛業務エンティティ｝の｛勤務時間エンティティ｝を教えて”等であるが、その形式は問わない。なお、テンプレートに含まれる｛社員エンティティ｝等の“｛”，“｝”で表現される情報は、例えば、変数と呼んでもよい。また、エンティティ、および「社員エンティティ」等のエンティティ名については後述する。
【００５０】
会話文情報は、通常、インテントに対応付いている。すなわち、コーパス格納部１４には、例えば、インテント格納部１２に格納されている１以上の各インテントごとに、１または２以上の会話文情報が格納される（図７参照：後述）。
【００５１】
また、コーパス格納部１４には、通常、格納されている１以上の各会話文情報ごとに、１または２以上のエンティティ情報も格納される。エンティティ情報とは、一の会話文情報に対応付いている１以上の各エンティティに関する情報である。エンティティ情報は、会話文情報が例文の場合、例えば、エンティティ、開始位置、終了位置、およびエンティティ名を有する。
【００５２】
エンティティ情報が有するエンティティは、当該エンティティ情報が有するエンティティ名に対応する１または２以上のエンティティの中の代表値である。代表値は、一のエンティティ名に対応する１以上のエンティティ中の、例えば、先頭のエンティティであるが、どのエンティティでもよい。
【００５３】
開始位置とは、会話文情報において当該エンティティが始まる位置である。開始位置は、例えば、会話文を構成する文字列において、当該エンティティの最初の文字が何番目の文字であるかを示す値（例えば、“１”や“４”等）で表現される。同様に、終了位置とは、会話文情報において当該エンティティが終わる位置であり、例えば、当該エンティティの最後の文字が何番目の文字であるかを示す値（例えば、“２”や“５”等）で表現される。ただし、開始位置や終了位置の表現形式は問わない。なお、開始位置および終了位置は、オフセットといってもよい。また、オフセットは、バイト数で表現されてもよく、その形式は問わない。
【００５４】
エンティティ名とは、エンティティの名称である。エンティティ名は、例えば、「社員エンティティ」、「日付エンティティ」、「残業時間エンティティ」等であるが、エンティティの属性を表現し得る情報であれば、その形式は問わない。社員エンティティとは、社員に関するエンティティである。日付エンティティとは、日付に関するエンティティである。残業時間エンティティとは、残業時間に関するエンティティである。
【００５５】
または、エンティティ情報は、会話文情報がテンプレートの場合、例えば、エンティティ名、および順序情報を有していてもよい。順序情報とは、テンプレートに含まれる１以上の変数において、当該エンティティ名が何番目の変数に対応するかを示す値である。ただし、エンティティ情報の構造は問わない。
【００５６】
コーパス格納部１４には、具体的には、例えば、会話文情報“中村の先月の残業時間を教えて”と、これに対応する３つのエンティティ情報“中村，１，２，社員エンティティ”，“先月，４，５，日付エンティティ”，および“残業時間，７，１０，残業エンティティ”が格納されていてもよい。
【００５７】
なお、本実施の形態におけるコーパスとは、例えば、コーパス格納部１４に格納されている１以上の会話文情報の各々と考えてもよいし、１以上の会話文情報、および各会話文情報に対応付いているエンティティ情報の集合と考えることもできる。
【００５８】
エンティティ格納部１５には、１または２以上のエンティティが格納される。エンティティとは、会話文情報に対応付けられた１または２以上の各単語である。単語とは、文を構成する単位である。単語は、例えば、単に「語」、または「ことば」などと呼んでもよいし、形態素の一種（例えば、後述する自立語）と考えてもよい。
【００５９】
エンティティ格納部１５には、例えば、１以上の各エンティティ名に対応付けて、１または２以上のエンティティが格納される。
【００６０】
エンティティは、通常、コーパス格納部１４に格納されている１以上の会話文情報の中のいずれか１つ又は２以上の会話文情報に対応付いている。従って、エンティティ格納部１５には、例えば、コーパス格納部１４に格納されている１以上の各会話文情報ごとに、１または２以上のエンティティが格納されてもよい。
【００６１】
会話文情報に対応付く単語は、通常、自立語である。自立語とは、単独でも文節を構成し得る語であり、例えば、名詞であるが、動詞、形容詞等でもよい。ただし、対応付く単語は、付属語でもよい。付属語とは、単独では文節を構成し得ず、他の自立語を伴って文節を構成する語であり、例えば、助動詞、助詞などである。つまり、対応付く単語は、通常、自立語であるが、付属語を伴った自立語であってもよい。
【００６２】
また、対応付く単語は、例えば、連語でもよい。連語とは、２以上の自律語が結び付いて一定の意味を表す語であり、複合語といってもよい。連語は、例えば、“残業”と“時間”が結合した“残業時間”や、“Ａ”と“案件”が結合した“Ａ案件”等であるが、“中村一郎”といった氏と名の組でもよく、２以上の語の組であれば何でもよい。
【００６３】
なお、対応付く単語は、会話文情報が例文の場合は、当該例文に含まれている１または２以上の各単語（つまり、会話文情報内の情報）あるが、会話文情報がテンプレートの場合は、当該テンプレートに含まれる１または２以上の各変数の位置に挿入されるべき単語（つまり、会話文情報に付加される情報）である。
【００６４】
エンティティマッピング情報格納部１６には、１または２以上のエンティティマッピング情報が格納される。エンティティマッピング情報とは、テーブル識別子および翻訳項目名をエンティティ名に対応付ける情報である、といってもよい。
【００６５】
エンティティマッピング情報は、例えば、テーブル識別子と、翻訳項目名と、エンティティ名とを有する。テーブル識別子とは、テーブル格納部１１に格納されている１以上の各テーブルを識別する情報である。テーブル識別子は、例えば、“ＭＳＴ＿ＳＨＡＩＮ”や“ＴＲＮ＿ＴＩＭＥ＿ＣＡＲＤ”等であるが、テーブルを識別し得る情報であれば何でもよい。
【００６６】
翻訳項目名とは、テーブル識別子で識別されるテーブル内の属性名であり、変換されるエンティティを特定する情報である。変換されるエンティティとは、パラメータに変換されるエンティティ（例えば、パラメータ“ｓｈａｉｎ＿ｃｏｄｅ＝１”に変換されるエンティティ“中村一郎”や、パラメータ“ｓｔａ＿ｄａｔｅ＝２０１９０４０１，ｅｎｄ＿ｄａｔｅ＝２０１９０４３０”に変換されるエンティティ“先月”等）である。
【００６７】
翻訳項目名は、例えば、テーブル識別子で識別されるテーブルが有する１以上の項目名のうち、主キー以外のキーに対応する項目名であり、主キーに対応する項目名に変換される項目名であってもよい。主キーに対応する項目名とは、例えば、主キー識別子である。
【００６８】
翻訳項目名は、例えば、“ＳＨＡＩＮ＿ＣＯＤＥ”や“ＴＩＭＥ＿ＣＡＲＤ＿ＤＡＴＥ”等であるが、変換されるエンティティを特定し得る情報であれば何でもよい。
【００６９】
ＰＫ項目格納部１７には、１または２以上のＰＫ項目が格納される。ＰＫ項目とは、主キーに対応する項目である。ＰＫ項目は、例えば、テーブル識別子と、主キー識別子とを有する。主キー識別子とは、テーブル識別子で識別されるテーブルの主キーを特定する情報である。
【００７０】
主キー識別子は、例えば、テーブル識別子“ＭＳＴ＿ＳＨＡＩＮ”で識別されるテーブル（以下、社員マスタ）の場合は“ＳＨＡＩＮ＿ＣＯＤＥ”であり、テーブル識別子“ＴＲＮ＿ＴＩＭＥ＿ＣＡＲＤ”で識別されるテーブル（以下、勤務時間テーブル）の場合は“ＳＨＡＩＮ＿ＣＯＤＥ”と“ＴＩＭＥ＿ＣＡＲＤ＿ＤＡＴＥ”の２つである。
【００７１】
日変換情報格納部１８には、１または２以上の日変換情報が格納される。日変換情報とは、日単語を日付に変換するための情報である。日単語とは、日に関する単語である。日単語は、通常、エンティティ名「日付エンティティ」に対応付いた単語であり、例えば、「先月」、「昨日」、「先週」、「今年」、「今月」、「昨年」、「前期」、「今年度」などであるが、日付に変換し得る情報であれば何でもよい。
【００７２】
日変換情報は、日単語と、日情報取得情報とを有する。日情報取得情報とは、日情報を取得するための情報である。日情報とは、日単語に対応する日に関する情報であり、問合情報を構成する際に使用する情報である。日情報は、例えば、“４月１日”等の日付を示す情報でもよいし、“４／１〜４／３０”等の開始日付から終了日付までの期間を示す情報でもよく、その形式は問わない。日情報取得情報は、例えば、関数名、またはメソッド名であるが、ＡＰＩ情報でもよいし、プログラム自体でもよく、その形式は問わない。
【００７３】
具体的には、日単語「先月」に対する日情報取得情報は、例えば、現在時刻情報（例えば“２０１９年５月１０日１１時１５分”：以下同様）を取得し、当該現在時刻情報が有する月（例えば“５月”）に対して前の月（例えば“４月”）を取得し、当該前の月のカレンダー情報を参照して、当該前の月の初日から末日までの日情報（例えば“４／１〜４／３０”等）を取得するプログラム等でもよい。
【００７４】
また、日単語「今年」に対する日情報取得情報は、例えば、現在時刻情報を取得し、当該現在時刻情報が有する年（例えば“２０１９年”）のカレンダー情報を参照して、当該年の初日から、当該現在時刻情報が有する日までの日情報（例えば、“２０１９／１／１〜２０１９／５／１０”）を取得するＡＰＩ情報等でもよい。
【００７５】
さらに、日単語「昨日」に対する日情報取得情報は、現在時刻情報を取得し、当該現在時刻情報が有する日の前の日の日情報（例えば、“５／９”）を取得するメソッド、またはそのメソッド名等でもよい。
【００７６】
受付部２は、各種の情報を受け付ける。各種の情報とは、例えば、会話文である。受付部２は、会話文等の情報を、例えば、端末から受信するが、キーボードやタッチパネルやマイクロフォン等の入力デバイスを介して受け付けてもよい。または、受付部２は、例えば、ディスクや半導体メモリ等の記録媒体から読み出された情報を受け付けてもよく、その受け付けの態様は問わない。
【００７７】
会話文受付部２１は、会話文を受け付ける。会話文とは、人が会話する文であり、自然言語による文といってもよい。会話文の受け付けは、例えば、音声での受け付けであるが、テキストでの受け付けでもよい。音声とは、人が発した声である。テキストとは、人が発した声を音声認識した文字列である。文字列は、１または２以上の文字の配列で構成される。
【００７８】
音声受付手段２１１は、会話文の音声を受け付ける。音声受付手段２１１は、会話文の音声を、例えば、端末から、端末識別子と対に受信するが、マイクロフォンを介して受け付けてもよい。端末識別子とは、端末を識別する情報である。端末識別子は、例えば、ＭＡＣアドレス、ＩＰアドレス、ＩＤなどであるが、端末を識別し得る情報であれば何でもよい。なお、端末識別子は、端末のユーザを識別するユーザ識別子でもよい。ユーザ識別子は、例えば、メールアドレス、電話番号等であるが、ＩＤや住所・氏名等でもよく、ユーザを識別し得る情報であれば何でもよい。
【００７９】
音声認識手段２１２は、音声受付手段２１１が受け付けた音声に対して音声認識処理を行い、文字列である会話文を取得する。なお、音声認識処理は公知技術であり、詳しい説明を省略する。
【００８０】
処理部３は、各種の処理を行う。各種の処理とは、例えば、インテント決定部３１、会話文情報決定部３２、エンティティ取得部３３、パラメータ取得部３４、ＡＰＩ情報取得部３５、問合情報構成部３６、検索部３７、判断手段３４１、日情報取得手段３４２、エンティティ名取得手段３４３、翻訳項目名取得手段３４４、テーブル識別子取得手段３４５、主キー識別子取得手段３４６、および変換パラメータ取得手段３４７などの処理である。また、各種の処理には、例えば、フローチャートで説明する各種の判別なども含まれる。
【００８１】
処理部３は、例えば、会話文受付部２１が会話文を受け付けたことに応じて、インテント決定部３１等の処理を行う。なお、１以上の各端末から、端末識別子と対に会話文が送信される場合、処理部３は、インテント決定部３１等の処理を、１以上の各端末識別子ごとに行う。
【００８２】
インテント決定部３１は、会話文受付部２１が受け付けた会話文に対応するインテントを決定する。
【００８３】
詳しくは、インテント決定部３１は、最初、例えば、会話文受付部２１が受け付けた会話文に対応するテキストを取得する。テキストは、前述したように、例えば、会話文受付部２１が受け付けた会話文を音声認識した結果であるが、会話文受付部２１が受け付けた会話文そのものでもよい。
【００８４】
すなわち、インテント決定部３１は、音声である会話文が受け付けられた場合、当該会話文を音声認識し、テキストを取得する。なお、テキストである会話文が受け付けられた場合、インテント決定部３１は、当該テキストを取得すればよい。
【００８５】
次に、インテント決定部３１は、取得したテキストに対して、例えば、形態素解析を行うことにより、当該テキストから１以上の自立語を取得する。なお、形態素解析は公知技術であり、詳しい説明を省略する。
【００８６】
そして、インテント決定部３１は、取得した１以上の自立語と同一または類似する単語を有するアクション名を有するインテントを決定する。
【００８７】
詳しくは、例えば、格納部１に類義語辞書が格納されている。類義語辞書とは、類義語に関する辞書である。類義語辞書には、インテント格納部１２に格納されている１以上の各インテントを構成するアクション名ごとに、当該アクション名が有する単語と、当該単語の１または２以上の類義語とが登録されている。具体的には、例えば、アクション名「残業時間照会」が有する単語「残業時間」に対応付けて、「時間外」、「時間外時間」などが登録されていてもよい。
【００８８】
例えば、会話文受付部２１が会話文「大塚の先月の残業時間を教えて」を受け付けた場合、インテント決定部３１は、当該会話文から、「大塚」や「先月」や「残業時間」等の１以上の自立語を取得し、各自立語をキーにインテント格納部１２を検索して、当該自立語と一致するアクション名を有するインテントがあるか否かを判断する。なお、一致は、例えば、完全一致であるが、部分一致でもよい。そして、当該自立語と一致する単語を有するアクション名を有するインテントがある場合、インテント決定部３１は、当該インテントを決定する。本例では、自立語「残業時間」と一致する単語「残業時間」を有するアクション名「残業時間参照」を有するインテントがあるため、当該インテントが決定される。
【００８９】
なお、当該自立語と一致する単語を有するアクション名を有するインテントがない場合、例えば、インテント決定部３１は、類義語辞書から、当該自立語に対応する１以上の類義語のうち、一の類義語を取得し、当該一の類義語をキーにインテント格納部１２を検索して、当該当該一の類義語と一致する単語を有するアクション名を有するインテントがあるか否かを判断する。そして、当該一の類義語と一致する単語を有するアクション名を有するインテントがある場合、インテント決定部３１は、当該インテントを決定する。かかるインテントがない場合、インテント決定部３１は、他の類義語について、同様の処理を行い、インテントを決定する。どの類義語についても、かかるインテントがない場合、インテント決定部３１は、インテントが決定されない旨を出力してもよい。
【００９０】
会話文情報決定部３２は、インテント決定部３１が決定したインテントをキーにコーパス格納部１４を検索し、当該インテントに対応する１以上の会話文情報の中から、会話文受付部２１が受け付けた会話文に最も近似する会話文情報を決定する。
【００９１】
会話文に最も近似する会話文情報とは、例えば、会話文に対する類似度が最も高い会話文情報である。すなわち、会話文情報決定部３２は、例えば、受け付けられた会話文と、決定されたインテントに対応する１以上の各会話文情報との類似度を算出し、類似度が最大の会話文情報を決定する。
【００９２】
または、会話文情報決定部３２は、例えば、受け付けられた会話文の名詞の位置を変数にしたテンプレートに一致する会話テンプレートを検索してもよい。すなわち、コーパス格納部１４には、１または２以上の各エンティティ名を変数にしたテンプレートが格納されており、会話文情報決定部３２は、受け付けられた会話文の１または２以上の各エンティティ名の位置を取得し、取得したエンティティ名の位置に対応するテンプレートを会話文情報に決定する。なお、会話文の１以上の各エンティティ名の位置とは、１以上の各エンティティ名を有するテンプレートにおいて、当該エンティティ名が何番目のエンティティ名かを示す情報である。
【００９３】
エンティティ取得部３３は、会話文情報決定部３２が決定した会話文情報に対応付いている１以上の各エンティティに対応し、会話文受付部２１が受け付けた会話文が有する単語である１以上のエンティティを取得する。
【００９４】
エンティティ取得部３３は、例えば、決定された会話文情報に対応付いている１以上の各エンティティごとに、当該エンティティの開始位置および終了位置をコーパス格納部１４から取得し、受け付けられた会話文から、当該開始位置および当該終了位置により特定される単語を取得する。
【００９５】
具体的には、前述したように、例えば、コーパス格納部１４に、会話文情報“中村の先月の残業時間を教えて”と、これに対応する３つのエンティティ情報“中村，１，２、社員エンティティ”，“先月，４，５、日付エンティティ”，および“残業時間，７，１０，残業エンティティ”が格納されており、会話文受付部２１が会話文「大塚の先月の残業時間を教えて」を受け付け、会話文情報決定部３２が上記会話文情報「中村の先月の残業時間を教えて」を決定した場合、エンティティ取得部３３は、受け付けられた会話文「大塚の先月の残業時間を教えて」から、１つ目のエンティティ情報が有する開始位置“１”および終了位置“２”で特定される単語「大塚」と、２つ目のエンティティ情報が有する開始位置“４”および終了位置“５”で特定される単語「先月」と、３つ目のエンティティ情報が有する開始位置“７”および終了位置“１０”で特定される単語「残業時間」とを取得する。
【００９６】
パラメータ取得部３４は、エンティティ取得部３３が取得した１以上の各エンティティに対応する１以上のパラメータを取得する。
【００９７】
取得されるパラメータは、例えば、取得されたエンティティそのものであるが、取得されたエンティティを変換した情報でもよい。すなわち、例えば、取得された１以上のエンティティの中に日単語が含まれている場合、パラメータ取得部３４は、当該日単語をパラメータである日情報に変換する。
【００９８】
パラメータ取得部３４を構成する判断手段３４１は、エンティティ取得部３３が取得した１以上のエンティティの中に日単語が存在するか否かを判断する。詳しくは、例えば、格納部１に、１または２以上の日単語が格納されており、判断手段３４１は、取得された１以上の各エンティティごとに、格納されているいずれかの日単語と一致するか否かの判別を行い、少なくとも１つのエンティティについての判別結果が一致を示す場合に、取得された１以上のエンティティの中に日単語が存在すると判断する。
【００９９】
日情報取得手段３４２は、取得された１以上のエンティティの中に日単語が存在すると判断手段３４１が判断した場合に、当該日単語に対応する日変換情報を日変換情報格納部１８から取得し、当該日変換情報を用いて、パラメータである日情報を取得する。
【０１００】
具体的には、例えば、格納部１に、日単語「先月」等が格納されており、会話文「大塚の先月の残業時間を教えて」が受け付けられて、３つのエンティティ「大塚」、「先月」、および「残業時間」が取得された場合、判断手段３４１は、エンティティ「先月」が日単語「先月」と一致することから、取得された３のエンティティの中に日単語が存在すると判断する。例えば、現在時刻情報を取得し、日情報（例えば“４／１〜４／３０”等）を取得する
【０１０１】
日情報取得手段３４２は、当該日単語「先月」に対応する日情報取得情報（例えば、プログラム）を日変換情報格納部１８から取得する。そして、日情報取得手段３４２は、当該日情報取得情報を用いて、ＭＰＵの内蔵時計やＮＴＰサーバ等から現在時刻情報（例えば“２０１９年５月１０日１１時１５分”）を取得し、当該現在時刻情報が有する月（例えば“５月”）に対して前の月（例えば“４月”）を取得する。そして、日情報取得手段３４２は、当該前の月のカレンダー情報を参照して、当該前の月の初日から末日までの日情報“４月１日〜４月３０日”を取得する。
【０１０２】
なお、会話文から取得された日単語が「今年」である場合、日情報取得手段３４２は、当該日単語「今年」に対応する日情報取得情報（例えば、ＡＰＩ情報）を日変換情報格納部１８から取得する。そして、日情報取得手段３４２は、当該日情報取得情報を用いて、内蔵時計等から現在時刻情報を取得し、当該現在時刻情報が有する年（例えば“２０１９年”）のカレンダー情報を参照して、当該年の初日から、当該現在時刻情報が有する日までの日情報（例えば、“２０１９／１／１〜２０１９／５／１０”）を取得する。
【０１０３】
また、取得された日単語が「昨日」である場合、日情報取得手段３４２は、当該日単語「昨日」に対応する日情報取得情報（例えば、メソッド）を日変換情報格納部１８から取得する。そして、日情報取得手段３４２は、当該日情報取得情報を用いて、内蔵時計等から現在時刻情報を取得し、当該現在時刻情報が有する日の前の日の日情報（例えば、“５／９”）を取得する。
【０１０４】
エンティティ名取得手段３４３は、エンティティ取得部３３が取得した１以上の各エンティティごとに、当該エンティティに対応するエンティティ名をエンティティ格納部１５から取得する。
【０１０５】
当該エンティティに対応するエンティティ名とは、当該エンティティが取得された会話文において、当該エンティティに対応するエンティティの位置に一致または類似する開始位置および終了位置と対になるエンティティ名である。エンティティ名取得手段３４３は、エンティティ取得部３３が取得した１以上の各エンティティごとに、例えば、当該エンティティに対応付いたエンティティ情報を用いて、当該エンティティに対応するエンティティ名をエンティティ格納部１５から取得してもよい。
【０１０６】
具体的には、例えば、受け付けられた会話文「大塚の先月の残業時間を教えて」から３つのエンティティ「大塚」、「先月」、および「残業時間」が取得された場合、エンティティ名取得手段３４３は、コーパス格納部１４に格納されている会話文情報「中村の先月の残業時間を教えて」において、当該会話文情報に対応付けて格納されている３つのエンティティ情報のうち、受け付けられた会話文「大塚の先月の残業時間を教えて」における「大塚」と同じ開始位置“１”および終了位置“２”を有する１つ目のエンティティ情報を用いて、「中村」に対応付いた「社員エンティティ」を取得する。
【０１０７】
また、エンティティ名取得手段３４３は、例えば、上記３つのエンティティ情報のうち、会話文「大塚の先月の残業時間を教えて」における「先月」と同じ開始位置“４”および終了位置“５”を有する２つ目のエンティティ情報を用いて、「先月」に対応付いた「日付エンティティ」を取得し、さらに、会話文「大塚の先月の残業時間を教えて」における「残業時間」と同じ開始位置“７”および終了位置“１０”を有する３つ目のエンティティ情報を用いて、「残業時間」に対応付いた「残業時間エンティティ」を取得する。
【０１０８】
翻訳項目名取得手段３４４は、例えば、エンティティ名取得手段３４３が取得した１以上の各エンティティ名ごとに、当該エンティティ名と対になる翻訳項目名をエンティティマッピング情報格納部１６から取得する。
【０１０９】
具体的には、エンティティマッピング情報格納部１６に、例えば、テーブル識別子“ＭＳＴ＿ＳＨＡＩＮ”と翻訳項目名“ＳＨＡＩＮ＿ＮＡＭＥ”とエンティティ名“社員エンティティ”とを有するエンティティマッピング情報１、テーブル識別子“ＴＲＮ＿ＴＩＭＥ＿ＣＡＲＤ”と翻訳項目名“ＴＩＭＥ＿ＣＡＲＤ＿ＤＡＴＥ”とエンティティ名“日付エンティティ”とを有するエンティティマッピング情報２、およびテーブル識別子“ＴＲＮ＿ＴＩＭＥ＿ＣＡＲＤ”と翻訳項目名“ＺＩＫＡＮＧＡＩ＿ＴＩＭＥ”とエンティティ名“残業エンティティ”とを有するエンティティマッピング情報３などが格納されており、エンティティ名取得手段３４３が３つのエンティティ名「社員エンティティ」、「日付エンティティ」、および「残業エンティティ」を取得した場合、翻訳項目名取得手段３４４は、当該３つのエンティティマッピング情報１〜３を用いて、エンティティ名「社員エンティティ」と対になる翻訳項目名“ＳＨＡＩＮ＿ＮＡＭＥ”、エンティティ名「日付エンティティ」と対になる翻訳項目名“ＴＩＭＥ＿ＣＡＲＤ＿ＤＡＴＥ”、および「残業エンティティ」と対になる翻訳項目名“ＺＩＫＡＮＧＡＩ＿ＴＩＭ”を取得する。
【０１１０】
テーブル識別子取得手段３４５は、エンティティ名取得手段３４３が取得した１以上の各エンティティ名ごとに、当該エンティティ名と対になるテーブル識別子をエンティティマッピング情報格納部１６から取得する。
【０１１１】
具体的には、テーブル識別子取得手段３４５は、例えば、上記３つのエンティティマッピング情報１〜３を用いて、エンティティ名「社員エンティティ」と対になるテーブル識別子“ＭＳＴ＿ＳＨＡＩＮ”、エンティティ名「日付エンティティ」と対になるテーブル識別子“ＴＲＮ＿ＴＩＭＥ＿ＣＡＲＤ”、およびエンティティ名「残業エンティティ」と対になるテーブル識別子“ＴＲＮ＿ＴＩＭＥ＿ＣＡＲＤ”を取得する。
【０１１２】
主キー識別子取得手段３４６は、テーブル識別子取得手段３４５が取得したテーブル識別子と対になる主キー識別子をＰＫ項目格納部１７から取得する。
【０１１３】
具体的には、ＰＫ項目格納部１７に、例えば、テーブル識別子“ＭＳＴ＿ＳＨＡＩＮ”と主キー識別子“ＳＨＡＩＮ＿ＣＯＤＥ”とを有するＰＫ項目１、テーブル識別子“ＴＲＮ＿ＴＩＭＥ＿ＣＡＲＤ”と主キー識別子“ＳＨＡＩＮ＿ＣＯＤＥ”とを有するＰＫ項目２、テーブル識別子“ＴＲＮ＿ＴＩＭＥ＿ＣＡＲＤ”と主キー識別子“ＴＩＭＥ＿ＣＡＲＤ＿ＤＡＴＥ”とを有するＰＫ項目３、およびテーブル識別子“ＭＳＴ＿ＧＹＯＵＭＵ”と主キー識別子“ＧＹＯＵＭＵ＿ＩＤ”とを有するＰＫ項目４などが格納されており、主キー識別子取得手段３４６は、当該ＰＫ項目１〜４を用いて、テーブル識別子“ＭＳＴ＿ＳＨＡＩＮ”と対になる主キー識別子“ＳＨＡＩＮ＿ＣＯＤＥ”、テーブル識別子“ＴＲＮ＿ＴＩＭＥ＿ＣＡＲＤ”と対になる主キー識別子“ＳＨＡＩＮ＿ＣＯＤＥ”、テーブル識別子“ＴＲＮ＿ＴＩＭＥ＿ＣＡＲＤ”と対になる主キー識別子“ＴＩＭＥ＿ＣＡＲＤ＿ＤＡＴＥ”、およびテーブル識別子“ＭＳＴ＿ＧＹＯＵＭＵ”と対になる主キー識別子“ＧＹＯＵＭＵ＿ＩＤ”を取得する。
【０１１４】
変換パラメータ取得手段３４７は、テーブル識別子取得手段３４５が取得したテーブル識別子で識別されるテーブルから、翻訳項目名取得手段３４４が取得した翻訳項目名の属性値が、エンティティ取得部３３が取得したエンティティと一致するレコードに含まれる属性値であり、主キー識別子取得手段３４６が取得した主キー識別子の属性値である、変換されたパラメータを取得する。
【０１１５】
具体的には、変換パラメータ取得手段３４７は、取得されたテーブル識別子“ＭＳＴ＿ＳＨＡＩＮ”で識別される社員マスタから、取得された翻訳項目名“ＳＨＡＩＮ＿ＮＡＭＥ”の属性値が、取得されたエンティティ“大塚”と一致するレコードに含まれる属性値であり、取得された主キー識別子“ＳＨＡＩＮ＿ＣＯＤＥ”の属性値である、変換されたパラメータ“ｓｈａｉｎ＿ｃｏｄｅ＝２”を取得する。
【０１１６】
また、変換パラメータ取得手段３４７は、取得されたテーブル識別子“ＴＲＮ＿ＴＩＭＥ＿ＣＡＲＤ”で識別される勤務時間テーブルから、取得された２つの翻訳項目名“ＴＩＭＥ＿ＣＡＲＤ＿ＤＡＴＥ”および“ＳＨＡＩＮ＿ＮＡＭＥ”の属性値が、取得されたエンティティ“先月”を変換したエンティティ“４月１日〜４月３０日”、および取得されたエンティティ“大塚”と一致するレコードに含まれる属性値であり、取得された２つの主キー識別子“ＳＨＡＩＮ＿ＣＯＤＥ”および“ＴＩＭＥ＿ＣＡＲＤ＿ＤＡＴＥ”の属性値である変換されたパラメータ“ｓｈａｉｎ＿ｃｏｄｅ＝２，ｓｔａ＿ｄａｔｅ＝２０１９０４０１，ｅｎｄ＿ｄａｔｅ＝２０１９０４３０”を取得する。
【０１１７】
ＡＰＩ情報取得部３５は、インテント決定部３１が決定したインテントに対応するＡＰＩ情報をＡＰＩ情報格納部１３から取得する。
【０１１８】
ＡＰＩ情報取得部３５は、例えば、インテント決定部３１が決定したインテントに対応するアクション名を有するＡＰＩ情報を、ＡＰＩ情報格納部１３から取得する。
【０１１９】
具体的には、ＡＰＩ情報格納部１３に、例えば、アクション名“残業時間照会”と３以上のパラメータ特定情報“社員コード，ｓｈａｉｎ＿ｃｏｄｅ”，“開始日付，ｓｔａ＿ｄａｔｅ”，および“終了日付，ｅｎｄ＿ｄａｔｅ”などを有するＡＰＩ情報１、およびアクション名“勤務時間データ照会”と３以上のパラメータ特定情報“社員コード，ｓｈａｉｎ＿ｃｏｄｅ”，“作業日付，ｔｉｍｅ＿ｃａｒｄ＿ｄａｔｅ”，および“業務ＩＤ，ｇｙｏｕｍｕ＿ｉｄ”などを有するＡＰＩ情報２が格納されており、インテント名「残業照会インテント」で特定されるインテントが取得された場合、ＡＰＩ情報取得部３５は、当該インテントが有するアクション名“残業時間照会”を有するＡＰＩ情報１を取得する。
【０１２０】
問合情報構成部３６は、パラメータ取得部３４が取得した１以上のパラメータと、ＡＰＩ情報取得部３５が取得したＡＰＩ情報とを用いて、問合情報を構成する。問合情報とは、情報検索するための情報であり、通常、実行可能な情報である。問合情報は、例えば、引数が挿入された関数またはメソッドであるが、完成されたＳＱＬ文でもよいし、ＵＲＬとパラメータの組でもよい。
【０１２１】
問合情報構成部３６は、例えば、ＡＰＩ情報取得部３５が取得したＡＰＩ情報が有する１以上の各変数の箇所に、各箇所に対応付くパラメータであり、パラメータ取得部３４が取得したパラメータを配置することにより、問合情報を構成する。
【０１２２】
具体的には、例えば、取得されたＡＰＩ情報１が有する３以上の各変数の箇所に、“ｓｈａｉｎ＿ｃｏｄｅ＝２”、ｓｔａ＿ｄａｔｅ＝２０１９０４０１”、およびｅｎｄ＿ｄａｔｅ”＝２０１９０４３０が配置された問い合わせ情報“ｈｔｔｐｓ：／／ｄｅｖｅｌｏｐ．ｓｏｐｐｒａ・・・？ｓｈａｉｎ＿ｃｏｄｅ＝２＆ｓｔａ＿ｄａｔｅ＝２０１９０４０１＆ｅｎｄ＿ｄａｔｅ＝２０１９０４３０”が構成されてもよい。
【０１２３】
検索部３７は、問合情報構成部３６が構成した問合情報を実行し、検索結果を取得する。例えば、問合情報“ｈｔｔｐｓ：／／ｄｅｖｅｌｏｐ．ｓｏｐｐｒａ・・・？ｓｈａｉｎ＿ｃｏｄｅ＝２＆ｓｔａ＿ｄａｔｅ＝２０１９０４０１＆ｅｎｄ＿ｄａｔｅ＝２０１９０４３０”が実行され、社員コード２で特定される社員「大塚二郎」の４月１日から４月３０日までの各日付に対応する残業時間“０４０１＝１，０４０２＝０，・・・４０３０＝２”が取得されてもよい。なお、ＳＱＬ等の問合情報や、検索部３７の詳しい動作については、具体例や変形例で説明する。
【０１２４】
出力部４は、各種の情報を出力する。各種の情報とは、例えば、検索結果である。
【０１２５】
出力部４は、例えば、受付部２が端末識別子と対に会話文等の情報を受信したことに応じて処理部３が各種の処理を行った結果である検索結果等の情報を、当該端末識別子で識別される端末に送信する。または、例えば、受付部２がタッチパネルやマイクロフォン等の入力デバイスを介して会話文等の情報を受け付けたことに応じて、出力部４は、検索結果等の情報を、ディスプレイやスピーカ等の出力デバイスを介して出力してもよい。
【０１２６】
ただし、出力部４は、各種の情報を、例えば、プリンタでプリントアウトしたり、記録媒体に蓄積したり、他のプログラムに引き渡したり、外部の装置に送信したりしてもよく、その出力の態様は問わない。
【０１２７】
検索結果出力部４１は、検索部３７が取得した検索結果を出力する。検索結果出力部４１は、例えば、会話文受付部２１が端末識別子と対に会話文を受信したことに応じて検索部３７が取得した検索結果を、当該端末識別子で識別される端末に送信する。または、検索結果出力部４１は、例えば、会話文受付部２１がマイクロフォン等の入力デバイスを介して会話文を受け付けたことに応じて検索部３７が取得した検索結果を、ディスプレイやスピーカ等の出力デバイスを介して出力してもよい。
【０１２８】
格納部１、テーブル格納部１１、インテント格納部１２、ＡＰＩ情報格納部１３、コーパス格納部１４、エンティティ格納部１５、エンティティマッピング情報格納部１６、ＰＫ項目格納部１７、および日変換情報格納部１８は、例えば、ハードディスクやフラッシュメモリといった不揮発性の記録媒体が好適であるが、ＲＡＭなど揮発性の記録媒体でも実現可能である。
【０１２９】
格納部１等に情報が記憶される過程は問わない。例えば、記録媒体を介して情報が格納部１等で記憶されるようになってもよく、ネットワークや通信回線等を介して送信された情報が格納部１等で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された情報が格納部１等で記憶されるようになってもよい。入力デバイスは、例えば、キーボード、マウス、タッチパネル、マイクロフォン等、何でもよい。
【０１３０】
受付部２、会話文受付部２１、音声受付手段２１１、および音声認識手段２１２は、入力デバイスを含むと考えても、含まないと考えてもよい。受付部２等は、入力デバイスのドライバーソフトによって、または入力デバイスとそのドライバーソフトとで実現され得る。
【０１３１】
処理部３、インテント決定部３１、会話文情報決定部３２、エンティティ取得部３３、パラメータ取得部３４、ＡＰＩ情報取得部３５、問合情報構成部３６、検索部３７、判断手段３４１、日情報取得手段３４２、エンティティ名取得手段３４３、翻訳項目名取得手段３４４、テーブル識別子取得手段３４５、主キー識別子取得手段３４６、および変換パラメータ取得手段３４７は、通常、ＭＰＵやメモリ等から実現され得る。処理部３等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。ただし、処理手順は、ハードウェア（専用回路）で実現してもよい。
【０１３２】
出力部４、および検索結果出力部４１は、ディスプレイやスピーカ等の出力デバイスを含むと考えても含まないと考えてもよい。出力部４等は、出力デバイスのドライバーソフトによって、または出力デバイスとそのドライバーソフトとで実現され得る。
【０１３３】
なお、受付部２等の受信機能は、通常、無線または有線の通信手段（例えば、ＮＩＣ(Network interface controller)やモデム等の通信モジュール）で実現されるが、放送を受信する手段（例えば、放送受信モジュール）で実現されてもよい。また、出力部４等の送信機能は、通常、無線または有線の通信手段で実現されるが、放送手段（例えば、放送モジュール）で実現されてもよい。
【０１３４】
次に、情報出力装置の動作について図２および図３のフローチャートを用いて説明する。
【０１３５】
図２は、情報出力装置の動作を説明するフローチャートである。なお、１以上の各端末から端末識別子と対に会話文が送信される場合、図２および図３のフローチャートは、１以上の各端末識別子ごとに実行される。
【０１３６】
（ステップＳ２０１）処理部３は、会話文受付部２１が会話文を受け付けたか否かを判別する。会話文受付部２１が会話文を受け付けたと判断された場合はステップＳ２０２に進み、受け付けていないと判断された場合はステップＳ２０１に戻る。
【０１３７】
（ステップＳ２０２）インテント決定部３１は、インテント格納部１２に格納されている１以上のインテントの中から、ステップＳ２０１で受け付けられた会話文に対応するインテントを決定する。
【０１３８】
（ステップＳ２０３）会話文情報決定部３２は、ステップＳ２０２で決定されたインテントに対応する１以上の会話文情報の中から、ステップＳ２０１で受け付けられた会話文に最も近似する会話文情報を決定する。
【０１３９】
（ステップＳ２０４）エンティティ取得部３３は、ステップＳ２０３で決定された会話文情報に対応付いている１以上の各エンティティに対応し、ステップＳ２０１で受け付けられた会話文が有する１以上のエンティティをエンティティ格納部１５から取得する。
【０１４０】
（ステップＳ２０５）パラメータ取得部３４は、ステップＳ２０４で取得された１以上の各エンティティに対応する１以上のパラメータを取得する処理（以下、パラメータ取得処理と記す場合がある）を実行する。なお、パラメータ取得処理については、図３を用いて説明する。
【０１４１】
（ステップＳ２０６）ＡＰＩ情報取得部３５は、ステップＳ２０２で決定されたインテントに対応するＡＰＩ情報をＡＰＩ情報格納部１３から取得する。
【０１４２】
（ステップＳ２０７）問合情報構成部３６は、ステップＳ２０５で取得された１以上のパラメータと、ステップＳ２０６で取得されたＡＰＩ情報とを用いて、問合情報を構成する。
【０１４３】
（ステップＳ２０８）検索部３７は、ステップＳ２０７で構成された問合情報を実行し、検索結果を取得する。
【０１４４】
（ステップＳ２０９）検索結果出力部４１は、ステップＳ２０８で取得された検索結果を出力する。その後、ステップＳ２０１に戻る。
【０１４５】
なお、図２のフローチャートにおいて、情報出力装置の電源オンやプログラムの起動に応じて処理が開始し、電源オフや処理終了の割り込みにより処理は終了する。ただし、処理の開始または終了のトリガは問わない。
【０１４６】
図３は、ステップＳ２０５のパラメータ取得処理を説明するフローチャートである。
【０１４７】
（ステップＳ３０１）パラメータ取得部３４は、変数ｉに初期値１をセットする。変数ｉとは、ステップＳ２０４で取得された１または２以上のエンティティのうち、未選択のエンティティを順番に選択していくための変数である。
【０１４８】
（ステップＳ３０２）パラメータ取得部３４は、ｉ番目のエンティティがあるか否かを判別する。ｉ番目のエンティティがあると判断された場合はステップＳ３０３に進み、ｉ番目のエンティティがないと判別された場合は上位処理にリターンする。
【０１４９】
（ステップＳ３０３）エンティティ名取得手段３４３は、ｉ番目のエンティティに対応するエンティティ名をエンティティ格納部１５から取得する。
【０１５０】
（ステップＳ３０４）翻訳項目名取得手段３４４は、ステップＳ３０３で取得されたエンティティ名と対になる翻訳項目名をエンティティマッピング情報格納部１６から取得する。
【０１５１】
（ステップＳ３０５）テーブル識別子取得手段３４５は、ステップＳ３０３で取得されたエンティティ名と対になるテーブル識別子をエンティティマッピング情報格納部１６から取得する。
【０１５２】
（ステップＳ３０６）主キー識別子取得手段３４６は、ステップＳ３０５で取得されたテーブル識別子と対になる主キー識別子をＰＫ項目格納部１７から取得する。
【０１５３】
（ステップＳ３０７）判断手段３４１は、ｉ番目のエンティティが日単語であるか否かを判断する。ｉ番目のエンティティが、日単語であると判断された場合はステップＳ３０８に進み、日単語でないと判断された場合はステップＳ３０９に進む。
【０１５４】
（ステップＳ３０８）日情報取得手段３４２は、当該日単語に対応する日変換情報を日変換情報格納部１８から取得し、取得した日変換情報を用いて、パラメータである日情報（開始日付，終了日付等）を取得する。
【０１５５】
（ステップＳ３０９）変換パラメータ取得手段３４７は、ステップＳ３０５で取得されたテーブル識別子で識別されるテーブルから、翻訳項目名の属性値が、ｉ番目のエンティティと一致するレコードに含まれる属性値であり、ステップＳ３０６で取得された主キー識別子の属性値である、変換されたパラメータ（Ｓｈａｉｎ＿ｃｏｄｅ＝１，ｓｔａ＿ｄａｔｅ＝２０１９０４０１，ｅｎｄ＿ｄａｔｅ＝２０１９０４３０等）を取得する。
【０１５６】
（ステップＳ３１０）パラメータ取得部３４は、変数ｉをインクリメントする。その後、ステップＳ３０２に戻る。
【０１５７】
以下、本実施の形態における情報出力装置の具体的な動作例について説明する。なお、以下の説明は、種々の変更が可能であり、本発明の範囲を何ら制限するものではない。
【０１５８】
本例における情報出力装置は、スタンドアロンの端末である。情報出力装置のテーブル格納部１１には、例えば、図４に示すような３つのテーブル情報が格納されている。図４は、テーブル情報のデータ構造図である。テーブル情報は、テーブル識別子、およびテーブルを有する。格納される各テーブル情報には、ＩＤ（例えば、“１”，“２”等）が対応付いている。
【０１５９】
例えば、ＩＤ“１”に対応するテーブル情報（以下、テーブル情報１と記す場合がある）は、テーブル識別子“ＭＳＴ＿ＳＨＡＩＮ”、および第一のテーブル（社員マスタ）を有する。社員マスタには、第一の項目名“ＳＨＡＩＮ＿ＣＯＤＥ”とそれに対応する２以上の値“１”，“２”・・・、および第２の項目名“ＳＨＡＩＮ＿ＣＯＤＥ”とそれに対応する２以上の値“中村一郎”，“大塚二郎”・・・などが登録されている。
【０１６０】
また、ＩＤ“２”に対応するテーブル情報２は、テーブル識別子“ＭＳＴ＿ＧＹＯＵＭＵ”、および第二のテーブル（業務マスタ）を有する。業務マスタには、第一の項目名“ＧＹＯＵＭＵ＿ＩＤ”とそれに対応する２以上の値“ａ”，“ｂ”・・・、および第２の項目名“ＧＹＯＵＭＵ＿ＮＡＭＥ”とそれに対応する２以上の値“Ａ案件”，“Ｂ案件”・・・などが登録されている。
【０１６１】
さらに、テーブル情報３は、テーブル識別子“ＴＲＮ＿ＴＩＭＥ＿ＣＡＲＤ”、および第三のテーブル（勤務時間テーブル）を有する。勤務時間テーブルには、第一の項目名“ＴＲＮ＿ＴＩＭＥ＿ＣＡＲＤ”とそれに対応する２以上の値“４／１”，“４／１”・・・“４／２”，“４／２”・・・“４／３０”，“４／３０”・・・、第２の項目名“ＳＨＡＩＮ＿ＣＯＤＥ”とそれに対応する２以上の値“１”，“２”・・・“１”，“２” ・・・“１”，“２”、第３の項目名“ＺＩＫＡＮＧＡＩ＿ＴＩＭＥ”とそれに対応する２以上の値“２”，“１”・・・“１”，“０” ・・・“３”，“２”、第４の項目名“ＴＯＴＡＬ＿ＴＩＭＥ”とそれに対応する２以上の値“１０”，“９”・・・“９”，“８” ・・・“１１”，“１０”、および第５の項目名“ＧＹＯＵＭＵ＿ＩＤ”とそれに対応する２以上の値“ａ”，“ｂ”・・・“ａ”，“ｂ” ・・・“ｂ”，“ｂ”などが登録されている。
【０１６２】
インテント格納部１２には、例えば、図５に示すような２以上のインテントが格納される。図５は、インテントのデータ構造図である。インテントは、インテント名、およびアクション名を有する。格納される各インテントには、ＩＤ（例えば、“１”，“２”等）が対応付いている。
【０１６３】
例えば、ＩＤ“１”に対応するインテント１は、インテント名“残業照会インテント”、およびアクション名“残業時間照会”を有する。また、インテント２は、インテント名“勤務照会データ照会インテント”、およびアクション名“勤務照会データ照会”を有する。
【０１６４】
ＡＰＩ情報格納部１３には、例えば、図６に示すような、アクション名とＡＰＩ情報との対の集合が格納される。図６は、ＡＰＩ情報格納部１３の内容の一例を示す図である。アクション名とＡＰＩ情報との対とは、例えば、アクション名“残業時間照会”とＡＰＩ情報“ｓｅｒｃｈ＿残業時間（社員コード，開始日付，終了日付）”との対、アクション名“勤務時間データ照会”とＡＰＩ情報“ｓｅｒｃｈ＿勤務時間（社員コード，業務日付，業務ＩＤ）”との対などである。
【０１６５】
コーパス格納部１４には、例えば、図７に示すように、１以上の各インテントに対応付けて、１または２以上の会話文情報が格納され、さらに、当該１以上の各会話文情報に対応付けて、１または２以上のエンティティ情報も格納される。図７は、コーパス格納部１４の内容の一例を示す図である。エンティティ情報は、エンティティ、開始位置、終了位置、およびエンティティ名を有する。
【０１６６】
例えば、第一のインテント“残業時間照会インテント”には、５つの会話文情報１〜５が対応付いている。このうち、会話文情報１は、“中村の先月の残業時間を教えて”であり、会話文情報２は、“先月の中村の残業時間を教えて”であり、会話文情報３は、“中村の残業時間を教えて”であり、会話文情報４は、“先月の残業時間を教えて”であり、会話文情報５は、“残業時間を教えて”である。
【０１６７】
“残業時間照会インテント”に対応付いた会話文情報１には、エンティティ“中村”，開始位置“１”，終了位置“２”，およびエンティティ名“社員エンティティ”を有する第一のエンティティ情報と、エンティティ“先月”，開始位置“４”，終了位置“５”，およびエンティティ名“日付エンティティ”を有する第二のエンティティ情報と、エンティティ“残業時間”，開始位置“７”，終了位置“１０”，およびエンティティ名“残業エンティティ”を有する第三のエンティティ情報とが対応付いている。
【０１６８】
また、会話文情報２には、エンティティ“先月”，開始位置“１”，終了位置“２”，およびエンティティ名“日付エンティティ”を有する第四のエンティティ情報と、エンティティ“中村”，開始位置“４”，終了位置“５”，およびエンティティ名“社員エンティティ”を有する第五のエンティティ情報と、エンティティ“残業時間”，開始位置“７”，終了位置“１０”，およびエンティティ名“残業エンティティ”を有する第六のエンティティ情報とが対応付いている。
【０１６９】
また、会話文情報３には、エンティティ“中村”，開始位置“１”，終了位置“２”，およびエンティティ名“社員エンティティ”を有する第七のエンティティ情報と、エンティティ“残業時間”，開始位置“４”，終了位置“７”，およびエンティティ名“残業エンティティ”を有する第八のエンティティ情報とが対応付いている。
【０１７０】
また、会話文情報４には、エンティティ“先月”，開始位置“１”，終了位置“２”，およびエンティティ名“日付エンティティ”を有する第九のエンティティ情報と、エンティティ“残業時間”，開始位置“４”，終了位置“７”，およびエンティティ名“残業エンティティ”を有する第十のエンティティ情報とが対応付いている。
【０１７１】
さらに、会話文情報５には、エンティティ“残業時間”，開始位置“１”，終了位置“４”，およびエンティティ名“残業エンティティ”を有する第十一のエンティティ情報が対応付いている。
【０１７２】
他方、第二のインテント“勤務時間データ照会インテント”には、例えば、１５の会話文情報１〜１５が対応付いている。このうち、会話文１は、“中村一郎の昨日のＡ案件の勤務時間を教えて”であり、会話文２は、“中村一郎のＡ案件の昨日の勤務時間を教えて”であり、最後の会話文１５は、“勤務時間を教えて”である。なお、会話文２以下は、会話文１に対し、語順の変更、または一部の語の省略を行った文である。
【０１７３】
“勤務時間データ照会インテント”に対応付いた会話文情報１には、エンティティ“中村一郎”，開始位置“１”，終了位置“４”，およびエンティティ名“社員エンティティ”を有する第一のエンティティ情報と、エンティティ“昨日”，開始位置“６”，終了位置“７”，およびエンティティ名“日付エンティティ”を有する第二のエンティティ情報と、エンティティ“勤務時間”，開始位置“１３”，終了位置“１６”，およびエンティティ名“勤務時間エンティティ”を有する第三のエンティティ情報とが対応付いている。なお、会話文２〜１５の各々にも、同様に構成された１以上のエンティティ情報が対応付いている。
【０１７４】
エンティティ格納部１５には、例えば、図８に示すように、１以上の各エンティティ名に対応付けて、１または２以上のエンティティが格納される。図８は、各エンティティ名に対応する１以上のエンティティ（以下、エンティティ群と記す場合がある）の例を示す図である。
【０１７５】
例えば、エンティティ名“社員エンティティ”に対応するエンティティ群は、“中村一郎”，“大塚二郎”などを含む。エンティティ名“日付エンティティ”に対応するエンティティ群は、“先月”，“昨日”などを含む。エンティティ名“残業エンティティ”に対応するエンティティ群は、“残業時間”，“残業”などを含む。エンティティ名“業務エンティティ”に対応するエンティティ群は、“Ａ案件”，“Ｂ案件”などを含む。エンティティ名“勤務時間エンティティ”に対応するエンティティ群は、“勤務時間”，“勤務”などを含む。
【０１７６】
エンティティマッピング情報格納部１６には、例えば、図９に示すような２以上のエンティティマッピング情報（エンティティマッピング情報１〜４など）が格納される。図９は、エンティティマッピング情報のデータ構造図である。エンティティマッピング情報は、テーブル識別子と、翻訳項目名と、エンティティ名とを有する。
【０１７７】
なお、エンティティマッピング情報１〜３については、前述したので繰り返さない。エンティティマッピング情報４は、テーブル識別子“ＭＳＴ＿ＧＹＯＵＭＵ”と、翻訳項目名“ＧＹＯＵＭＵ＿ＩＤ”と、エンティティ名“業務エンティティ”とを有する。
【０１７８】
ＰＫ項目格納部１７には、例えば、図１０に示すような、２以上のＰＫ項目（ＰＫ項目１〜４など）が格納される。図１０は、ＰＫ項目のデータ構造図である。ＰＫ項目は、テーブル識別子と、主キー識別子とを有する。なお、ＰＫ項目１〜４については、前述したので繰り返さない。
【０１７９】
日変換情報格納部１８には、日単語と日情報取得情報との対の集合（図示しない）が格納される。日単語と日情報取得情報との対とは、例えば、日単語「先月」と日情報取得情報１との対、日単語「昨日」と日情報取得情報２との対などである。例えば、日単語「先月」に対応する日情報取得情報１は、現在時刻情報を取得し、当該現在時刻情報が有する月に対して前の月を取得し、当該前の月のカレンダー情報を参照して、当該前の月の初日から末日までの日情報を取得するプログラムである。日単語「昨日」に対応する日情報取得情報２は、現在時刻情報を取得し、当該現在時刻情報が有する日の前の日の日情報を取得するメソッドである。
【０１８０】
現在時刻は、２０１９年５月１０日１１時１５分である。いま、ユーザが端末に対して「大塚の先月の残業時間を教えて」を音声入力したとする。
【０１８１】
情報出力装置において、音声受付手段２１１がマイクロフォンを介して上記音声を受け付け、音声認識手段２１２は、当該音声に対して音声認識処理を行い、会話文「大塚の先月の残業時間を教えて」を取得する。
【０１８２】
インテント決定部３１は、インテント格納部１２に格納されている２以上のインテント１，２・・・の中から、当該会話文に対応するインテントを決定する。詳しくは、インテント決定部３１は、例えば、形態素解析によって、当該会話文から３つの自立語「大塚」、「先月」および「残業時間」を取得し、各自立語をキーにインテント格納部１２を検索して、「残業時間」と部分一致するアクション名“残業時間参照”を有するインテント１を決定する。
【０１８３】
会話文情報決定部３２は、コーパス格納部１４（図７）を参照して、決定されたインテント１に対応する５つの会話文情報１〜５の中から、当該会話文に最も近似する会話文情報を決定する。ここでは、当該会話文に対して、開始位置“１”および終了位置“２”で特定される社員エンティティである「中村」のみが異なり、その他のエンティティは同じである会話文情報１が決定される。
【０１８４】
エンティティ取得部３３は、決定された会話文情報１に対応付いている３つのエンティティ「中村」、「先月」、および「残業時間」に対応するエンティティであり、当該会話文が有する３のエンティティである「大塚」、「先月」、および「残業時間」をエンティティ格納部１５から取得する。
【０１８５】
詳しくは、会話文情報決定部３２は、会話文情報１に対応する第一〜第三の３つのエンティティ情報のうち、第一のエンティティ情報を参照して、当該会話文中の開始位置“１”および終了位置“２”で特定される「大塚」が社員エンティティであると判断する。次に、会話文情報決定部３２は、エンティティ格納部１５を参照して、エンティティ名「社員エンティティ」に対応するエンティティ群から、“大塚”と部分一致するエンティティ「大塚二郎」を取得する。
【０１８６】
また、会話文情報決定部３２は、第二のエンティティ情報を参照して、当該会話文中の開始位置“４”および終了位置“５”で特定される「先月」が日付エンティティであると判断し、エンティティ名「日付エンティティ」に対応するエンティティ群から、“先月”と完全一致するエンティティ「先月」を取得する。
【０１８７】
さらに、会話文情報決定部３２は、第三のエンティティ情報を参照して、当該会話文中の開始位置“７”および終了位置“１０”で特定される「残業時間」が残業エンティティであると判断し、エンティティ名「残業エンティティ」に対応するエンティティ群から、“残業時間”と完全一致するエンティティ「残業時間」を取得する。
【０１８８】
こうして、当該会話文に対応する３のエンティティ「大塚二郎」、「先月」、および「残業時間」が取得されると、パラメータ取得部３４は、当該３つのエンティティに対応する３つのパラメータを取得する。
【０１８９】
詳しくは、まず、１番目のエンティティ「大塚二郎」に関し、パラメータ取得部３４を構成するエンティティ名取得手段３４３が、第一のエンティティ情報を用いて、エンティティ名「社員エンティティ」をエンティティ格納部１５から取得する。次に、翻訳項目名取得手段３４４は、取得されたエンティティ名「社員エンティティ」と対になる翻訳項目名「ＳＨＡＩＮ＿ＮＡＭＥ」をエンティティマッピング情報格納部１６からエンティティマッピング情報１を用いて取得する。また、テーブル識別子取得手段３４５は、取得されたエンティティ名「社員エンティティ」と対になるテーブル識別子“ＭＳＴ＿ＳＨＡＩＮ”をエンティティマッピング情報格納部１６からエンティティマッピング情報１を用いて取得する。
【０１９０】
次に、主キー識別子取得手段３４６は、取得されたテーブル識別子“ＭＳＴ＿ＳＨＡＩＮ”と対になる主キー識別子“ＳＨＡＩＮ＿ＣＯＤＥ”を、ＰＫ項目格納部１７からＰＫ項目１を用いて取得する。また、判断手段３４１は、１番目のエンティティ「大塚」が日単語でないと判断し、それに応じて、変換パラメータ取得手段３４７は、取得されたテーブル識別子“ＭＳＴ＿ＳＨＡＩＮ”で識別されるテーブル（社員マスタ）から、翻訳項目名「ＳＨＡＩＮ＿ＮＡＭＥ」の属性値が、１番目のエンティティ「大塚二郎」と一致するレコードに含まれる属性値であり、取得された主キー識別子“ＳＨＡＩＮ＿ＣＯＤＥ”の属性値である、１つ目の変換されたパラメータ“ｓｈａｉｎ＿ｃｏｄｅ＝２”を取得する。
【０１９１】
次に、２番目のエンティティ「先月」に関し、エンティティ名取得手段３４３が、「先月」に対応するエンティティ名「日付エンティティ」を取得し、翻訳項目名取得手段３４４は、取得されたエンティティ名「日付エンティティ」と対になる翻訳項目名「ＴＩＭＥ＿ＣＡＲＤ＿ＤＡＴＥ」をエンティティマッピング情報２を用いて取得する。テーブル識別子取得手段３４５は、取得されたエンティティ名「日付エンティティ」と対になるテーブル識別子“ＴＲＮ＿ＴＩＭＥ＿ＣＡＲＤ”をエンティティマッピング情報格納部１６からエンティティマッピング情報２を用いて取得する。
【０１９２】
次に、主キー識別子取得手段３４６は、取得されたテーブル識別子“ＴＲＮ＿ＴＩＭＥ＿ＣＡＲＤ”と対になる２つの主キー識別子“ＳＨＡＩＮ＿ＣＯＤＥ”および“ＴＩＭＥ＿ＣＡＲＤ＿ＤＡＴＥ”を、２つのＰＫ項目２および３を用いて取得する。判断手段３４１は、２番目のエンティティ「先月」が日単語であると判断し、これに応じて、日情報取得手段３４２が、当該日単語「先月」に対応する日変換情報を日変換情報格納部１８から取得し、取得した日変換情報を用いて、日情報“４／１〜４／３０”を取得する。
【０１９３】
詳しくは、日情報取得手段３４２は、内蔵時計等から現在時刻情報“２０１９年５月１０日１１時１５分”を取得し、現在時刻情報が有する“５月”の前の月である４月のカレンダー情報を参照して、開始日付“４／１”から終了日付“４／３０”までの３０日を示す日情報“４／１〜４／３０”を取得する。
【０１９４】
変換パラメータ取得手段３４７は、取得されたテーブル識別子“ＴＲＮ＿ＴＩＭＥ＿ＣＡＲＤ”で識別されるテーブル（勤務時間テーブル）から、翻訳項目名「ＴＩＭＥ＿ＣＡＲＤ＿ＤＡＴＥ」の属性値が、２番目のエンティティ「先月」に対応する開始日付“４／１”および終了日付“４／３０”と一致するレコードに含まれる属性値であり、取得された２つの主キー識別子“ＳＨＡＩＮ＿ＣＯＤＥ”および“ＴＩＭＥ＿ＣＡＲＤ＿ＤＡＴＥ”の属性値である、２つ目および３つ目の変換されたパラメータ“ｓｔａ＿ｄａｔｅ＝２０１９０４０１”および“ｅｎｄ＿ｄａｔｅ＝２０１９０４３０”を取得する。
【０１９５】
次に、３番目のエンティティ「残業時間」に関し、エンティティ名取得手段３４３が、「残業時間」に対応するエンティティ名「残業エンティティ」を取得し、翻訳項目名取得手段３４４は、取得されたエンティティ名「残業エンティティ」と対になる翻訳項目名「ＺＩＫＡＮＧＡＩ＿ＴＩＭＥ」をエンティティマッピング情報３を用いて取得する。また、テーブル識別子取得手段３４５は、取得されたエンティティ名「残業エンティティ」と対になるテーブル識別子“ＴＲＮ＿ＴＩＭＥ＿ＣＡＲＤ”をエンティティマッピング情報３を用いて取得する。
【０１９６】
なお、取得されたテーブル識別子“ＴＲＮ＿ＴＩＭＥ＿ＣＡＲＤ”と対になる２つの主キー識別子“ＳＨＡＩＮ＿ＣＯＤＥ”および“ＴＩＭＥ＿ＣＡＲＤ＿ＤＡＴＥ”は、取得済みであるため、主キー識別子取得手段３４６は、通常、これらを取得しないが、再度取得してもよい。
【０１９７】
また、判断手段３４１は、３番目のエンティティ「残業時間」が日単語でないと判断し、変換パラメータ取得手段３４７は、取得されたテーブル識別子“ＴＲＮ＿ＴＩＭＥ＿ＣＡＲＤ”で識別される勤務時間テーブルが有する翻訳項目名「ＺＩＫＡＮＧＡＩ＿ＴＩＭＥ」に対応する、４つ目の変換されたパラメータ“ｚｉｋａｎｇａｉ＿ｔｉｍｅ”を取得する。
【０１９８】
こうして、当該会話文「大塚の先月の残業時間を教えて」に対応する４つのパラメータ“ｓｈａｉｎ＿ｃｏｄｅ＝２”，“ｓｔａ＿ｄａｔｅ＝２０１９０４０１”，“ｅｎｄ＿ｄａｔｅ＝２０１９０４３０”および“ｚｉｋａｎｇａｉ＿ｔｉｍｅ”が取得されると、ＡＰＩ情報取得部３５は、決定されたインテント１が有するアクション名“残業時間照会”に対応するＡＰＩ情報“ｓｅｒｃｈ＿残業時間（社員コード，開始日付，終了日付）”をＡＰＩ情報格納部１３から取得する。
【０１９９】
問合情報構成部３６は、取得された上記４つのパラメータを、取得されたＡＰＩ情報“ｓｅｒｃｈ＿残業時間（社員コード，開始日付，終了日付）”の対応する変数に代入することにより、問合情報“ｓｅｒｃｈ＿ｚｉｋａｎｇａｉ＿ｔｉｍｅ（ｓｈａｉｎ＿ｃｏｄｅ＝２，ｓｔａ＿ｄａｔｅ＝２０１９０４０１，ｅｎｄ＿ｄａｔｅ＝２０１９０４３０”を構成する。
【０２００】
検索部３７は、構成された問合情報を実行し、検索結果を取得する。ここでは、テーブル識別子“ＴＲＮ＿ＴＩＭＥ＿ＣＡＲＤ”で識別される残業時間テーブルから、項目名“ＴＩＭＥ＿ＣＡＲＤ＿ＤＡＴＥ”の値が“４／１”〜“４／３０”であり、かつＳＨＡＩＮ＿ＣＯＤＥの値が“２”である３０個のレコードから、項目名“ＺＩＫＡＮＧＡＩ＿ＴＩＭＥ”に対応する３０個の値“１，０，・・・２”が取得され、当該３０個の値を合計した検索結果“２０時間”が取得される。
【０２０１】
検索結果出力部４１は、取得された検索結果“２０時間”を含む応答文を出力する。出力される応答文は、例えば、“２０時間です”や“大塚様の４月の残業時間は２０時間です”等であってもよい。詳しくは、例えば、格納部１に、応答文のテンプレートが格納されており、検索結果出力部４１は、当該テンプレートの変数に、上記の検索結果“２０時間”、上記会話文から取得された“大塚”、および検索の過程で取得された“４月”などを代入することによって、応答文を構成してもよい。
【０２０２】
なお、詳細な説明は省略するが、会話文「大塚二郎のＡ案件の昨日の勤務時間を教えて」に対しては、例えば、４つのパラメータ“ｓｈａｉｎ＿ｃｏｄｅ＝２”，“ｔｉｍｅ＿ｃａｒｄ＿ｄａｔｅ＝２０１９０５０９”，“ｇｙｏｕｍｕ＿ｉｄ＝ａ”，および“ｔｏｔａｌ＿ｔｉｍｅ”が取得され、問合情報“ｓｅｒｃｈ＿ｔｏｔａｌ＿ｔｉｍｅ（ｓｈａｉｎ＿ｃｏｄｅ＝２，ｔｉｍｅ＿ｃａｒｄ＿ｄａｔｅ＝２０１９０５０９，ｇｙｏｕｍｕ＿ｉｄ＝ａ”が構成されてもよい。
【０２０３】
（変形例１）
なお、ＡＰＩ情報がＳＱＬ文“ｓｅｌｅｃｔ＿残業時間＿ｆｒｏｍ＿テーブル名＿ｗｈｅｒｅ＿社員コード，業務日付”である場合、パラメータ取得部３４は、４つのパラメータ“ｓｈａｉｎ＿ｃｏｄｅ＝２”，“ｔｉｍｅ＿ｃａｅｄ＿ｄａｔｅ＝２０１９０５０９”，“ｔｒｎ＿ｔｉｍｅ＿ｃａｒｄ”，および“ｚｉｋａｎｇａｉ＿ｔｉｍｅ”を取得し、問合情報構成部３６は、問合情報“ｓｅｌｅｃｔ＿ｚｉｋａｎｇａｉ＿ｔｉｍｅ＿ｆｒｏｍ＿ｔｒｎ＿ｔｉｍｅ＿ｃａｒｄ＿ｗｈｅｒｅ＿ｓｈａｉｎ＿ｃｏｄｅ＝２，ｔｉｍｅ＿ｃａｅｄ＿ｄａｔｅ＝２０１９０５０９”を構成してもよい。
【０２０４】
（変形例２）
なお、ＡＰＩ情報がＵＲＬおよびメソッドの組“ｈｔｔｐ：／／ｄｅｖｅｌｏｐ．ｓｏｐｐｒａ・・・？社員コード＆開始日付＆終了日付”である場合、パラメータ取得部３４は、４つのパラメータ“ｓｈａｉｎ＿ｃｏｄｅ＝２”，“ｓｔａ＿ｄａｔｅ＝２０１９０４０１”，“ｅｎｄ＿ｄａｔｅ＝２０１９０４３０”，および“ｚｉｋａｎｇａｉ＿ｔｉｍｅ”を取得し、問合情報構成部３６は、問合情報“ｈｔｔｐ：／／ｄｅｖｅｌｏｐ．ｓｏｐｐｒａ・・・？ｓｈａｉｎ＿ｃｏｄｅ＝２＆ｓｔａ＿ｄａｔｅ＝２０１９０４０１＆ｅｎｄ＿ｄａｔｅ＝２０１９０４３０”を構成してもよい。
【０２０５】
以上、本実施の形態によれば、インテント格納部１２に、業務処理ごとに管理される情報であり、業務処理を特定するアクション名を有する情報である１以上のインテントが格納され、ＡＰＩ情報格納部１３に、インテントに対応付いている情報であり、情報検索を行うための情報であり、１以上の変数であるパラメータを特定する情報を有する情報である１以上のＡＰＩ情報が格納され、コーパス格納部１４に、インテントに対応付く情報であり、会話文の情報である１以上の会話文情報が格納され、エンティティ格納部１５に、いずれか１以上の会話文情報に対応付く単語である１以上のエンティティが格納され、情報出力装置は、会話文を受け付け、受け付けた会話文に対応するインテントを決定し、決定したインテントに対応する１以上の会話文情報の中から、受け付けた会話文に最も近似する会話文情報を決定し、決定した会話文情報に対応付いている１以上の各エンティティに対応し、受け付けた会話文が有する単語である１以上のエンティティを取得し、取得した１以上の各エンティティに対応する１以上のパラメータを取得し、決定したインテントに対応するＡＰＩ情報をＡＰＩ情報格納部１３から取得し、取得した１以上のパラメータと、取得したＡＰＩ情報とを用いて、情報検索するための問合情報を構成し、構成した問合情報を実行し、検索結果を取得し、取得した検索結果を出力することにより、同じ検索結果を求める問合せでも動的に変化する会話文を受け付け、情報検索することができる。
【０２０６】
また、情報出力装置は、受け付けた会話文に対応するテキストを取得し、テキストから１以上の自立語を取得し、１以上の自立語と同一または類似する単語を有するアクション名を有するインテントを決定することにより、同じ検索結果を求める問合せでも動的に変化する会話文を受け付け、情報検索することができる。
【０２０７】
また、日変換情報格納部１８に、日に関する単語である日単語と、日単語に対応する日に関する情報であり、問合情報を構成する際に使用する情報である日情報を取得するための日情報取得情報とを有する１以上の日変換情報が格納され、情報出力装置は、取得した１以上のエンティティの中の日単語に対応する日変換情報を日変換情報格納部１８から取得し、日変換情報を用いて、パラメータである日情報を取得することにより、同じ検索結果を求める問合せでも動的に変化する会話文を受け付け、適切に情報検索することができる。
【０２０８】
なお、上記構成において、情報出力装置は、取得した１以上のエンティティの中に日単語が存在するか否かを判断し、日単語が存在すると判断した場合に、日単語に対応する日変換情報を日変換情報格納部１８から取得し、日変換情報を用いて、パラメータである日情報を取得してもよい。これにより、日単語の有無によらず、同じ検索結果を求める問合せでも動的に変化する会話文を受け付け、適切に情報検索することができる。
【０２０９】
また、エンティティ格納部１５のエンティティは、エンティティの名称であるエンティティ名に対応付いており、エンティティマッピング情報格納部１６に、テーブルを特定するテーブル識別子と、テーブル識別子で識別されるテーブル内の属性名であり、変換されるエンティティを特定する情報である翻訳項目名と、エンティティ名とを有する１以上のエンティティマッピング情報が格納され、ＰＫ項目格納部１７に、テーブル識別子とテーブル識別子で識別されるテーブルの主キーを特定する主キー識別子とを有する１以上のＰＫ項目が格納され、情報出力装置は、取得したエンティティに対応するエンティティ名を取得し、取得したエンティティ名と対になる翻訳項目名をエンティティマッピング情報格納部１６から取得し、取得したエンティティ名と対になるテーブル識別子をエンティティマッピング情報格納部１６から取得し、取得したテーブル識別子と対になる主キー識別子をＰＫ項目格納部１７から取得し、取得したテーブル識別子で識別されるテーブルから、取得した翻訳項目名の属性値が、取得したエンティティと一致するレコードに含まれる属性値であり、取得した主キー識別子の属性値である変換されたパラメータを取得することにより、同じ検索結果を求める問合せでも動的に変化する会話文を受け付け、適切に情報検索することができる。
【０２１０】
また、情報出力装置は、取得したＡＰＩ情報が有する１以上の各変数の箇所に、各箇所に対応付くパラメータであり、取得したパラメータを配置し、問合情報を構成することにより、同じ検索結果を求める問合せでも動的に変化する会話文を受け付け、情報検索することができる。
【０２１１】
また、情報出力装置は、会話文の音声を受け付け、音声に対して音声認識処理を行い、文字列である会話文を取得することにより、同じ検索結果を求める問合せでも動的に変化する音声による会話文を受け付け、情報検索することができる。
【０２１２】
さらに、本実施の形態における処理は、ソフトウェアで実現してもよい。そして、このソフトウェアをソフトウェアダウンロード等により配布してもよい。また、このソフトウェアをＣＤ−ＲＯＭなどの記録媒体に記録して流布してもよい。なお、このことは、本明細書における他の実施の形態においても該当する。
【０２１３】
なお、本実施の形態における情報出力装置を実現するソフトウェアは、例えば、以下のようなプログラムである。つまり、このプログラムは、業務処理ごとに管理される情報であり、業務処理を特定するアクション名を有する情報である１以上のインテントが格納されるインテント格納部１２、インテントに対応付いている情報であり、情報検索を行うための情報であり、１以上の変数であるパラメータを特定する情報を有する情報である１以上のＡＰＩ情報が格納されるＡＰＩ情報格納部１３、インテントに対応付く情報であり、会話文の情報である１以上の会話文情報が格納されるコーパス格納部１４、およびいずれか１以上の会話文情報に対応付く単語である１以上のエンティティが格納されるエンティティ格納部１５にアクセス可能なコンピュータを、会話文を受け付ける会話文受付部２１と、前記会話文受付部２１が受け付けた会話文に対応するインテントを決定するインテント決定部３１と、前記インテント決定部３１が決定したインテントに対応する１以上の会話文情報の中から、前記会話文受付部２１が受け付けた会話文に最も近似する会話文情報を決定する会話文情報決定部３２と、前記会話文情報決定部３２が決定した会話文情報に対応付いている１以上の各エンティティに対応し、前記会話文受付部２１が受け付けた会話文が有する単語である１以上のエンティティを取得するエンティティ取得部３３と、前記エンティティ取得部３３が取得した１以上の各エンティティに対応する１以上のパラメータを取得するパラメータ取得部３４と、前記インテント決定部３１が決定したインテントに対応するＡＰＩ情報を前記ＡＰＩ情報格納部１３から取得するＡＰＩ情報取得部３５と、前記パラメータ取得部３４が取得した１以上のパラメータと、前記ＡＰＩ情報取得部３５が取得したＡＰＩ情報とを用いて、情報検索するための問合情報を構成する問合情報構成部３６と、前記問合情報構成部３６が構成した問合情報を実行し、検索結果を取得する検索部３７と、前記検索部３７が取得した検索結果を出力する検索結果出力部４１として機能させるためのプログラムである。
【０２１４】
図１１は、本実施の形態におけるプログラムを実行して、情報出力装置を実現するコンピュータシステム９００の外観図である。本実施の形態は、コンピュータハードウェアおよびその上で実行されるコンピュータプログラムによって実現され得る。図１１において、コンピュータシステム９００は、ディスクドライブ９０５を含むコンピュータ９０１と、キーボード９０２と、マウス９０３と、ディスプレイ９０４と、マイクロフォン９１７と、スピーカ９１８とを備える。なお、キーボード９０２やマウス９０３やディスプレイ９０４やマイクロフォン９１７やスピーカ９１８をも含むシステム全体をコンピュータと呼んでもよい。
【０２１５】
図１２は、コンピュータシステム９００の内部構成の一例を示す図である。図１２において、コンピュータ９０１は、ディスクドライブ９０５に加えて、ＭＰＵ９１１と、ブートアッププログラム等のプログラムを記憶するためのＲＯＭ９１２と、ＭＰＵ９１１に接続され、アプリケーションプログラムの命令を一時的に記憶すると共に、一時記憶空間を提供するＲＡＭ９１３と、アプリケーションプログラム、システムプログラム、およびデータを記憶するストレージ９１４と、ＭＰＵ９１１、ＲＯＭ９１２等を相互に接続するバス９１５と、外部ネットワークや内部ネットワーク等のネットワークへの接続を提供するネットワークカード９１６と、を備える。ストレージ９１４は、例えば、ハードディスク、ＳＳＤ、フラッシュメモリなどである。
【０２１６】
コンピュータシステム９００に、情報出力装置の機能を実行させるプログラムは、例えば、ＤＶＤ、ＣＤ−ＲＯＭ等のディスク９２１に記憶されて、ディスクドライブ９０５に挿入され、ストレージ９１４に転送されてもよい。これに代えて、そのプログラムは、ネットワークを介してコンピュータ９０１に送信され、ストレージ９１４に記憶されてもよい。プログラムは、実行の際にＲＡＭ９１３にロードされる。なお、プログラムは、ディスク９２１、またはネットワークから直接、ロードされてもよい。また、ディスク９２１に代えて他の着脱可能な記録媒体（例えば、ＤＶＤやメモリカード等）を介して、プログラムがコンピュータシステム９００に読み込まれてもよい。
【０２１７】
プログラムは、コンピュータの詳細を示す９０１に、情報出力装置の機能を実行させるオペレーティングシステム（ＯＳ）、またはサードパーティプログラム等を必ずしも含んでいなくてもよい。プログラムは、制御された態様で適切な機能やモジュールを呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいてもよい。コンピュータシステム９００がどのように動作するのかについては周知であり、詳細な説明は省略する。
【０２１８】
なお、上述したコンピュータシステム９００は、サーバまたは据え置き型のＰＣであるが、情報出力装置は、例えば、タブレット端末やスマートフォンやノートＰＣといった、携帯端末で実現されてもよい。この場合、例えば、キーボード９０２およびマウス９０３はタッチパネルに、ディスクドライブ９０５はメモリカードスロットに、ディスク９２１はメモリカードに、それぞれ置き換えられてもよい。ただし、以上は例示であり、情報出力装置を実現するコンピュータのハードウェア構成は問わない。
【０２１９】
なお、上記プログラムにおいて、情報を送信する送信ステップや、情報を受信する受信ステップなどでは、ハードウェアによって行われる処理、例えば、送信ステップにおけるモデムやインターフェースカードなどで行われる処理（ハードウェアでしか行われない処理）は含まれない。
【０２２０】
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
【０２２１】
また、上記各実施の形態において、一の装置に存在する２以上の通信手段（例えば、受付部２の受信機能、出力部４の送信機能）は、物理的に一の媒体で実現されてもよいことは言うまでもない。
【０２２２】
また、上記各実施の形態において、各処理（各機能）は、単一の装置（システム）によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
【０２２３】
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【産業上の利用可能性】
【０２２４】
以上のように、本発明にかかる情報出力装置は、同じ検索結果を求める問合せでも動的に変化する会話文を受け付け、情報検索することができるという効果を有し、情報出力装置等として有用である。
【要約】
【課題】従来、同じ検索結果を求める問合せでも動的に変化する会話文を受け付け、情報検索することが困難であった。
【解決手段】情報出力装置は、会話文を受け付ける会話文受付部と、当該会話文に対応するインテントを決定するインテント決定部と、当該インテントに対応する１以上の会話文情報の中から当該会話文に最も近似する会話文情報を決定する会話文情報決定部と、当該会話文情報に対応付いている１以上の各エンティティに対応し、当該会話文が有する単語である１以上のエンティティを取得するエンティティ取得部と、当該１以上の各エンティティに対応する１以上のパラメータを取得するパラメータ取得部と、当該インテントに対応するＡＰＩ情報を取得するＡＰＩ情報取得部と、当該１以上のパラメータと当該ＡＰＩ情報とを用いて問合情報を構成する問合情報構成部と、問合情報を実行し、検索結果を取得する検索部と、検索結果出力部とを具備する。
【選択図】図１【図１】
0006598418.tif 000002
【図２】
0006598418.tif 000003
【図３】
0006598418.tif 000004
【図４】
0006598418.tif 000005
【図５】
0006598418.tif 000006
【図６】
0006598418.tif 000007
【図７】
0006598418.tif 000008
【図８】
0006598418.tif 000009
【図９】
0006598418.tif 000010
【図１０】
0006598418.tif 000011
【図１１】
0006598418.tif 000012
【図１２】
0006598418.tif 000013