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