(57)【特許請求の範囲】
【請求項１】
音声又は入力端末を介してテキストデータの入力を受け付ける受付手段と、
上記受付手段により受け付けられたテキストデータを自然言語解析することにより、指示動作と、これに係り受けする少なくとも対象格からなる格成分を抽出する抽出手段と、
参照用指示動作に対する実際の実行動作命令が関連付けられた実行動作テーブルと、参照用対象格に対する実際の実行動作対象が関連付けられた対象格テーブルとを少なくとも記憶する記憶手段と、
上記抽出された指示動作に対応する実行動作命令と、上記抽出された対象格に対応する実行動作対象とを、上記記憶手段により記憶されている実行動作テーブル、対象格テーブルを参照することにより探索する探索手段と、
プログラムコードの基本構文に、上記探索手段により探索された実行動作命令、実行動作対象を代入することにより、当該実行動作対象を当該実行動作命令に規定された実行動作を実行するためのプログラムコードを自動生成するコード生成手段とを備え、
実行動作テーブルは、参照用指示動作に対する実際の実行動作命令が３段階以上の連関度を以って関連付けられ、上記記憶手段に記憶されており、
上記探索手段は、上記抽出された指示動作に対応する実行動作命令を、上記記憶手段により記憶されている実行動作テーブルの連関度を参照することにより探索し、
対象格テーブルにおいて、入力側の参照用対象格のデータと、出力側の実行動作対象のデータとが、それぞれ紐づけられたデータセットとして用意されていること
を特徴とするプログラムコード自動生成システム。
【請求項２】
音声又は入力端末を介してテキストデータの入力を受け付ける受付手段と、
上記受付手段により受け付けられたテキストデータを自然言語解析することにより、指示動作と、これに係り受けする少なくとも対象格からなる格成分を抽出する抽出手段と、
参照用指示動作に対する実際の実行動作命令が関連付けられた実行動作テーブルと、参照用対象格に対する実際の実行動作対象が関連付けられた対象格テーブルとを少なくとも記憶する記憶手段と、
上記抽出された指示動作に対応する実行動作命令と、上記抽出された対象格に対応する実行動作対象とを、上記記憶手段により記憶されている実行動作テーブル、対象格テーブルを参照することにより探索する探索手段と、
プログラムコードの基本構文に、上記探索手段により探索された実行動作命令、実行動作対象を代入することにより、当該実行動作対象を当該実行動作命令に規定された実行動作を実行するためのプログラムコードを自動生成するコード生成手段とを備え、
対象格テーブルは、参照用対象格に対する実際の実行動作対象が３段階以上の連関度を以って関連付けられ、上記記憶手段に記憶されており、
上記探索手段は、上記抽出された対象格に対応する実行動作対象を、上記記憶手段により記憶されている対象格テーブルの連関度を参照することにより探索し、
実行動作テーブルにおいて、入力側の参照用指示動作のデータと、出力側の実行動作命令のデータとが、それぞれ紐づけられたデータセットとして用意されていること
を特徴とするプログラムコード自動生成システム。
【請求項３】
上記抽出手段は、指示動作に係り受けする終点格からなる格成分を抽出し、
上記記憶手段は、参照用終点格に対する実際の実行動作先が関連付けられた終点格テーブルを記憶し、
上記探索手段は、上記抽出された終点格に対する実行動作先を、上記記憶手段により記憶されている終点格テーブルを参照することにより探索し、
上記コード生成手段は、プログラムコードの基本構文に、上記探索手段により探索された実行動作先を代入することにより、当該実行動作対象を当該実行動作先に対して当該実行動作命令に規定された実行動作を実行するためのプログラムコードを自動生成すること
を特徴とする請求項１又は２記載のプログラムコード自動生成システム。
【請求項４】
上記記憶手段は、参照用終点格に対する実際の実行動作先が３段階以上の連関度を以って関連付けられた終点格テーブルを記憶し、
上記探索手段は、上記抽出された終点格に対する実行動作先を、上記記憶手段により記憶されている終点格テーブルの連関度を参照することにより探索すること
を特徴とする請求項３記載のプログラムコード自動生成システム。
【請求項５】
上記探索手段は、上記実行動作テーブル、上記対象格テーブル、上記終点格テーブルを介して探索した実行動作命令、実行動作対象、実行動作先にそれぞれ紐付けられていた連関度に基づいて、ユーザに対して入力内容を確認するための確認文を生成する確認文生成手段と、
上記確認文生成手段により生成された確認文を音声出力又は画像出力する出力手段とを備え、
上記受付手段は、ユーザによりテキストデータの再入力を受け付けること
を特徴とする請求項４記載のプログラムコード自動生成システム。
【請求項６】
上記コード生成手段は、参照用実行動作対象、参照用実行動作対象、参照用実行動作先の組み合わせに対するプログラムコードの基本構文が関連付けられたコードテーブルを参照し、上記探索手段により探索された実行動作対象、実行動作対象、実行動作先に基づいて、関連性の高いプログラムコードの基本構文を抽出し、抽出した基本構文に対して上記代入を行うこと
を特徴とする請求項４又は５記載のプログラムコード自動生成システム。
【請求項７】
上記コード生成手段は、参照用実行動作対象、参照用実行動作対象、参照用実行動作先の組み合わせとプログラムコードの基本構文との３段階以上の連関度を以って関連付けられた上記コードテーブルを参照すること
を特徴とする請求項６記載のプログラムコード自動生成システム。
【請求項８】
上記コード生成手段により自動生成されたプログラムコードを実行するプログラム実行手段を更に備えること
を特徴とする請求項１〜７のうち何れか１項記載のプログラムコード自動生成システム。
【請求項９】
通信ネットワーク中の各端末装置を上記終点格テーブルの各参照用実行動作先として予め登録するための動作先登録手段を更に備えること
を特徴とする請求項４〜７のうち何れか１項記載のプログラムコード自動生成システム。
【請求項１０】
上記抽出手段は、指示動作に係り受けする始点格からなる格成分を抽出し、
上記記憶手段は、参照用始点格に対する実際の実行動作元が３段階以上の連関度を以って関連付けられた始点格テーブルを記憶し、
上記探索手段は、上記抽出された始点格に対する実行動作元を、上記記憶手段により記憶されている始点格テーブルの連関度を参照することにより探索し、
上記コード生成手段は、プログラムコードの基本構文に、上記探索手段により探索された実行動作元を代入することにより、当該実行動作対象を当該実行動作元から当該実行動作先に対して当該実行動作命令に規定された実行動作を実行するためのプログラムコードを自動生成すること
を特徴とする請求項４〜７のうち何れか１項記載のプログラムコード自動生成システム。
【請求項１１】
上記抽出手段は、指示動作に係り受けする条件格からなる格成分を抽出し、
上記記憶手段は、参照用条件格に対する実際の実行動作条件が３段階以上の連関度を以って関連付けられた条件格テーブルを記憶し、
上記探索手段は、上記抽出された条件格に対する実行動作条件を、上記記憶手段により記憶されている条件格テーブルの連関度を参照することにより探索し、
上記コード生成手段は、プログラムコードの基本構文に、上記探索手段により探索された実行動作条件を代入することにより、当該実行動作対象を当該実行動作先に対して当該実行動作条件に基づいて当該実行動作命令に規定された実行動作を実行するためのプログラムコードを自動生成すること
を特徴とする請求項４〜７のうち何れか１項記載のプログラムコード自動生成システム。
【請求項１２】
上記記憶手段は、人工知能におけるニューラルネットワークのノードの各出力の重み付け係数に対応する上記連関度を記憶すること
を特徴とする請求項１〜１１のうち何れか１項記載のプログラムコード自動生成システム。
【請求項１３】
上記コード生成手段は、人工知能におけるニューラルネットワークのノードの各出力の重み付け係数に対応する上記連関度を利用すること
を特徴とする請求項７記載のプログラムコード自動生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム開発の仕組みを根本的に変えるプログラムコード自動生成システムに関するものである。
【背景技術】
【０００２】
近年、デスクワーク（定型作業）等のような業務の補助を実現するための手段として、ＲＰＡ（Robotic Process Automation）等に関する技術が注目を集めている。このような技術として、例えば特許文献１の情報処理装置等が提案されている。
【０００３】
特許文献１の情報処理装置は、ユーザのメッセージ情報を取得する取得部と、取得した前記メッセージ情報から、前記ユーザに関連するタスク情報を抽出する抽出部と、抽出した前記タスク情報から、タスクの担当者及び関係者を識別する識別部と、前記タスク情報を、前記ユーザが前記担当者である第１タスク情報、又は前記ユーザが前記関係者である第２タスク情報に分類する分類部と、分類した前記第１又は第２タスク情報をデータベースに登録する登録部と、該データベースを参照して、前記第１又は第２タスク情報を出力する出力部とを備えることを特徴とする。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１９−１６２８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、新規業務についてプログラムにより自動的に実行させる場合には、プログラムを作成する作業が必要となる。プログラムの作成プロセスとして、従来は、その新規業務の要件定義を行い、システム設計を行い、更にプログラムコードをコーディングした後、これをテスト、検証するプロセスが必要である。このようなプログラムコードは、新規業務が生まれる都度、人手によりコーディングするのが通常であった。
【０００６】
しかしながら、近年のＩＴ化の急速な進展に伴い、プログラム作成需要は増加の一途をたどり、ＩＴ技術者不足が深刻な社会問題となっている。
【０００７】
また、社内の簡単な作業一つとっても状況によっては随時変更を施さなければならないケースがある。例えば、「社員〇〇のＰＣに日報を送っておいて」という社内業務を自動的に行えるようにプログラムを作成しても、少しでも業務に変化があればプログラムコードを作成し直さなければならなくなる。
【０００８】
従来、このような問題点があるものの、それよりも、近い将来、慢性的なＳＥ技術者不足が社会に甚大な影響を与える事が予測されているということがより深刻な問題点である。
【０００９】
そこで本発明は、上述した問題点に鑑みて案出されたものであり、その目的とするところは、業務をコンピュータのシステムにおいて自動的に実行していくために、その業務を実行するためのプログラムコードを生成する際において、極めて容易に、しかもＳＥとしての技術力がなくても、業務にさえ習熟した現場担当者であれば、簡単に指示を与え、ＳＥ技術を持った人手を介することなく自動的にプログラムコードを生成することが可能であり、プログラム開発の仕組みを根本的に変え、近い将来、慢性的なＳＥ技術者不足が社会に甚大な影響を与える事を回避できるプログラムコード自動生成システムを提供することにある。
【課題を解決するための手段】
【００１０】
本発明に係る第１のプログラムコード自動生成システムは、音声又は入力端末を介してテキストデータの入力を受け付ける受付手段と、上記受付手段により受け付けられたテキストデータを自然言語解析することにより、指示動作と、これに係り受けする少なくとも対象格からなる格成分を抽出する抽出手段と、参照用指示動作に対する実際の実行動作命令が関連付けられた実行動作テーブルと、参照用対象格に対する実際の実行動作対象が関連付けられた対象格テーブルとを少なくとも記憶する記憶手段と、上記抽出された指示動作に対応する実行動作命令と、上記抽出された対象格に対応する実行動作対象とを、上記記憶手段により記憶されている実行動作テーブル、対象格テーブルを参照することにより探索する探索手段と、プログラムコードの基本構文に、上記探索手段により探索された実行動作命令、実行動作対象を代入することにより、当該実行動作対象を当該実行動作命令に規定された実行動作を実行するためのプログラムコードを自動生成するコード生成手段とを備え、実行動作テーブルは、参照用指示動作に対する実際の実行動作命令が３段階以上の連関度を以って関連付けられ、上記記憶手段に記憶されており、上記探索手段は、上記抽出された指示動作に対応する実行動作命令を、上記記憶手段により記憶されている実行動作テーブルの連関度を参照することにより探索し、対象格テーブルにおいて、入力側の参照用対象格のデータと、出力側の実行動作対象のデータとが、それぞれ紐づけられたデータセットとして用意されていることを特徴とする。
本発明に係る第２のプログラムコード自動生成システムは、音声又は入力端末を介してテキストデータの入力を受け付ける受付手段と、上記受付手段により受け付けられたテキストデータを自然言語解析することにより、指示動作と、これに係り受けする少なくとも対象格からなる格成分を抽出する抽出手段と、参照用指示動作に対する実際の実行動作命令が関連付けられた実行動作テーブルと、参照用対象格に対する実際の実行動作対象が関連付けられた対象格テーブルとを少なくとも記憶する記憶手段と、上記抽出された指示動作に対応する実行動作命令と、上記抽出された対象格に対応する実行動作対象とを、上記記憶手段により記憶されている実行動作テーブル、対象格テーブルを参照することにより探索する探索手段と、プログラムコードの基本構文に、上記探索手段により探索された実行動作命令、実行動作対象を代入することにより、当該実行動作対象を当該実行動作命令に規定された実行動作を実行するためのプログラムコードを自動生成するコード生成手段とを備え、対象格テーブルは、参照用対象格に対する実際の実行動作対象が３段階以上の連関度を以って関連付けられ、上記記憶手段に記憶されており、上記探索手段は、上記抽出された対象格に対応する実行動作対象を、上記記憶手段により記憶されている対象格テーブルの連関度を参照することにより探索し、実行動作テーブルにおいて、入力側の参照用指示動作のデータと、出力側の実行動作命令のデータとが、それぞれ紐づけられたデータセットとして用意されていることを特徴とする。
【発明の効果】
【００１１】
上述した発明によれば、業務をコンピュータ側のシステムにおいて自動的に実行していくために、その業務を実行するためのプログラムコードを生成する際において、極めて容易に、しかもＳＥとしての技術力がなくても、業務にさえ習熟した現場担当者であれば、簡単に指示を与え、ＳＥ技術を持った人手を介することなく自動的にプログラムコードを生成することが可能であり、プログラム開発の仕組みを根本的に変え、近い将来、慢性的なＳＥ技術者不足が社会に甚大な影響を与える事を回避できる。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施形態１におけるプログラムコード自動生成システムのブロック図である。
【図２】図２は、本発明を適用したプログラムコード自動生成システムのフローチャートである。
【図３】図３は、本システムを設けるユーザが企業毎に予め実行先を設定登録する例を示す図である。
【図４】図４は、実行動作テーブルの例を示す図である。
【図５】図５は、図４に示す実行動作テーブルの他の例を示す図である。
【図６】図６は、対象格テーブルの例を示す図である。
【図７】図７は、図５に示す対象格テーブルの他の例を示す図である。
【図８】図８は、終点格テーブルの例を示す図である。
【図９】図９は、図８に示す終点格テーブルの他の例を示す図である。
【図１０】図１０は、プログラムコードの基本構文を探索する上で人工知能による機械学習を利用する場合について説明するための図である。
【図１１】図１１は、ユーザに対して入力内容を確認するための確認文を生成する方法について説明するための図である。
【図１２】図１２は、実施形態２又は実施形態４における実行動作テーブルの例を示す図である。
【図１３】図１３は、実施形態３又は実施形態４における対象格テーブルの例を示す図である。
【図１４】図１４は、終点格テーブルの他の例を示す図である。
【発明を実施するための形態】
【００１３】
以下、本発明の実施形態１〜４におけるプログラムコード自動生成システムを例示し、図面を参照しながら説明する。
【００１４】
［実施形態１］
（プログラムコード自動生成システム１００）
図１を参照して、本実施形態におけるプログラムコード自動生成システム１００の構成の一例について説明する。図１は、本実施形態におけるプログラムコード自動生成システム１００の全体の構成を示す模式図である。
【００１５】
プログラムコード自動生成システム１００は、単なる業務補助ではなくプログラム開発の仕組みを根本的に変え、近い将来、慢性的なＳＥ技術者不足が社会に甚大な影響を与える事を回避できるものである。
【００１６】
すなわち、プログラムコード自動生成システム１００は、業務を実行するためのプログラムコードを自動生成することで、企業内における各業務（例えば、メールの配信、作業者の進捗状況の収集、ファイル管理、ファイル転送等）の様々なデータ処理をコンピュータ上で自動的に行うことができる。プログラムコード自動生成システム１００は、特にこのプログラムコードの自動生成を、音声又はテキストにより設定することができ、システム管理者等のような専門的知識を有しないユーザ（例えばプログラムコード自動生成システム１００を利用して業務を管理する利用者等）においても、様々な業務処理をコンピュータに自動的に行わせるためのプログラムコードの自動生成を容易に実現することが可能となる。
【００１７】
プログラムコード自動生成システム１００は、例えば図１に示すように、プログラムコード自動生成装置１を備え、ユーザがプログラムコード自動生成装置１を利用してもよい。プログラムコード自動生成システム１００は、例えば通信網４を介してプログラムコード自動生成装置１と接続された端末２を備え、ユーザが端末２を介してプログラムコード自動生成装置１を利用してもよい。プログラムコード自動生成システム１００は、例えば通信網４を介してプログラムコード自動生成装置１と接続されたサーバ３を備え、ユーザがプログラムコード自動生成装置１又は端末２を介してサーバ３との各種情報の送受信により、各手段を実現してもよい。
【００１８】
＜プログラムコード自動生成装置１＞
プログラムコード自動生成装置１として、例えばサーバ、パーソナルコンピュータ、スマートフォン、タブレット端末、ウェアラブル端末等の公知の電子機器が用いられる。なお、本実施形態におけるプログラムコード自動生成システム１００において、プログラムコード自動生成装置１は、クラウドサーバの中枢となる。
【００１９】
プログラムコード自動生成装置１は、図示は省略したが、取得部と、演算部とを備え、例えば実行部と、記憶部と、出力部と、インテント格納部とを備えてもよい。なお、プログラムコード自動生成装置１の各機能は、ＣＰＵが、ＲＡＭを作業領域として、保存部等に記憶されたプログラムを実行することにより実現される。また、各機能の一部は、人工知能により制御されてもよい。ここで、「人工知能」は、いかなる周知の人工知能技術に基づくものであってもよい。
【００２０】
取得部は、音声又は入力端末を介してテキストデータの入力を受け付ける。取得部は、例えば端末２又はプログラムコード自動生成装置１の入力部を介してユーザから入力されたテキストデータを取得する。例えば端末２又はプログラムコード自動生成装置１の入力部を介して、ユーザから会話文が音声により入力された場合、取得部は、公知の音声認識技術（例えば音声認識技術）を用いて音声から生成されたテキストデータを取得する。なお、音声認識技術は、例えば通信網４を介して、クラウド型の音声認識技術を用いてもよい。
【００２１】
演算部は、データベースを参照し、取得したテキストデータに基づいて各種処理動作、演算を実行する。演算部は、受け付けた会話文について自然言語解析することにより、動詞や名詞、格成分等を始めとする文の個々の構成要素を抽出する。演算部は、受け付けたテキストデータから抽出した指示動作に対応する実行動作命令、対象格に対応する実行動作対象、終点格に対応する実行動作先を割り当てる処理動作を行う。この演算部は、受け付けたテキストデータに対応するインテントを決定する処理動作を実行する。演算部は、記憶部を参照し、プログラムコードの基本構文を抽出する。また演算部は、抽出されたプログラムコードの基本構文に、割り当てた実行動作命令、実行動作対象、実行動作先を代入することによりプログラムコードを生成する。
【００２２】
実行部は、演算部において生成されたプログラムコードに基づき、業務処理を実行する。業務処理として、例えばタスクの内容や期限に基づき担当者へのメール送信、勤務管理、タスク進行履歴更新等の定型作業が挙げられ、業務処理情報をプログラムとしてコンピュータに実行させることができる内容が用いられる。
【００２３】
記憶部は、取得部を介して取得した会話文からなるテキストデータを一時的に保存する。この記憶部に記憶されたテキストデータは、演算部や実行部等による制御に基づき読み出され、また更新される場合もある。記憶部は、実行動作テーブル、対象格テーブル、終点格テーブルの少なくとも３つのテーブルを保持している。また記憶部は、コードテーブルを保持していてもよい。
【００２４】
出力部は、プログラムコードにより実行された動作に関する各種情報を出力する。表示用データは、プログラムコード自動生成装置１の報知部又は端末２等を介して、ユーザが認識できるように報知される。出力部は、Ｉ／Ｆを介して端末２等に表示用データ等を出力し、Ｉ／Ｆを介して報知部に表示用データ等を出力する。
【００２５】
インテント格納部には、１または２以上のインテントが格納される。インテントは、業務処理を特定する情報に対応付けて、このインテント格納部に格納されるものであってもよい。なお、業務処理を特定する情報は、通常、後述するアクション名であるが、その形式はこれらに限定されるものではない。また、対応付くことは、例えば、インテントが、業務処理を特定する情報を有する場合も含む。
【００２６】
＜端末２＞
端末２として、例えばサーバ、パーソナルコンピュータ、スマートフォン、タブレット端末、ウェアラブル端末等の公知の電子機器が用いられる。端末２は、例えばプログラムコード自動生成装置１と同様の構成及び機能の少なくとも一部を備えてもよい。端末２は、例えば複数備えてもよく、各端末２がそれぞれ通信網４を介してプログラムコード自動生成装置１と接続されてもよい。
【００２７】
＜サーバ３＞
サーバ３には、例えば各種情報が記憶される。サーバ３には、例えば通信網４を介してプログラムコード自動生成装置１等から送られてきた各種情報が蓄積される。サーバ３には、例えばプログラムコード自動生成装置１の保存部と同様の情報が記憶され、通信網４を介してプログラムコード自動生成装置１等と各種情報の送受信が行われてもよい。即ち、プログラムコード自動生成システム１００では、プログラムコード自動生成装置１又はプログラムコード自動生成装置１の保存部の代わりにサーバ３を用いてもよい。
【００２８】
＜通信網４＞
通信網４は、プログラムコード自動生成装置１が通信回路を介して接続されるインターネット網等である。通信網４は、いわゆる光ファイバ通信網で構成されてもよい。また、通信網４は、有線通信網のほか、無線通信網等の公知の通信網で実現されてもよい。
【００２９】
次に、本発明を適用したプログラムコード自動生成システム１００の動作について説明をする。
【００３０】
図２に示すようにステップＳ１１において会話文の受け付けを行う。具体的には、音声データとしてプログラムコード自動生成装置１の取得部において会話文が取得した場合には、これを公知の音声認識技術（例えば音素認識技術）を用いテキストデータを生成する。また、電子データ化されたテキストデータをプログラムコード自動生成装置１の取得部において取得した場合には、これをそのまま利用することになる。電子データ化されたテキストデータは、例えばメール文や社内又は社外において活用している情報掲示板や各種サイトの書き込みをそのまま取り込むようにしてもよい。
【００３１】
プログラムコード自動生成装置１の取得部は、ユーザの入力するタイミング毎にテキストデータを取得するほか、例えば一定期間に蓄積された複数のテキストデータを一度に取得してもよい。なお、端末２又はプログラムコード自動生成装置１の入力部を介して入力された非テキスト形式のデータから、テキストデータを生成する方法は、公知技術を用いることができる。このようにして取得されたテキストデータは、プログラムコード自動生成装置１の記憶部において一時的に記憶される。
【００３２】
次にステップＳ１２に移行し、Ｓ１１において取得され、プログラムコード自動生成装置１の記憶部において一時的に記憶されているテキストデータとしての会話文を読み出し、これを自然言語解析する。この自然言語解析は、主としてプログラムコード自動生成装置１の演算部が行う。この自然言語解析では、形態素解析や構文解析を始めとして周知のいかなる自然言語解析技術を利用するようにしてもよい。
【００３３】
このステップＳ１２における自然言語解析の結果、例えばテキストデータ「商品名、A5-7853Kを登録して」については、「商品名｜A5-7853K |からなる対象格 を | 登録 | して」からなる指示動作に分解することができる。またテキスト「山田太郎の今月の日報を徳川課長に転送して」は、「山田太郎｜の | 今月 | の | 残業 | 時間 |」という対象格、「徳川課長|に」という終点格、「転送|して」の指示動作に分解することができる。つまりテキストデータを指示動作からなる動詞に係り受けする対象格や終点格からなる格成分の組み合わせを通じて抽出することができる。
【００３４】
格成分は、動詞（指示動作）による文の形成に必要とされる名詞句である。格成分における格とは、動詞が自らの帯びている語彙的意味に応じて、文の形成に必要な名詞または名詞句の組み合わせを選択的に要求する働きであり、いわゆる格支配という。この格成分の理論的根拠となる格文法は、単文が、実体を表す深層格（対象格・条件格・道具格・始点格・終点格・時間格など）とこれらと結びついた一つの動詞からなるものとして文を分析する理論である。そして、動詞により文の深層格として要求された名詞（句）が、動詞による命題実現を補足する上で必要な格成分ということができる。格成分とは、単なる名詞句ではなく、動詞が自らの命題の実現するために係り受けた名詞句である。言い換えれば、格成分は、動詞に係り受けする名詞（名詞句を含む）のうち、指示動作を規定する動詞による命題を実現するための動作開始条件となり得る要素である。
【００３５】
ここでいう対象格は、指示動作を規定する動詞による命題の実行対象を意味する。「ファイルＡを転送して」という文言の場合、「転送して」という動詞に対して「ファイルＡ」が対象格として係り受けすることになる。また終点格とは、対象格で規定される実行対象が反映される場所、実行対象による恩恵を受ける先、実行対象が送られる先を規定するものである。「ファイルＡを山田太郎に送って」という文言の場合、「送って」という動詞に対して、「ファイルＡ」が対象格として係り受けし、更にこれが山田太郎を終点として送るものであるから、この終点格は「山田太郎」となる。
【００３６】
次にステップＳ１３に移行し、自然言語解析された会話文の意味動作決定を行う。このステップＳ１３では、自然言語解析を通じて解析した指示動作、格成分から、実行動作命令、実行動作対象、実行動作先等からなる意味動作を決定する。
【００３７】
プログラムコード自動生成装置１の演算部は、先ずステップＳ１２において自然言語解析した会話文について、抽出された指示動作に対応する実行動作命令と、抽出された対象格に対応する実行動作対象と、抽出された終点格に対応する実行動作先とを、実行動作テーブル、対象格テーブル、終点格テーブルの各連関度を参照することにより探索する。
【００３８】
ここでいう実行動作命令は、実際のプログラムコードにおいて実行動作を命令するための文言であり、実際のデータベース登録、ファイルへの書き込み、転送、削除、モニタ表示等に対応する。
【００３９】
実行動作対象とは、この実行動作命令を実行する対象を示すものであり、請求書や日報、仕様書のファイル、データ、或いはメール等であってもよいし、商品名や様々な事象、情報（例えば勤務時間や、在庫等）であってもよい。
【００４０】
この実行動作対象と実行動作命令とを組み合わせることで様々なプログラムコードを完成することができる。
【００４１】
例えば、実行動作命令が「転送」であり、実行動作命令が「仕様書のファイル」であれば、これを組み合わせることで「仕様書のファイルの転送」というプログラムコードを作り上げることが可能となる。
【００４２】
実行動作先とは、実行動作命令を実行する実行先を示すものである。例えば、本システムを設けるユーザが企業毎に予め実行先を設定登録しておくようにしてもよい。例えば図３に示すように、社内ＬＡＮにおいて、「山田太郎のＰＣ」、「徳川課長のＰＣ」、「開発部の共用ＰＣ」等を実行動作先として登録しておくようにしてもよい。また、社内ＬＡＮを越えたが社外の取引先についても、外部の公衆通信網を介して「取引先Ａ社の担当者Ｂ」等のように登録してもよい。
【００４３】
即ち、本発明を実施する前に、終点格テーブルを作成することになるが、この作成時において、通信ネットワーク中の各端末装置（例えば、「山田太郎のＰＣ」、「徳川課長のＰＣ」、「開発部の共用ＰＣ」等）を上記終点格テーブルの各参照用実行動作先として予め登録する動作を実行してもよい。
【００４４】
次にステップＳ１４へ移行し、意味動作決定された会話文を実行するためのプログラムコード解析を行う。このプログラムコードの関連付け解析は、プログラムコードの基本構文を抽出する動作を行う。
【００４５】
なお、ステップＳ１３、１４の具体的な方法については、後段において詳述する。
【００４６】
次にステップＳ１５に移行し、プログラムコードの作成を行う。ステップＳ１４においては、上述したように単にプログラムコードの基本構文を抽出したに過ぎず、実際の処理動作の対象や、処理動作を完成させるために必要な各条件を規定する文言を代入することでプログラムコードが完成になる。このため、ステップＳ１５では、抽出したプログラムコードの基本構文に対して、実行動作対象、実行動作先、実行動作命令を規定する文言を代入することで、当該実行動作対象を当該実行動作先に対して当該実行動作命令に規定された実行動作を実行するためのプログラムコードを生成する。
【００４７】
このステップＳ１１〜Ｓ１５の工程において、ステップＳ１１において受け付けられた会話文に含められているユーザの意図に基づいてプログラムを自動生成させることができる。
【００４８】
このようにしてプログラムコードを完成させた後、これをユーザに提供し、或いはプログラムコード自動生成装置１の報知部を介して表示するようにしてもよいし、プログラムコード自動生成装置１の実行部を介してその完成させたプログラムコードを実行させるようにしてもよい。即ち、本発明によれば、この自動生成したプログラムコードをそのまま実行させるようにすることが可能となる。このため、ステップＳ１１からの工程から含めた場合には、ユーザが会話文を発することで、その意図を組み込んだプログラムコードを自動生成することができ、しかもその生成したプログラムコードをそのまま実行に移すことができる。これは、ユーザがシステムに対して実行して欲しい動作を会話文で話すか、これに応じたテキストデータを入力すると、その意図を組み込んだ動作を、自動生成したプログラムコードに基づいてそのまま実行させることが可能となる。
【００４９】
次にステップＳ１３の自然言語解析された会話文の意味動作決定、ステップＳ１４の意味動作決定された会話文を実行するためのプログラムコード解析の詳細な方法について説明をする。
【００５０】
これらの方法を実行する上では、参照用指示動作に対する実際の実行動作命令が３段階以上の連関度を以って関連付けられた実行動作テーブルと、参照用対象格に対する実際の実行動作対象が３段階以上の連関度を以って関連付けられた対象格テーブルを利用する。これらの各テーブルは視覚的に視認できるような表やマトリックスで整理されている場合に限定されるものではなく、単に人工知能の機械学習モデルが記憶された学習済みデータ、並びにその集合で構成されていてもよい。
【００５１】
図４、５は、これらのうち実行動作テーブルの例を示している。この実行動作テーブルでは、参照用指示動作と、実行動作命令との３段階以上の連関度が予め設定されていることが前提となる。入力データとして例えば参照用指示動作Ｐ０１〜Ｐ０３であるものとする。例えば、この参照用指示動作Ｐ０１は、「送っておいて」、参照用指示動作Ｐ０２は「アップしておいて」、参照用指示動作Ｐ０３は「消しておいて」等であるものとする。このような入力データとしての参照用指示動作Ｐ０１〜Ｐ０３は、出力としての実行動作命令に連結している。
【００５２】
このような参照用指示動作は、この出力解としての実行動作命令（例えば、「ファイルを開く」、「転送する」、「印刷する」、「削除する」等）に対して３段階以上の連関度を通じて互いに連関しあっている。参照用指示動作がこの連関度を介して左側に配列し、各実行動作命令が連関度を介して右側に配列している。連関度は、左側に配列された参照用指示動作に対して、何れの実行動作命令と関連性が高いかの度合いを示すものである。換言すれば、この連関度は、各指示動作が、いかなる実行動作命令に紐付けられる可能性が高いかを示す指標であり、指示動作から最も確からしい実行動作命令を選択する上での的確性を示すものである。図４の例では、連関度としてｗ１３〜ｗ１９が示されている。このｗ１３〜ｗ１９は以下の表１に示すように１０段階で示されており、１０点に近いほど、中間ノードとしての各組み合わせが出力としての実行動作命令と互いに関連度合いが高いことを示しており、逆に１点に近いほど中間ノードとしての各組み合わせが出力としての実行動作命令と互いに関連度合いが低いことを示している。
【００５３】
【表１】
0006958884.tif 000002
【００５４】
このような図４に示す３段階以上の連関度ｗ１３〜ｗ１９を予め取得しておく。つまり実際の探索解の判別を行う上で、処理動作と、実行動作命令の何れが採用、評価されたか、過去のデータセットを蓄積しておき、これらを分析、解析することで図５に示す連関度を作り上げておく。
【００５５】
例えば、過去において参照用指示動作Ｐ０１に対して実行動作命令として「ファイルを開く」が最も適合性が高いと判断され、評価されたものとする。このようなデータセットを集めて分析することにより、参照用指示動作との連関度が強くなる。
【００５６】
この分析、解析は人工知能により行うようにしてもよい。かかる場合には、例えば指示動作Ｐ０１である場合に、過去のデータセットに基づいて分析する。指示動作Ｐ０１である場合に、「ファイルを開く」の事例が多い場合には、この実行動作命令につながる連関度をより高く設定し、「印刷する」の事例が多い場合には、この実行動作命令につながる連関度をより高く設定する。例えば処理動作Ｐ０１の例では、「ファイルを開く」と、「印刷する」にリンクしているが、以前の事例から「ファイルを開く」につながるｗ１３の連関度を７点に、「印刷する」につながるｗ１４の連関度を２点に設定している。
【００５７】
また、この連関度は、人工知能におけるニューラルネットワークのノードで構成されるものであってもよい。即ち、このニューラルネットワークのノードが出力に対する重み付け係数が、上述した連関度に対応することとなる。またニューラルネットワークに限らず、人工知能を構成するあらゆる意思決定因子で構成されるものであってもよい。
【００５８】
かかる場合には、図５に示すように、入力データとして処理動作が入力され、出力データとして実行動作命令が出力され、入力ノードと出力ノードの間に少なくとも１以上の隠れ層が設けられ、機械学習させるようにしてもよい。入力ノード又は隠れ層ノードの何れか一方又は両方において上述した連関度が設定され、これが各ノードの重み付けとなり、これに基づいて出力の選択が行われる。そして、この連関度がある閾値を超えた場合に、その出力を選択するようにしてもよい。
【００５９】
このような連関度が、人工知能でいうところの学習済みデータとなる。このような学習済みデータを作った後に、実際にこれから新たに指示動作から実行動作命令の探索を行うこととなる。かかる場合には、ステップＳ１２において抽出した指示動作を新たに取得する。新たに取得した指示動作に基づいて、これに見合う実行動作命令を探索する。かかる場合には、予め取得した図４（表１）に示す連関度を参照する。例えば、新たに取得した指示動作がＰ０２と同一かこれに類似するものである場合には、連関度を介して「転送する」がｗ１５、「印刷する」が連関度ｗ１６で関連付けられている。かかる場合には、連関度の最も高い「転送する」を最適解として選択する。但し、最も連関度の高いものを最適解として選択することは必須ではなく、連関度は低いものの連関性そのものは認められる「印刷する」を最適解として選択するようにしてもよい。また、これ以外に矢印が繋がっていない出力解を選択してもよいことは勿論であり、連関度に基づくものであれば、その他いかなる優先順位で選択されるものであってもよい。
【００６０】
このときプログラムコード自動生成装置１の記憶部に類義語辞書を格納しておくようにしてもよい。類義語辞書とは、類義語に関する辞書である。類義語辞書には、プログラムコード自動生成装置１の記憶部に格納されている１以上の各参照用指示動作ごとに、当該参照用指示動作が有する単語と、当該単語の１または２以上の類義語とが登録されている。具体的には、例えば、参照用指示動作「転送する」に対応付けて、「送信する」、「配信する」などが登録されていてもよい。そして、この類義語辞書を介して、新たに取得した指示動作が参照用指示動作と類似するか否かを判別することができる。仮に参照用指示動作が「転送する」である場合において、新たに取得した指示動作が「送信する」である場合、類義語辞書において類似するものとして予め登録されていることから「配信する」に対応するものと判断することが可能となる。
【００６１】
このような連関度を参照することにより、テキストデータから抽出した指示動作がいかなる実行動作命令に該当するものであるのかを精度良く判別することができる。
【００６２】
図６、７は、参照用対象格に対する実際の実行動作対象が３段階以上の連関度を以って関連付けられた対象格テーブルを利用する例について示している。
【００６３】
この対象格テーブルでは、参照用対象格と、実行動作対象との３段階以上の連関度が予め設定されていることが前提となる。入力データとして例えば参照用対象格Ｐ０１〜Ｐ０３であるものとする。例えば、この参照用対象格Ｐ０４は、「１２月３日１２時のメール」、参照用対象格Ｐ０５は「納品書」、参照用対象格Ｐ０６は「週報」等であるものとする。このような入力データとしての参照用対象格Ｐ０４〜Ｐ０６は、出力としての実行動作対象に連結している。
【００６４】
このような参照用対象格は、この出力解としての実行動作対象（例えば、「１２月７日１４時受信のメール」、「請求書」、「日報」、「仕様書」等）に対して３段階以上の連関度を通じて互いに連関しあっている。参照用対象格がこの連関度を介して左側に配列し、各実行動作対象が連関度を介して右側に配列している。連関度は、左側に配列された参照用対象格に対して、何れの実行動作対象と関連性が高いかの度合いを示すものである。換言すれば、この連関度は、各対象格が、いかなる実行動作対象に紐付けられる可能性が高いかを示す指標であり、対象格から最も確からしい実行動作対象を選択する上での的確性を示すものである。図６の例では、連関度としてｗ１３〜ｗ１９が示されている。図７の連関度の例は、図４のものと必ずしも同一とならないことは勿論である。
【００６５】
このような図６に示す３段階以上の連関度ｗ１３〜ｗ１９を予め取得しておく。つまり実際の探索解の判別を行う上で、対象格と、実行動作対象の何れが採用、評価されたか、過去のデータセットを蓄積しておき、これらを分析、解析することで図６に示す連関度を作り上げておく。
【００６６】
例えば、過去において参照用対象格Ｐ０４に対して実行動作対象として「請求書」が最も適合性が高いと判断され、評価されたものとする。このようなデータセットを集めて分析することにより、参照用対象格との連関度が強くなる。
【００６７】
この分析、解析は人工知能により行うようにしてもよい。かかる場合には、例えば対象Ｐ０４である場合に、過去のデータセットに基づいて分析する。対象格Ｐ０４である場合に、「１２月７日１４時受信のメール」の事例が多い場合には、この実行動作対象につながる連関度をより高く設定し、「請求書」の事例が多い場合には、この実行動作対象につながる連関度をより高く設定する。例えば参照用対象格Ｐ０４の例では、「１２月７日１４時受信のメール」と、「日報」にリンクしているが、以前の事例から「１２月７日１４時受信のメール」につながるｗ１３の連関度を７点に、「日報」につながるｗ１４の連関度を２点に設定している。
【００６８】
また、この連関度は、人工知能におけるニューラルネットワークのノードで構成されるものであってもよい。
【００６９】
かかる場合には、図７に示すように、入力データとして処理動作が入力され、出力データとして実行動作命令が出力され、入力ノードと出力ノードの間に少なくとも１以上の隠れ層が設けられ、機械学習させるようにしてもよい。入力ノード又は隠れ層ノードの何れか一方又は両方において上述した連関度が設定され、これが各ノードの重み付けとなり、これに基づいて出力の選択が行われる。そして、この連関度がある閾値を超えた場合に、その出力を選択するようにしてもよい。
【００７０】
このような連関度が、人工知能でいうところの学習済みデータとなる。このような学習済みデータを作った後に、実際にこれから新たに対象格から実行動作対象の探索を行うこととなる。かかる場合には、ステップＳ１２において抽出した対象格を新たに取得する。新たに取得した対象格に基づいて、これに見合う実行動作対象を探索する。かかる場合には、予め取得した図６（表１）に示す連関度を参照する。例えば、新たに取得した対象格がＰ０５と同一かこれに類似するものである場合には、連関度を介して「請求書」がｗ１５、「日報」が連関度ｗ１６で関連付けられている。かかる場合には、連関度の最も高い「請求書」を最適解として選択する。但し、最も連関度の高いものを最適解として選択することは必須ではなく、連関度は低いものの連関性そのものは認められる「日報」を最適解として選択するようにしてもよい。また、これ以外に矢印が繋がっていない出力解を選択してもよいことは勿論であり、連関度に基づくものであれば、その他いかなる優先順位で選択されるものであってもよい。
【００７１】
このときプログラムコード自動生成装置１の記憶部に類義語辞書を格納しておくようにしてもよい。類義語辞書には、プログラムコード自動生成装置１の記憶部に格納されている１以上の各参照用対象格ごとに、当該対象格が有する単語と、当該単語の１または２以上の類義語とが登録されている。具体的には、例えば、参照用対象格「日報」に対応付けて、「業務報告書」、「業務日誌」などが登録されていてもよい。そして、この類義語辞書を介して、新たに取得した対象格が参照用対象格と類似するか否かを判別することができる。仮に参照用対象格が「日報」である場合において、新たに取得した対象格が「業務日誌」である場合、類義語辞書において類似するものとして予め登録されていることから「日報」に対応するものと判断することが可能となる。
【００７２】
このような連関度を参照することにより、テキストデータから抽出した対象格がいかなる実行動作対象に該当するものであるのかを精度良く判別することができる。
【００７３】
図８、９は、参照用終点格に対する実際の実行動作対象が３段階以上の連関度を以って関連付けられた終点格テーブルを利用する例について示している。
【００７４】
この終点格テーブルでは、参照用終点格と、実行動作先との３段階以上の連関度が予め設定されていることが前提となる。入力データとして例えば参照用終点格Ｐ０７〜Ｐ０９であるものとする。例えば、この参照用終点格Ｐ０７は、「山田太郎のＰＣ」、参照用終点格Ｐ０８は「土井課長のＰＣ」、参照用終点格Ｐ０９は「取引先Ａ社の担当者Ｃ」等であるものとする。このような入力データとしての参照用終点格Ｐ０７〜Ｐ０９は、出力としての実行動作先に連結している。
【００７５】
このような参照用終点格は、この出力解としての実行動作先（例えば、「山田太郎のＰＣ」、「徳川課長のＰＣ」、「取引先Ａ社の担当者Ｂ」、「開発部の共用ＰＣ」等）に対して３段階以上の連関度を通じて互いに連関しあっている。参照用終点格がこの連関度を介して左側に配列し、各実行動作先が連関度を介して右側に配列している。連関度は、左側に配列された参照用終点格に対して、何れの実行動作先と関連性が高いかの度合いを示すものである。換言すれば、この連関度は、各終点格が、いかなる実行動作先に紐付けられる可能性が高いかを示す指標であり、終点格から最も確からしい実行動作先を選択する上での的確性を示すものである。図８の例では、連関度としてｗ１３〜ｗ１９が示されている。図８の連関度の例は、図４、６のものと必ずしも同一とならないことは勿論である。
【００７６】
このような図８に示す３段階以上の連関度ｗ１３〜ｗ１９を予め取得しておく。つまり実際の探索解の判別を行う上で、終点格と、実行動作先の何れが採用、評価されたか、過去のデータセットを蓄積しておき、これらを分析、解析することで図８に示す連関度を作り上げておく。
【００７７】
例えば、過去において参照用終点格Ｐ０７に対して実行動作先として「取引先Ａ社の担当者Ｂ」が最も適合性が高いと判断され、評価されたものとする。このようなデータセットを集めて分析することにより、この参照用終点格Ｐ０７との連関度が強くなる。
【００７８】
この分析、解析は人工知能により行うようにしてもよい。かかる場合には、例えば対象Ｐ０７である場合に、過去のデータセットに基づいて分析する。終点格Ｐ０７である場合に、「山田太郎のＰＣ」の事例が多い場合には、この実行動作先につながる連関度をより高く設定し、「取引先Ａ社の担当者Ｂ」の事例が多い場合には、この実行動作先につながる連関度をより高く設定する。例えば参照用終点格Ｐ０７の例では、「山田太郎のＰＣ」と、「取引先Ａ社の担当者Ｂ」にリンクしているが、以前の事例から「山田太郎のＰＣ」につながるｗ１３の連関度を７点に、「取引先Ａ社の担当者Ｂ」につながるｗ１４の連関度を２点に設定している。
【００７９】
また、この連関度は、人工知能におけるニューラルネットワークのノードで構成されるものであってもよい。
【００８０】
かかる場合には、図９に示すように、入力データとして処理動作が入力され、出力データとして実行動作命令が出力され、入力ノードと出力ノードの間に少なくとも１以上の隠れ層が設けられ、機械学習させるようにしてもよい。入力ノード又は隠れ層ノードの何れか一方又は両方において上述した連関度が設定され、これが各ノードの重み付けとなり、これに基づいて出力の選択が行われる。そして、この連関度がある閾値を超えた場合に、その出力を選択するようにしてもよい。
【００８１】
このような連関度が、人工知能でいうところの学習済みデータとなる。このような学習済みデータを作った後に、実際にこれから新たに終点格から実行動作先の探索を行うこととなる。かかる場合には、ステップＳ１２において抽出した終点格を新たに取得する。新たに取得した終点格に基づいて、これに見合う実行動作先を探索する。かかる場合には、予め取得した図９（表１）に示す連関度を参照する。例えば、新たに取得した終点格がＰ０８と同一かこれに類似するものである場合には、連関度を介して「徳川課長のＰＣ」がｗ１５、「取引先Ａ社の担当者Ｂ」が連関度ｗ１６で関連付けられている。かかる場合には、連関度の最も高い「徳川課長のＰＣ」を最適解として選択する。但し、最も連関度の高いものを最適解として選択することは必須ではなく、連関度は低いものの連関性そのものは認められる「取引先Ａ社の担当者Ｂ」を最適解として選択するようにしてもよい。また、これ以外に矢印が繋がっていない出力解を選択してもよいことは勿論であり、連関度に基づくものであれば、その他いかなる優先順位で選択されるものであってもよい。
【００８２】
このときプログラムコード自動生成装置１の記憶部に類義語辞書を格納しておくようにしてもよい。類義語辞書には、プログラムコード自動生成装置１の記憶部に格納されている１以上の各参照用終点格ごとに、当該終点格が有する単語と、当該単語の１または２以上の類義語とが登録されている。この類義語辞書を介して、新たに取得した終点格が参照用終点格と類似するか否かを判別するようにしてもよい。
【００８３】
このような連関度を参照することにより、テキストデータから抽出した終点格がいかなる実行動作先に該当するものであるのかを精度良く判別することができる。
【００８４】
このようにしてステップＳ１３、１４においてプログラムコードの関連付け解析を行うことで、抽出された指示動作に対応する実行動作命令と、抽出された対象格に対応する実行動作対象と、抽出された終点格に対応する実行動作先が絞り込まれることになる。
【００８５】
次にステップＳ１５におけるプログラムコードの作成方法の詳細について説明をする。プログラムコードの作成は、連関度を介して探索された実行動作対象、実行動作対象、実行動作先に基づいて、関連性の高いプログラムコードの基本構文を抽出する。そして、抽出したプログラムコードの基本構文に対して、連関度を介して探索された実行動作対象、実行動作対象、実行動作先を代入することにより行う。
【００８６】
表２は、プログラムコードの基本コードを探索する例を示している。
【００８７】
【表２】
0006958884.tif 000003
【００８８】
プログラムコードの基本構文は、実際にＰＣ等により各種処理動作を実行させるためのプログラムコードの原型である。このプログラムコードの基本構文に、必要な文言を代入することで、プログラムコードを完成させることができる。プログラムコードの基本構文の例としては、「INSERT INTO 登録先  VALUES {param1} ;」等であり、実行動作命令としての「INSERT」（登録する）があり、実行動作先としての「登録先」、実行動作対象としての（{param1}）が構文で既に出来上がっている。このような構文に対して、実際に連関度を介して探索された実行動作対象、実行動作対象、実行動作先をそれぞれ代入していくことでプログラムコードを完成させることができる。例えば「登録先」として、探索した実行動作先「山田太郎のＰＣ」を代入し、（{param1}）として、探索した売上のデータを代入することで、「売上のデータを山田太郎のＰＣに登録する」というプログラムコードが完成させることができる。
【００８９】
同様に、「プレゼンテーション用のスライドを会議室のディスプレイに表示する」というテキストデータの場合には、対象格としての「プレゼンテーション用のスライド」、終点格としての「会議室のディスプレイ」、指示動作としての「表示する」が抽出され、それぞれに応じた実行動作対象、実行動作対象、実行動作先が探索される。そして、この実行動作先に応じたプログラムコードの基本構文が同様に探索されることになる。
【００９０】
実際には、表２に示すコードテーブルを介して、プログラムコードの基本構文の探索を行う。コードテーブルでは、同一の行にある参照用実行動作対象、参照用実行動作対象、参照用実行動作先に対して、プログラムコードの基本構文が互いに対応する関係となる。例えば、参照用実行動作対象「請求データ」であり、参照用実行動作命令が「DB参照」であれば、これに対応するプログラムコードの基本構文は、「SELECT 請求額 」となる。
【００９１】
このとき、一つの参照用実行動作対象、参照用実行動作対象、参照用実行動作先の組み合わせが複数のプログラムコードの基本構文に対応する場合もあれば、逆に一つの基本構文が複数の参照用実行動作対象、参照用実行動作対象、参照用実行動作先の組み合わせに対応する場合もある。
【００９２】
このようなコードテーブルをプログラムコード自動生成装置１の記憶部に記憶させておくことで、プログラムコード自動生成装置１の演算部による演算の過程でこれを読み出し、参照することができる。
【００９３】
図１０は、コードテーブルについて人工知能による機械学習を通じてプロゴラムコードの基本構文を探索する例を示している。この図１０の例では、コードテーブルにおける入力変数としての参照用実行動作命令と、参照用実行動作対象、参照用実行動作先とを有する組み合わせを入力し、プログラムコードの基本構文が出力となる。具体的には、入力データとして例えば参照用実行動作命令（「プリンタ出力」、「ファイルを開く」等）と、参照用実行動作対象、参照用実行動作先であるものとする。このような入力データとしての、参照用実行動作命令に対して、参照用実行動作対象、参照用実行動作先が組み合わさったものが、中間ノード６１である。各中間ノード６１は、更に出力に連結している。この出力においては、出力解としての、プログラムコードの基本構文Ａ〜Ｅが表示されている。プログラムコードの基本構文Ａは、例えば、「SELECT 請求額 FROM 請求データ WHERE 会社= {param1} AND 請求月={param2};」であり、基本構文Ｂは、例えば「Write Line 商品リスト.dat {param1} ;」であるものとする。
【００９４】
参照用実行動作命令と、参照用実行動作対象、参照用実行動作先との各組み合わせ（中間ノード）は、この出力解としての、プログラムコードの基本構文に対して３段階以上の連関度を通じて互いに連関しあっている。参照用実行動作命令と、参照用実行動作対象、参照用実行動作先がこの連関度を介して左側に配列し、基本構文が連関度を介して右側に配列している。連関度は、左側に配列された実行動作命令等に対して、基本構文と関連性が高いかの度合いを示すものである。換言すれば、この連関度は、各参照用実行動作命令と、参照用実行動作対象、参照用実行動作先が、いかなるプログラムコードの基本構文に紐付けられる可能性が高いかを示す指標であり、実行動作命令等から最も確からしいプログラムコードの基本構文を選択する上での的確性を示すものである。
【００９５】
このような図１０に示す３段階以上の連関度ｗ１３〜ｗ２２を予め取得しておく。実際の探索解の判別を行う上で、参照用実行動作命令と、参照用実行動作対象、参照用実行動作先、並びにその場合のプログラムコードの基本構文が何れが好適であったか、過去のデータを蓄積しておき、これらを分析、解析することで連関度を作り上げておく。
【００９６】
この分析、解析は人工知能により行うようにしてもよい。かかる場合には、例えば参照用実行動作命令が「転送する」であり、参照用実行動作対象、参照用実行動作先が「売り上げのデータ、山田太郎のＰＣ」である場合に、そのプログラムコードの基本構文を過去のデータから分析する。基本構文Ｃの事例が多い場合には、この基本構文Ｃにつながる連関度をより高く設定し、基本構文Ｅの事例が多く、基本構文Ｃの事例が少ない場合には、基本構文Ｅにつながる連関度を高くし、基本構文Ｃにつながる連関度を低く設定する。例えば中間ノード６１ａの例では、基本構文Ａと基本構文Ｂの出力にリンクしているが、以前の事例から基本構文Ａにつながるｗ１３の連関度を７点に、基本構文Ｂにつながるｗ１４の連関度を２点に設定している。
【００９７】
また、この図１０に示す連関度は、人工知能におけるニューラルネットワークのノードで構成されるものであってもよい。即ち、このニューラルネットワークのノードが出力に対する重み付け係数が、上述した連関度に対応することとなる。またニューラルネットワークに限らず、人工知能を構成するあらゆる意思決定因子で構成されるものであってもよい。
【００９８】
図１０に示す連関度の例で、ノード６１ｂは、基本構文Ｃの連関度がｗ１５、基本構文Ｅの連関度がｗ１６となっている。
【００９９】
このような連関度が、人工知能でいうところの学習済みデータとなる。このような学習済みデータを作った後に、実際にこれから基本構文の探索を行う際において、上述した学習済みデータを利用して行うこととなる。かかる場合には、ステップＳ１３〜Ｓ１４において探索された実行動作命令と実行動作対象と、実行動作先を利用する。
【０１００】
このようにして新たに取得した実行動作命令と、実行動作対象と、実行動作先に基づいて、最適なプログラムコードの基本構文を探索する。かかる場合には、予め取得した図１０（表１）に示す連関度を参照する。例えば、新たに取得した実行動作命令が「ファイルを開く」である場合であって、実行動作対象と、実行動作先がＰ２１である場合には、連関度を介してノード６１ｄが関連付けられており、このノード６１ｄは、基本構文Ｃがｗ１９、基本構文Ｄが連関度ｗ２０で関連付けられている。かかる場合には、連関度の最も高い基本構文Ｃを最適解として選択する。但し、最も連関度の高いものを最適解として選択することは必須ではなく、連関度は低いものの連関性そのものは認められる基本構文Ｄを最適解として選択するようにしてもよい。また、これ以外に矢印が繋がっていない出力解を選択してもよいことは勿論であり、連関度に基づくものであれば、その他いかなる優先順位で選択されるものであってもよい。
【０１０１】
また、入力から伸びている連関度ｗ１〜ｗ１２の例を以下の表３に示す。
【０１０２】
【表３】
0006958884.tif 000004
【０１０３】
この入力から伸びている連関度ｗ１〜ｗ１２に基づいて中間ノード６１が選択されていてもよい。つまり連関度ｗ１〜ｗ１２が大きいほど、中間ノード６１の選択における重みづけを重くしてもよい。しかし、この連関度ｗ１〜ｗ１２は何れも同じ値としてもよく、中間ノード６１の選択における重みづけは何れも全て同一とされていてもよい。
【０１０４】
なお、本発明は、上述した実施の形態に限定されるものではない。実行動作対象、実行動作対象、実行動作先を探索し、プログラムコードの基本構文に、実行動作対象、実行動作対象、実行動作先を代入することにより、当該実行動作対象を当該実行動作先に対して当該実行動作命令に規定された実行動作を実行するためのプログラムコードを生成するが場合について例をとり説明をしたが、これに限定されるものではない。実行動作先の探索を省略し、当該実行動作対象を当該実行動作命令に規定された実行動作を実行するためのプログラムコードを生成するものであってもよい。
【０１０５】
また、抽出対象の格成分は、上述した対象格や終点格に限定されるものではなく、始点格、条件格を含めてもよい。
【０１０６】
始点格とは、対象格で規定される実行対象が生成される場所、実行対象の開始元を規定するものである。「ファイルＡを山田太郎から送って」という文言の場合、「送って」という動詞に対して、「ファイルＡ」が対象格として係り受けし、更にこれが山田太郎を始点として送られるものであるから、この始点格は「山田太郎」となる。
【０１０７】
このような始点格を利用する場合においても、図８に示す終点格テーブルにおける、参照用終点格が参照用始点格になり、探索するのは実行動作元となる。つまり参照用始点格に対する実際の実行動作元が３段階以上の連関度を以って関連付けられた始点格テーブルを記憶しておく。そして、テキストデータを分析し、抽出された始点格に対する実行動作元を、記憶されている始点格テーブルの連関度を参照することにより探索する。次に、プログラムコードの基本構文に、探索された実行動作元を代入することにより、当該実行動作対象を当該実行動作元から当該実行動作先に対して当該実行動作命令に規定された実行動作を実行するためのプログラムコードを生成する。
【０１０８】
また、条件格とは、対象格で規定される実行対象の動作を実行する条件を規定するものである。この条件としては、いつ（時間）やどのような方法で（方法）、いつから開始（動作開始条件）、いつまでに実行（動作終了条件）等である。
【０１０９】
例えば「ファイルＡを明日までに送って」という文言の場合、「送って」という動詞に対して、「ファイルＡ」が対象格として係り受けし、更に「明日までに」が条件格として係り受けするものであるから、この条件格は「明日までに」となる。
【０１１０】
このような始点格を利用する場合においても、図８に示す参照用終点格が参照用条件格になり、探索するのは実行動作条件となる。つまり参照用条件格に対する実際の実行動作条件が３段階以上の連関度を以って関連付けられた条件格テーブルを記憶しておく。そして、テキストデータを分析し、抽出された条件格に対する実行動作条件を、記憶されている条件格テーブルの連関度を参照することにより探索する。次に、プログラムコードの基本構文に、探索された実行動作条件を代入することにより、当該実行動作対象を当該実行動作先に対して当該実行動作条件に基づいて当該実行動作命令に規定された実行動作を実行することになる。
【０１１１】
なお、本発明は、上述した本実施形態に限定されるものではない。例えば図１１に示すように、実行動作テーブル、対象格テーブル、終点格テーブルのそれぞれに規定されている連関度に基づいて、ユーザに対して入力内容を確認するための確認文を生成するようにしてもよい。生成した確認文は、音声出力又は画像出力するようにしてもよい。つまり、ユーザからの入力内容から実行動作命令、実行動作対象、実行動作先のいずれかが好適に特定することができない場合には、改めてその意図をユーザに問い合わせるための確認文を生成し、意図を確認するプロセスを実行する。探索解としての実行動作命令、実行動作対象、実行動作先は、何れも有限であるのに対して、ユーザにより生成されるテキストデータの文言の種類は無限に近い。このため、ユーザから生成されるテキストデータから抽出した指示動作や格成分によっては、実行動作命令、実行動作対象、実行動作先を探索することができない場合がある。また、ユーザが方言を使う場合、その方言の内容によっては実行動作命令、実行動作対象、実行動作先を連関度を通じて絞り込めない場合がある。かかる場合には、改めてその意図をユーザに問い合わせるための確認文を生成する。確認文の生成、通知に対してユーザから改めてテキストデータの再入力を受け付けることにあるが、このプロセスは、いわゆるチャット形式で行うようにしてもよい。
【０１１２】
確認文の生成は、実行動作テーブル、対象格テーブル、終点格テーブルを介して探索した実行動作命令、実行動作対象、実行動作先にそれぞれ紐付けられていた連関度に基づいて行ってもよい。仮に実行動作テーブルにおいて「ファイルを開く」という実行動作命令が探索されたが、これに紐付いている連関度ｗ１３が１０段階評価の中で５である場合、正直なところ、それほど強い連関度の下で実行動作命令が決定されたものではなく、ユーザの意図を汲み取った探索解になっていない可能性がある。つまり、実行動作命令、実行動作対象、実行動作先を連関度を通じて絞り込めないケースである。かかる場合には、確認文を生成し、ユーザの意図を確認し、再入力を受け付ける。そして受け付けた再入力の内容に基づいて動揺に解探索を行うようにしてもよい。このように実行動作命令、実行動作対象、実行動作先にそれぞれ紐付けられていた連関度がある一定の閾値未満である場合に、ユーザの意図を反映した探索が行われていないものと判断し、確認文を生成するようにしてもよい。この確認文は、予め例文を複数種類準備しておき、これに対して探索解に応じたものを例文中に代入することで行うようにしてもよい。例えば、実行動作命令「転送する」について本当にユーザが意図しているか否かを確認したい場合には、「ファイルＡを●●されたいということですか？」の●●の部分にこの実行動作命令「転送（する）」を代入することで確認文を生成するようにしてもよい。
【０１１３】
また、このような閾値を設定する代わりに、各テーブルを利用して探索した実行動作命令、実行動作対象、実行動作先にそれぞれ紐付けられていた連関度を互いに比較することで確認文を生成するようにしてもよい。仮に探索した実行動作命令、実行動作対象、実行動作先にそれぞれ紐付けられていた連関度を互いに比較したところ、その探索した実行動作対象に紐付けられている連関度が最も低い場合には、この実行動作対象を確認するための確認文を生成して出力するようにしてもよい。
【０１１４】
また、ユーザの音声にノイズが重畳していることから、これをテキストデータに落とし込んだ場合、そもそも類義語辞典にそのような文言が存在せず、参照用指示動作、参照用対象格、参照用終点格との照合ができない場合が出てくる。このように参照用指示動作、参照用対象格、参照用終点格との照合ができない場合も、同様に確認文を生成し、ユーザに出力するようにしてもよい。この確認文の生成は、照合ができない参照用指示動作、参照用対象格、参照用終点格毎に例文を作成して記憶しておき、実際に照合ができなかった参照用指示動作、参照用対象格、参照用終点格に応じて例文を読み出して出力するようにしてもよい。
【０１１５】
連関度が相対的に引く場合には、ユーザの意図を反映した探索が行われていないものと判断し、確認文を生成することでその意図を確認することが可能となる。
【０１１６】
［実施形態２］
次に、図１２を用いて、本発明の実施形態２におけるプログラムコード自動生成システムについて説明する。図１２は、実施形態２における実行動作テーブルの例を示す図である。上述の実施形態１におけるプログラムコード自動生成システム１００と相違する点は、主に、実行動作テーブルで人工知能を用いないことなので、その点について主に説明し、同一構成は同一符号を付し、説明を省略する。
【０１１７】
この実施形態２におけるプログラムコード自動生成システムでは、実行動作テーブルにおいて、例えば、入力側の参照用指示動作Ｐ０１−１だと、出力側の実行動作命令が「ファイルを開く」となるように、入力側の参照用指示動作のデータと、出力側の実行動作命令のデータとが、それぞれ紐づけられたデータセットとして用意されていることが、実施形態１におけるプログラムコード自動生成システム１００と異なる。なお、図１２の実行動作テーブルは、実施形態１における図４の実行動作テーブルに対応するものを一例として示したものである。
【０１１８】
［実施形態３］
次に、図１３を用いて、本発明の実施形態３におけるプログラムコード自動生成システムについて説明する。図１３は、実施形態３における対象格テーブルの例を示す図である。上述の実施形態１におけるプログラムコード自動生成システム１００と相違する点は、主に、対象格テーブルで人工知能を用いないことなので、その点について主に説明し、同一構成は同一符号を付し、説明を省略する。
【０１１９】
この実施形態３におけるプログラムコード自動生成システムでは、対象格テーブルにおいて、例えば、入力側の参照用対象格Ｐ０４−１だと、出力側の実行動作対象が「１２月７日１４時受信」となるように、入力側の参照用対象格のデータと、出力側の実行動作対象のデータとが、それぞれ紐づけられたデータセットとして用意されていることが、実施形態１におけるプログラムコード自動生成システム１００と異なる。なお、図１３の対象格テーブルは、実施形態１における図６の対象格テーブルに対応するものを一例として示したものである。
【０１２０】
［実施形態４］
次に、図１２及び図１３を用いて、本発明の実施形態４におけるプログラムコード自動生成システムについて説明する。図１２は、実施形態４における実行動作テーブルの例を示す図である。図１３は、実施形態４における対象格テーブルの例を示す図である。上述の実施形態１におけるプログラムコード自動生成システム１００と相違する点は、主に、実行動作テーブル及び対象格テーブルで人工知能を用いないことなので、その点について主に説明し、同一構成は同一符号を付し、説明を省略する。
【０１２１】
この実施形態４におけるプログラムコード自動生成システムでは、実行動作テーブルにおいて、例えば、入力側の参照用指示動作Ｐ０１−１だと、出力側の実行動作命令が「ファイルを開く」となるように、入力側の参照用指示動作のデータと、出力側の実行動作命令のデータとが、それぞれ紐づけられたデータセットとして用意されている。
【０１２２】
また、この実施形態４におけるプログラムコード自動生成システムでは、対象格テーブルにおいて、例えば、入力側の参照用対象格Ｐ０４−１だと、出力側の実行動作対象が「１２月７日１４時受信」となるように、入力側の参照用対象格のデータと、出力側の実行動作対象のデータとが、それぞれ紐づけられたデータセットとして用意されている。
【０１２３】
この実施形態４におけるプログラムコード自動生成システムでは、これらのことが、実施形態１におけるプログラムコード自動生成システム１００と異なる。なお、図１２の実行動作テーブルは、実施形態１における図４の実行動作テーブルに対応するものを一例として示したものであり、図１３の対象格テーブルは、実施形態１における図６の対象格テーブルに対応するものを一例として示したものである。
【０１２４】
なお、実施形態１〜４においては、図８の人工知能を用いた終点格テーブルを、図１４のような、例えば、入力側の参照用終点格Ｐ０７−１だと、出力側の実行動作先が「山田太郎のＰＣ」となるように、入力側の参照用終点格のデータと、出力側の実行動作先のデータとが、それぞれ紐づけられたデータセットとして用意された終点格テーブルに置き換えて実施してもよい。
【符号の説明】
【０１２５】
１  プログラムコード自動生成装置
２  端末
３  サーバ
４  通信網
６１  中間ノード
１００  プログラムコード自動生成システム
【要約】
【課題】プログラム開発の仕組みを根本的に変え、近い将来、慢性的なＳＥ技術者不足が社会に甚大な影響を与える事を回避する。
【解決手段】音声又は入力端末を介してテキストデータの入力を受け付ける受付手段と、テキストデータを自然言語解析することにより、指示動作と、対象格からなる格成分を抽出する抽出手段と、実行動作テーブルと、対象格テーブルとを記憶する記憶手段と、指示動作に対応する実行動作命令と、対象格に対応する実行動作対象とを、実行動作テーブル、対象格テーブルを参照することにより探索する探索手段と、プログラムコードの基本構文に、上記探索手段により探索された実行動作命令、実行動作対象を代入することにより、実行動作対象を実行動作命令に規定された実行動作を実行するためのプログラムコードを生成するコード生成手段とを備える。
【選択図】図２【図１】
0006958884.tif 000005
【図２】
0006958884.tif 000006
【図３】
0006958884.tif 000007
【図４】
0006958884.tif 000008
【図５】
0006958884.tif 000009
【図６】
0006958884.tif 000010
【図７】
0006958884.tif 000011
【図８】
0006958884.tif 000012
【図９】
0006958884.tif 000013
【図１０】
0006958884.tif 000014
【図１１】
0006958884.tif 000015
【図１２】
0006958884.tif 000016
【図１３】
0006958884.tif 000017
【図１４】
0006958884.tif 000018