(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022190776
(43)【公開日】2022-12-27
(54)【発明の名称】プログラムコード自動生成システム
(51)【国際特許分類】
G06F 8/30 20180101AFI20221220BHJP
G06N 3/02 20060101ALI20221220BHJP
G06F 40/211 20200101ALI20221220BHJP
【FI】
G06F8/30
G06N3/02
G06F40/211
【審査請求】有
【請求項の数】13
【出願形態】OL
(21)【出願番号】P 2021099206
(22)【出願日】2021-06-15
(11)【特許番号】
(45)【特許公報発行日】2021-11-02
(71)【出願人】
【識別番号】399073034
【氏名又は名称】ソプラ株式会社
(74)【代理人】
【識別番号】100120868
【弁理士】
【氏名又は名称】安彦 元
(72)【発明者】
【氏名】白川 基光
【テーマコード(参考)】
5B091
5B376
【Fターム(参考)】
5B091CA02
5B091CA05
5B376BC31
(57)【要約】
【課題】プログラム開発の仕組みを根本的に変え、近い将来、慢性的なSE技術者不足が社会に甚大な影響を与える事を回避する。
【解決手段】音声又は入力端末を介してテキストデータの入力を受け付ける受付手段と、テキストデータを自然言語解析することにより、指示動作と、対象格からなる格成分を抽出する抽出手段と、実行動作テーブルと、対象格テーブルとを記憶する記憶手段と、指示動作に対応する実行動作命令と、対象格に対応する実行動作対象とを、実行動作テーブル、対象格テーブルを参照することにより探索する探索手段と、プログラムコードの基本構文に、上記探索手段により探索された実行動作命令、実行動作対象を代入することにより、実行動作対象を実行動作命令に規定された実行動作を実行するためのプログラムコードを生成するコード生成手段とを備える。
【選択図】
図2
【特許請求の範囲】
【請求項1】
音声又は入力端末を介してテキストデータの入力を受け付ける受付手段と、
上記受付手段により受け付けられたテキストデータを自然言語解析することにより、指示動作と、これに係り受けする少なくとも対象格からなる格成分を抽出する抽出手段と、
参照用指示動作に対する実際の実行動作命令が関連付けられた実行動作テーブルと、参照用対象格に対する実際の実行動作対象が関連付けられた対象格テーブルとを少なくとも記憶する記憶手段と、
上記抽出された指示動作に対応する実行動作命令と、上記抽出された対象格に対応する実行動作対象とを、上記記憶手段により記憶されている実行動作テーブル、対象格テーブルを参照することにより探索する探索手段と、
プログラムコードの基本構文に、上記探索手段により探索された実行動作命令、実行動作対象を代入することにより、当該実行動作対象を当該実行動作命令に規定された実行動作を実行するためのプログラムコードを自動生成するコード生成手段とを備えること
を特徴とするプログラムコード自動生成システム。
【請求項2】
実行動作テーブルは、参照用指示動作に対する実際の実行動作命令が3段階以上の連関度を以って関連付けられ、上記記憶手段に記憶されており、
上記探索手段は、上記抽出された指示動作に対応する実行動作命令を、上記記憶手段により記憶されている実行動作テーブルの連関度を参照することにより探索すること
を特徴とする請求項1記載のプログラムコード自動生成システム。
【請求項3】
対象格テーブルは、参照用対象格に対する実際の実行動作対象が3段階以上の連関度を以って関連付けられ、上記記憶手段に記憶されており、
上記探索手段は、上記抽出された対象格に対応する実行動作対象を、上記記憶手段により記憶されている対象格テーブルの連関度を参照することにより探索すること
を特徴とする請求項1記載のプログラムコード自動生成システム。
【請求項4】
上記抽出手段は、指示動作に係り受けする終点格からなる格成分を抽出し、
上記記憶手段は、参照用終点格に対する実際の実行動作先が関連付けられた終点格テーブルを記憶し、
上記探索手段は、上記抽出された終点格に対する実行動作先を、上記記憶手段により記憶されている終点格テーブルを参照することにより探索し、
上記コード生成手段は、プログラムコードの基本構文に、上記探索手段により探索された実行動作先を代入することにより、当該実行動作対象を当該実行動作先に対して当該実行動作命令に規定された実行動作を実行するためのプログラムコードを自動生成すること
を特徴とする請求項1~3のうち何れか1項記載のプログラムコード自動生成システム。
【請求項5】
上記記憶手段は、参照用終点格に対する実際の実行動作先が3段階以上の連関度を以って関連付けられた終点格テーブルを記憶し、
上記探索手段は、上記抽出された終点格に対する実行動作先を、上記記憶手段により記憶されている終点格テーブルの連関度を参照することにより探索すること
を特徴とする請求項4記載のプログラムコード自動生成システム。
【請求項6】
上記探索手段は、上記実行動作テーブル、上記対象格テーブル、上記終点格テーブルを介して探索した実行動作命令、実行動作対象、実行動作先にそれぞれ紐付けられていた連関度に基づいて、ユーザに対して入力内容を確認するための確認文を生成する確認文生成手段と、
上記確認文生成手段により生成された確認文を音声出力又は画像出力する出力手段とを備え、
上記受付手段は、ユーザによりテキストデータの再入力を受け付けること
を特徴とする請求項5記載のプログラムコード自動生成システム。
【請求項7】
上記コード生成手段は、参照用実行動作対象、参照用実行動作対象、参照用実行動作先の組み合わせに対するプログラムコードの基本構文が関連付けられたコードテーブルを参照し、上記探索手段により探索された実行動作対象、実行動作対象、実行動作先に基づいて、関連性の高いプログラムコードの基本構文を抽出し、抽出した基本構文に対して上記代入を行うこと
を特徴とする請求項5又は6記載のプログラムコード自動生成システム。
【請求項8】
上記コード生成手段は、参照用実行動作対象、参照用実行動作対象、参照用実行動作先の組み合わせとプログラムコードの基本構文との3段階以上の連関度を以って関連付けられた上記コードテーブルを参照すること
を特徴とする請求項7記載のプログラムコード自動生成システム。
【請求項9】
上記コード生成手段により自動生成されたプログラムコードを実行するプログラム実行手段を更に備えること
を特徴とする請求項1~8のうち何れか1項記載のプログラムコード自動生成システム。
【請求項10】
通信ネットワーク中の各端末装置を上記終点格テーブルの各参照用実行動作先として予め登録するための動作先登録手段を更に備えること
を特徴とする請求項5~8のうち何れか1項記載のプログラムコード自動生成システム。
【請求項11】
上記抽出手段は、指示動作に係り受けする始点格からなる格成分を抽出し、
上記記憶手段は、参照用始点格に対する実際の実行動作元が3段階以上の連関度を以って関連付けられた始点格テーブルを記憶し、
上記探索手段は、上記抽出された始点格に対する実行動作元を、上記記憶手段により記憶されている始点格テーブルの連関度を参照することにより探索し、
上記コード生成手段は、プログラムコードの基本構文に、上記探索手段により探索された実行動作元を代入することにより、当該実行動作対象を当該実行動作元から当該実行動作先に対して当該実行動作命令に規定された実行動作を実行するためのプログラムコードを自動生成すること
を特徴とする請求項5~8のうち何れか1項記載のプログラムコード自動生成システム。
【請求項12】
上記抽出手段は、指示動作に係り受けする条件格からなる格成分を抽出し、
上記記憶手段は、参照用条件格に対する実際の実行動作条件が3段階以上の連関度を以って関連付けられた条件格テーブルを記憶し、
上記探索手段は、上記抽出された条件格に対する実行動作条件を、上記記憶手段により記憶されている条件格テーブルの連関度を参照することにより探索し、
上記コード生成手段は、プログラムコードの基本構文に、上記探索手段により探索された実行動作条件を代入することにより、当該実行動作対象を当該実行動作先に対して当該実行動作条件に基づいて当該実行動作命令に規定された実行動作を実行するためのプログラムコードを自動生成すること
を特徴とする請求項5~8のうち何れか1項記載のプログラムコード自動生成システム。
【請求項13】
上記記憶手段は、人工知能におけるニューラルネットワークのノードの各出力の重み付け係数に対応する上記連関度を記憶すること
を特徴とする請求項2~12のうち何れか1項記載のプログラムコード自動生成システム。
【請求項14】
上記コード生成手段は、人工知能におけるニューラルネットワークのノードの各出力の重み付け係数に対応する上記連関度を利用すること
を特徴とする請求項8記載のプログラムコード自動生成システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム開発の仕組みを根本的に変えるプログラムコード自動生成システムに関するものである。
【背景技術】
【0002】
近年、デスクワーク(定型作業)等のような業務の補助を実現するための手段として、RPA(Robotic Process Automation)等に関する技術が注目を集めている。このような技術として、例えば特許文献1の情報処理装置等が提案されている。
【0003】
特許文献1の情報処理装置は、ユーザのメッセージ情報を取得する取得部と、取得した前記メッセージ情報から、前記ユーザに関連するタスク情報を抽出する抽出部と、抽出した前記タスク情報から、タスクの担当者及び関係者を識別する識別部と、前記タスク情報を、前記ユーザが前記担当者である第1タスク情報、又は前記ユーザが前記関係者である第2タスク情報に分類する分類部と、分類した前記第1又は第2タスク情報をデータベースに登録する登録部と、該データベースを参照して、前記第1又は第2タスク情報を出力する出力部とを備えることを特徴とする。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、新規業務についてプログラムにより自動的に実行させる場合には、プログラムを作成する作業が必要となる。プログラムの作成プロセスとして、従来は、その新規業務の要件定義を行い、システム設計を行い、更にプログラムコードをコーディングした後、これをテスト、検証するプロセスが必要である。このようなプログラムコードは、新規業務が生まれる都度、人手によりコーディングするのが通常であった。
【0006】
しかしながら、近年のIT化の急速な進展に伴い、プログラム作成需要は増加の一途をたどり、IT技術者不足が深刻な社会問題となっている。
【0007】
また、社内の簡単な作業一つとっても状況によっては随時変更を施さなければならないケースがある。例えば、「社員〇〇のPCに日報を送っておいて」という社内業務を自動的に行えるようにプログラムを作成しても、少しでも業務に変化があればプログラムコードを作成し直さなければならなくなる。
【0008】
従来、このような問題点があるものの、それよりも、近い将来、慢性的なSE技術者不足が社会に甚大な影響を与える事が予測されているということがより深刻な問題点である。
【0009】
そこで本発明は、上述した問題点に鑑みて案出されたものであり、その目的とするところは、業務をコンピュータのシステムにおいて自動的に実行していくために、その業務を実行するためのプログラムコードを生成する際において、極めて容易に、しかもSEとしての技術力がなくても、業務にさえ習熟した現場担当者であれば、簡単に指示を与え、SE技術を持った人手を介することなく自動的にプログラムコードを生成することが可能であり、プログラム開発の仕組みを根本的に変え、近い将来、慢性的なSE技術者不足が社会に甚大な影響を与える事を回避できるプログラムコード自動生成システムを提供することにある。
【課題を解決するための手段】
【0010】
本発明に係るプログラムコード自動生成システムは、音声又は入力端末を介してテキストデータの入力を受け付ける受付手段と、上記受付手段により受け付けられたテキストデータを自然言語解析することにより、指示動作と、これに係り受けする少なくとも対象格からなる格成分を抽出する抽出手段と、参照用指示動作に対する実際の実行動作命令が関連付けられた実行動作テーブルと、参照用対象格に対する実際の実行動作対象が関連付けられた対象格テーブルとを少なくとも記憶する記憶手段と、上記抽出された指示動作に対応する実行動作命令と、上記抽出された対象格に対応する実行動作対象とを、上記記憶手段により記憶されている実行動作テーブル、対象格テーブルを参照することにより探索する探索手段と、プログラムコードの基本構文に、上記探索手段により探索された実行動作対象、実行動作対象を代入することにより、当該実行動作対象を当該実行動作先に対して当該実行動作命令に規定された実行動作を実行するためのプログラムコードを自動生成するコード生成手段とを備えることを特徴とする。
【発明の効果】
【0011】
上述した発明によれば、業務をコンピュータ側のシステムにおいて自動的に実行していくために、その業務を実行するためのプログラムコードを生成する際において、極めて容易に、しかもSEとしての技術力がなくても、業務にさえ習熟した現場担当者であれば、簡単に指示を与え、SE技術を持った人手を介することなく自動的にプログラムコードを生成することが可能であり、プログラム開発の仕組みを根本的に変え、近い将来、慢性的なSE技術者不足が社会に甚大な影響を与える事を回避できる。
【図面の簡単な説明】
【0012】
【
図1】
図1は、実施形態1におけるプログラムコード自動生成システムのブロック図である。
【
図2】
図2は、本発明を適用したプログラムコード自動生成システムのフローチャートである。
【
図3】
図3は、本システムを設けるユーザが企業毎に予め実行先を設定登録する例を示す図である。
【
図4】
図4は、実行動作テーブルの例を示す図である。
【
図5】
図5は、
図4に示す実行動作テーブルの他の例を示す図である。
【
図6】
図6は、対象格テーブルの例を示す図である。
【
図7】
図7は、
図5に示す対象格テーブルの他の例を示す図である。
【
図8】
図8は、終点格テーブルの例を示す図である。
【
図9】
図9は、
図8に示す終点格テーブルの他の例を示す図である。
【
図10】
図10は、プログラムコードの基本構文を探索する上で人工知能による機械学習を利用する場合について説明するための図である。
【
図11】
図11は、ユーザに対して入力内容を確認するための確認文を生成する方法について説明するための図である。
【
図12】
図12は、実施形態2又は実施形態4における実行動作テーブルの例を示す図である。
【
図13】
図13は、実施形態3又は実施形態4における対象格テーブルの例を示す図である。
【発明を実施するための形態】
【0013】
以下、本発明の実施形態1~4におけるプログラムコード自動生成システムを例示し、図面を参照しながら説明する。
【0014】
[実施形態1]
(プログラムコード自動生成システム100)
図1を参照して、本実施形態におけるプログラムコード自動生成システム100の構成の一例について説明する。
図1は、本実施形態におけるプログラムコード自動生成システム100の全体の構成を示す模式図である。
【0015】
プログラムコード自動生成システム100は、単なる業務補助ではなくプログラム開発の仕組みを根本的に変え、近い将来、慢性的なSE技術者不足が社会に甚大な影響を与える事を回避できるものである。
【0016】
すなわち、プログラムコード自動生成システム100は、業務を実行するためのプログラムコードを自動生成することで、企業内における各業務(例えば、メールの配信、作業者の進捗状況の収集、ファイル管理、ファイル転送等)の様々なデータ処理をコンピュータ上で自動的に行うことができる。プログラムコード自動生成システム100は、特にこのプログラムコードの自動生成を、音声又はテキストにより設定することができ、システム管理者等のような専門的知識を有しないユーザ(例えばプログラムコード自動生成システム100を利用して業務を管理する利用者等)においても、様々な業務処理をコンピュータに自動的に行わせるためのプログラムコードの自動生成を容易に実現することが可能となる。
【0017】
プログラムコード自動生成システム100は、例えば
図1に示すように、プログラムコード自動生成装置1を備え、ユーザがプログラムコード自動生成装置1を利用してもよい。プログラムコード自動生成システム100は、例えば通信網4を介してプログラムコード自動生成装置1と接続された端末2を備え、ユーザが端末2を介してプログラムコード自動生成装置1を利用してもよい。プログラムコード自動生成システム100は、例えば通信網4を介してプログラムコード自動生成装置1と接続されたサーバ3を備え、ユーザがプログラムコード自動生成装置1又は端末2を介してサーバ3との各種情報の送受信により、各手段を実現してもよい。
【0018】
<プログラムコード自動生成装置1>
プログラムコード自動生成装置1として、例えばサーバ、パーソナルコンピュータ、スマートフォン、タブレット端末、ウェアラブル端末等の公知の電子機器が用いられる。なお、本実施形態におけるプログラムコード自動生成システム100において、プログラムコード自動生成装置1は、クラウドサーバの中枢となる。
【0019】
プログラムコード自動生成装置1は、図示は省略したが、取得部と、演算部とを備え、例えば実行部と、記憶部と、出力部と、インテント格納部とを備えてもよい。なお、プログラムコード自動生成装置1の各機能は、CPUが、RAMを作業領域として、保存部等に記憶されたプログラムを実行することにより実現される。また、各機能の一部は、人工知能により制御されてもよい。ここで、「人工知能」は、いかなる周知の人工知能技術に基づくものであってもよい。
【0020】
取得部は、音声又は入力端末を介してテキストデータの入力を受け付ける。取得部は、例えば端末2又はプログラムコード自動生成装置1の入力部を介してユーザから入力されたテキストデータを取得する。例えば端末2又はプログラムコード自動生成装置1の入力部を介して、ユーザから会話文が音声により入力された場合、取得部は、公知の音声認識技術(例えば音声認識技術)を用いて音声から生成されたテキストデータを取得する。なお、音声認識技術は、例えば通信網4を介して、クラウド型の音声認識技術を用いてもよい。
【0021】
演算部は、データベースを参照し、取得したテキストデータに基づいて各種処理動作、演算を実行する。演算部は、受け付けた会話文について自然言語解析することにより、動詞や名詞、格成分等を始めとする文の個々の構成要素を抽出する。演算部は、受け付けたテキストデータから抽出した指示動作に対応する実行動作命令、対象格に対応する実行動作対象、終点格に対応する実行動作先を割り当てる処理動作を行う。この演算部は、受け付けたテキストデータに対応するインテントを決定する処理動作を実行する。演算部は、記憶部を参照し、プログラムコードの基本構文を抽出する。また演算部は、抽出されたプログラムコードの基本構文に、割り当てた実行動作命令、実行動作対象、実行動作先を代入することによりプログラムコードを生成する。
【0022】
実行部は、演算部において生成されたプログラムコードに基づき、業務処理を実行する。業務処理として、例えばタスクの内容や期限に基づき担当者へのメール送信、勤務管理、タスク進行履歴更新等の定型作業が挙げられ、業務処理情報をプログラムとしてコンピュータに実行させることができる内容が用いられる。
【0023】
記憶部は、取得部を介して取得した会話文からなるテキストデータを一時的に保存する。この記憶部に記憶されたテキストデータは、演算部や実行部等による制御に基づき読み出され、また更新される場合もある。記憶部は、実行動作テーブル、対象格テーブル、終点格テーブルの少なくとも3つのテーブルを保持している。また記憶部は、コードテーブルを保持していてもよい。
【0024】
出力部は、プログラムコードにより実行された動作に関する各種情報を出力する。表示用データは、プログラムコード自動生成装置1の報知部又は端末2等を介して、ユーザが認識できるように報知される。出力部は、I/Fを介して端末2等に表示用データ等を出力し、I/Fを介して報知部に表示用データ等を出力する。
【0025】
インテント格納部には、1または2以上のインテントが格納される。インテントは、業務処理を特定する情報に対応付けて、このインテント格納部に格納されるものであってもよい。なお、業務処理を特定する情報は、通常、後述するアクション名であるが、その形式はこれらに限定されるものではない。また、対応付くことは、例えば、インテントが、業務処理を特定する情報を有する場合も含む。
【0026】
<端末2>
端末2として、例えばサーバ、パーソナルコンピュータ、スマートフォン、タブレット端末、ウェアラブル端末等の公知の電子機器が用いられる。端末2は、例えばプログラムコード自動生成装置1と同様の構成及び機能の少なくとも一部を備えてもよい。端末2は、例えば複数備えてもよく、各端末2がそれぞれ通信網4を介してプログラムコード自動生成装置1と接続されてもよい。
【0027】
<サーバ3>
サーバ3には、例えば各種情報が記憶される。サーバ3には、例えば通信網4を介してプログラムコード自動生成装置1等から送られてきた各種情報が蓄積される。サーバ3には、例えばプログラムコード自動生成装置1の保存部と同様の情報が記憶され、通信網4を介してプログラムコード自動生成装置1等と各種情報の送受信が行われてもよい。即ち、プログラムコード自動生成システム100では、プログラムコード自動生成装置1又はプログラムコード自動生成装置1の保存部の代わりにサーバ3を用いてもよい。
【0028】
<通信網4>
通信網4は、プログラムコード自動生成装置1が通信回路を介して接続されるインターネット網等である。通信網4は、いわゆる光ファイバ通信網で構成されてもよい。また、通信網4は、有線通信網のほか、無線通信網等の公知の通信網で実現されてもよい。
【0029】
次に、本発明を適用したプログラムコード自動生成システム100の動作について説明をする。
【0030】
図2に示すようにステップS11において会話文の受け付けを行う。具体的には、音声データとしてプログラムコード自動生成装置1の取得部において会話文が取得した場合には、これを公知の音声認識技術(例えば音素認識技術)を用いテキストデータを生成する。また、電子データ化されたテキストデータをプログラムコード自動生成装置1の取得部において取得した場合には、これをそのまま利用することになる。電子データ化されたテキストデータは、例えばメール文や社内又は社外において活用している情報掲示板や各種サイトの書き込みをそのまま取り込むようにしてもよい。
【0031】
プログラムコード自動生成装置1の取得部は、ユーザの入力するタイミング毎にテキストデータを取得するほか、例えば一定期間に蓄積された複数のテキストデータを一度に取得してもよい。なお、端末2又はプログラムコード自動生成装置1の入力部を介して入力された非テキスト形式のデータから、テキストデータを生成する方法は、公知技術を用いることができる。このようにして取得されたテキストデータは、プログラムコード自動生成装置1の記憶部において一時的に記憶される。
【0032】
次にステップS12に移行し、S11において取得され、プログラムコード自動生成装置1の記憶部において一時的に記憶されているテキストデータとしての会話文を読み出し、これを自然言語解析する。この自然言語解析は、主としてプログラムコード自動生成装置1の演算部が行う。この自然言語解析では、形態素解析や構文解析を始めとして周知のいかなる自然言語解析技術を利用するようにしてもよい。
【0033】
このステップS12における自然言語解析の結果、例えばテキストデータ「商品名、A5-7853Kを登録して」については、「商品名|A5-7853K |からなる対象格 を | 登録 | して」からなる指示動作に分解することができる。またテキスト「山田太郎の今月の日報を徳川課長に転送して」は、「山田太郎|の | 今月 | の | 残業 | 時間 |」という対象格、「徳川課長|に」という終点格、「転送|して」の指示動作に分解することができる。つまりテキストデータを指示動作からなる動詞に係り受けする対象格や終点格からなる格成分の組み合わせを通じて抽出することができる。
【0034】
格成分は、動詞(指示動作)による文の形成に必要とされる名詞句である。格成分における格とは、動詞が自らの帯びている語彙的意味に応じて、文の形成に必要な名詞または名詞句の組み合わせを選択的に要求する働きであり、いわゆる格支配という。この格成分の理論的根拠となる格文法は、単文が、実体を表す深層格(対象格・条件格・道具格・始点格・終点格・時間格など)とこれらと結びついた一つの動詞からなるものとして文を分析する理論である。そして、動詞により文の深層格として要求された名詞(句)が、動詞による命題実現を補足する上で必要な格成分ということができる。格成分とは、単なる名詞句ではなく、動詞が自らの命題の実現するために係り受けた名詞句である。言い換えれば、格成分は、動詞に係り受けする名詞(名詞句を含む)のうち、指示動作を規定する動詞による命題を実現するための動作開始条件となり得る要素である。
【0035】
ここでいう対象格は、指示動作を規定する動詞による命題の実行対象を意味する。「ファイルAを転送して」という文言の場合、「転送して」という動詞に対して「ファイルA」が対象格として係り受けすることになる。また終点格とは、対象格で規定される実行対象が反映される場所、実行対象による恩恵を受ける先、実行対象が送られる先を規定するものである。「ファイルAを山田太郎に送って」という文言の場合、「送って」という動詞に対して、「ファイルA」が対象格として係り受けし、更にこれが山田太郎を終点として送るものであるから、この終点格は「山田太郎」となる。
【0036】
次にステップS13に移行し、自然言語解析された会話文の意味動作決定を行う。このステップS13では、自然言語解析を通じて解析した指示動作、格成分から、実行動作命令、実行動作対象、実行動作先等からなる意味動作を決定する。
【0037】
プログラムコード自動生成装置1の演算部は、先ずステップS12において自然言語解析した会話文について、抽出された指示動作に対応する実行動作命令と、抽出された対象格に対応する実行動作対象と、抽出された終点格に対応する実行動作先とを、実行動作テーブル、対象格テーブル、終点格テーブルの各連関度を参照することにより探索する。
【0038】
ここでいう実行動作命令は、実際のプログラムコードにおいて実行動作を命令するための文言であり、実際のデータベース登録、ファイルへの書き込み、転送、削除、モニタ表示等に対応する。
【0039】
実行動作対象とは、この実行動作命令を実行する対象を示すものであり、請求書や日報、仕様書のファイル、データ、或いはメール等であってもよいし、商品名や様々な事象、情報(例えば勤務時間や、在庫等)であってもよい。
【0040】
この実行動作対象と実行動作命令とを組み合わせることで様々なプログラムコードを完成することができる。
【0041】
例えば、実行動作命令が「転送」であり、実行動作命令が「仕様書のファイル」であれば、これを組み合わせることで「仕様書のファイルの転送」というプログラムコードを作り上げることが可能となる。
【0042】
実行動作先とは、実行動作命令を実行する実行先を示すものである。例えば、本システムを設けるユーザが企業毎に予め実行先を設定登録しておくようにしてもよい。例えば
図3に示すように、社内LANにおいて、「山田太郎のPC」、「徳川課長のPC」、「開発部の共用PC」等を実行動作先として登録しておくようにしてもよい。また、社内LANを越えたが社外の取引先についても、外部の公衆通信網を介して「取引先A社の担当者B」等のように登録してもよい。
【0043】
即ち、本発明を実施する前に、終点格テーブルを作成することになるが、この作成時において、通信ネットワーク中の各端末装置(例えば、「山田太郎のPC」、「徳川課長のPC」、「開発部の共用PC」等)を上記終点格テーブルの各参照用実行動作先として予め登録する動作を実行してもよい。
【0044】
次にステップS14へ移行し、意味動作決定された会話文を実行するためのプログラムコード解析を行う。このプログラムコードの関連付け解析は、プログラムコードの基本構文を抽出する動作を行う。
【0045】
なお、ステップS13、14の具体的な方法については、後段において詳述する。
【0046】
次にステップS15に移行し、プログラムコードの作成を行う。ステップS14においては、上述したように単にプログラムコードの基本構文を抽出したに過ぎず、実際の処理動作の対象や、処理動作を完成させるために必要な各条件を規定する文言を代入することでプログラムコードが完成になる。このため、ステップS15では、抽出したプログラムコードの基本構文に対して、実行動作対象、実行動作先、実行動作命令を規定する文言を代入することで、当該実行動作対象を当該実行動作先に対して当該実行動作命令に規定された実行動作を実行するためのプログラムコードを生成する。
【0047】
このステップS11~S15の工程において、ステップS11において受け付けられた会話文に含められているユーザの意図に基づいてプログラムを自動生成させることができる。
【0048】
このようにしてプログラムコードを完成させた後、これをユーザに提供し、或いはプログラムコード自動生成装置1の報知部を介して表示するようにしてもよいし、プログラムコード自動生成装置1の実行部を介してその完成させたプログラムコードを実行させるようにしてもよい。即ち、本発明によれば、この自動生成したプログラムコードをそのまま実行させるようにすることが可能となる。このため、ステップS11からの工程から含めた場合には、ユーザが会話文を発することで、その意図を組み込んだプログラムコードを自動生成することができ、しかもその生成したプログラムコードをそのまま実行に移すことができる。これは、ユーザがシステムに対して実行して欲しい動作を会話文で話すか、これに応じたテキストデータを入力すると、その意図を組み込んだ動作を、自動生成したプログラムコードに基づいてそのまま実行させることが可能となる。
【0049】
次にステップS13の自然言語解析された会話文の意味動作決定、ステップS14の意味動作決定された会話文を実行するためのプログラムコード解析の詳細な方法について説明をする。
【0050】
これらの方法を実行する上では、参照用指示動作に対する実際の実行動作命令が3段階以上の連関度を以って関連付けられた実行動作テーブルと、参照用対象格に対する実際の実行動作対象が3段階以上の連関度を以って関連付けられた対象格テーブルを利用する。これらの各テーブルは視覚的に視認できるような表やマトリックスで整理されている場合に限定されるものではなく、単に人工知能の機械学習モデルが記憶された学習済みデータ、並びにその集合で構成されていてもよい。
【0051】
図4、5は、これらのうち実行動作テーブルの例を示している。この実行動作テーブルでは、参照用指示動作と、実行動作命令との3段階以上の連関度が予め設定されていることが前提となる。入力データとして例えば参照用指示動作P01~P03であるものとする。例えば、この参照用指示動作P01は、「送っておいて」、参照用指示動作P02は「アップしておいて」、参照用指示動作P03は「消しておいて」等であるものとする。このような入力データとしての参照用指示動作P01~P03は、出力としての実行動作命令に連結している。
【0052】
このような参照用指示動作は、この出力解としての実行動作命令(例えば、「ファイルを開く」、「転送する」、「印刷する」、「削除する」等)に対して3段階以上の連関度を通じて互いに連関しあっている。参照用指示動作がこの連関度を介して左側に配列し、各実行動作命令が連関度を介して右側に配列している。連関度は、左側に配列された参照用指示動作に対して、何れの実行動作命令と関連性が高いかの度合いを示すものである。換言すれば、この連関度は、各指示動作が、いかなる実行動作命令に紐付けられる可能性が高いかを示す指標であり、指示動作から最も確からしい実行動作命令を選択する上での的確性を示すものである。
図4の例では、連関度としてw13~w19が示されている。このw13~w19は以下の表1に示すように10段階で示されており、10点に近いほど、中間ノードとしての各組み合わせが出力としての実行動作命令と互いに関連度合いが高いことを示しており、逆に1点に近いほど中間ノードとしての各組み合わせが出力としての実行動作命令と互いに関連度合いが低いことを示している。
【0053】
【0054】
このような
図4に示す3段階以上の連関度w13~w19を予め取得しておく。つまり実際の探索解の判別を行う上で、処理動作と、実行動作命令の何れが採用、評価されたか、過去のデータセットを蓄積しておき、これらを分析、解析することで
図5に示す連関度を作り上げておく。
【0055】
例えば、過去において参照用指示動作P01に対して実行動作命令として「ファイルを開く」が最も適合性が高いと判断され、評価されたものとする。このようなデータセットを集めて分析することにより、参照用指示動作との連関度が強くなる。
【0056】
この分析、解析は人工知能により行うようにしてもよい。かかる場合には、例えば指示動作P01である場合に、過去のデータセットに基づいて分析する。指示動作P01である場合に、「ファイルを開く」の事例が多い場合には、この実行動作命令につながる連関度をより高く設定し、「印刷する」の事例が多い場合には、この実行動作命令につながる連関度をより高く設定する。例えば処理動作P01の例では、「ファイルを開く」と、「印刷する」にリンクしているが、以前の事例から「ファイルを開く」につながるw13の連関度を7点に、「印刷する」につながるw14の連関度を2点に設定している。
【0057】
また、この連関度は、人工知能におけるニューラルネットワークのノードで構成されるものであってもよい。即ち、このニューラルネットワークのノードが出力に対する重み付け係数が、上述した連関度に対応することとなる。またニューラルネットワークに限らず、人工知能を構成するあらゆる意思決定因子で構成されるものであってもよい。
【0058】
かかる場合には、
図5に示すように、入力データとして処理動作が入力され、出力データとして実行動作命令が出力され、入力ノードと出力ノードの間に少なくとも1以上の隠れ層が設けられ、機械学習させるようにしてもよい。入力ノード又は隠れ層ノードの何れか一方又は両方において上述した連関度が設定され、これが各ノードの重み付けとなり、これに基づいて出力の選択が行われる。そして、この連関度がある閾値を超えた場合に、その出力を選択するようにしてもよい。
【0059】
このような連関度が、人工知能でいうところの学習済みデータとなる。このような学習済みデータを作った後に、実際にこれから新たに指示動作から実行動作命令の探索を行うこととなる。かかる場合には、ステップS12において抽出した指示動作を新たに取得する。新たに取得した指示動作に基づいて、これに見合う実行動作命令を探索する。かかる場合には、予め取得した
図4(表1)に示す連関度を参照する。例えば、新たに取得した指示動作がP02と同一かこれに類似するものである場合には、連関度を介して「転送する」がw15、「印刷する」が連関度w16で関連付けられている。かかる場合には、連関度の最も高い「転送する」を最適解として選択する。但し、最も連関度の高いものを最適解として選択することは必須ではなく、連関度は低いものの連関性そのものは認められる「印刷する」を最適解として選択するようにしてもよい。また、これ以外に矢印が繋がっていない出力解を選択してもよいことは勿論であり、連関度に基づくものであれば、その他いかなる優先順位で選択されるものであってもよい。
【0060】
このときプログラムコード自動生成装置1の記憶部に類義語辞書を格納しておくようにしてもよい。類義語辞書とは、類義語に関する辞書である。類義語辞書には、プログラムコード自動生成装置1の記憶部に格納されている1以上の各参照用指示動作ごとに、当該参照用指示動作が有する単語と、当該単語の1または2以上の類義語とが登録されている。具体的には、例えば、参照用指示動作「転送する」に対応付けて、「送信する」、「配信する」などが登録されていてもよい。そして、この類義語辞書を介して、新たに取得した指示動作が参照用指示動作と類似するか否かを判別することができる。仮に参照用指示動作が「転送する」である場合において、新たに取得した指示動作が「送信する」である場合、類義語辞書において類似するものとして予め登録されていることから「配信する」に対応するものと判断することが可能となる。
【0061】
このような連関度を参照することにより、テキストデータから抽出した指示動作がいかなる実行動作命令に該当するものであるのかを精度良く判別することができる。
【0062】
図6、7は、参照用対象格に対する実際の実行動作対象が3段階以上の連関度を以って関連付けられた対象格テーブルを利用する例について示している。
【0063】
この対象格テーブルでは、参照用対象格と、実行動作対象との3段階以上の連関度が予め設定されていることが前提となる。入力データとして例えば参照用対象格P01~P03であるものとする。例えば、この参照用対象格P04は、「12月3日12時のメール」、参照用対象格P05は「納品書」、参照用対象格P06は「週報」等であるものとする。このような入力データとしての参照用対象格P04~P06は、出力としての実行動作対象に連結している。
【0064】
このような参照用対象格は、この出力解としての実行動作対象(例えば、「12月7日14時受信のメール」、「請求書」、「日報」、「仕様書」等)に対して3段階以上の連関度を通じて互いに連関しあっている。参照用対象格がこの連関度を介して左側に配列し、各実行動作対象が連関度を介して右側に配列している。連関度は、左側に配列された参照用対象格に対して、何れの実行動作対象と関連性が高いかの度合いを示すものである。換言すれば、この連関度は、各対象格が、いかなる実行動作対象に紐付けられる可能性が高いかを示す指標であり、対象格から最も確からしい実行動作対象を選択する上での的確性を示すものである。
図6の例では、連関度としてw13~w19が示されている。
図7の連関度の例は、
図4のものと必ずしも同一とならないことは勿論である。
【0065】
このような
図6に示す3段階以上の連関度w13~w19を予め取得しておく。つまり実際の探索解の判別を行う上で、対象格と、実行動作対象の何れが採用、評価されたか、過去のデータセットを蓄積しておき、これらを分析、解析することで
図6に示す連関度を作り上げておく。
【0066】
例えば、過去において参照用対象格P04に対して実行動作対象として「請求書」が最も適合性が高いと判断され、評価されたものとする。このようなデータセットを集めて分析することにより、参照用対象格との連関度が強くなる。
【0067】
この分析、解析は人工知能により行うようにしてもよい。かかる場合には、例えば対象P04である場合に、過去のデータセットに基づいて分析する。対象格P04である場合に、「12月7日14時受信のメール」の事例が多い場合には、この実行動作対象につながる連関度をより高く設定し、「請求書」の事例が多い場合には、この実行動作対象につながる連関度をより高く設定する。例えば参照用対象格P04の例では、「12月7日14時受信のメール」と、「日報」にリンクしているが、以前の事例から「12月7日14時受信のメール」につながるw13の連関度を7点に、「日報」につながるw14の連関度を2点に設定している。
【0068】
また、この連関度は、人工知能におけるニューラルネットワークのノードで構成されるものであってもよい。
【0069】
かかる場合には、
図7に示すように、入力データとして処理動作が入力され、出力データとして実行動作命令が出力され、入力ノードと出力ノードの間に少なくとも1以上の隠れ層が設けられ、機械学習させるようにしてもよい。入力ノード又は隠れ層ノードの何れか一方又は両方において上述した連関度が設定され、これが各ノードの重み付けとなり、これに基づいて出力の選択が行われる。そして、この連関度がある閾値を超えた場合に、その出力を選択するようにしてもよい。
【0070】
このような連関度が、人工知能でいうところの学習済みデータとなる。このような学習済みデータを作った後に、実際にこれから新たに対象格から実行動作対象の探索を行うこととなる。かかる場合には、ステップS12において抽出した対象格を新たに取得する。新たに取得した対象格に基づいて、これに見合う実行動作対象を探索する。かかる場合には、予め取得した
図6(表1)に示す連関度を参照する。例えば、新たに取得した対象格がP05と同一かこれに類似するものである場合には、連関度を介して「請求書」がw15、「日報」が連関度w16で関連付けられている。かかる場合には、連関度の最も高い「請求書」を最適解として選択する。但し、最も連関度の高いものを最適解として選択することは必須ではなく、連関度は低いものの連関性そのものは認められる「日報」を最適解として選択するようにしてもよい。また、これ以外に矢印が繋がっていない出力解を選択してもよいことは勿論であり、連関度に基づくものであれば、その他いかなる優先順位で選択されるものであってもよい。
【0071】
このときプログラムコード自動生成装置1の記憶部に類義語辞書を格納しておくようにしてもよい。類義語辞書には、プログラムコード自動生成装置1の記憶部に格納されている1以上の各参照用対象格ごとに、当該対象格が有する単語と、当該単語の1または2以上の類義語とが登録されている。具体的には、例えば、参照用対象格「日報」に対応付けて、「業務報告書」、「業務日誌」などが登録されていてもよい。そして、この類義語辞書を介して、新たに取得した対象格が参照用対象格と類似するか否かを判別することができる。仮に参照用対象格が「日報」である場合において、新たに取得した対象格が「業務日誌」である場合、類義語辞書において類似するものとして予め登録されていることから「日報」に対応するものと判断することが可能となる。
【0072】
このような連関度を参照することにより、テキストデータから抽出した対象格がいかなる実行動作対象に該当するものであるのかを精度良く判別することができる。
【0073】
図8、9は、参照用終点格に対する実際の実行動作対象が3段階以上の連関度を以って関連付けられた終点格テーブルを利用する例について示している。
【0074】
この終点格テーブルでは、参照用終点格と、実行動作先との3段階以上の連関度が予め設定されていることが前提となる。入力データとして例えば参照用終点格P07~P09であるものとする。例えば、この参照用終点格P07は、「山田太郎のPC」、参照用終点格P08は「土井課長のPC」、参照用終点格P09は「取引先A社の担当者C」等であるものとする。このような入力データとしての参照用終点格P07~P09は、出力としての実行動作先に連結している。
【0075】
このような参照用終点格は、この出力解としての実行動作先(例えば、「山田太郎のPC」、「徳川課長のPC」、「取引先A社の担当者B」、「開発部の共用PC」等)に対して3段階以上の連関度を通じて互いに連関しあっている。参照用終点格がこの連関度を介して左側に配列し、各実行動作先が連関度を介して右側に配列している。連関度は、左側に配列された参照用終点格に対して、何れの実行動作先と関連性が高いかの度合いを示すものである。換言すれば、この連関度は、各終点格が、いかなる実行動作先に紐付けられる可能性が高いかを示す指標であり、終点格から最も確からしい実行動作先を選択する上での的確性を示すものである。
図8の例では、連関度としてw13~w19が示されている。
図8の連関度の例は、
図4、6のものと必ずしも同一とならないことは勿論である。
【0076】
このような
図8に示す3段階以上の連関度w13~w19を予め取得しておく。つまり実際の探索解の判別を行う上で、終点格と、実行動作先の何れが採用、評価されたか、過去のデータセットを蓄積しておき、これらを分析、解析することで
図8に示す連関度を作り上げておく。
【0077】
例えば、過去において参照用終点格P07に対して実行動作先として「取引先A社の担当者B」が最も適合性が高いと判断され、評価されたものとする。このようなデータセットを集めて分析することにより、この参照用終点格P07との連関度が強くなる。
【0078】
この分析、解析は人工知能により行うようにしてもよい。かかる場合には、例えば対象P07である場合に、過去のデータセットに基づいて分析する。終点格P07である場合に、「山田太郎のPC」の事例が多い場合には、この実行動作先につながる連関度をより高く設定し、「取引先A社の担当者B」の事例が多い場合には、この実行動作先につながる連関度をより高く設定する。例えば参照用終点格P07の例では、「山田太郎のPC」と、「取引先A社の担当者B」にリンクしているが、以前の事例から「山田太郎のPC」につながるw13の連関度を7点に、「取引先A社の担当者B」につながるw14の連関度を2点に設定している。
【0079】
また、この連関度は、人工知能におけるニューラルネットワークのノードで構成されるものであってもよい。
【0080】
かかる場合には、
図9に示すように、入力データとして処理動作が入力され、出力データとして実行動作命令が出力され、入力ノードと出力ノードの間に少なくとも1以上の隠れ層が設けられ、機械学習させるようにしてもよい。入力ノード又は隠れ層ノードの何れか一方又は両方において上述した連関度が設定され、これが各ノードの重み付けとなり、これに基づいて出力の選択が行われる。そして、この連関度がある閾値を超えた場合に、その出力を選択するようにしてもよい。
【0081】
このような連関度が、人工知能でいうところの学習済みデータとなる。このような学習済みデータを作った後に、実際にこれから新たに終点格から実行動作先の探索を行うこととなる。かかる場合には、ステップS12において抽出した終点格を新たに取得する。新たに取得した終点格に基づいて、これに見合う実行動作先を探索する。かかる場合には、予め取得した
図9(表1)に示す連関度を参照する。例えば、新たに取得した終点格がP08と同一かこれに類似するものである場合には、連関度を介して「徳川課長のPC」がw15、「取引先A社の担当者B」が連関度w16で関連付けられている。かかる場合には、連関度の最も高い「徳川課長のPC」を最適解として選択する。但し、最も連関度の高いものを最適解として選択することは必須ではなく、連関度は低いものの連関性そのものは認められる「取引先A社の担当者B」を最適解として選択するようにしてもよい。また、これ以外に矢印が繋がっていない出力解を選択してもよいことは勿論であり、連関度に基づくものであれば、その他いかなる優先順位で選択されるものであってもよい。
【0082】
このときプログラムコード自動生成装置1の記憶部に類義語辞書を格納しておくようにしてもよい。類義語辞書には、プログラムコード自動生成装置1の記憶部に格納されている1以上の各参照用終点格ごとに、当該終点格が有する単語と、当該単語の1または2以上の類義語とが登録されている。この類義語辞書を介して、新たに取得した終点格が参照用終点格と類似するか否かを判別するようにしてもよい。
【0083】
このような連関度を参照することにより、テキストデータから抽出した終点格がいかなる実行動作先に該当するものであるのかを精度良く判別することができる。
【0084】
このようにしてステップS13、14においてプログラムコードの関連付け解析を行うことで、抽出された指示動作に対応する実行動作命令と、抽出された対象格に対応する実行動作対象と、抽出された終点格に対応する実行動作先が絞り込まれることになる。
【0085】
次にステップS15におけるプログラムコードの作成方法の詳細について説明をする。プログラムコードの作成は、連関度を介して探索された実行動作対象、実行動作対象、実行動作先に基づいて、関連性の高いプログラムコードの基本構文を抽出する。そして、抽出したプログラムコードの基本構文に対して、連関度を介して探索された実行動作対象、実行動作対象、実行動作先を代入することにより行う。
【0086】
表2は、プログラムコードの基本コードを探索する例を示している。
【0087】
【0088】
プログラムコードの基本構文は、実際にPC等により各種処理動作を実行させるためのプログラムコードの原型である。このプログラムコードの基本構文に、必要な文言を代入することで、プログラムコードを完成させることができる。プログラムコードの基本構文の例としては、「INSERT INTO 登録先 VALUES {param1} ;」等であり、実行動作命令としての「INSERT」(登録する)があり、実行動作先としての「登録先」、実行動作対象としての({param1})が構文で既に出来上がっている。このような構文に対して、実際に連関度を介して探索された実行動作対象、実行動作対象、実行動作先をそれぞれ代入していくことでプログラムコードを完成させることができる。例えば「登録先」として、探索した実行動作先「山田太郎のPC」を代入し、({param1})として、探索した売上のデータを代入することで、「売上のデータを山田太郎のPCに登録する」というプログラムコードが完成させることができる。
【0089】
同様に、「プレゼンテーション用のスライドを会議室のディスプレイに表示する」というテキストデータの場合には、対象格としての「プレゼンテーション用のスライド」、終点格としての「会議室のディスプレイ」、指示動作としての「表示する」が抽出され、それぞれに応じた実行動作対象、実行動作対象、実行動作先が探索される。そして、この実行動作先に応じたプログラムコードの基本構文が同様に探索されることになる。
【0090】
実際には、表2に示すコードテーブルを介して、プログラムコードの基本構文の探索を行う。コードテーブルでは、同一の行にある参照用実行動作対象、参照用実行動作対象、参照用実行動作先に対して、プログラムコードの基本構文が互いに対応する関係となる。例えば、参照用実行動作対象「請求データ」であり、参照用実行動作命令が「DB参照」であれば、これに対応するプログラムコードの基本構文は、「SELECT 請求額 」となる。
【0091】
このとき、一つの参照用実行動作対象、参照用実行動作対象、参照用実行動作先の組み合わせが複数のプログラムコードの基本構文に対応する場合もあれば、逆に一つの基本構文が複数の参照用実行動作対象、参照用実行動作対象、参照用実行動作先の組み合わせに対応する場合もある。
【0092】
このようなコードテーブルをプログラムコード自動生成装置1の記憶部に記憶させておくことで、プログラムコード自動生成装置1の演算部による演算の過程でこれを読み出し、参照することができる。
【0093】
図10は、コードテーブルについて人工知能による機械学習を通じてプロゴラムコードの基本構文を探索する例を示している。この
図10の例では、コードテーブルにおける入力変数としての参照用実行動作命令と、参照用実行動作対象、参照用実行動作先とを有する組み合わせを入力し、プログラムコードの基本構文が出力となる。具体的には、入力データとして例えば参照用実行動作命令(「プリンタ出力」、「ファイルを開く」等)と、参照用実行動作対象、参照用実行動作先であるものとする。このような入力データとしての、参照用実行動作命令に対して、参照用実行動作対象、参照用実行動作先が組み合わさったものが、中間ノード61である。各中間ノード61は、更に出力に連結している。この出力においては、出力解としての、プログラムコードの基本構文A~Eが表示されている。プログラムコードの基本構文Aは、例えば、「SELECT 請求額 FROM 請求データ WHERE 会社= {param1} AND 請求月={param2};」であり、基本構文Bは、例えば「Write Line 商品リスト.dat {param1} ;」であるものとする。
【0094】
参照用実行動作命令と、参照用実行動作対象、参照用実行動作先との各組み合わせ(中間ノード)は、この出力解としての、プログラムコードの基本構文に対して3段階以上の連関度を通じて互いに連関しあっている。参照用実行動作命令と、参照用実行動作対象、参照用実行動作先がこの連関度を介して左側に配列し、基本構文が連関度を介して右側に配列している。連関度は、左側に配列された実行動作命令等に対して、基本構文と関連性が高いかの度合いを示すものである。換言すれば、この連関度は、各参照用実行動作命令と、参照用実行動作対象、参照用実行動作先が、いかなるプログラムコードの基本構文に紐付けられる可能性が高いかを示す指標であり、実行動作命令等から最も確からしいプログラムコードの基本構文を選択する上での的確性を示すものである。
【0095】
このような
図10に示す3段階以上の連関度w13~w22を予め取得しておく。実際の探索解の判別を行う上で、参照用実行動作命令と、参照用実行動作対象、参照用実行動作先、並びにその場合のプログラムコードの基本構文が何れが好適であったか、過去のデータを蓄積しておき、これらを分析、解析することで連関度を作り上げておく。
【0096】
この分析、解析は人工知能により行うようにしてもよい。かかる場合には、例えば参照用実行動作命令が「転送する」であり、参照用実行動作対象、参照用実行動作先が「売り上げのデータ、山田太郎のPC」である場合に、そのプログラムコードの基本構文を過去のデータから分析する。基本構文Cの事例が多い場合には、この基本構文Cにつながる連関度をより高く設定し、基本構文Eの事例が多く、基本構文Cの事例が少ない場合には、基本構文Eにつながる連関度を高くし、基本構文Cにつながる連関度を低く設定する。例えば中間ノード61aの例では、基本構文Aと基本構文Bの出力にリンクしているが、以前の事例から基本構文Aにつながるw13の連関度を7点に、基本構文Bにつながるw14の連関度を2点に設定している。
【0097】
また、この
図10に示す連関度は、人工知能におけるニューラルネットワークのノードで構成されるものであってもよい。即ち、このニューラルネットワークのノードが出力に対する重み付け係数が、上述した連関度に対応することとなる。またニューラルネットワークに限らず、人工知能を構成するあらゆる意思決定因子で構成されるものであってもよい。
【0098】
図10に示す連関度の例で、ノード61bは、基本構文Cの連関度がw15、基本構文Eの連関度がw16となっている。
【0099】
このような連関度が、人工知能でいうところの学習済みデータとなる。このような学習済みデータを作った後に、実際にこれから基本構文の探索を行う際において、上述した学習済みデータを利用して行うこととなる。かかる場合には、ステップS13~S14において探索された実行動作命令と実行動作対象と、実行動作先を利用する。
【0100】
このようにして新たに取得した実行動作命令と、実行動作対象と、実行動作先に基づいて、最適なプログラムコードの基本構文を探索する。かかる場合には、予め取得した
図10(表1)に示す連関度を参照する。例えば、新たに取得した実行動作命令が「ファイルを開く」である場合であって、実行動作対象と、実行動作先がP21である場合には、連関度を介してノード61dが関連付けられており、このノード61dは、基本構文Cがw19、基本構文Dが連関度w20で関連付けられている。かかる場合には、連関度の最も高い基本構文Cを最適解として選択する。但し、最も連関度の高いものを最適解として選択することは必須ではなく、連関度は低いものの連関性そのものは認められる基本構文Dを最適解として選択するようにしてもよい。また、これ以外に矢印が繋がっていない出力解を選択してもよいことは勿論であり、連関度に基づくものであれば、その他いかなる優先順位で選択されるものであってもよい。
【0101】
また、入力から伸びている連関度w1~w12の例を以下の表3に示す。
【0102】
【0103】
この入力から伸びている連関度w1~w12に基づいて中間ノード61が選択されていてもよい。つまり連関度w1~w12が大きいほど、中間ノード61の選択における重みづけを重くしてもよい。しかし、この連関度w1~w12は何れも同じ値としてもよく、中間ノード61の選択における重みづけは何れも全て同一とされていてもよい。
【0104】
なお、本発明は、上述した実施の形態に限定されるものではない。実行動作対象、実行動作対象、実行動作先を探索し、プログラムコードの基本構文に、実行動作対象、実行動作対象、実行動作先を代入することにより、当該実行動作対象を当該実行動作先に対して当該実行動作命令に規定された実行動作を実行するためのプログラムコードを生成するが場合について例をとり説明をしたが、これに限定されるものではない。実行動作先の探索を省略し、当該実行動作対象を当該実行動作命令に規定された実行動作を実行するためのプログラムコードを生成するものであってもよい。
【0105】
また、抽出対象の格成分は、上述した対象格や終点格に限定されるものではなく、始点格、条件格を含めてもよい。
【0106】
始点格とは、対象格で規定される実行対象が生成される場所、実行対象の開始元を規定するものである。「ファイルAを山田太郎から送って」という文言の場合、「送って」という動詞に対して、「ファイルA」が対象格として係り受けし、更にこれが山田太郎を始点として送られるものであるから、この始点格は「山田太郎」となる。
【0107】
このような始点格を利用する場合においても、
図8に示す終点格テーブルにおける、参照用終点格が参照用始点格になり、探索するのは実行動作元となる。つまり参照用始点格に対する実際の実行動作元が3段階以上の連関度を以って関連付けられた始点格テーブルを記憶しておく。そして、テキストデータを分析し、抽出された始点格に対する実行動作元を、記憶されている始点格テーブルの連関度を参照することにより探索する。次に、プログラムコードの基本構文に、探索された実行動作元を代入することにより、当該実行動作対象を当該実行動作元から当該実行動作先に対して当該実行動作命令に規定された実行動作を実行するためのプログラムコードを生成する。
【0108】
また、条件格とは、対象格で規定される実行対象の動作を実行する条件を規定するものである。この条件としては、いつ(時間)やどのような方法で(方法)、いつから開始(動作開始条件)、いつまでに実行(動作終了条件)等である。
【0109】
例えば「ファイルAを明日までに送って」という文言の場合、「送って」という動詞に対して、「ファイルA」が対象格として係り受けし、更に「明日までに」が条件格として係り受けするものであるから、この条件格は「明日までに」となる。
【0110】
このような始点格を利用する場合においても、
図8に示す参照用終点格が参照用条件格になり、探索するのは実行動作条件となる。つまり参照用条件格に対する実際の実行動作条件が3段階以上の連関度を以って関連付けられた条件格テーブルを記憶しておく。そして、テキストデータを分析し、抽出された条件格に対する実行動作条件を、記憶されている条件格テーブルの連関度を参照することにより探索する。次に、プログラムコードの基本構文に、探索された実行動作条件を代入することにより、当該実行動作対象を当該実行動作先に対して当該実行動作条件に基づいて当該実行動作命令に規定された実行動作を実行することになる。
【0111】
なお、本発明は、上述した本実施形態に限定されるものではない。例えば
図11に示すように、実行動作テーブル、対象格テーブル、終点格テーブルのそれぞれに規定されている連関度に基づいて、ユーザに対して入力内容を確認するための確認文を生成するようにしてもよい。生成した確認文は、音声出力又は画像出力するようにしてもよい。つまり、ユーザからの入力内容から実行動作命令、実行動作対象、実行動作先のいずれかが好適に特定することができない場合には、改めてその意図をユーザに問い合わせるための確認文を生成し、意図を確認するプロセスを実行する。探索解としての実行動作命令、実行動作対象、実行動作先は、何れも有限であるのに対して、ユーザにより生成されるテキストデータの文言の種類は無限に近い。このため、ユーザから生成されるテキストデータから抽出した指示動作や格成分によっては、実行動作命令、実行動作対象、実行動作先を探索することができない場合がある。また、ユーザが方言を使う場合、その方言の内容によっては実行動作命令、実行動作対象、実行動作先を連関度を通じて絞り込めない場合がある。かかる場合には、改めてその意図をユーザに問い合わせるための確認文を生成する。確認文の生成、通知に対してユーザから改めてテキストデータの再入力を受け付けることにあるが、このプロセスは、いわゆるチャット形式で行うようにしてもよい。
【0112】
確認文の生成は、実行動作テーブル、対象格テーブル、終点格テーブルを介して探索した実行動作命令、実行動作対象、実行動作先にそれぞれ紐付けられていた連関度に基づいて行ってもよい。仮に実行動作テーブルにおいて「ファイルを開く」という実行動作命令が探索されたが、これに紐付いている連関度w13が10段階評価の中で5である場合、正直なところ、それほど強い連関度の下で実行動作命令が決定されたものではなく、ユーザの意図を汲み取った探索解になっていない可能性がある。つまり、実行動作命令、実行動作対象、実行動作先を連関度を通じて絞り込めないケースである。かかる場合には、確認文を生成し、ユーザの意図を確認し、再入力を受け付ける。そして受け付けた再入力の内容に基づいて動揺に解探索を行うようにしてもよい。このように実行動作命令、実行動作対象、実行動作先にそれぞれ紐付けられていた連関度がある一定の閾値未満である場合に、ユーザの意図を反映した探索が行われていないものと判断し、確認文を生成するようにしてもよい。この確認文は、予め例文を複数種類準備しておき、これに対して探索解に応じたものを例文中に代入することで行うようにしてもよい。例えば、実行動作命令「転送する」について本当にユーザが意図しているか否かを確認したい場合には、「ファイルAを●●されたいということですか?」の●●の部分にこの実行動作命令「転送(する)」を代入することで確認文を生成するようにしてもよい。
【0113】
また、このような閾値を設定する代わりに、各テーブルを利用して探索した実行動作命令、実行動作対象、実行動作先にそれぞれ紐付けられていた連関度を互いに比較することで確認文を生成するようにしてもよい。仮に探索した実行動作命令、実行動作対象、実行動作先にそれぞれ紐付けられていた連関度を互いに比較したところ、その探索した実行動作対象に紐付けられている連関度が最も低い場合には、この実行動作対象を確認するための確認文を生成して出力するようにしてもよい。
【0114】
また、ユーザの音声にノイズが重畳していることから、これをテキストデータに落とし込んだ場合、そもそも類義語辞典にそのような文言が存在せず、参照用指示動作、参照用対象格、参照用終点格との照合ができない場合が出てくる。このように参照用指示動作、参照用対象格、参照用終点格との照合ができない場合も、同様に確認文を生成し、ユーザに出力するようにしてもよい。この確認文の生成は、照合ができない参照用指示動作、参照用対象格、参照用終点格毎に例文を作成して記憶しておき、実際に照合ができなかった参照用指示動作、参照用対象格、参照用終点格に応じて例文を読み出して出力するようにしてもよい。
【0115】
連関度が相対的に引く場合には、ユーザの意図を反映した探索が行われていないものと判断し、確認文を生成することでその意図を確認することが可能となる。
【0116】
[実施形態2]
次に、
図12を用いて、本発明の実施形態2におけるプログラムコード自動生成システムについて説明する。
図12は、実施形態2における実行動作テーブルの例を示す図である。上述の実施形態1におけるプログラムコード自動生成システム100と相違する点は、主に、実行動作テーブルで人工知能を用いないことなので、その点について主に説明し、同一構成は同一符号を付し、説明を省略する。
【0117】
この実施形態2におけるプログラムコード自動生成システムでは、実行動作テーブルにおいて、例えば、入力側の参照用指示動作P01-1だと、出力側の実行動作命令が「ファイルを開く」となるように、入力側の参照用指示動作のデータと、出力側の実行動作命令のデータとが、それぞれ紐づけられたデータセットとして用意されていることが、実施形態1におけるプログラムコード自動生成システム100と異なる。なお、
図12の実行動作テーブルは、実施形態1における
図4の実行動作テーブルに対応するものを一例として示したものである。
【0118】
[実施形態3]
次に、
図13を用いて、本発明の実施形態3におけるプログラムコード自動生成システムについて説明する。
図13は、実施形態3における対象格テーブルの例を示す図である。上述の実施形態1におけるプログラムコード自動生成システム100と相違する点は、主に、対象格テーブルで人工知能を用いないことなので、その点について主に説明し、同一構成は同一符号を付し、説明を省略する。
【0119】
この実施形態3におけるプログラムコード自動生成システムでは、対象格テーブルにおいて、例えば、入力側の参照用対象格P04-1だと、出力側の実行動作対象が「12月7日14時受信」となるように、入力側の参照用対象格のデータと、出力側の実行動作対象のデータとが、それぞれ紐づけられたデータセットとして用意されていることが、実施形態1におけるプログラムコード自動生成システム100と異なる。なお、
図13の対象格テーブルは、実施形態1における
図6の対象格テーブルに対応するものを一例として示したものである。
【0120】
[実施形態4]
次に、
図12及び
図13を用いて、本発明の実施形態4におけるプログラムコード自動生成システムについて説明する。
図12は、実施形態4における実行動作テーブルの例を示す図である。
図13は、実施形態4における対象格テーブルの例を示す図である。上述の実施形態1におけるプログラムコード自動生成システム100と相違する点は、主に、実行動作テーブル及び対象格テーブルで人工知能を用いないことなので、その点について主に説明し、同一構成は同一符号を付し、説明を省略する。
【0121】
この実施形態4におけるプログラムコード自動生成システムでは、実行動作テーブルにおいて、例えば、入力側の参照用指示動作P01-1だと、出力側の実行動作命令が「ファイルを開く」となるように、入力側の参照用指示動作のデータと、出力側の実行動作命令のデータとが、それぞれ紐づけられたデータセットとして用意されている。
【0122】
また、この実施形態4におけるプログラムコード自動生成システムでは、対象格テーブルにおいて、例えば、入力側の参照用対象格P04-1だと、出力側の実行動作対象が「12月7日14時受信」となるように、入力側の参照用対象格のデータと、出力側の実行動作対象のデータとが、それぞれ紐づけられたデータセットとして用意されている。
【0123】
この実施形態4におけるプログラムコード自動生成システムでは、これらのことが、実施形態1におけるプログラムコード自動生成システム100と異なる。なお、
図12の実行動作テーブルは、実施形態1における
図4の実行動作テーブルに対応するものを一例として示したものであり、
図13の対象格テーブルは、実施形態1における
図6の対象格テーブルに対応するものを一例として示したものである。
【0124】
なお、実施形態1~4においては、
図8の人工知能を用いた終点格テーブルを、
図14のような、例えば、入力側の参照用終点格P07-1だと、出力側の実行動作先が「山田太郎のPC」となるように、入力側の参照用終点格のデータと、出力側の実行動作先のデータとが、それぞれ紐づけられたデータセットとして用意された終点格テーブルに置き換えて実施してもよい。
【符号の説明】
【0125】
1 プログラムコード自動生成装置
2 端末
3 サーバ
4 通信網
61 中間ノード
100 プログラムコード自動生成システム
【手続補正書】
【提出日】2021-09-14
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
音声又は入力端末を介してテキストデータの入力を受け付ける受付手段と、
上記受付手段により受け付けられたテキストデータを自然言語解析することにより、指示動作と、これに係り受けする少なくとも対象格からなる格成分を抽出する抽出手段と、
参照用指示動作に対する実際の実行動作命令が関連付けられた実行動作テーブルと、参照用対象格に対する実際の実行動作対象が関連付けられた対象格テーブルとを少なくとも記憶する記憶手段と、
上記抽出された指示動作に対応する実行動作命令と、上記抽出された対象格に対応する実行動作対象とを、上記記憶手段により記憶されている実行動作テーブル、対象格テーブルを参照することにより探索する探索手段と、
プログラムコードの基本構文に、上記探索手段により探索された実行動作命令、実行動作対象を代入することにより、当該実行動作対象を当該実行動作命令に規定された実行動作を実行するためのプログラムコードを自動生成するコード生成手段とを備え、
実行動作テーブルは、参照用指示動作に対する実際の実行動作命令が3段階以上の連関度を以って関連付けられ、上記記憶手段に記憶されており、
上記探索手段は、上記抽出された指示動作に対応する実行動作命令を、上記記憶手段により記憶されている実行動作テーブルの連関度を参照することにより探索し、
対象格テーブルにおいて、入力側の参照用対象格のデータと、出力側の実行動作対象のデータとが、それぞれ紐づけられたデータセットとして用意されていること
を特徴とするプログラムコード自動生成システム。
【請求項2】
音声又は入力端末を介してテキストデータの入力を受け付ける受付手段と、
上記受付手段により受け付けられたテキストデータを自然言語解析することにより、指示動作と、これに係り受けする少なくとも対象格からなる格成分を抽出する抽出手段と、
参照用指示動作に対する実際の実行動作命令が関連付けられた実行動作テーブルと、参照用対象格に対する実際の実行動作対象が関連付けられた対象格テーブルとを少なくとも記憶する記憶手段と、
上記抽出された指示動作に対応する実行動作命令と、上記抽出された対象格に対応する実行動作対象とを、上記記憶手段により記憶されている実行動作テーブル、対象格テーブルを参照することにより探索する探索手段と、
プログラムコードの基本構文に、上記探索手段により探索された実行動作命令、実行動作対象を代入することにより、当該実行動作対象を当該実行動作命令に規定された実行動作を実行するためのプログラムコードを自動生成するコード生成手段とを備え、
対象格テーブルは、参照用対象格に対する実際の実行動作対象が3段階以上の連関度を以って関連付けられ、上記記憶手段に記憶されており、
上記探索手段は、上記抽出された対象格に対応する実行動作対象を、上記記憶手段により記憶されている対象格テーブルの連関度を参照することにより探索し、
実行動作テーブルにおいて、入力側の参照用指示動作のデータと、出力側の実行動作命令のデータとが、それぞれ紐づけられたデータセットとして用意されていること
を特徴とするプログラムコード自動生成システム。
【請求項3】
上記抽出手段は、指示動作に係り受けする終点格からなる格成分を抽出し、
上記記憶手段は、参照用終点格に対する実際の実行動作先が関連付けられた終点格テーブルを記憶し、
上記探索手段は、上記抽出された終点格に対する実行動作先を、上記記憶手段により記憶されている終点格テーブルを参照することにより探索し、
上記コード生成手段は、プログラムコードの基本構文に、上記探索手段により探索された実行動作先を代入することにより、当該実行動作対象を当該実行動作先に対して当該実行動作命令に規定された実行動作を実行するためのプログラムコードを自動生成すること
を特徴とする請求項1又は2記載のプログラムコード自動生成システム。
【請求項4】
上記記憶手段は、参照用終点格に対する実際の実行動作先が3段階以上の連関度を以って関連付けられた終点格テーブルを記憶し、
上記探索手段は、上記抽出された終点格に対する実行動作先を、上記記憶手段により記憶されている終点格テーブルの連関度を参照することにより探索すること
を特徴とする請求項3記載のプログラムコード自動生成システム。
【請求項5】
上記探索手段は、上記実行動作テーブル、上記対象格テーブル、上記終点格テーブルを介して探索した実行動作命令、実行動作対象、実行動作先にそれぞれ紐付けられていた連関度に基づいて、ユーザに対して入力内容を確認するための確認文を生成する確認文生成手段と、
上記確認文生成手段により生成された確認文を音声出力又は画像出力する出力手段とを備え、
上記受付手段は、ユーザによりテキストデータの再入力を受け付けること
を特徴とする請求項4記載のプログラムコード自動生成システム。
【請求項6】
上記コード生成手段は、参照用実行動作対象、参照用実行動作対象、参照用実行動作先の組み合わせに対するプログラムコードの基本構文が関連付けられたコードテーブルを参照し、上記探索手段により探索された実行動作対象、実行動作対象、実行動作先に基づいて、関連性の高いプログラムコードの基本構文を抽出し、抽出した基本構文に対して上記代入を行うこと
を特徴とする請求項4又は5記載のプログラムコード自動生成システム。
【請求項7】
上記コード生成手段は、参照用実行動作対象、参照用実行動作対象、参照用実行動作先の組み合わせとプログラムコードの基本構文との3段階以上の連関度を以って関連付けられた上記コードテーブルを参照すること
を特徴とする請求項6記載のプログラムコード自動生成システム。
【請求項8】
上記コード生成手段により自動生成されたプログラムコードを実行するプログラム実行手段を更に備えること
を特徴とする請求項1~7のうち何れか1項記載のプログラムコード自動生成システム。
【請求項9】
通信ネットワーク中の各端末装置を上記終点格テーブルの各参照用実行動作先として予め登録するための動作先登録手段を更に備えること
を特徴とする請求項4~7のうち何れか1項記載のプログラムコード自動生成システム。
【請求項10】
上記抽出手段は、指示動作に係り受けする始点格からなる格成分を抽出し、
上記記憶手段は、参照用始点格に対する実際の実行動作元が3段階以上の連関度を以って関連付けられた始点格テーブルを記憶し、
上記探索手段は、上記抽出された始点格に対する実行動作元を、上記記憶手段により記憶されている始点格テーブルの連関度を参照することにより探索し、
上記コード生成手段は、プログラムコードの基本構文に、上記探索手段により探索された実行動作元を代入することにより、当該実行動作対象を当該実行動作元から当該実行動作先に対して当該実行動作命令に規定された実行動作を実行するためのプログラムコードを自動生成すること
を特徴とする請求項4~7のうち何れか1項記載のプログラムコード自動生成システム。
【請求項11】
上記抽出手段は、指示動作に係り受けする条件格からなる格成分を抽出し、
上記記憶手段は、参照用条件格に対する実際の実行動作条件が3段階以上の連関度を以って関連付けられた条件格テーブルを記憶し、
上記探索手段は、上記抽出された条件格に対する実行動作条件を、上記記憶手段により記憶されている条件格テーブルの連関度を参照することにより探索し、
上記コード生成手段は、プログラムコードの基本構文に、上記探索手段により探索された実行動作条件を代入することにより、当該実行動作対象を当該実行動作先に対して当該実行動作条件に基づいて当該実行動作命令に規定された実行動作を実行するためのプログラムコードを自動生成すること
を特徴とする請求項4~7のうち何れか1項記載のプログラムコード自動生成システム。
【請求項12】
上記記憶手段は、人工知能におけるニューラルネットワークのノードの各出力の重み付け係数に対応する上記連関度を記憶すること
を特徴とする請求項1~11のうち何れか1項記載のプログラムコード自動生成システム。
【請求項13】
上記コード生成手段は、人工知能におけるニューラルネットワークのノードの各出力の重み付け係数に対応する上記連関度を利用すること
を特徴とする請求項7記載のプログラムコード自動生成システム。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0010
【補正方法】変更
【補正の内容】
【0010】
本発明に係る第1のプログラムコード自動生成システムは、音声又は入力端末を介してテキストデータの入力を受け付ける受付手段と、上記受付手段により受け付けられたテキストデータを自然言語解析することにより、指示動作と、これに係り受けする少なくとも対象格からなる格成分を抽出する抽出手段と、参照用指示動作に対する実際の実行動作命令が関連付けられた実行動作テーブルと、参照用対象格に対する実際の実行動作対象が関連付けられた対象格テーブルとを少なくとも記憶する記憶手段と、上記抽出された指示動作に対応する実行動作命令と、上記抽出された対象格に対応する実行動作対象とを、上記記憶手段により記憶されている実行動作テーブル、対象格テーブルを参照することにより探索する探索手段と、プログラムコードの基本構文に、上記探索手段により探索された実行動作命令、実行動作対象を代入することにより、当該実行動作対象を当該実行動作命令に規定された実行動作を実行するためのプログラムコードを自動生成するコード生成手段とを備え、実行動作テーブルは、参照用指示動作に対する実際の実行動作命令が3段階以上の連関度を以って関連付けられ、上記記憶手段に記憶されており、上記探索手段は、上記抽出された指示動作に対応する実行動作命令を、上記記憶手段により記憶されている実行動作テーブルの連関度を参照することにより探索し、対象格テーブルにおいて、入力側の参照用対象格のデータと、出力側の実行動作対象のデータとが、それぞれ紐づけられたデータセットとして用意されていることを特徴とする。
本発明に係る第2のプログラムコード自動生成システムは、音声又は入力端末を介してテキストデータの入力を受け付ける受付手段と、上記受付手段により受け付けられたテキストデータを自然言語解析することにより、指示動作と、これに係り受けする少なくとも対象格からなる格成分を抽出する抽出手段と、参照用指示動作に対する実際の実行動作命令が関連付けられた実行動作テーブルと、参照用対象格に対する実際の実行動作対象が関連付けられた対象格テーブルとを少なくとも記憶する記憶手段と、上記抽出された指示動作に対応する実行動作命令と、上記抽出された対象格に対応する実行動作対象とを、上記記憶手段により記憶されている実行動作テーブル、対象格テーブルを参照することにより探索する探索手段と、プログラムコードの基本構文に、上記探索手段により探索された実行動作命令、実行動作対象を代入することにより、当該実行動作対象を当該実行動作命令に規定された実行動作を実行するためのプログラムコードを自動生成するコード生成手段とを備え、対象格テーブルは、参照用対象格に対する実際の実行動作対象が3段階以上の連関度を以って関連付けられ、上記記憶手段に記憶されており、上記探索手段は、上記抽出された対象格に対応する実行動作対象を、上記記憶手段により記憶されている対象格テーブルの連関度を参照することにより探索し、実行動作テーブルにおいて、入力側の参照用指示動作のデータと、出力側の実行動作命令のデータとが、それぞれ紐づけられたデータセットとして用意されていることを特徴とする。