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