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