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