JP7065473B2 - 会話文からの業務構築システム - Google Patents

会話文からの業務構築システム Download PDF

Info

Publication number
JP7065473B2
JP7065473B2 JP2020125178A JP2020125178A JP7065473B2 JP 7065473 B2 JP7065473 B2 JP 7065473B2 JP 2020125178 A JP2020125178 A JP 2020125178A JP 2020125178 A JP2020125178 A JP 2020125178A JP 7065473 B2 JP7065473 B2 JP 7065473B2
Authority
JP
Japan
Prior art keywords
information
entity
business
intent
name
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2020125178A
Other languages
English (en)
Other versions
JP2022021552A (ja
Inventor
基光 白川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Soppra Corp
Original Assignee
Soppra Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Soppra Corp filed Critical Soppra Corp
Priority to JP2020125178A priority Critical patent/JP7065473B2/ja
Priority to PCT/JP2021/022123 priority patent/WO2022018996A1/ja
Publication of JP2022021552A publication Critical patent/JP2022021552A/ja
Application granted granted Critical
Publication of JP7065473B2 publication Critical patent/JP7065473B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Strategic Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Resources & Organizations (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Economics (AREA)
  • Health & Medical Sciences (AREA)
  • Marketing (AREA)
  • Development Economics (AREA)
  • Computational Linguistics (AREA)
  • Educational Administration (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Game Theory and Decision Science (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Machine Translation (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

本発明は、会話文からの業務構築システムに関する。
従来、組織内のデータベースに対して情報検索を行うには、例えば、専用のプログラムを作成するか、検索ツールを使ってデータベースから情報を取得し、出力する技術を利用していた。
また、近年、ユーザが発した言葉でインターネット検索や予め決められた装置のオンオフを行う技術が存在した(例えば、非特許文献1参照)。
"Siri"、[online]、Apple Inc.、[令和1年5月17日検索]、インターネット[URL:https://www.apple.com/jp/siri/]
しかし、会話文(自然言語文といってもよい)は、同じ検索結果を求める問合せでも、例えば、それを発する人や人が属する会社等の組織などによって、動的に変化する。例えば、特定の社員の特定の月の残業時間を問い合わせる会話文は、「中村の先月の残業時間を教えて」や「先月の中村一郎の残業を教えて」などのように、何通りも存在する。上記のような従来技術では、こうした、同じ検索結果を求める問合せでも動的に変化する会話文を受け付け、業務処理を特定することが困難であった。
また、会話文を形態素解析や構文解析を行っても正確に業務処理が特定できない場合がある。かかる場合にはユーザに対して、その構築した業務処理の内容の是非を問い合わせ、これに対して適切な修正を加えて業務を特定し、これを構築済業務として蓄積する必要がある。しかしながら、上記従来技術においては、このような業務処理におけるユーザへの内容確認と修正指示をスムーズかつ正確に行うための方法が特段開示されていないため、このような社会的なニーズに応えることができないという問題があった。
そこで本発明は、上述した問題点に鑑みて案出されたものであり、その目的とするところは、会話文を形態素解析や構文解析を行っても正確に業務処理が特定できない場合において、業務処理におけるユーザへの内容確認と修正指示をスムーズかつ正確に行うことが可能な会話文からの業務構築システムを提供することにある。
第1発明に係る会話文からの業務構築システムは、会話文を受け付ける会話文受付手段と、上記会話文受付手段が受け付けた1以上の会話文に含まれる1以上のエンティティをパラメータ化するパラメータ化手段と、上記会話文受付手段が受け付けた会話文に対応する、処理動作を特定するアクション名を有するインテントを決定するインテント決定手段と、上記パラメータ化手段により得られるとともに上記インテント決定手段により決定されたインテントにより業務処理が特定できた場合には、その特定できた業務を構築済業務として蓄積するとともに、業務処理が特定できない場合には、上記インテント決定手段により決定されたインテント又はそのインテントを構成する文言が入力用データになり、これに対する出力用データが各業務の項目と条件からなる学習用データを通じて、暫定的に構築している構築中業務を推論してユーザに提示する制御手段とを備え、上記制御手段は、上記ユーザから新たに受け付けた修正指示に基づいて上記構築中業務を更新してこれを更に上記ユーザに提示することを繰り返し実行し、上記ユーザから修正完了指示が通知された場合には、上記構築中業務を構築済業務として蓄積することを特徴とする。
第2発明に係る会話文からの業務構築システムは、第1発明において、上記制御手段は、一般的な業務知識が格納された一般業務ナレッジデータベース、又は組織固有の業務知識が格納された組織固有業務ナレッジデータベースにアクセスすることにより、上記格納された一般的な業務知識又は組織固有の業務知識を読み出すことにより、上記構築中業務を暫定的に構築することを特徴とする。
第3発明に係る会話文からの業務構築システムは、第1発明又は第2発明において、上記パラメータ化手段は、上記ユーザから新たに受け付けた修正指示を会話文として受け付けた場合には、その会話文に含まれる1以上のエンティティをパラメータ化し、上記制御手段は、上記パラメータ化手段により得られたパラメータにより、上記構築中業務を更新することを特徴とする。
本発明によれば、会話文を形態素解析や構文解析を行っても正確に業務処理が特定できない場合において、業務処理におけるユーザへの内容確認と修正指示をスムーズかつ正確に行うことが可能となる。
図1は、実施の形態における業務構築システムのブロック図である。 図2は、業務構築システムの動作を説明するフローチャートである。 図3は、業務構築システムの他の動作を説明するフローチャートである。 図4は、パラメータ取得処理を説明するフローチャートである。 図5は、テーブル情報のデータ構造図である。 図6は、インテントのデータ構造図である。 図7は、各API情報の内容の一例を示す図である。 図8は、API情報格納部の内容の一例を示す図である。 図9は、コーパス格納部の内容の一例を示す図を示す図である。 図10は、各エンティティ名に対応する1以上のエンティティの例を示す図である。 図11は、エンティティマッピング情報のデータ構造図である。 図12は、PK項目のデータ構造図である。 図13は、コンピュータシステムの外観図である。 図14は、コンピュータシステムの内部構成の一例を示す図である。 図15は、第2実施形態の処理動作を示すフローチャートである。 図16は、第2実施形態の実際の業務構築の例について説明するための図である。
第1実施形態
以下、本発明の実施形態における会話文からの業務構築システムの一例について、図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
実施形態における会話文からの業務構築システムの構成要素の一つにサーバがある。サーバは、例えば、情報検索等のサービスを提供する企業内のサーバであるが、クラウドサーバやASPサーバ等でもよく、そのタイプは問わない。サーバは、例えば、LANやインターネット等のネットワーク、無線または有線の通信回線などを介して、1または2以上の端末(図示しない)と通信可能に接続される。端末は、例えば、情報検索等のサービスを利用するユーザの携帯端末であるが、据え置き型のPC等でもよく、そのタイプは問わない。携帯端末は、例えば、タブレット端末、スマートフォン、携帯電話機、ノートPC等であるが、これらに限定されるものではない。
ただし、業務構築システムは、例えば、スタンドアロンの端末でもよく、その実現手段はこれらに限定されるものではない。図1は、実施形態における業務構築システム100のブロック図である。業務構築システム100は、格納部1、受付部2、処理部3、および出力部4を備える。格納部1は、テーブル格納部11、インテント格納部12、API情報格納部13、コーパス格納部14、エンティティ格納部15、エンティティマッピング情報格納部16、PK項目格納部17、および日変換情報格納部18を備える。受付部2は、会話文受付手段21を備える。会話文受付手段21は、音声受付手段211、および音声認識手段212を備える。
処理部3は、パラメータ化手段30、インテント決定手段31、会話文情報決定手段32、エンティティ取得部33、パラメータ取得部34、API情報取得手段35、問合情報構成部36、および検索結果取得手段37を備える。パラメータ取得部34は、判断手段341、日情報取得手段342、エンティティ名取得手段343、翻訳項目名取得手段344、テーブル識別子取得手段345、主キー識別子取得手段346、および変換パラメータ取得手段347を備える。出力部4は、検索結果出力手段41を備える。
格納部1は、各種の情報を格納するデータベースである。各種の情報とは、例えば、テーブル、インテント、API情報、コーパス、エンティティ、エンティティマッピング情報、PK項目、および日変換情報などである。なお、テーブル等の情報については後述する。また、その他の情報については、適時説明する。
テーブル格納部11には、1または2以上のテーブルが格納される。テーブルは、例えば、表形式のデータベースであってもよい。テーブルには、例えば、1または2以上の項目名が登録され、さらに、当該1以上の項目名ごとに、1または2以上の値が登録される。なお、項目名は、属性名といってもよいし、一の項目名に対応する1以上の各値は、属性値といってもよい。また、テーブルは、例えば、リレーショナルデータベースのテーブル、TSV、エクセル、CSV等であるが、その種類はこれらに限定されるものではない。
格納されるテーブルは、具体的には、例えば、社員マスタ、業務マスタ、勤務時間テーブルなどである。社員マスタには、社員に関するマスタデータが登録される。社員に関するマスタデータとは、例えば、社員コード、社員名等のデータであるが、その種類はこれらに限定されるものではない。業務マスタには、業務に関するマスタデータが登録される。業務に関するマスタデータとは、例えば、業務ID、業務名等のデータであるが、その種類はこれらに限定されるものではない。
勤務時間テーブルには、勤務時間に関するデータが登録される。勤務時間に関するデータとは、例えば、日付、残業時間、合計勤務時間、業務ID等の可変的なデータであるが、その種類はこれらに限定されるものではない。なお、合計勤務時間とは、定時までの勤務時間と残業時間との合計である。
勤務時間テーブルには、通常、社員コードに対応付けて、上記のような勤務時間に関するデータが登録される。ただし、勤務時間に関するデータが対応付く情報は、例えば、社員名でもよく、社員を識別し得る情報でれば何でもよい。
インテント格納部12には、1または2以上のインテントが格納される。インテントとは、業務処理ごとに管理される情報である。業務処理ごとに管理されることは、例えば、業務処理を特定する情報に対応付けて、インテント格納部12に格納されることであってもよい。なお、業務処理を特定する情報は、通常、後述するアクション名であるが、その形式はこれらに限定されるものではない。また、対応付くことは、例えば、インテントが、業務処理を特定する情報を有する場合も含む。
業務処理とは、業務に関する処理である。業務は、例えば、会社や団体等の組織で行われる仕事である、といってもよい。業務は、例えば、定時までの勤務、定時後の残業、休暇、欠勤、A案件、B案件、経理、製造などであるが、その種類はこれらに限定されるものではない。業務処理は、例えば、情報の検索である。なお、検索は、例えば、照会といってもよい。検索される情報は、例えば、残業時間や勤務時間等の勤怠情報であるが、残高や株価等の金融情報、または製造ラインの稼働情況などでもよく、これらに限定されるものではない。
ただし、業務処理は、例えば、情報の登録、または情報に基づく処理(例えば、勤怠情報に基づく給与計算、財務情報に基づく金融取引、各スタッフの業務の進捗状況の収集等)などでもよく、これらに限定されるものではない。
インテントは、通常、業務処理を特定するアクション名を有する。アクション名とは、アクションの名称である。アクションとは、通常、APIを介して実行される業務処理である。ただし、アクションは、例えば、SQL文に応じて実行される業務処理であってもよい。
なお、アクション名は、通常、後述するAPI情報にも対応付いている。従って、インテントは、例えば、アクション名を介して、API情報に対応付けられる、と考えてもよい。
また、インテントは、通常、インテント名も有する。インテント名とは、インテントの名称である。従って、インテントは、インテント名または当該インテント名で特定されるインテントと、アクション名または当該アクション名で特定されるアクションとを対応付ける情報である、と考えることもできる。
アクション名は、具体的には、例えば、「残業時間照会」、「勤務時間データ照会」、「進捗状況収集」等であるが、業務処理を特定し得る情報であれば何でもよい。
API情報格納部13には、1または2以上のAPI情報が格納される。API情報とは、APIに関する情報である。APIとは、プログラムの機能を利用するためのインターフェースである。APIは、例えば、関数、メソッド、または実行モジュールなどのソフトウェアである。APIは、例えば、WebAPIであるが、それ以外のAPIでもよい。WebAPIとは、HTTPやHTTPSなどのWeb通信のプロトコルを用いて構築されたAPIである。なお、WebAPI等のAPIについては、公知技術であるので、詳しい説明を省略する。
API情報は、インテントに対応付いている情報である。API情報は、前述したように、例えば、アクション名を介して、インテントに対応付いている。
API情報は、通常、情報検索を行うための情報である。ただし、API情報は、例えば、情報の登録、または情報に基づく処理などを行うための情報であってもよい。
API情報は、1または2以上のパラメータ特定情報を有する。パラメータ特定情報とは、パラメータを特定する情報である。パラメータとは、特定の属性を有する値である、といってもよい。値は、通常、変数である。変数は、引数といってもよい。
パラメータは、通常、エンティティを変換した情報であるが、エンティティそのものでもよい。パラメータは、例えば、APIに与える引数、またはSQL文の変数などである。
パラメータは、例えば、属性名と値との組で構成されてもよい。属性名と値との組とは、具体的には、例えば、“shain_code=2”、“sta_date=20190401,end_date=20190430”等であるが、その形式はこれらに限定されるものではない。
パラメータ特定情報は、例えば、パラメータ名である。パラメータ名とは、パラメータの名称である。または、パラメータ特定情報は、例えば、属性名であるが、パラメータを特定し得る情報であれば何でもよい。
API情報は、例えば、メソッドである。メソッドは、例えば、“search_残業時間(社員コード=$1,開始日付=$2,終了日付=$3)”や“search_業務時間(社員コード=$1,作業日付=$2,業務ID=$3)”等であるが、その形式はこれらに限定されるものではない。なお、メソッドについては、公知であるので詳しい説明を省略する。
または、API情報は、例えば、SQL文でもよい。SQL文とは、データベースに対して問い合わせを行うための文である、といってもよい。SQL文は、例えば、“select_残業時間_from_テーブル名=$1_where_社員コード=$2,業務日付=$3”等であるが、その構造はこれらに限定されるものではない。なお、SQL文については、公知であるので詳しい説明を省略する。
または、API情報は、例えば、URLとメソッドとの組などでもよく、その構造はこれらに限定されるものではない。URLとメソッドとの組は、具体的には、例えば、“http://develop.soppra・・・?社員コード=$1&開始日付=$2&終了日付=$3”等であるが、その形式はこれらに限定されるものではない。なお、この種のAPI情報は、例えば、WebAPI情報といってもよい。
コーパス格納部14には、1または2以上の会話文情報が格納される。会話文情報とは、会話文の情報である。会話文情報は、通常、会話文の例文である。例文は、例えば、“中村の先月の残業時間を教えて”や“中村の昨日のA案件の勤務時間を教えて”等であるが、これらに限定されるものではない。
ただし、会話文情報は、会話文のテンプレートであってもよい。テンプレートは、例えば、“{社員エンティティ}の{日付エンティティ}の{残業エンティティ}を教えて”や“{社員エンティティ}の{日付エンティティ}の{業務エンティティ}の{勤務時間エンティティ}を教えて”等であるが、その形式はこれらに限定されるものではない。なお、テンプレートに含まれる{社員エンティティ}等の“{”,“}”で表現される情報は、例えば、変数と呼んでもよい。また、エンティティ、および「社員エンティティ」等のエンティティ名については後述する。
会話文情報は、通常、インテントに対応付いている。すなわち、コーパス格納部14には、例えば、インテント格納部12に格納されている1以上のインテントごとに、1または2以上の会話文情報が格納される(図9参照:後述)。
また、コーパス格納部14には、通常、格納されている1以上の会話文情報ごとに、1または2以上のエンティティ情報も格納される。エンティティ情報とは、一の会話文情報に対応付いている1以上の各エンティティに関する情報である。エンティティ情報は、会話文情報が例文の場合、例えば、エンティティ、開始位置、終了位置、およびエンティティ名を有する。
エンティティ情報が有するエンティティは、当該エンティティ情報が有するエンティティ名に対応する1または2以上のエンティティの中の代表値である。代表値は、一のエンティティ名に対応する1以上のエンティティ中の、例えば、先頭のエンティティであるが、どのエンティティでもよい。
開始位置とは、会話文情報において当該エンティティが始まる位置である。開始位置は、例えば、会話文を構成する文字列において、当該エンティティの最初の文字が何番目の文字であるかを示す値(例えば、“1”や“4”等)で表現される。同様に、終了位置とは、会話文情報において当該エンティティが終わる位置であり、例えば、当該エンティティの最後の文字が何番目の文字であるかを示す値(例えば、“2”や“5”等)で表現される。ただし、開始位置や終了位置の表現形式はこれらに限定されるものではない。なお、開始位置および終了位置は、オフセットといってもよい。また、オフセットは、バイト数で表現されてもよく、また、これに限定されるものではない。
エンティティ名とは、エンティティの名称である。エンティティ名は、例えば、「社員エンティティ」、「日付エンティティ」、「残業時間エンティティ」等であるが、エンティティの属性を表現し得る情報であれば、その形式はこれらに限定されるものではない。社員エンティティとは、社員に関するエンティティである。日付エンティティとは、日付に関するエンティティである。残業時間エンティティとは、残業時間に関するエンティティである。
または、エンティティ情報は、会話文情報がテンプレートの場合、例えば、エンティティ名、および順序情報を有していてもよい。順序情報とは、テンプレートに含まれる1以上の変数において、当該エンティティ名が何番目の変数に対応するかを示す値である。ただし、エンティティ情報の構造は、これに限定されるものではない。
コーパス格納部14には、具体的には、例えば、会話文情報“中村の先月の残業時間を教えて”と、これに対応する3つのエンティティ情報“中村,1,2,社員エンティティ”,“先月,4,5,日付エンティティ”,および“残業時間,7,10,残業エンティティ”が格納されていてもよい。
なお、実施形態におけるコーパスとは、例えば、コーパス格納部14に格納されている1以上の会話文情報の各々と考えてもよいし、1以上の会話文情報、および各会話文情報に対応付いているエンティティ情報の集合と考えることもできる。
エンティティ格納部15には、1または2以上のエンティティが格納される。エンティティとは、会話文情報に対応付けられた1または2以上の各単語である。単語とは、文を構成する単位である。単語は、例えば、単に「語」、または「ことば」などと呼んでもよいし、形態素の一種(例えば、後述する自立語)と考えてもよい。
エンティティ格納部15には、例えば、1以上の各エンティティ名に対応付けて、1または2以上のエンティティが格納される。
エンティティは、通常、コーパス格納部14に格納されている1以上の会話文情報の中のいずれか1つ又は2以上の会話文情報に対応付いている。従って、エンティティ格納部15には、例えば、コーパス格納部14に格納されている1以上の会話文情報ごとに、1または2以上のエンティティが格納されてもよい。
会話文情報に対応付く単語は、通常、自立語である。自立語とは、単独でも文節を構成し得る語であり、例えば、名詞であるが、動詞、形容詞等でもよい。ただし、対応付く単語は、付属語でもよい。付属語とは、単独では文節を構成し得ず、他の自立語を伴って文節を構成する語であり、例えば、助動詞、助詞などである。つまり、対応付く単語は、通常、自立語であるが、付属語を伴った自立語であってもよい。
また、対応付く単語は、例えば、連語でもよい。連語とは、2以上の自律語が結び付いて一定の意味を表す語であり、複合語といってもよい。連語は、例えば、“残業”と“時間”が結合した“残業時間”や、“A”と“案件”が結合した“A案件”等であるが、“中村一郎”といった氏と名の組でもよく、2以上の語の組であれば何でもよい。
なお、対応付く単語は、会話文情報が例文の場合は、当該例文に含まれている1または2以上の各単語(つまり、会話文情報内の情報)あるが、会話文情報がテンプレートの場合は、当該テンプレートに含まれる1または2以上の各変数の位置に挿入されるべき単語(つまり、会話文情報に付加される情報)である。
エンティティマッピング情報格納部16には、1または2以上のエンティティマッピング情報が格納される。エンティティマッピング情報とは、テーブル識別子および翻訳項目名をエンティティ名に対応付ける情報である、といってもよい。
エンティティマッピング情報は、例えば、テーブル識別子と、翻訳項目名と、エンティティ名とを有する。テーブル識別子とは、テーブル格納部11に格納されている1以上の各テーブルを識別する情報である。テーブル識別子は、例えば、“MST_SHAIN”や“TRN_TIME_CARD”等であるが、テーブルを識別し得る情報であれば何でもよい。
翻訳項目名とは、テーブル識別子で識別されるテーブル内の属性名であり、変換されるエンティティを特定する情報である。変換されるエンティティとは、パラメータに変換されるエンティティ(例えば、パラメータ“shain_code=1”に変換されるエンティティ“中村一郎”や、パラメータ“sta_date=20190401,end_date=20190430”に変換されるエンティティ“先月”等)である。
翻訳項目名は、例えば、テーブル識別子で識別されるテーブルが有する1以上の項目名のうち、主キー以外のキーに対応する項目名であり、主キーに対応する項目名に変換される項目名であってもよい。主キーに対応する項目名とは、例えば、主キー識別子である。
翻訳項目名は、例えば、“SHAIN_CODE”や“TIME_CARD_DATE”等であるが、変換されるエンティティを特定し得る情報であれば何でもよい。
PK項目格納部17には、1または2以上のPK項目が格納される。PK項目とは、主キーに対応する項目である。PK項目は、例えば、テーブル識別子と、主キー識別子とを有する。主キー識別子とは、テーブル識別子で識別されるテーブルの主キーを特定する情報である。
主キー識別子は、例えば、テーブル識別子“MST_SHAIN”で識別されるテーブル(以下、社員マスタ)の場合は“SHAIN_CODE”であり、テーブル識別子“TRN_TIME_CARD”で識別されるテーブル(以下、勤務時間テーブル)の場合は“SHAIN_CODE”と“TIME_CARD_DATE”の2つである。
日変換情報格納部18には、1または2以上の日変換情報が格納される。日変換情報とは、日単語を日付に変換するための情報である。日単語とは、日に関する単語である。日単語は、通常、エンティティ名「日付エンティティ」に対応付いた単語であり、例えば、「先月」、「昨日」、「先週」、「今年」、「今月」、「昨年」、「前期」、「今年度」などであるが、日付に変換し得る情報であれば何でもよい。
日変換情報は、日単語と、日情報取得情報とを有する。日情報取得情報とは、日情報を取得するための情報である。日情報とは、日単語に対応する日に関する情報であり、問合情報を構成する際に使用する情報である。日情報は、例えば、“4月1日”等の日付を示す情報でもよいし、“4/1~4/30”等の開始日付から終了日付までの期間を示す情報でもよく、これらに限定されるものではない。日情報取得情報は、例えば、関数名、またはメソッド名であるが、API情報でもよいし、プログラム自体でもよく、またこれらに限定されるものではない。
具体的には、日単語「先月」に対する日情報取得情報は、例えば、現在時刻情報(例えば“2019年5月10日11時15分”:以下同様)を取得し、当該現在時刻情報が有する月(例えば“5月”)に対して前の月(例えば“4月”)を取得し、当該前の月のカレンダー情報を参照して、当該前の月の初日から末日までの日情報(例えば“4/1~4/30”等)を取得するプログラム等でもよい。
また、日単語「今年」に対する日情報取得情報は、例えば、現在時刻情報を取得し、当該現在時刻情報が有する年(例えば“2019年”)のカレンダー情報を参照して、当該年の初日から、当該現在時刻情報が有する日までの日情報(例えば、“2019/1/1~2019/5/10”)を取得するAPI情報等でもよい。
さらに、日単語「昨日」に対する日情報取得情報は、現在時刻情報を取得し、当該現在時刻情報が有する日の前の日の日情報(例えば、“5/9”)を取得するメソッド、またはそのメソッド名等でもよい。
受付部2は、各種の情報を受け付ける。各種の情報とは、例えば、会話文である。受付部2は、会話文等の情報を、例えば、端末から受信するが、キーボードやタッチパネルやマイクロフォン等の入力デバイスを介して受け付けてもよい。または、受付部2は、例えば、ディスクや半導体メモリ等の記録媒体から読み出された情報を受け付けてもよく、その受け付けの態様は特に限定されるものではない。
会話文受付手段21は、会話文を受け付ける。会話文とは、人が会話する文であり、自然言語による文といってもよい。会話文の受け付けは、例えば、音声での受け付けであるが、テキストでの受け付けでもよい。音声とは、人が発した声である。テキストとは、人が発した声を音声認識した文字列である。文字列は、1または2以上の文字の配列で構成される。
音声受付手段211は、会話文の音声を受け付ける。音声受付手段211は、会話文の音声を、例えば、端末から、端末識別子と対に受信するが、マイクロフォンを介して受け付けてもよい。端末識別子とは、端末を識別する情報である。端末識別子は、例えば、MACアドレス、IPアドレス、IDなどであるが、端末を識別し得る情報であれば何でもよい。なお、端末識別子は、端末のユーザを識別するユーザ識別子でもよい。ユーザ識別子は、例えば、メールアドレス、電話番号等であるが、IDや住所・氏名等でもよく、ユーザを識別し得る情報であれば何でもよい。
音声認識手段212は、音声受付手段211が受け付けた音声に対して音声認識処理を行い、文字列である会話文を取得する。なお、音声認識処理は公知技術であり、詳しい説明を省略する。
処理部3は、各種の処理を行う。各種の処理とは、例えば、パラメータ化手段30、インテント決定手段31、会話文情報決定手段32、エンティティ取得部33、パラメータ取得部34、API情報取得手段35、問合情報構成部36、検索結果取得手段37、判断手段341、日情報取得手段342、エンティティ名取得手段343、翻訳項目名取得手段344、テーブル識別子取得手段345、主キー識別子取得手段346、および変換パラメータ取得手段347などの処理である。また、各種の処理には、例えば、フローチャートで説明する各種の判別なども含まれる。
処理部3は、例えば、会話文受付手段21が会話文を受け付けたことに応じて、パラメータ化手段30及びインテント決定手段31等の処理を行う。なお、1以上の各端末から、端末識別子と対に会話文が送信される場合、処理部3は、インテント決定手段31等の処理を、1以上の端末識別子ごとに行う。
パラメータ化手段30は、会話文受付手段21が受け付けた1以上の会話文に含まれる1以上のエンティティをパラメータ化する。なお、パラメータ化手段30は、会話文情報決定手段32が決定した会話文情報に対応するエンティティをパラメータ化してもよい。
詳しくは、パラメータ化手段30は、音声として入力された会話文に含まれるエンティティ、一例として自立語をパラメータ化する。例えば、「大塚の先月の残業時間を教えて」という会話文と「先月の大塚の残業時間を教えて」という会話文を比較すると、「大塚」と「先月」の単語が入れ替わっている点以外、2つの会話文に異なる点は無い。にも拘わらず、これまでの検索結果では、異なる意味を持つ会話文として、必ずしも同じ意味内容であると認識されていないことがあった。そこで、パラメータ化手段30は、これらの会話文に含まれる「大塚」、「先月」、「残業時間」という自立語、即ちエンティティをパラメータ化する。
インテント決定手段31は、会話文受付手段21が受け付けた会話文に対応するインテントを決定する。
詳しくは、インテント決定手段31は、最初、例えば、会話文受付手段21が受け付けた会話文に対応するテキストを取得する。テキストは、前述したように、例えば、会話文受付手段21が受け付けた会話文を音声認識した結果であるが、会話文受付手段21が受け付けた会話文そのものでもよい。
すなわち、インテント決定手段31は、音声である会話文が受け付けられた場合、当該会話文を音声認識し、テキストを取得する。なお、テキストである会話文が受け付けられた場合、インテント決定手段31は、当該テキストを取得すればよい。
次に、インテント決定手段31は、取得したテキストに対して、例えば、形態素解析を行うことにより、当該テキストから1以上の自立語を取得する。なお、形態素解析は公知技術であり、詳しい説明を省略する。
そして、インテント決定手段31は、取得した1以上の自立語と同一または類似する単語を有するアクション名を有するインテントを決定する。
詳しくは、例えば、格納部1に類義語辞書が格納されている。類義語辞書とは、類義語に関する辞書である。類義語辞書には、インテント格納部12に格納されている1以上の各インテントを構成するアクション名ごとに、当該アクション名が有する単語と、当該単語の1または2以上の類義語とが登録されている。具体的には、例えば、アクション名「残業時間照会」が有する単語「残業時間」に対応付けて、「時間外」、「時間外時間」などが登録されていてもよい。
例えば、会話文受付手段21が会話文「大塚の先月の残業時間を教えて」を受け付けた場合、インテント決定手段31は、当該会話文から、「大塚」や「先月」や「残業時間」等の1以上の自立語を取得し、各自立語をキーにインテント格納部12を検索して、当該自立語と一致するアクション名を有するインテントがあるか否かを判断する。なお、一致は、例えば、完全一致であるが、部分一致でもよい。そして、当該自立語と一致する単語を有する、処理動作を特定するアクション名を有するインテントがある場合、インテント決定手段31は、当該インテントを決定する。本例では、自立語「残業時間」と一致する単語「残業時間」を有するアクション名「残業時間参照」を有するインテントがあるため、当該インテントが決定される。
なお、当該自立語と一致する単語を有するアクション名を有するインテントがない場合、例えば、インテント決定手段31は、類義語辞書から、当該自立語に対応する1以上の類義語のうち、一の類義語を取得し、当該一の類義語をキーにインテント格納部12を検索して、当該当該一の類義語と一致する単語を有するアクション名を有するインテントがあるか否かを判断する。そして、当該一の類義語と一致する単語を有するアクション名を有するインテントがある場合、インテント決定手段31は、当該インテントを決定する。かかるインテントがない場合、インテント決定手段31は、他の類義語について、同様の処理を行い、インテントを決定する。どの類義語についても、かかるインテントがない場合、インテント決定手段31は、インテントが決定されない旨を出力してもよい。
会話文情報決定手段32は、インテント決定手段31が決定したインテントをキーにコーパス格納部14を検索し、当該インテントに対応する1以上の会話文情報の中から、会話文受付手段21が受け付けた会話文に最も近似する会話文情報を決定する。
会話文に最も近似する会話文情報とは、例えば、会話文に対する類似度が最も高い会話文情報である。すなわち、会話文情報決定手段32は、例えば、受け付けられた会話文と、決定されたインテントに対応する1以上の各会話文情報との類似度を算出し、類似度が最大の会話文情報を決定する。
または、会話文情報決定手段32は、例えば、受け付けられた会話文の名詞の位置を変数にしたテンプレートに一致する会話テンプレートを検索してもよい。すなわち、コーパス格納部14には、1または2以上の各エンティティ名を変数にしたテンプレートが格納されており、会話文情報決定手段32は、受け付けられた会話文の1または2以上の各エンティティ名の位置を取得し、取得したエンティティ名の位置に対応するテンプレートを会話文情報に決定する。なお、会話文の1以上の各エンティティ名の位置とは、1以上の各エンティティ名を有するテンプレートにおいて、当該エンティティ名が何番目のエンティティ名かを示す情報である。
エンティティ取得部33は、会話文情報決定手段32が決定した会話文情報に対応付いている1以上の各エンティティに対応し、会話文受付手段21が受け付けた会話文が有する単語である1以上のエンティティを取得する。
エンティティ取得部33は、例えば、決定された会話文情報に対応付いている1以上のエンティティごとに、当該エンティティの開始位置および終了位置をコーパス格納部14から取得し、受け付けられた会話文から、当該開始位置および当該終了位置により特定される単語を取得する。
具体的には、前述したように、例えば、コーパス格納部14に、会話文情報“中村の先月の残業時間を教えて”と、これに対応する3つのエンティティ情報“中村,1,2、社員エンティティ”,“先月,4,5、日付エンティティ”,および“残業時間,7,10,残業エンティティ”が格納されており、会話文受付手段21が会話文「大塚の先月の残業時間を教えて」を受け付け、会話文情報決定手段32が上記会話文情報「中村の先月の残業時間を教えて」を決定した場合、エンティティ取得部33は、受け付けられた会話文「大塚の先月の残業時間を教えて」から、1つ目のエンティティ情報が有する開始位置“1”および終了位置“2”で特定される単語「大塚」と、2つ目のエンティティ情報が有する開始位置“4”および終了位置“5”で特定される単語「先月」と、3つ目のエンティティ情報が有する開始位置“7”および終了位置“10”で特定される単語「残業時間」とを取得する。
パラメータ取得部34は、エンティティ取得部33が取得した1以上の各エンティティに対応する1以上のパラメータを取得する。
取得されるパラメータは、例えば、取得されたエンティティそのものであるが、取得されたエンティティを変換した情報でもよい。すなわち、例えば、取得された1以上のエンティティの中に日単語が含まれている場合、パラメータ取得部34は、当該日単語をパラメータである日情報に変換する。
パラメータ取得部34を構成する判断手段341は、エンティティ取得部33が取得した1以上のエンティティの中に日単語が存在するか否かを判断する。詳しくは、例えば、格納部1に、1または2以上の日単語が格納されており、判断手段341は、取得された1以上のエンティティごとに、格納されているいずれかの日単語と一致するか否かの判別を行い、少なくとも1つのエンティティについての判別結果が一致を示す場合に、取得された1以上のエンティティの中に日単語が存在すると判断する。
日情報取得手段342は、取得された1以上のエンティティの中に日単語が存在すると判断手段341が判断した場合に、当該日単語に対応する日変換情報を日変換情報格納部18から取得し、当該日変換情報を用いて、パラメータである日情報を取得する。
具体的には、例えば、格納部1に、日単語「先月」等が格納されており、会話文「大塚の先月の残業時間を教えて」が受け付けられて、3つのエンティティ「大塚」、「先月」、および「残業時間」が取得された場合、判断手段341は、エンティティ「先月」が日単語「先月」と一致することから、取得された3のエンティティの中に日単語が存在すると判断する。例えば、現在時刻情報を取得し、日情報(例えば“4/1~4/30”等)を取得する
日情報取得手段342は、当該日単語「先月」に対応する日情報取得情報(例えば、プログラム)を日変換情報格納部18から取得する。そして、日情報取得手段342は、当該日情報取得情報を用いて、MPU(Micro Processing Unit)の内蔵時計やNTPサーバ等から現在時刻情報(例えば“2019年5月10日11時15分”)を取得し、当該現在時刻情報が有する月(例えば“5月”)に対して前の月(例えば“4月”)を取得する。そして、日情報取得手段342は、当該前の月のカレンダー情報を参照して、当該前の月の初日から末日までの日情報“4月1日~4月30日”を取得する。
なお、会話文から取得された日単語が「今年」である場合、日情報取得手段342は、当該日単語「今年」に対応する日情報取得情報(例えば、API情報)を日変換情報格納部18から取得する。そして、日情報取得手段342は、当該日情報取得情報を用いて、内蔵時計等から現在時刻情報を取得し、当該現在時刻情報が有する年(例えば“2019年”)のカレンダー情報を参照して、当該年の初日から、当該現在時刻情報が有する日までの日情報(例えば、“2019/1/1~2019/5/10”)を取得する。
また、取得された日単語が「昨日」である場合、日情報取得手段342は、当該日単語「昨日」に対応する日情報取得情報(例えば、メソッド)を日変換情報格納部18から取得する。そして、日情報取得手段342は、当該日情報取得情報を用いて、内蔵時計等から現在時刻情報を取得し、当該現在時刻情報が有する日の前の日の日情報(例えば、“5/9”)を取得する。
エンティティ名取得手段343は、エンティティ取得部33が取得した1以上のエンティティごとに、当該エンティティに対応するエンティティ名をエンティティ格納部15から取得する。
当該エンティティに対応するエンティティ名とは、当該エンティティが取得された会話文において、当該エンティティに対応するエンティティの位置に一致または類似する開始位置および終了位置と対になるエンティティ名である。エンティティ名取得手段343は、エンティティ取得部33が取得した1以上のエンティティごとに、例えば、当該エンティティに対応付いたエンティティ情報を用いて、当該エンティティに対応するエンティティ名をエンティティ格納部15から取得してもよい。
具体的には、例えば、受け付けられた会話文「大塚の先月の残業時間を教えて」から3つのエンティティ「大塚」、「先月」、および「残業時間」が取得された場合、エンティティ名取得手段343は、コーパス格納部14に格納されている会話文情報「中村の先月の残業時間を教えて」において、当該会話文情報に対応付けて格納されている3つのエンティティ情報のうち、受け付けられた会話文「大塚の先月の残業時間を教えて」における「大塚」と同じ開始位置“1”および終了位置“2”を有する1つ目のエンティティ情報を用いて、「中村」に対応付いた「社員エンティティ」を取得する。
また、エンティティ名取得手段343は、例えば、上記3つのエンティティ情報のうち、会話文「大塚の先月の残業時間を教えて」における「先月」と同じ開始位置“4”および終了位置“5”を有する2つ目のエンティティ情報を用いて、「先月」に対応付いた「日付エンティティ」を取得し、さらに、会話文「大塚の先月の残業時間を教えて」における「残業時間」と同じ開始位置“7”および終了位置“10”を有する3つ目のエンティティ情報を用いて、「残業時間」に対応付いた「残業時間エンティティ」を取得する。
翻訳項目名取得手段344は、例えば、エンティティ名取得手段343が取得した1以上のエンティティ名ごとに、当該エンティティ名と対になる翻訳項目名をエンティティマッピング情報格納部16から取得する。
具体的には、エンティティマッピング情報格納部16に、例えば、テーブル識別子“MST_SHAIN”と翻訳項目名“SHAIN_NAME”とエンティティ名“社員エンティティ”とを有するエンティティマッピング情報1、テーブル識別子“TRN_TIME_CARD”と翻訳項目名“TIME_CARD_DATE”とエンティティ名“日付エンティティ”とを有するエンティティマッピング情報2、およびテーブル識別子“TRN_TIME_CARD”と翻訳項目名“ZIKANGAI_TIME”とエンティティ名“残業エンティティ”とを有するエンティティマッピング情報3などが格納されており、エンティティ名取得手段343が3つのエンティティ名「社員エンティティ」、「日付エンティティ」、および「残業エンティティ」を取得した場合、翻訳項目名取得手段344は、当該3つのエンティティマッピング情報1~3を用いて、エンティティ名「社員エンティティ」と対になる翻訳項目名“SHAIN_NAME”、エンティティ名「日付エンティティ」と対になる翻訳項目名“TIME_CARD_DATE”、および「残業エンティティ」と対になる翻訳項目名“ZIKANGAI_TIM”を取得する。
テーブル識別子取得手段345は、エンティティ名取得手段343が取得した1以上のエンティティ名ごとに、当該エンティティ名と対になるテーブル識別子をエンティティマッピング情報格納部16から取得する。
具体的には、テーブル識別子取得手段345は、例えば、上記3つのエンティティマッピング情報1~3を用いて、エンティティ名「社員エンティティ」と対になるテーブル識別子“MST_SHAIN”、エンティティ名「日付エンティティ」と対になるテーブル識別子“TRN_TIME_CARD”、およびエンティティ名「残業エンティティ」と対になるテーブル識別子“TRN_TIME_CARD”を取得する。
主キー識別子取得手段346は、テーブル識別子取得手段345が取得したテーブル識別子と対になる主キー識別子をPK項目格納部17から取得する。
具体的には、PK項目格納部17に、例えば、テーブル識別子“MST_SHAIN”と主キー識別子“SHAIN_CODE”とを有するPK項目1、テーブル識別子“TRN_TIME_CARD”と主キー識別子“SHAIN_CODE”とを有するPK項目2、テーブル識別子“TRN_TIME_CARD”と主キー識別子“TIME_CARD_DATE”とを有するPK項目3、およびテーブル識別子“MST_GYOUMU”と主キー識別子“GYOUMU_ID”とを有するPK項目4などが格納されており、主キー識別子取得手段346は、当該PK項目1~4を用いて、テーブル識別子“MST_SHAIN”と対になる主キー識別子“SHAIN_CODE”、テーブル識別子“TRN_TIME_CARD”と対になる主キー識別子“SHAIN_CODE”、テーブル識別子“TRN_TIME_CARD”と対になる主キー識別子“TIME_CARD_DATE”、およびテーブル識別子“MST_GYOUMU”と対になる主キー識別子“GYOUMU_ID”を取得する。
変換パラメータ取得手段347は、テーブル識別子取得手段345が取得したテーブル識別子で識別されるテーブルから、翻訳項目名取得手段344が取得した翻訳項目名の属性値が、エンティティ取得部33が取得したエンティティと一致するレコードに含まれる属性値であり、主キー識別子取得手段346が取得した主キー識別子の属性値である、変換されたパラメータを取得する。
具体的には、変換パラメータ取得手段347は、取得されたテーブル識別子“MST_SHAIN”で識別される社員マスタから、取得された翻訳項目名“SHAIN_NAME”の属性値が、取得されたエンティティ“大塚”と一致するレコードに含まれる属性値であり、取得された主キー識別子“SHAIN_CODE”の属性値である、変換されたパラメータ“shain_code=2”を取得する。
また、変換パラメータ取得手段347は、取得されたテーブル識別子“TRN_TIME_CARD”で識別される勤務時間テーブルから、取得された2つの翻訳項目名“TIME_CARD_DATE”および“SHAIN_NAME”の属性値が、取得されたエンティティ“先月”を変換したエンティティ“4月1日~4月30日”、および取得されたエンティティ“大塚”と一致するレコードに含まれる属性値であり、取得された2つの主キー識別子“SHAIN_CODE”および“TIME_CARD_DATE”の属性値である変換されたパラメータ“shain_code=2,sta_date=20190401,end_date=20190430”を取得する。
API情報取得手段35は、インテント決定手段31が決定したインテントに対応するAPI情報をAPI情報格納部13から取得する。
API情報取得手段35は、例えば、インテント決定手段31が決定したインテントに対応するアクション名を有するAPI情報を、API情報格納部13から取得する。
具体的には、API情報格納部13に、例えば、アクション名“残業時間照会”と3以上のパラメータ特定情報“社員コード,shain_code”,“開始日付,sta_date”,および“終了日付,end_date”などを有するAPI情報1、およびアクション名“勤務時間データ照会”と3以上のパラメータ特定情報“社員コード,shain_code”,“作業日付,time_card_date”,および“業務ID,gyoumu_id”などを有するAPI情報2が格納されており、インテント名「残業照会インテント」で特定されるインテントが取得された場合、API情報取得手段35は、当該インテントが有するアクション名“残業時間照会”を有するAPI情報1を取得する。
問合情報構成部36は、パラメータ取得部34が取得した1以上のパラメータと、API情報取得手段35が取得したAPI情報とを用いて、問合情報を構成する。問合情報とは、情報検索するための情報であり、通常、実行可能な情報である。問合情報は、例えば、引数が挿入された関数またはメソッドであるが、完成されたSQL文でもよいし、URLとパラメータの組でもよい。
問合情報構成部36は、例えば、API情報取得手段35が取得したAPI情報が有する1以上の各変数の箇所に、各箇所に対応付くパラメータであり、パラメータ取得部34が取得したパラメータを配置することにより、問合情報を構成する。
具体的には、例えば、取得されたAPI情報1が有する3以上の各変数の箇所に、“shain_code=2”、sta_date=20190401”、およびend_date”=20190430が配置された問い合わせ情報“https://develop.soppra・・・?shain_code=2&sta_date=20190401&end_date=20190430”が構成されてもよい。
検索結果取得手段37は、問合情報構成部36が構成した問合情報を実行し、パラメータ化手段30により得られたパラメータを用いて格納部1(データベース)を検索することにより検索結果を取得する。例えば、問合情報“https://develop.soppra・・・?shain_code=2&sta_date=20190401&end_date=20190430”が実行され、社員コード2で特定される社員「大塚二郎」の4月1日から4月30日までの各日付に対応する残業時間“0401=1,0402=0,・・・4030=2”が取得されてもよい。また、検索結果取得手段37は、パラメータ化手段30により得られたパラメータを含むAPI情報を生成し、生成したAPI情報に基づいて格納部1(データベース)を検索してもよい。即ち、新たにパラメータを書き込むことにより、あるいは既に書き込まれているパラメータを新たなパラメータに書き換えることによりAPI情報を生成し、パラメータが反映されたAPI情報に基づいてデータベースを検索してもよい。なお、API情報やSQL等の問合のための情報や、検索結果取得手段37の詳しい動作については、具体例や変形例で説明する。
出力部4は、各種の情報を出力する。各種の情報とは、例えば、検索結果である。
出力部4は、例えば、受付部2が端末識別子と対に会話文等の情報を受信したことに応じて処理部3が各種の処理を行った結果である検索結果等の情報を、当該端末識別子で識別される端末に送信する。または、例えば、受付部2がタッチパネルやマイクロフォン等の入力デバイスを介して会話文等の情報を受け付けたことに応じて、出力部4は、検索結果等の情報を、ディスプレイやスピーカ等の出力デバイスを介して出力してもよい。
ただし、出力部4は、各種の情報を、例えば、プリンタでプリントアウトしたり、記録媒体に蓄積したり、他のプログラムに引き渡したり、外部の装置に送信したりしてもよく、その出力の態様は特に限定されるものではない。
検索結果出力手段41は、検索結果取得手段37を介して取得した検索結果を出力する。検索結果出力手段41は、例えば、会話文受付手段21が端末識別子と対に会話文を受信したことに応じて検索結果取得手段37が取得した検索結果を、当該端末識別子で識別される端末に送信する。または、検索結果出力手段41は、例えば、会話文受付手段21がマイクロフォン等の入力デバイスを介して会話文を受け付けたことに応じて検索結果取得手段37が取得した検索結果を、ディスプレイやスピーカ等の出力デバイスを介して出力してもよい。
格納部1、テーブル格納部11、インテント格納部12、API情報格納部13、コーパス格納部14、エンティティ格納部15、エンティティマッピング情報格納部16、PK項目格納部17、および日変換情報格納部18は、例えば、ハードディスクやフラッシュメモリといった不揮発性の記録媒体が好適であるが、RAMなど揮発性の記録媒体でも実現可能である。
格納部1等に情報が記憶される過程は、特に限定されるものではない。例えば、記録媒体を介して情報が格納部1等で記憶されるようになってもよく、ネットワークや通信回線等を介して送信された情報が格納部1等で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された情報が格納部1等で記憶されるようになってもよい。入力デバイスは、例えば、キーボード、マウス、タッチパネル、マイクロフォン等、何でもよい。
受付部2、会話文受付手段21、音声受付手段211、および音声認識手段212は、入力デバイスを含むと考えても、含まないと考えてもよい。受付部2等は、入力デバイスのドライバーソフトによって、または入力デバイスとそのドライバーソフトとで実現され得る。
処理部3、インテント決定手段31、会話文情報決定手段32、エンティティ取得部33、パラメータ取得部34、API情報取得手段35、問合情報構成部36、検索結果取得手段37、判断手段341、日情報取得手段342、エンティティ名取得手段343、翻訳項目名取得手段344、テーブル識別子取得手段345、主キー識別子取得手段346、および変換パラメータ取得手段347は、通常、CPU(Central Processing Unit)あるいはMPUやメモリ等から実現され得る。処理部3等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。ただし、処理手順は、ハードウェア(専用回路)で実現してもよい。
出力部4、および検索結果出力手段41は、ディスプレイやスピーカ等の出力デバイスを含むと考えても含まないと考えてもよい。出力部4等は、出力デバイスのドライバーソフトによって、または出力デバイスとそのドライバーソフトとで実現され得る。
なお、受付部2等の受信機能は、通常、無線または有線の通信手段(例えば、NIC(Network interface controller)やモデム等の通信モジュール)で実現されるが、放送を受信する手段(例えば、放送受信モジュール)で実現されてもよい。また、出力部4等の送信機能は、通常、無線または有線の通信手段で実現されるが、放送手段(例えば、放送モジュール)で実現されてもよい。
次に、業務構築システム100の動作について図2~図4のフローチャートを用いて説明する。なお、図2~図4に示す処理は、CPUやMPU等のプロセッサが、HDDや不揮発性メモリ(例えば、フラッシュメモリ)等の記憶媒体に格納されているプログラムを読み込むことにより実現される。
図2は、情報出力装置100の動作を説明するフローチャートである。なお、1以上の各端末から端末識別子と対に会話文が送信される場合、図2~図4のフローチャートは、1以上の端末識別子ごとに実行される。
(ステップS11)処理部3は、会話文受付手段21が会話文を受け付けたか否かを判別する。会話文受付手段21が会話文を受け付けたと判断された場合はステップS12に進み、受け付けていないと判断された場合はステップS11に戻る。
(ステップS12)パラメータ化手段30は、会話文に含まれるエンティティをパラメータ化する。即ち、パラメータ化手段30は、会話文からエンティティを取得するとともに、取得したエンティティに対応するパラメータを取得する。
(ステップS13)検索結果取得手段37は、データベースを検索することにより、検索結果を取得する。
(ステップS14)検索結果出力手段41は、ステップS13で取得した検索結果を出力する。その後、ステップS11に戻る。
図3は、情報出力装置100の他の動作を説明するフローチャートである。
(ステップS201)処理部3は、会話文受付手段21が会話文を受け付けたか否かを判別する。会話文受付手段21が会話文を受け付けたと判断された場合はステップS202に進み、受け付けていないと判断された場合はステップS201に戻る。
(ステップS202)インテント決定手段31は、インテント格納部12に格納されている1以上のインテントの中から、ステップS201で受け付けられた会話文に対応するインテントを決定する。
(ステップS203)会話文情報決定手段32は、ステップS202で決定されたインテントに対応する1以上の会話文情報の中から、ステップS201で受け付けられた会話文に最も近似する会話文情報を決定する。
(ステップS204)エンティティ取得部33は、ステップS203で決定された会話文情報に対応付いている1以上の各エンティティに対応し、ステップS201で受け付けられた会話文が有する1以上のエンティティをエンティティ格納部15から取得する。
(ステップS205)パラメータ取得部34は、ステップS204で取得された1以上の各エンティティに対応する1以上のパラメータを取得する処理(以下、パラメータ取得処理と記す場合がある)を実行する。なお、パラメータ取得処理については、図4を用いて説明する。
(ステップS206)API情報取得手段35は、ステップS202で決定されたインテントに対応するAPI情報をAPI情報格納部13から取得する。
(ステップS207)問合情報構成部36は、ステップS205で取得された1以上のパラメータと、ステップS206で取得されたAPI情報とを用いて、問合情報を構成する。
(ステップS208)検索結果取得手段37は、ステップS207で構成された問合情報を実行し、検索結果を取得する。
(ステップS209)検索結果出力手段41は、ステップS208で取得された検索結果を出力する。その後、ステップS201に戻る。
なお、図3のフローチャートにおいて、情報出力装置100の電源オンやプログラムの起動に応じて処理が開始し、電源オフや処理終了の割り込みにより処理は終了する。ただし、処理の開始または終了のトリガは特に限定されるものではない。
図4は、ステップS205のパラメータ取得処理を説明するフローチャートである。
(ステップS301)パラメータ取得部34は、変数iに初期値1をセットする。変数iとは、ステップS204で取得された1または2以上のエンティティのうち、未選択のエンティティを順番に選択していくための変数である。
(ステップS302)パラメータ取得部34は、i番目のエンティティがあるか否かを判別する。i番目のエンティティがあると判断された場合はステップS303に進み、i番目のエンティティがないと判別された場合は上位処理にリターンする。
(ステップS303)エンティティ名取得手段343は、i番目のエンティティに対応するエンティティ名をエンティティ格納部15から取得する。
(ステップS304)翻訳項目名取得手段344は、ステップS303で取得されたエンティティ名と対になる翻訳項目名をエンティティマッピング情報格納部16から取得する。
(ステップS305)テーブル識別子取得手段345は、ステップS303で取得されたエンティティ名と対になるテーブル識別子をエンティティマッピング情報格納部16から取得する。
(ステップS306)主キー識別子取得手段346は、ステップS305で取得されたテーブル識別子と対になる主キー識別子をPK項目格納部17から取得する。
(ステップS307)判断手段341は、i番目のエンティティが日単語であるか否かを判断する。i番目のエンティティが、日単語であると判断された場合はステップS308に進み、日単語でないと判断された場合はステップS309に進む。
(ステップS308)日情報取得手段342は、当該日単語に対応する日変換情報を日変換情報格納部18から取得し、取得した日変換情報を用いて、パラメータである日情報(開始日付,終了日付等)を取得する。
(ステップS309)変換パラメータ取得手段347は、ステップS305で取得されたテーブル識別子で識別されるテーブルから、翻訳項目名の属性値が、i番目のエンティティと一致するレコードに含まれる属性値であり、ステップS306で取得された主キー識別子の属性値である、変換されたパラメータ(Shain_code=1,sta_date=20190401,end_date=20190430等)を取得する。
(ステップS310)パラメータ取得部34は、変数iをインクリメントする。その後、ステップS302に戻る。
以下、実施形態における情報出力装置100の具体的な動作例について説明する。なお、以下の説明は、種々の変更が可能であり、本発明の範囲を何ら制限するものではない。
情報出力装置100のテーブル格納部11には、例えば、図5に示すような3つのテーブル情報が格納されている。図5は、テーブル情報のデータ構造図である。テーブル情報は、テーブル識別子、およびテーブルを有する。格納される各テーブル情報には、ID(例えば、“1”,“2”等)が対応付いている。
例えば、ID“1”に対応するテーブル情報(以下、テーブル情報1と記す場合がある)は、テーブル識別子“MST_SHAIN”、および第一のテーブル(社員マスタ)を有する。社員マスタには、第一の項目名“SHAIN_CODE”とそれに対応する2以上の値“1”,“2”・・・、および第2の項目名“SHAIN_CODE”とそれに対応する2以上の値“中村一郎”,“大塚二郎”・・・などが登録されている。
また、ID“2”に対応するテーブル情報2は、テーブル識別子“MST_GYOUMU”、および第二のテーブル(業務マスタ)を有する。業務マスタには、第一の項目名“GYOUMU_ID”とそれに対応する2以上の値“a”,“b”・・・、および第2の項目名“GYOUMU_NAME”とそれに対応する2以上の値“A案件”,“B案件”・・・などが登録されている。
さらに、テーブル情報3は、テーブル識別子“TRN_TIME_CARD”、および第三のテーブル(勤務時間テーブル)を有する。勤務時間テーブルには、第一の項目名“TRN_TIME_CARD”とそれに対応する2以上の値“4/1”,“4/1”・・・“4/2”,“4/2”・・・“4/30”,“4/30”・・・、第2の項目名“SHAIN_CODE”とそれに対応する2以上の値“1”,“2”・・・“1”,“2” ・・・“1”,“2”、第3の項目名“ZIKANGAI_TIME”とそれに対応する2以上の値“2”,“1”・・・“1”,“0” ・・・“3”,“2”、第4の項目名“TOTAL_TIME”とそれに対応する2以上の値“10”,“9”・・・“9”,“8” ・・・“11”,“10”、および第5の項目名“GYOUMU_ID”とそれに対応する2以上の値“a”,“b”・・・“a”,“b” ・・・“b”,“b”などが登録されている。
インテント格納部12には、例えば、図6に示すような2以上のインテントが格納される。図6は、インテントのデータ構造図である。インテントは、インテント名、およびアクション名を有する。格納される各インテントには、ID(例えば、“1”,“2”等)が対応付いている。
例えば、ID“1”に対応するインテント1は、インテント名“残業照会インテント”、およびアクション名“残業時間照会”を有する。また、インテント2は、インテント名“勤務照会データ照会インテント”、およびアクション名“勤務照会データ照会”を有する。
図7を参照して、API情報の一例を示す。図7は、3種類の会話文に基づいたAPI情報を示している。各API情報は、処理内容を示す情報(search_残業時間)と、エンティティを基準に得られた1以上のパラメータ(社員、日付等)により構成されている。例えば、会話文が残業時間を問うものであり、会話文に少なくとも社員と日付に関する単語(エンティティ)が含まれているものとした場合、社員に関するエンティティが第1パラメータとして、日付に関するエンティティが第2パラメータとしてAPI情報に書き込まれる。なお、パラメータは、社員、日付に限定されるものではなく、他のいかなるエンティティに対して登録されてもよい。
会話文受付手段が受け付ける会話文は、その都度変化し得る、即ち、動的に変化し得るものである。具体的には、ID1に対応するAPI情報は社員1の日付1についての残業時間を要求するものであるが、ID2に示すAPI情報は社員1の日付2についての残業時間を要求するものである。ID1とID2を比較した場合、同じ社員について異なる日付の残業時間が要求されている点が異なっている。この場合には、日付に相当する第2パラメータが変更される。同様に、図7中、ID1とID3を比較した場合、同じ日付の中で異なる社員の残業時間が要求されている点が異なっている。この場合には、社員に相当する第1パラメータが変更される。このように、会話文が動的に変化した結果、APIを実行する際の条件として用いられるパラメータが変化することによりAPI情報の内容も書き換えられるため、取得することができる検索結果もこれに応じて変化する。
API情報格納部13には、例えば、図8に示すような、アクション名とAPI情報との対の集合が格納される。図8は、API情報格納部13の内容の一例を示す図である。アクション名とAPI情報との対とは、例えば、アクション名“残業時間照会”とAPI情報“search_残業時間(社員コード,開始日付,終了日付)”との対、アクション名“勤務時間データ照会”とAPI情報“search_勤務時間(社員コード,業務日付,業務ID)”との対などである。
コーパス格納部14には、例えば、図9に示すように、1以上の各インテントに対応付けて、1または2以上の会話文情報が格納され、さらに、当該1以上の各会話文情報に対応付けて、1または2以上のエンティティ情報も格納される。図9は、コーパス格納部14の内容の一例を示す図である。エンティティ情報は、エンティティ、開始位置、終了位置、およびエンティティ名を有する。
例えば、第一のインテント“残業時間照会インテント”には、5つの会話文情報1~5が対応付いている。このうち、会話文情報1は、“中村の先月の残業時間を教えて”であり、会話文情報2は、“先月の中村の残業時間を教えて”であり、会話文情報3は、“中村の残業時間を教えて”であり、会話文情報4は、“先月の残業時間を教えて”であり、会話文情報5は、“残業時間を教えて”である。
“残業時間照会インテント”に対応付いた会話文情報1には、エンティティ“中村”,開始位置“1”,終了位置“2”,およびエンティティ名“社員エンティティ”を有する第一のエンティティ情報と、エンティティ“先月”,開始位置“4”,終了位置“5”,およびエンティティ名“日付エンティティ”を有する第二のエンティティ情報と、エンティティ“残業時間”,開始位置“7”,終了位置“10”,およびエンティティ名“残業エンティティ”を有する第三のエンティティ情報とが対応付いている。
また、会話文情報2には、エンティティ“先月”,開始位置“1”,終了位置“2”,およびエンティティ名“日付エンティティ”を有する第四のエンティティ情報と、エンティティ“中村”,開始位置“4”,終了位置“5”,およびエンティティ名“社員エンティティ”を有する第五のエンティティ情報と、エンティティ“残業時間”,開始位置“7”,終了位置“10”,およびエンティティ名“残業エンティティ”を有する第六のエンティティ情報とが対応付いている。
また、会話文情報3には、エンティティ“中村”,開始位置“1”,終了位置“2”,およびエンティティ名“社員エンティティ”を有する第七のエンティティ情報と、エンティティ“残業時間”,開始位置“4”,終了位置“7”,およびエンティティ名“残業エンティティ”を有する第八のエンティティ情報とが対応付いている。
また、会話文情報4には、エンティティ“先月”,開始位置“1”,終了位置“2”,およびエンティティ名“日付エンティティ”を有する第九のエンティティ情報と、エンティティ“残業時間”,開始位置“4”,終了位置“7”,およびエンティティ名“残業エンティティ”を有する第十のエンティティ情報とが対応付いている。
さらに、会話文情報5には、エンティティ“残業時間”,開始位置“1”,終了位置“4”,およびエンティティ名“残業エンティティ”を有する第十一のエンティティ情報が対応付いている。
他方、第二のインテント“勤務時間データ照会インテント”には、例えば、15の会話文情報1~15が対応付いている。このうち、会話文1は、“中村一郎の昨日のA案件の勤務時間を教えて”であり、会話文2は、“中村一郎のA案件の昨日の勤務時間を教えて”であり、最後の会話文15は、“勤務時間を教えて”である。なお、会話文2以下は、会話文1に対し、語順の変更、または一部の語の省略を行った文である。
“勤務時間データ照会インテント”に対応付いた会話文情報1には、エンティティ“中村一郎”,開始位置“1”,終了位置“4”,およびエンティティ名“社員エンティティ”を有する第一のエンティティ情報と、エンティティ“昨日”,開始位置“6”,終了位置“7”,およびエンティティ名“日付エンティティ”を有する第二のエンティティ情報と、エンティティ“勤務時間”,開始位置“13”,終了位置“16”,およびエンティティ名“勤務時間エンティティ”を有する第三のエンティティ情報とが対応付いている。なお、会話文2~15の各々にも、同様に構成された1以上のエンティティ情報が対応付いている。
エンティティ格納部15には、例えば、図10に示すように、1以上の各エンティティ名に対応付けて、1または2以上のエンティティが格納される。図10は、各エンティティ名に対応する1以上のエンティティ(以下、エンティティ群と記す場合がある)の例を示す図である。
例えば、エンティティ名“社員エンティティ”に対応するエンティティ群は、“中村一郎”,“大塚二郎”などを含む。エンティティ名“日付エンティティ”に対応するエンティティ群は、“先月”,“昨日”などを含む。エンティティ名“残業エンティティ”に対応するエンティティ群は、“残業時間”,“残業”などを含む。エンティティ名“業務エンティティ”に対応するエンティティ群は、“A案件”,“B案件”などを含む。エンティティ名“勤務時間エンティティ”に対応するエンティティ群は、“勤務時間”,“勤務”などを含む。
エンティティマッピング情報格納部16には、例えば、図11に示すような2以上のエンティティマッピング情報(エンティティマッピング情報1~4など)が格納される。図11は、エンティティマッピング情報のデータ構造図である。エンティティマッピング情報は、テーブル識別子と、翻訳項目名と、エンティティ名とを有する。
なお、エンティティマッピング情報1~3については、前述したので繰り返さない。エンティティマッピング情報4は、テーブル識別子“MST_GYOUMU”と、翻訳項目名“GYOUMU_ID”と、エンティティ名“業務エンティティ”とを有する。
PK項目格納部17には、例えば、図12に示すような、2以上のPK項目(PK項目1~4など)が格納される。図12は、PK項目のデータ構造図である。PK項目は、テーブル識別子と、主キー識別子とを有する。なお、PK項目1~4については、前述したので繰り返さない。
日変換情報格納部18には、日単語と日情報取得情報との対の集合(図示しない)が格納される。日単語と日情報取得情報との対とは、例えば、日単語「先月」と日情報取得情報1との対、日単語「昨日」と日情報取得情報2との対などである。例えば、日単語「先月」に対応する日情報取得情報1は、現在時刻情報を取得し、当該現在時刻情報が有する月に対して前の月を取得し、当該前の月のカレンダー情報を参照して、当該前の月の初日から末日までの日情報を取得するプログラムである。日単語「昨日」に対応する日情報取得情報2は、現在時刻情報を取得し、当該現在時刻情報が有する日の前の日の日情報を取得するメソッドである。
現在時刻は、2019年5月10日11時15分である。いま、ユーザが端末に対して「大塚の先月の残業時間を教えて」を音声入力したとする。
情報出力装置100において、音声受付手段211がマイクロフォンを介して上記音声を受け付け、音声認識手段212は、当該音声に対して音声認識処理を行い、会話文「大塚の先月の残業時間を教えて」を取得する。
インテント決定手段31は、インテント格納部12に格納されている2以上のインテント1,2・・・の中から、当該会話文に対応するインテントを決定する。詳しくは、インテント決定手段31は、例えば、形態素解析によって、当該会話文から3つの自立語「大塚」、「先月」および「残業時間」を取得し、各自立語をキーにインテント格納部12を検索して、「残業時間」と部分一致するアクション名“残業時間参照”を有するインテント1を決定する。
会話文情報決定手段32は、コーパス格納部14(図9)を参照して、決定されたインテント1に対応する5つの会話文情報1~5の中から、当該会話文に最も近似する会話文情報を決定する。ここでは、当該会話文に対して、開始位置“1”および終了位置“2”で特定される社員エンティティである「中村」のみが異なり、その他のエンティティは同じである会話文情報1が決定される。
エンティティ取得部33は、決定された会話文情報1に対応付いている3つのエンティティ「中村」、「先月」、および「残業時間」に対応するエンティティであり、当該会話文が有する3のエンティティである「大塚」、「先月」、および「残業時間」をエンティティ格納部15から取得する。
詳しくは、会話文情報決定手段32は、会話文情報1に対応する第一~第三の3つのエンティティ情報のうち、第一のエンティティ情報を参照して、当該会話文中の開始位置“1”および終了位置“2”で特定される「大塚」が社員エンティティであると判断する。次に、会話文情報決定手段32は、エンティティ格納部15を参照して、エンティティ名「社員エンティティ」に対応するエンティティ群から、“大塚”と部分一致するエンティティ「大塚二郎」を取得する。
また、会話文情報決定手段32は、第二のエンティティ情報を参照して、当該会話文中の開始位置“4”および終了位置“5”で特定される「先月」が日付エンティティであると判断し、エンティティ名「日付エンティティ」に対応するエンティティ群から、“先月”と完全一致するエンティティ「先月」を取得する。
さらに、会話文情報決定手段32は、第三のエンティティ情報を参照して、当該会話文中の開始位置“7”および終了位置“10”で特定される「残業時間」が残業エンティティであると判断し、エンティティ名「残業エンティティ」に対応するエンティティ群から、“残業時間”と完全一致するエンティティ「残業時間」を取得する。
こうして、当該会話文に対応する3のエンティティ「大塚二郎」、「先月」、および「残業時間」が取得されると、パラメータ取得部34は、当該3つのエンティティに対応する3つのパラメータを取得する。
詳しくは、まず、1番目のエンティティ「大塚二郎」に関し、パラメータ取得部34を構成するエンティティ名取得手段343が、第一のエンティティ情報を用いて、エンティティ名「社員エンティティ」をエンティティ格納部15から取得する。次に、翻訳項目名取得手段344は、取得されたエンティティ名「社員エンティティ」と対になる翻訳項目名「SHAIN_NAME」をエンティティマッピング情報格納部16からエンティティマッピング情報1を用いて取得する。また、テーブル識別子取得手段345は、取得されたエンティティ名「社員エンティティ」と対になるテーブル識別子“MST_SHAIN”をエンティティマッピング情報格納部16からエンティティマッピング情報1を用いて取得する。
次に、主キー識別子取得手段346は、取得されたテーブル識別子“MST_SHAIN”と対になる主キー識別子“SHAIN_CODE”を、PK項目格納部17からPK項目1を用いて取得する。また、判断手段341は、1番目のエンティティ「大塚」が日単語でないと判断し、それに応じて、変換パラメータ取得手段347は、取得されたテーブル識別子“MST_SHAIN”で識別されるテーブル(社員マスタ)から、翻訳項目名「SHAIN_NAME」の属性値が、1番目のエンティティ「大塚二郎」と一致するレコードに含まれる属性値であり、取得された主キー識別子“SHAIN_CODE”の属性値である、1つ目の変換されたパラメータ“shain_code=2”を取得する。
次に、2番目のエンティティ「先月」に関し、エンティティ名取得手段343が、「先月」に対応するエンティティ名「日付エンティティ」を取得し、翻訳項目名取得手段344は、取得されたエンティティ名「日付エンティティ」と対になる翻訳項目名「TIME_CARD_DATE」をエンティティマッピング情報2を用いて取得する。テーブル識別子取得手段345は、取得されたエンティティ名「日付エンティティ」と対になるテーブル識別子“TRN_TIME_CARD”をエンティティマッピング情報格納部16からエンティティマッピング情報2を用いて取得する。
次に、主キー識別子取得手段346は、取得されたテーブル識別子“TRN_TIME_CARD”と対になる2つの主キー識別子“SHAIN_CODE”および“TIME_CARD_DATE”を、2つのPK項目2および3を用いて取得する。判断手段341は、2番目のエンティティ「先月」が日単語であると判断し、これに応じて、日情報取得手段342が、当該日単語「先月」に対応する日変換情報を日変換情報格納部18から取得し、取得した日変換情報を用いて、日情報“4/1~4/30”を取得する。
詳しくは、日情報取得手段342は、内蔵時計等から現在時刻情報“2019年5月10日11時15分”を取得し、現在時刻情報が有する“5月”の前の月である4月のカレンダー情報を参照して、開始日付“4/1”から終了日付“4/30”までの30日を示す日情報“4/1~4/30”を取得する。
変換パラメータ取得手段347は、取得されたテーブル識別子“TRN_TIME_CARD”で識別されるテーブル(勤務時間テーブル)から、翻訳項目名「TIME_CARD_DATE」の属性値が、2番目のエンティティ「先月」に対応する開始日付“4/1”および終了日付“4/30”と一致するレコードに含まれる属性値であり、取得された2つの主キー識別子“SHAIN_CODE”および“TIME_CARD_DATE”の属性値である、2つ目および3つ目の変換されたパラメータ“sta_date=20190401”および“end_date=20190430”を取得する。
次に、3番目のエンティティ「残業時間」に関し、エンティティ名取得手段343が、「残業時間」に対応するエンティティ名「残業エンティティ」を取得し、翻訳項目名取得手段344は、取得されたエンティティ名「残業エンティティ」と対になる翻訳項目名「ZIKANGAI_TIME」をエンティティマッピング情報3を用いて取得する。また、テーブル識別子取得手段345は、取得されたエンティティ名「残業エンティティ」と対になるテーブル識別子“TRN_TIME_CARD”をエンティティマッピング情報3を用いて取得する。
なお、取得されたテーブル識別子“TRN_TIME_CARD”と対になる2つの主キー識別子“SHAIN_CODE”および“TIME_CARD_DATE”は、取得済みであるため、主キー識別子取得手段346は、通常、これらを取得しないが、再度取得してもよい。
また、判断手段341は、3番目のエンティティ「残業時間」が日単語でないと判断し、変換パラメータ取得手段347は、取得されたテーブル識別子“TRN_TIME_CARD”で識別される勤務時間テーブルが有する翻訳項目名「ZIKANGAI_TIME」に対応する、4つ目の変換されたパラメータ“zikangai_time”を取得する。
こうして、当該会話文「大塚の先月の残業時間を教えて」に対応する4つのパラメータ“shain_code=2”,“sta_date=20190401”,“end_date=20190430”および“zikangai_time”が取得されると、API情報取得手段35は、決定されたインテント1が有するアクション名“残業時間照会”に対応するAPI情報“search_残業時間(社員コード,開始日付,終了日付)”をAPI情報格納部13から取得する。
問合情報構成部36は、取得された上記4つのパラメータを、取得されたAPI情報“search_残業時間(社員コード,開始日付,終了日付)”の対応する変数に代入することにより、問合情報“search_zikangai_time(shain_code=2,sta_date=20190401,end_date=20190430”を構成する。
検索結果取得手段37は、構成された問合情報を実行し、検索結果を取得する。ここでは、テーブル識別子“TRN_TIME_CARD”で識別される残業時間テーブルから、項目名“TIME_CARD_DATE”の値が“4/1”~“4/30”であり、かつSHAIN_CODEの値が“2”である30個のレコードから、項目名“ZIKANGAI_TIME”に対応する30個の値“1,0,・・・2”が取得され、当該30個の値を合計した検索結果“20時間”が取得される。
検索結果出力手段41は、取得された検索結果“20時間”を含む応答文を出力する。出力される応答文は、例えば、“20時間です”や“大塚様の4月の残業時間は20時間です”等であってもよい。詳しくは、例えば、格納部1に、応答文のテンプレートが格納されており、検索結果出力手段41は、当該テンプレートの変数に、上記の検索結果“20時間”、上記会話文から取得された“大塚”、および検索の過程で取得された“4月”などを代入することによって、応答文を構成してもよい。
なお、詳細な説明は省略するが、会話文「大塚二郎のA案件の昨日の勤務時間を教えて」に対しては、例えば、4つのパラメータ“shain_code=2”,“time_card_date=20190509”,“gyoumu_id=a”,および“total_time”が取得され、問合情報“search_total_time(shain_code=2,time_card_date=20190509,gyoumu_id=a”が構成されてもよい。
(変形例1)
なお、API情報がSQL文“select_残業時間_from_テーブル名_where_社員コード,業務日付”である場合、パラメータ取得部34は、4つのパラメータ“shain_code=2”,“time_caed_date=20190509”,“trn_time_card”,および“zikangai_time”を取得し、問合情報構成部36は、問合情報“select_zikangai_time_from_trn_time_card_where_shain_code=2,time_caed_date=20190509”を構成してもよい。
(変形例2)
なお、API情報がURLおよびメソッドの組“http://develop.soppra・・・?社員コード&開始日付&終了日付”である場合、パラメータ取得部34は、4つのパラメータ“shain_code=2”,“sta_date=20190401”,“end_date=20190430”,および“zikangai_time”を取得し、問合情報構成部36は、問合情報“http://develop.soppra・・・?shain_code=2&sta_date=20190401&end_date=20190430”を構成してもよい。
上述した構成からなる本発明によれば、会話文受付手段が受け付けた1以上の会話文に含まれる1以上のエンティティをパラメータ化する。これにより、会話が最小単位に分解されるため、意味としては同じ内容であって単に単語の順序が前後しただけの場合、すなわち同じ検索結果を求める会話文が動的に変化した場合には、会話自体が同じ内容であると判断される。パラメータ化手段により得られたパラメータを用いてデータベースを検索することにより検索結果を取得するため、同じ検索結果を求める会話文が動的に変化した場合であっても、適切な検索結果を出力することができる。
さらに、実施形態における処理は、ソフトウェアで実現してもよい。そして、このソフトウェアをソフトウェアダウンロード等により配布してもよい。また、このソフトウェアをCD-ROMなどの記録媒体に記録して流布してもよい。なお、このことは、本明細書における他の実施の形態においても該当する。
図13は、実施形態におけるプログラムを実行して、情報出力装置100を実現するコンピュータシステム900の外観図である。本発明の実施形態は、コンピュータハードウェアおよびその上で実行されるコンピュータプログラムによって実現され得る。図13において、コンピュータシステム900は、ディスクドライブ905を含むコンピュータ901と、キーボード902と、マウス903と、ディスプレイ904と、マイクロフォン917と、スピーカ918とを備える。なお、キーボード902やマウス903やディスプレイ904やマイクロフォン917やスピーカ918をも含むシステム全体をコンピュータと呼んでもよい。
図14は、コンピュータシステム900の内部構成の一例を示す図である。図14において、コンピュータ901は、ディスクドライブ905に加えて、MPU911と、ブートアッププログラム等のプログラムを記憶するためのROM912と、MPU911に接続され、アプリケーションプログラムの命令を一時的に記憶すると共に、一時記憶空間を提供するRAM913と、アプリケーションプログラム、システムプログラム、およびデータを記憶するストレージ914と、MPU911、ROM912等を相互に接続するバス915と、外部ネットワークや内部ネットワーク等のネットワークへの接続を提供するネットワークカード916と、を備える。ストレージ914は、例えば、ハードディスク、SSD、フラッシュメモリなどである。
コンピュータシステム900に、情報出力装置100の機能を実行させるプログラムは、例えば、DVD、CD-ROM等のディスク921に記憶されて、ディスクドライブ905に挿入され、ストレージ914に転送されてもよい。これに代えて、そのプログラムは、ネットワークを介してコンピュータ901に送信され、ストレージ914に記憶されてもよい。プログラムは、実行の際にRAM913にロードされる。なお、プログラムは、ディスク921、またはネットワークから直接、ロードされてもよい。また、ディスク921に代えて他の着脱可能な記録媒体(例えば、DVDやメモリカード等)を介して、プログラムがコンピュータシステム900に読み込まれてもよい。
プログラムは、コンピュータの詳細を示す901に、情報出力装置100の機能を実行させるオペレーティングシステム(OS)、またはサードパーティプログラム等を必ずしも含んでいなくてもよい。プログラムは、制御された態様で適切な機能やモジュールを呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいてもよい。コンピュータシステム900がどのように動作するのかについては周知であり、詳細な説明は省略する。
なお、上述したコンピュータシステム900は、サーバまたは据え置き型のPCであるが、情報出力装置100は、例えば、タブレット端末やスマートフォンやノートPCといった、携帯端末で実現されてもよい。この場合、例えば、キーボード902およびマウス903はタッチパネルに、ディスクドライブ905はメモリカードスロットに、ディスク921はメモリカードに、それぞれ置き換えられてもよい。ただし、以上は例示であり、情報出力装置100を実現するコンピュータのハードウェア構成はこれらに限定されるものではない。
なお、上記プログラムにおいて、情報を送信する送信ステップや、情報を受信する受信ステップなどでは、ハードウェアによって行われる処理、例えば、送信ステップにおけるモデムやインターフェースカードなどで行われる処理(ハードウェアでしか行われない処理)は含まれない。
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
また、上記各実施の形態において、一の装置に存在する2以上の通信手段(例えば、受付部2の受信機能、出力部4の送信機能)は、物理的に一の媒体で実現されてもよいことは言うまでもない。
また、上記各実施の形態において、各処理(各機能)は、単一の装置(システム)によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
第2実施形態
会話文を形態素解析や構文解析を行っても正確に業務処理が特定できない場合がある。かかる場合にはユーザに対して、その構築した業務処理の内容の是非を問い合わせ、これに対して適切な修正を加えて業務を特定し、これを構築済業務として蓄積する必要がある。第2実施形態においては、このような会話文を形態素解析や構文解析を行っても正確に業務処理が特定できない場合において、業務処理におけるユーザへの内容確認と修正指示をスムーズかつ正確に行うための処理動作について説明する。
図15は、この第2実施形態におけるフローチャートを示すものである。ステップS31において、処理部3は、会話文受付手段21が会話文を受け付けたか否かを判別する。会話文受付手段21が会話文を受け付けたと判断された場合はステップS32に進み、受け付けていないと判断された場合はステップS31に戻る。
ステップS32において、パラメータ化手段30は、ステップS31において取得したテキストに対して、例えば、上述した形態素解析や、公知の構文解析手法を用いることによる構文解析を行うことにより、当該テキストから1以上の自立語を取得する。かかる場合において、その他いかなる公知のテキスト解析手法を利用して解析を行うようにしてもよい。ステップS32においては、このようにして解析したテキスト情報の解析データを蓄積しておく。
次にステップS33に移行し、解析した会話文のテキストデータに含まれるエンティティをパラメータ化する。即ち、パラメータ化手段30は、会話文からエンティティを取得するとともに、取得したエンティティに対応するパラメータを取得する。パラメータ化手段30は、このパラメータ化したエンティティを蓄積しておく。
次にステップ34へ移行し、インテント決定手段31は、インテント格納部12に格納されている1以上のインテントの中から、ステップS32において解析した会話文のテキストデータ、更にはステップS33においてパラメータ化したエンティティに基づき、インテントを決定する。このインテントの決定方法は、上述した第1実施形態と同様である。インテントとは、業務処理ごとに管理される情報である。インテントが決定された後、ユーザに対して特定した業務処理について確認を促す。そして、ユーザから承認を得られた場合に、初めて業務処理が特定されたものと認識し、その特定された業務処理に基づいて構築した業務(以下、構築済業務)を蓄積しておく(ステップS35)。この構築済業務とは、上述と同様に「中村君の残業時間を連絡する」、「各スタッフの業務進捗状況を収集する」等である。以上のステップS31~S35までのプロセスは何れも第1実施形態に記載内容に基づいて実現することができる。
一方、ユーザに対して特定した業務処理について確認を促した結果、ユーザから承認が得られない場合がある。例えば「各スタッフの業務進捗状況を収集する」、という業務処理の場合、どのタイミングで業務進捗状況を収集し、各人はどのようにして自らの業務進捗状況を報告し、また各人からの業務進捗の入力が完了したか否かの判定どのようにして行うか分からない場合がある。このようなユーザからの承認が得らない場合には、以下に説明する推論フェーズに移行する。推論フェーズでは、先ずステップS36に移行し、追加質問をユーザに対して行う。
この追加質問をする際には、先ず暫定的に業務処理を並べた構築中業務を構築する。この構築中業務は、図16におけるステップS361に示すように、タイトルとフローにより構成される。タイトルは、インテントに基づくものである。またフローは、(1)~(4)まで時系列的に示されている。各フローは、例えば「(1)入力依頼メール送信」、「(2)返信メール受信」、「(3)入力完了判定」、「(4)入力完了メール送信」等の項目が並んでいる。そして各項目の中には、さらにその条件が記述されており、例えば(1)については、繰り返しの回数、開始日時等の時間条件が記述されている。また、(2)については、繰り返し回数に加え、開始条件及び終了条件が記述されている。
このような各フローの項目と、条件は、予め一般的な業務知識が格納された一般業務ナレッジデータベース51、又は組織固有の業務知識が格納された組織固有業務ナレッジデータベース52にアクセスし、推論を行うことで得ることができる。
一般業務ナレッジデータベース51には、そのユーザが属する企業以外の全ての業界において共通の、一般的な業務知識が蓄積されている。ステップS34において分類したインテントから、例えば「残業時間の連絡」を特定しているのであれば、その残業時間の連絡を行う上で必要な項目として、「(1)勤怠記録データベースへのアクセス」、「(2)勤怠記録データベースから指定された担当者の勤怠記録の返信」、「(3)入力完了判定」の各項目と条件が既に登録されており、これらの中からインテントとの関係でスコアが高いものを読み出すことで、上述した構築中業務を推論することができる。同様に、ステップS34において分類したインテントから、例えば「各スタッフの業務進捗状況収集」を特定しているのであれば、その残業時間の連絡を行う上で必要な項目として、「(1)入力依頼メール送信」、「(2)返信メール受信」、「(3)入力完了判定」、「(4)入力完了メール送信」」の各項目と条件が既に登録されており、これらの中からインテントとの関係でスコアが高いものを読み出すことで、上述した構築中業務を推論することができる。なお、各項目に付される条件については、とりあえず仮の条件が既に入力されており、これを後段のユーザ確認のフェーズにおいて修正していくものとなる。
また、組織固有業務ナレッジデータベース52には、組織固有の業務知識が蓄積されている。例えばその会社(組織内)において、各担当者の勤怠記録を確認する際には、必ず各担当者の確認フェーズを導入するのが社内ルールとされている場合には、そのような項目と条件が各種登録されており、これらの中からインテントとの関係でスコアが高いものを読み出すことで、上述した構築中業務を推論することができる。同様にスタッフの業務進捗状況を収集する際に、各上司の入力確認判定の工程を入れることが社内ルールとされている場合には、そのような項目と条件が各種登録されており、これらの中からインテントとの関係でスコアが高いものを読み出すことで、上述した構築中業務を推論することができる。
なお、このような推論を行う上で更に機械学習を利用してもよい。この機械学習を利用する場合には、各インテント又はそのインテントを構成する文言と、一般業務ナレッジデータベース51や組織固有業務ナレッジデータベース52にあらかじめ登録されている、上述した各業務の項目と条件との関係で学習用データが構築されている。各インテント又はそのインテントを構成する文言が入力用データになり、これに対する出力用データとして各業務の項目と条件が学習用データとして重み付けがなされている。このような重み付けがなされた学習データを予め記憶しておき、新たに受け付けた会話文からのインテント又はこれを構成する文言から、最適な出力用データをこの学習データを通じて推論する。
このようにして、ステップS361において一般業務ナレッジデータベース51、組織固有業務ナレッジデータベース52にアクセスすることで取得した構築中業務は、次のステップS362において、ユーザに対して提示する。ユーザは、提示されたこの構築中業を確認した上で修正を希望する項目や条件について、業務修正指示を出す。この業務修正指示として、例えば「入力依頼メールは、毎週月曜日の朝に送って」という会話文を送ったものとする。
かかる場合には、ステップS364に移行し、上述した構築中業務を修正することにより、これを更新する。このとき、ユーザから新たに受け付けた修正指示を会話文として受け付けた場合には、その会話文に含まれる1以上のエンティティをパラメータ化し、このパラメータに基づいて構築中業務を更新するようにしてもよい。上述した各条件や項目に対して、それぞれパラメータ化されたエンティティが代入されることになり、上述の例の場合、(1)における繰り返しの曜日の条件と、開始日時の条件が取得したパラメータに応じて更新されることになる。このようにして更新された構築中業務は、再びユーザに対して提示されることになる。
ユーザは、かかる構築中業務を確認し、問題なければ、業務修正完了指示を出す(ステップS365)。これに対して、更なる修正要望がある場合には、業務修正指示を再度出す(S363)。
再度出された業務修正指示が「返信メールは30分間隔で確認して」というものであれば、構築中業務における、当該業務修正指示に該当する条件や項目を更新する。上述した各条件や項目に対して、それぞれパラメータ化されたエンティティが代入されることになり、上述の例の場合、(2)における繰り返し条件が取得したパラメータに応じて更新されることになる。このようにして更新された構築中業務は、再びユーザに対して提示されることになる。
なお、構築中業務は、更新される都度、格納部1において格納されて保存される。そして、ユーザからの修正要望がなくなるまで、構築中業務の提示(ステップS362)、業務修正指示(ステップS363)、業務の修正(ステップS364)を繰り返し実行する。そして、最終的にユーザから業務修正完了指示が出された場合(ステップS365)、格納部1において都度更新されてきた最新の構築中業務を、構築済業務として格納する。
このようにして第2実施形態においては、会話文を形態素解析や構文解析を行っても正確に業務処理が特定できない場合において、業務処理におけるユーザへの内容確認と修正指示をスムーズかつ正確に行うことが可能となる。
1 格納部
11 テーブル格納部
12 インテント格納部
13 API情報格納部
14 コーパス格納部
15 エンティティ格納部
16 エンティティマッピング情報格納部
17 PK項目格納部
18 日変換情報格納部
2 受付部
21 会話文受付手段
211 音声受付手段
212 音声認識手段
3 処理部
30 パラメータ化手段
31 インテント決定手段
32 会話文情報決定手段
33 エンティティ取得部
34 パラメータ取得部
341 判断手段
342 日情報取得手段
343 エンティティ名取得手段
344 翻訳項目名取得手段
345 テーブル識別子取得手段
346 主キー識別子取得手段
347 変換パラメータ取得手段
35 API情報取得手段
36 問合情報構成部
37 検索結果取得手段
4 出力部
41 検索結果出力手段
100 業務構築システム

Claims (3)

  1. 会話文を受け付ける会話文受付手段と、
    上記会話文受付手段が受け付けた1以上の会話文に含まれる1以上のエンティティをパラメータ化するパラメータ化手段と、
    上記会話文受付手段が受け付けた会話文に対応する、処理動作を特定するアクション名を有するインテントを決定するインテント決定手段と、
    上記パラメータ化手段により得られるとともに上記インテント決定手段により決定されたインテントにより業務処理が特定できた場合には、その特定できた業務を構築済業務として蓄積するとともに、業務処理が特定できない場合には、上記インテント決定手段により決定されたインテント又はそのインテントを構成する文言が入力用データになり、これに対する出力用データが各業務の項目と条件からなる学習用データを通じて、暫定的に構築している構築中業務を推論してユーザに提示する制御手段とを備え、
    上記制御手段は、上記ユーザから新たに受け付けた修正指示に基づいて上記構築中業務を更新してこれを更に上記ユーザに提示することを繰り返し実行し、上記ユーザから修正完了指示が通知された場合には、上記構築中業務を構築済業務として蓄積すること
    を特徴とする会話文からの業務構築システム。
  2. 上記制御手段は、一般的な業務知識が格納された一般業務ナレッジデータベース、又は組織固有の業務知識が格納された組織固有業務ナレッジデータベースにアクセスすることにより、上記格納された一般的な業務知識又は組織固有の業務知識を読み出すことにより、上記構築中業務を暫定的に構築すること
    を特徴とする請求項1記載の会話文からの業務構築システム。
  3. 上記パラメータ化手段は、上記ユーザから新たに受け付けた修正指示を会話文として受け付けた場合には、その会話文に含まれる1以上のエンティティをパラメータ化し、
    上記制御手段は、上記パラメータ化手段により得られたパラメータにより、上記構築中業務を更新すること
    を特徴とする請求項1又は2記載の会話文からの業務構築システム。
JP2020125178A 2020-07-22 2020-07-22 会話文からの業務構築システム Active JP7065473B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2020125178A JP7065473B2 (ja) 2020-07-22 2020-07-22 会話文からの業務構築システム
PCT/JP2021/022123 WO2022018996A1 (ja) 2020-07-22 2021-06-10 会話文からの業務構築システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020125178A JP7065473B2 (ja) 2020-07-22 2020-07-22 会話文からの業務構築システム

Publications (2)

Publication Number Publication Date
JP2022021552A JP2022021552A (ja) 2022-02-03
JP7065473B2 true JP7065473B2 (ja) 2022-05-12

Family

ID=79729152

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020125178A Active JP7065473B2 (ja) 2020-07-22 2020-07-22 会話文からの業務構築システム

Country Status (2)

Country Link
JP (1) JP7065473B2 (ja)
WO (1) WO2022018996A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013225036A (ja) 2012-04-23 2013-10-31 Scsk Corp 自動対話シナリオ作成支援装置及び自動対話シナリオ作成支援プログラム
JP2018128943A (ja) 2017-02-10 2018-08-16 株式会社アナリティックウェア 対話装置、制御装置、対話システム、対話方法、制御方法、およびプログラム
WO2019093239A1 (ja) 2017-11-07 2019-05-16 日本電気株式会社 情報処理装置、方法及び記録媒体
CN111291166A (zh) 2020-05-09 2020-06-16 支付宝(杭州)信息技术有限公司 基于Bert的语言模型的训练方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013225036A (ja) 2012-04-23 2013-10-31 Scsk Corp 自動対話シナリオ作成支援装置及び自動対話シナリオ作成支援プログラム
JP2018128943A (ja) 2017-02-10 2018-08-16 株式会社アナリティックウェア 対話装置、制御装置、対話システム、対話方法、制御方法、およびプログラム
WO2019093239A1 (ja) 2017-11-07 2019-05-16 日本電気株式会社 情報処理装置、方法及び記録媒体
CN111291166A (zh) 2020-05-09 2020-06-16 支付宝(杭州)信息技术有限公司 基于Bert的语言模型的训练方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
阿部 明典、外4名,看護リスクマネージメントのための看護オントロジ構築,医療情報学,日本,有限責任中間法人日本医療情報学会 株式会社篠原出版新社,2006年06月20日,第25巻,第6号,p.431-441

Also Published As

Publication number Publication date
JP2022021552A (ja) 2022-02-03
WO2022018996A1 (ja) 2022-01-27

Similar Documents

Publication Publication Date Title
US9317501B2 (en) Data security system for natural language translation
US7831911B2 (en) Spell checking system including a phonetic speller
WO2013071305A2 (en) Systems and methods for manipulating data using natural language commands
JP6598418B1 (ja) 情報出力装置、情報出力方法、およびプログラム
US11995075B2 (en) System and method for efficient transliteration of machine interpretable languages
US20210141865A1 (en) Machine learning based tenant-specific chatbots for performing actions in a multi-tenant system
JP6095487B2 (ja) 質問応答装置、及び質問応答方法
JP7065473B2 (ja) 会話文からの業務構築システム
JP6954549B1 (ja) エンティティとインテントとコーパスの自動生成装置及びプログラム
JP6799297B1 (ja) 情報出力装置、情報出力方法、及び情報出力プログラム
JP6635460B1 (ja) 情報生成装置、コーパスの生産方法、およびプログラム
WO2003042870A1 (en) For network-based search service using resemblant words and method thereof
US10579738B2 (en) System and method for generating a multi-lingual and multi-intent capable semantic parser based on automatically generated operators and user-designated utterances relating to the operators
WO2023100384A1 (ja) 処理動作支援装置及びプログラム
JP7336869B2 (ja) 情報処理装置、情報処理方法及びプログラム
JP7231171B1 (ja) 処理動作支援装置及びプログラム
JP6777907B1 (ja) 業務支援装置、及び業務支援システム
US20240176962A1 (en) CROSS-LINGUAL NATURAL LANGUAGE UNDERSTANDING MODEL FOR MULTI-LANGUAGE NATURAL LANGUAGE UNDERSTANDING (mNLU)
JP2020149343A (ja) オントロジー拡張支援装置及びオントロジー拡張支援方法
CN117033447A (zh) 基于应用目录的业务功能标签目录构建方法、介质及系统
US10275518B2 (en) Integrated phonetic matching methods and systems
JP2012174224A (ja) データ入力支援装置、及びデータ入力支援方法
JP2012164202A (ja) 関連度出力装置、関連度出力方法、およびプログラム
JPH11224251A (ja) 機械翻訳方法および装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211001

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20211001

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211124

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220106

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220412

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220414

R150 Certificate of patent or registration of utility model

Ref document number: 7065473

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150