IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ソプラ株式会社の特許一覧

特開2022-138568プログラムコード自動生成装置及びプログラム
<>
  • 特開-プログラムコード自動生成装置及びプログラム 図1
  • 特開-プログラムコード自動生成装置及びプログラム 図2
  • 特開-プログラムコード自動生成装置及びプログラム 図3
  • 特開-プログラムコード自動生成装置及びプログラム 図4
  • 特開-プログラムコード自動生成装置及びプログラム 図5
  • 特開-プログラムコード自動生成装置及びプログラム 図6
  • 特開-プログラムコード自動生成装置及びプログラム 図7
  • 特開-プログラムコード自動生成装置及びプログラム 図8
  • 特開-プログラムコード自動生成装置及びプログラム 図9
  • 特開-プログラムコード自動生成装置及びプログラム 図10
  • 特開-プログラムコード自動生成装置及びプログラム 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022138568
(43)【公開日】2022-09-26
(54)【発明の名称】プログラムコード自動生成装置及びプログラム
(51)【国際特許分類】
   G06F 8/30 20180101AFI20220915BHJP
   G06F 40/30 20200101ALI20220915BHJP
   G06N 3/02 20060101ALI20220915BHJP
   G06N 20/00 20190101ALI20220915BHJP
【FI】
G06F8/30
G06F40/30
G06N3/02
G06N20/00
【審査請求】有
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2021038519
(22)【出願日】2021-03-10
(11)【特許番号】
(45)【特許公報発行日】2021-10-13
(71)【出願人】
【識別番号】399073034
【氏名又は名称】ソプラ株式会社
(74)【代理人】
【識別番号】100120868
【弁理士】
【氏名又は名称】安彦 元
(72)【発明者】
【氏名】白川 基光
【テーマコード(参考)】
5B091
5B376
【Fターム(参考)】
5B091AA15
5B091CA02
5B091CA12
5B091CB02
5B091CB09
5B091EA01
5B376BC14
5B376BC31
5B376BC38
5B376BC46
5B376BC73
(57)【要約】
【課題】業務を実行するためのプログラムコードを生成する際において、極めて容易に、しかも人手を介することなく自動的に生成する。
【解決手段】文書からテキストデータを抽出するテキストデータ抽出ステップと、テキストデータとその意味内容との連関度を以って関連付けられた第1の学習済みモデルを参照し、上記テキストデータ抽出ステップにおいて抽出したテキストデータに対して関連性の高い意味内容を探索する意味内容探索手段と、意味内容とプログラムコードの基本構文とが連関度を以って関連付けられた第2の学習済みモデルを参照し、上記意味内容探索ステップにおいて探索した意味内容に基づいて、関連性の高いプログラムコードの基本構文を抽出するコード抽出ステップとをコンピュータに実行させる。
【選択図】図6
【特許請求の範囲】
【請求項1】
文書からテキストデータを抽出するテキストデータ抽出手段と、
テキストデータとその意味内容とが互いに関連付けられた第1の連関性を参照し、上記テキストデータ抽出手段により抽出されたテキストデータに対して関連性の高い意味内容を探索する意味内容探索手段と、
意味内容とプログラムコードの基本構文とが互いに関連付けられた第2の連関性を参照し、上記意味内容探索手段により探索された意味内容に基づいて、関連性の高いプログラムコードの基本構文を抽出するコード抽出手段とを備えること
を特徴とするプログラムコード自動生成装置。
【請求項2】
上記意味内容探索手段は、テキストデータとその意味内容との3段階以上の連関度を以って関連付けられた上記第1の連関性を参照し、
上記コード抽出手段は、意味内容とプログラムコードの基本構文とが3段階以上の連関度を以って関連付けられた上記第2の連関性を参照すること
を特徴とする請求項1記載のプログラムコード自動生成装置。
【請求項3】
上記意味内容探索手段及び上記コード抽出手段は、人工知能におけるニューラルネットワークのノードの各出力の重み付け係数に対応する上記連関度を利用すること
を特徴とする請求項2記載のプログラムコード自動生成装置。
【請求項4】
上記テキストデータに含まれる各文章や各記号に対して予め意味内容が割り当てられたデータセットに基づいて上記第1の連関性を更新する更新手段をさらに備え、
上記テキストデータ抽出手段は、テキストデータに含まれる各文章や各記号を抽出し、
上記意味内容探索手段は、上記更新手段により更新された第1の連関性を参照し、上記テキストデータ抽出手段により抽出されたテキストデータに含まれる各文章や各記号に対して関連性の高い意味内容を探索すること
を特徴とする請求項1~3のうち何れか1項記載のプログラムコード自動生成装置。
【請求項5】
上記コード抽出手段により抽出されたプログラムコードの基本構文に、上記テキストデータ抽出手段が受け付けたテキストデータから抽出した名詞又は名詞句を代入することによりプログラムコードを生成するコード生成手段とを備えること
を特徴とする請求項1~4のうち何れか1項記載のプログラムコード自動生成装置。
【請求項6】
文書からテキストデータを抽出するテキストデータ抽出ステップと、
テキストデータとその意味内容とが互いに関連付けられた第1の連関性を参照し、上記テキストデータ抽出ステップにおいて抽出したテキストデータに対して関連性の高い意味内容を探索する意味内容探索ステップと、
意味内容とプログラムコードの基本構文とが互いに関連付けられた第2の連関性を参照し、上記意味内容探索ステップにおいて探索した意味内容に基づいて、関連性の高いプログラムコードの基本構文を抽出するコード抽出ステップとをコンピュータに実行させること
を特徴とするプログラムコード自動生成プログラム。
【請求項7】
上記意味内容探索ステップは、テキストデータとその意味内容との3段階以上の連関度を以って関連付けられた上記第1の連関性を参照し、
上記コード抽出ステップは、意味内容とプログラムコードの基本構文とが3段階以上の連関度を以って関連付けられた上記第2の連関性を参照すること
を特徴とする請求項6記載のプログラムコード自動生成プログラム。
【請求項8】
上記意味内容探索ステップ及び上記コード抽出ステップでは、人工知能におけるニューラルネットワークのノードの各出力の重み付け係数に対応する上記連関度を利用すること
を特徴とする請求項7記載のプログラムコード自動生成プログラム。
【請求項9】
上記テキストデータに含まれる各文章や各記号に対して予め意味内容が割り当てられたデータセットに基づいて上記第1の学習済みモデルを更新する更新ステップをさらに有し、
上記テキストデータ抽出ステップでは、テキストデータに含まれる各文章や各記号を抽出し、
上記意味内容探索ステップでは、上記更新ステップにより更新された第1の学習済みモデルを参照し、上記テキストデータ抽出ステップにおいて抽出したテキストデータに含まれる各文章や各記号に対して関連性の高い意味内容を探索すること
を特徴とする請求項6~8のうち何れか1項記載のプログラムコード自動生成プログラム。
【請求項10】
上記コード抽出ステップにおいて抽出したプログラムコードの基本構文に、上記テキストデータ抽出ステップにおいて受け付けたテキストデータから抽出した名詞又は名詞句を代入することによりプログラムコードを生成するコード生成ステップを更に有すること
を特徴とする請求項6~9のうち何れか1項記載のプログラムコード自動生成プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、文書に含まれるテキストデータの意味内容に沿ったプログラムコードを自動生成する上で好適なプログラムコード自動生成装置及びプログラムに関する。
【背景技術】
【0002】
新規業務についてプログラムにより自動的に実行させる場合には、プログラムを作成する作業が必要となる。プログラムの作成は、従来において、その新規業務の要件定義を行い、システム設計を行い、更にプログラムコードの開発を行った後、これをテスト、検証するプロセスが発生する。このようなプログラムコードは、新規業務が生まれる都度、人手によりコーディングするのが通常であった。
【0003】
しかしながら、近年のIT化の急速な進展に伴い、新規業務は多岐にわたり、これらが新たに生まれる頻度も増している。
【0004】
また、社内の簡単な作業一つとっても状況によっては随時変更を施さなければならないケースがある。例えば、「社員〇〇の今月の残業時間を上司に通知する」という社内業務をプログラムコード化し、自動的に行えるようになったとしても、「社員〇〇」、「上司」が異動等で変更する都度、そのプログラムコードは書き換えなければならなくなる。
【0005】
このように新規業務の増大と、業務内容の変更の都度、人手によりプログラムコードを生成することになると作業量が膨大になり、作業者の作業負担が増大してしまうばかりか、作業の遅延が生じれば業務の流れを阻害してしまうことにもなりかねないという問題点があった。
【0006】
このため、従来においては、業務をコンピュータ側のシステムにおいて自動的に実行していくために、その業務を実行するためのプログラムコードを生成する際において、極めて容易に、しかも人手を介することなく自動的に生成することが可能なプログラムコード自動生成装置が提案されている(例えば、特許文献1参照。)。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特許6753598号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、上述した特許文献1の開示技術は、あくまで、会話文を受け付け、この会話文が意図するインテントを介してプログラムコードの基本構文を探索するものである。つまり言葉で発せられた一フレーズに対応するプログラムコードを自動生成することに特化した技術である。このため、この特許文献1の開示技術によれば、設計書やマニュアル、仕様書、各種説明書や企画書等をはじめとする各種文書に記載されている何千、何万もの文を自動的にプログラムコード化することができないという問題点があった。
【0009】
このような文書に記載されている各文に対応するプログラムコードを自動的に生成することができれば、今まで人手に頼っていたオペレーションをすべて自動化できる途も開ける。このため、文書を単に読み込ませることで自動的かつ正確にその意味内容に応じたプログラムコードを生成する技術に対する要望が近年高まっている反面、これに応えることができる技術がいまだ提案されていないのが現状であった。
【0010】
そこで、本発明は、上述した問題点に鑑みて案出されたものであり、その目的とするところは、文書を単に読み込ませることで自動的かつ正確にその意味内容に応じたプログラムコードを生成することが可能なプログラムコード自動生成装置及びプログラムを提供することにある。
【課題を解決するための手段】
【0011】
第1の発明は、文書からテキストデータを抽出するテキストデータ抽出手段と、テキストデータとその意味内容とが互いに関連付けられた第1の連関性を参照し、上記テキストデータ抽出手段により抽出されたテキストデータに対して関連性の高い意味内容を探索する意味内容探索手段と、意味内容とプログラムコードの基本構文とが互いに関連付けられた第2の連関性を参照し、上記意味内容探索手段により探索された意味内容に基づいて、関連性の高いプログラムコードの基本構文を抽出するコード抽出手段とを備えることを特徴とする。
【0012】
第2の発明は、第1の発明において、上記意味内容探索手段は、テキストデータとその意味内容との3段階以上の連関度を以って関連付けられた上記第1の連関性を参照し、上記コード抽出手段は、意味内容とプログラムコードの基本構文とが3段階以上の連関度を以って関連付けられた上記第2の連関性を参照することを特徴とする。
【0013】
第3の発明は、第2の発明において、上記意味内容探索手段及び上記コード抽出手段は、人工知能におけるニューラルネットワークのノードの各出力の重み付け係数に対応する上記連関度を利用することを特徴とする。
【0014】
第4の発明は、第1の発明~第3の発明の何れかにおいて、上記テキストデータに含まれる各文章や各記号に対して予め意味内容が割り当てられたデータセットに基づいて上記第1の連関性を更新する更新手段をさらに備え、上記テキストデータ抽出手段は、テキストデータに含まれる各文章や各記号を抽出し、上記意味内容探索手段は、上記更新手段により更新された第1の連関性を参照し、上記テキストデータ抽出手段により抽出されたテキストデータに含まれる各文章や各記号に対して関連性の高い意味内容を探索することを特徴とする。
【0015】
第5の発明は、第1の発明~第4の発明の何れかにおいて、上記コード抽出手段により抽出されたプログラムコードの基本構文に、上記テキストデータ抽出手段が受け付けたテキストデータから抽出した名詞又は名詞句を代入することによりプログラムコードを生成するコード生成手段とを備えることを特徴とする。
【0016】
第6の発明は、文書からテキストデータを抽出するテキストデータ抽出ステップと、テキストデータとその意味内容とが互いに関連付けられた第1の連関性を参照し、上記テキストデータ抽出ステップにおいて抽出したテキストデータに対して関連性の高い意味内容を探索する意味内容探索ステップと、意味内容とプログラムコードの基本構文とが互いに関連付けられた第2の連関性を参照し、上記意味内容探索ステップにおいて探索した意味内容に基づいて、関連性の高いプログラムコードの基本構文を抽出するコード抽出ステップとをコンピュータに実行させることを特徴とする。
【0017】
第7の発明は、第6の発明において、上記意味内容探索ステップは、テキストデータとその意味内容との3段階以上の連関度を以って関連付けられた上記第1の連関性を参照し、上記コード抽出ステップは、意味内容とプログラムコードの基本構文とが3段階以上の連関度を以って関連付けられた上記第2の連関性を参照することを特徴とする。
【0018】
第8の発明は、第7の発明において、上記意味内容探索ステップ及び上記コード抽出ステップでは、人工知能におけるニューラルネットワークのノードの各出力の重み付け係数に対応する上記連関度を利用することを特徴とする。
【0019】
第9の発明は、第6の発明~第8の発明において、上記テキストデータに含まれる各文章や各記号に対して予め意味内容が割り当てられたデータセットに基づいて上記第1の学習済みモデルを更新する更新ステップをさらに有し、上記テキストデータ抽出ステップでは、テキストデータに含まれる各文章や各記号を抽出し、上記意味内容探索ステップでは、上記更新ステップにより更新された第1の学習済みモデルを参照し、上記テキストデータ抽出ステップにおいて抽出したテキストデータに含まれる各文章や各記号に対して関連性の高い意味内容を探索することを特徴とする。
【0020】
第10の発明は、第6の発明~第9の発明の何れかにおいて、上記コード抽出ステップにおいて抽出したプログラムコードの基本構文に、上記テキストデータ抽出ステップにおいて受け付けたテキストデータから抽出した名詞又は名詞句を代入することによりプログラムコードを生成するコード生成ステップを更に有することを特徴とする。
【発明の効果】
【0021】
上述した発明によれば、設計書やマニュアル、仕様書、各種説明書や企画書等をはじめとする各種文書に記載されている何千、何万もの文を極めて容易に、しかも人手を介することなく自動的にプログラムコード化することが可能となる。
【図面の簡単な説明】
【0022】
図1図1は、実施の形態におけるプログラムコード自動生成システムのブロック図である。
図2図2(a)及び図2(b)は、プログラムコード自動生成装置1の構成の一例を示す模式図である。
図3図3は、第1の学習済みモデルの例を示す図である。
図4図4は、第1の学習済みモデルについて人工知能による機械学習を利用するコードテーブルの例を示す図である。
図5図5は、入力データとしてテキストデータが入力され、出力データとして意味内容が出力されるモデルを示す図である。
図6図6は、第2の学習済みモデルの例を示す図である。
図7図7は、第2の学習済みモデルについて人工知能による機械学習を利用する例を示す図である。
図8図8は、入力データとして意味内容が入力され、出力データとしてプログラムコードが出力されるモデルを示す図である。
図9図9は、本発明を適用したプログラムコード自動生成システムの動作について説明するためのフローチャートである。
図10図10は、第1の連関性、第2の連関性について説明するための図である。
図11図11は、文書(設計書やドキュメント)からテキストデータを抽出する例を示す図である。
【発明を実施するための形態】
【0023】
以下、本発明の実施形態におけるプログラムコード自動生成システムの一例について、図面を参照しながら説明する。
【0024】
(実施形態:プログラムコード自動生成システム100)
図1図2を参照して、本実施形態におけるプログラムコード自動生成システム100の構成の一例について説明する。図1は、本実施形態におけるプログラムコード自動生成システム100の全体の構成を示す模式図である。
【0025】
プログラムコード自動生成システム100は、主に定型作業等のような業務の補助(例えば業務の自動化処理)を実現するためのプログラムコードの生成のために利用される。プログラムコード自動生成システム100は、業務を実行するためのプログラムコードを自動生成することで、企業内における各業務(例えば、マニュアルに記載された業務フローの実行、作業者の進捗状況の収集、タスク管理等)をコンピュータ上で自動的に行うことができる。プログラムコード自動生成システム100は、特にこのプログラムコードの自動生成を、テキストデータに基づいて設定することができ、システム管理者等のような専門的知識を有しないユーザ(例えばプログラムコード自動生成システム100を利用して業務を管理する利用者等)においても、各文書に記載された業務フローをコンピュータに自動的に行わせるためのプログラムコードの自動生成を容易に実現することが可能となる。
【0026】
プログラムコード自動生成システム100は、例えば図1に示すように、プログラムコード自動生成装置1を備え、ユーザがプログラムコード自動生成装置1を利用してもよい。プログラムコード自動生成システム100は、例えば通信網4を介してプログラムコード自動生成装置1と接続された端末2を備え、ユーザが端末2を介してプログラムコード自動生成装置1を利用してもよい。プログラムコード自動生成システム100は、例えば通信網4を介してプログラムコード自動生成装置1と接続されたサーバ3を備え、ユーザがプログラムコード自動生成装置1又は端末2を介してサーバ3との各種情報の送受信により、各手段を実現してもよい。
【0027】
<プログラムコード自動生成装置1>
図2(a)は、プログラムコード自動生成装置1の構成の一例を示す模式図である。プログラムコード自動生成装置1として、例えばパーソナルコンピュータ(PC)、スマートフォン、タブレット端末等の公知の電子機器が用いられる。プログラムコード自動生成装置1は、例えば筐体10と、CPU(Central Processing Unit)101と、ROM(Read Only Memory)102と、RAM(Random Access Memory)103と、保存部104と、I/F105~107と、入力部108と、報知部109とを備える。各構成101~107は、内部バス110により接続される。
【0028】
CPU101は、プログラムコード自動生成装置1全体を制御する。ROM102は、CPU101の動作コードを格納する。RAM103は、CPU101の動作時に使用される作業領域である。保存部104は、処理用データ等の各種情報が保存される。保存部104として、例えばHDD(Hard Disk Drive)、SSD(Solid State Drive)等が用いられる。
【0029】
I/F105は、端末2、サーバ3、通信網4等との各種情報の送受信を行うためのインターフェースである。I/F106は、入力部108との各種情報の送受信を行うためのインターフェースである。I/F107は、報知部109との各種情報の送受信を行うためのインターフェースである。
【0030】
入力部108として、キーボードが用いられるほか、カメラやスキャナ等の装置が用いられてもよい。プログラムコード自動生成装置1を利用するユーザは、例えば入力部108を介して各種文書に記載されているテキストデータを読み取る。ここでいう文書とは、設計書やマニュアル、仕様書、各種説明書や企画書等をはじめとする文書であるが、これに限定されるものではなく、個人または企業内でドキュメントされたあらゆる文書が含まれる。また、実際に不特定多数が読むことができる状態に置かれる刊行物のみならず、特定人のみにしか読むことができない文書も含まれる。また手書きで書かれたノートも文書に含まれる。これら文書は紙媒体に印刷された印刷物を介して提供されるものに限定されるものではなく、電子データとして提供されるものであってもよい。
【0031】
入力部108は、このような文書に記載されたデータが入力されるあらゆるデバイスで構成される。文書が紙媒体に印刷された印刷物として提供されるものであれば、その印刷物にされたテキストデータを読み取ることが可能なスキャナやOCRソフトで構成されている。また文書が電子データで構成されるものであれば、その電子データに記載されているテキストデータを読み取り可能なOCRソフトで構成されていてもよい。
【0032】
報知部109は、保存部104に保存された表示用データ等の各種情報や、プログラムコード自動生成装置1の処理状況などを表示する。報知部109として、ディスプレイが用いられるほか、例えばスピーカが用いられてもよい。
【0033】
なお、I/F105~I/F107として、例えば同一のものが用いられてもよく、各I/F105~I/F107として、例えばそれぞれ複数のものが用いられてもよい。また、報知部109としてタッチパネル式のディスプレイが用いられる場合、報知部109が入力部108を含む構成としてもよい。
【0034】
図2(b)は、プログラムコード自動生成装置1の機能の一例を示す模式図である。プログラムコード自動生成装置1は、取得部11と、演算部12とを備え、例えば実行部13と、記憶部14と、出力部15と、インテント格納部16とを備えてもよい。なお、図2(b)に示した各機能は、CPU101が、RAM103を作業領域として、保存部104等に記憶されたプログラムを実行することにより実現される。また、各機能の一部は、人工知能により制御されてもよい。ここで、「人工知能」は、いかなる周知の人工知能技術に基づくものであってもよい。
【0035】
<取得部11>
取得部11は、文書に記載されているテキストデータを取得する。取得部11は、例えば端末2又は入力部108を介して文書から入力されたテキストデータを取得する。例えば端末2又は入力部108を介して、文書からテキストデータを抽出した場合、取得部11は、公知のOCR技術を用いてテキストデータの文字を認識する。なお、文字認識技術は、例えば通信網4を介して、クラウド型の文字認識技術を用いてもよい。
【0036】
<演算部12>
演算部12は、データベースを参照し、取得したテキストデータに基づいて各種処理動作、演算を実行する。演算部12は、受け付けたテキストデータについて形態素解析することにより、動詞や名詞、格成分等を始めとする文の個々の構成要素を抽出する。演算部12は、記憶部14を参照し、テキストデータに応じたプログラムコードの基本構文を抽出する。また演算部12は、抽出されたプログラムコードの基本構文に、テキストデータを構成する文字列から抽出した名詞又は名詞句を代入することによりプログラムコードを生成する。
【0037】
<実行部13>
実行部13は、演算部12において生成されたプログラムコードに基づき、業務処理を実行する。業務処理として、例えばタスクの内容や期限に基づき担当者へのメール送信、勤務管理、タスク進行履歴更新等の定型作業が挙げられ、業務処理情報をプログラムとしてコンピュータに実行させることができる内容が用いられる。
【0038】
<記憶部14>
記憶部14は、取得部11を介して取得したテキストデータを一時的に保存する。この記憶部14に記憶されたテキストデータは、演算部12や実行部13等による制御に基づき読み出され、また更新される場合もある。記憶部14は、第1の学習済みモデルと、第2の学習済みモデルの少なくとも2つの学習済みモデルを保持している。
【0039】
図3は、第1の学習済みモデルの例を示している。第1の学習済みモデルは、文書から抽出したテキストデータとその意味内容との3段階以上の連関度を以って関連付けられた学習済みモデルである。この第1の学習済みモデルでは、テキストデータが入力であり、意味内容が出力となる。テキストデータの種類としてはとしては文章、文章と記号の組み合わせ、或いは記号のみで構成される。
【0040】
例えば、入力側のテキストデータとして、「“A”ファイルを“B”ファイルにして、“C”フォルダに配置する」とある場合に、出力側として「“A”ファイルを“B”ファイル名に変更し、Cフォルダにコピーする」という意味内容が最も高い連関度をもって関連付けられている。
【0041】
第1の学習済みモデルについて人工知能による機械学習やディープラーニングを利用する場合には、例えば図4に示すように、テキストデータと、意味内容との3段階以上の連関度が予め設定されていることが前提となる。入力データとして例えばテキストデータP01~P03であるものとする。例えば、このテキストデータP01は、「“A”ファイルを“B”ファイルにして、“C”フォルダに配置する」、P02は、「“A”ファイルに“B”ファイルを合わせる」、P03は、「“A”ファイルと“B”ファイルを出す」等であるものとする。このような入力データとしてのテキストデータP01~P03は、出力としての意味内容R1~R4にそれぞれ連結している。
【0042】
なお、意味内容は、上述したように実際に人間が読んで解釈できるような文字列で構成される場合に限定されるものではなく、意味内容を示す記号で表現されていてもよいし、媒介変数等で表現されるものであってもよい。
【0043】
テキストデータは、この出力解としての意味内容(例えば、意味内容R1として「“A”ファイルを“B”ファイル名に変更し、Cフォルダにコピーする」等)に対して3段階以上の連関度を通じて互いに連関しあっている。テキストデータがこの連関度を介して左側に配列し、各意味内容が連関度を介して右側に配列している。連関度は、左側に配列されたテキストデータに対して、何れの意味内容と関連性が高いかの度合いを示すものである。換言すれば、この連関度は、各テキストデータが、いかなる意味内容に紐付けられる可能性が高いかを示す指標であり、テキストデータから最も確からしい意味内容を選択する上での的確性を示すものである。図4の例では、連関度としてw13~w19が示されている。このw13~w19は以下の表1に示すように10段階で示されており、10点に近いほど、中間ノードとしての各組み合わせが出力としての意味内容と互いに関連度合いが高いことを示しており、逆に1点に近いほど中間ノードとしての各組み合わせが出力としての意味内容と互いに関連度合いが低いことを示している。
【0044】
【表1】
【0045】
このような図4に示す3段階以上の連関度w13~w19を予め取得しておく。つまり実際の探索解の判別を行う上で、テキストデータP01~P03と、意味内容R1~R4の何れが採用、評価されたか、過去のデータセットを蓄積しておき、これらを分析、解析することで図4に示す連関度を作り上げておく。
【0046】
例えば、過去においてテキストデータP01に対して意味内容R1が最も適合性が高いと判断され、評価されたものとする。このようなデータセットを集めて分析することにより、当該意味内容との連関度が強くなる。
【0047】
この分析、解析は人工知能により行うようにしてもよい。かかる場合には、例えばテキストデータP01である場合に、意味内容R1の事例が多い場合には、この意味内容R1につながる連関度をより高く設定し、意味内容R2の事例が多い場合には、この意味内容R2につながる連関度をより高く設定する。例えばテキストデータP01の例では、意味内容R1と、意味内容R2にリンクしているが、以前の事例から意味内容R1につながるw13の連関度を7点に、意味内容R2につながるw14の連関度を2点に設定している。
【0048】
なお、テキストデータが記号で構成される場合も同様であり、各記号がいかなる意味内容で解釈されているかを過去のデータセットを通じて学習させる。これにより、当該第1の学習済みモデルを参照することで記号から意味内容を探索することが可能となる。
【0049】
また、この図4に示す連関度は、人工知能におけるニューラルネットワークのノードで構成されるものであってもよい。即ち、このニューラルネットワークのノードが出力に対する重み付け係数が、上述した連関度に対応することとなる。またニューラルネットワークに限らず、人工知能を構成するあらゆる意思決定因子で構成されるものであってもよい。
【0050】
かかる場合には、図5に示すように、入力データとしてテキストデータが入力され、出力データとして意味内容が出力され、入力ノードと出力ノードの間に少なくとも1以上の隠れ層が設けられ、機械学習させるようにしてもよい。入力ノード又は隠れ層ノードの何れか一方又は両方において上述した連関度が設定され、これが各ノードの重み付けとなり、これに基づいて出力の選択が行われる。そして、この連関度がある閾値を超えた場合に、その出力を選択するようにしてもよい。
【0051】
このような連関度が、第1の学習済みモデルとなる。このような第1の学習済みモデルを作った後に、実際にテキストデータからから意味内容の探索を行うことが可能となる。
【0052】
図6は、第2の学習済みモデルの例を示している。第2の学習済みモデルは、意味内容とプログラムコードの基本構文とが3段階以上の連関度を以って関連付けられた学習済みモデルである。この第2の学習済みモデルでは、意味内容が入力であり、プログラムコードの基本構文が出力となる。この第2の学習済みモデルにおいて、入力側の意味内容は、第1の学習済みモデルの出力側に該当するものである。
【0053】
例えば、入力側の意味内容として、「“A”ファイルを“B”ファイル名に変更し、Cフォルダにコピーする」である場合に、出力側のプログラムコードの基本構文として、「cpA./C/B (copy A toフォルダ/B)」が最も高い連関度をもって関連付けられている。
【0054】
第2の学習済みモデルについて人工知能による機械学習やディープラーニングを利用する場合には、例えば図7に示すように、意味内容と、プログラムコードの基本構文との3段階以上の連関度が予め設定されていることが前提となる。入力データとして例えば意味内容R01~R03であるものとする。
【0055】
つまり意味内容R1~R3は、出力解としてのプログラムコードの基本構文C1~C4に対して3段階以上の連関度を通じて互いに連関しあっている。意味内容R1~R3がこの連関度を介して左側に配列し、各プログラムコードの基本構文C1~C4が連関度を介して右側に配列している。連関度は、左側に配列された意味内容R1~R3に対して、何れのプログラムコードの基本構文C1~C4と関連性が高いかの度合いを示すものである。換言すれば、この連関度は、各意味内容R1~R3が、いかなるプログラムコードの基本構文C1~C4に紐付けられる可能性が高いかを示す指標であり、意味内容から最も確からしいプログラムコードの基本構文を選択する上での的確性を示すものである。図7の例では、連関度の例としてw13~w19が示されている。
【0056】
このような図7に示す3段階以上の連関度w13~w19を予め取得しておく。つまり実際の探索解の判別を行う上で、意味内容R1~R3と、プログラムコードの基本構文C1~C4の何れが採用、評価されたか、過去のデータセットを蓄積しておき、これらを分析、解析することで図7に示す連関度を作り上げておく。
【0057】
例えば、過去において意味内容R02に対してプログラムコードの基本構文C3が最も適合性が高いと判断され、評価されたものとする。このようなデータセットを集めて分析することにより、当該意味内容との連関度が強くなる。
【0058】
この分析、解析は人工知能により行うようにしてもよい。かかる場合には、例えば意味内容R02である場合に、プログラムコードC2の事例が多い場合には、このプログラムコードC2につながる連関度をより高く設定し、プログラムコードC3の事例が多い場合には、このプログラムコードC3につながる連関度をより高く設定する。
【0059】
また、この図7に示す連関度は、人工知能におけるニューラルネットワークのノードで構成されるものであってもよい。かかる場合には、図8に示すように、入力データとして意味内容が入力され、出力データとしてプログラムコードが出力され、入力ノードと出力ノードの間に少なくとも1以上の隠れ層が設けられ、機械学習させるようにしてもよい。
【0060】
このような連関度が、第2の学習済みモデルとなる。このような第2の学習済みモデルを作った後に、実際に意味内容からプログラムコードの基本構文の探索を行うことが可能となる。
【0061】
このような第1の学習済みモデルと第2の学習済みモデルを記憶部14に記憶させておくことで、演算部12による演算の過程でこれを読み出し、参照することができる。
【0062】
<出力部15>
出力部15は、プログラムコードにより実行された動作に関する各種情報を出力する。表示用データは、報知部109又は端末2等を介して、ユーザが認識できるように報知される。出力部15は、I/F105を介して端末2等に表示用データ等を出力し、I/F107を介して報知部109に表示用データ等を出力する。
【0063】
<インテント格納部16>
インテント格納部16には、1または2以上のインテントが格納される。インテントは、業務処理を特定する情報に対応付けて、このインテント格納部16に格納されるものであってもよい。なお、業務処理を特定する情報は、通常、後述するアクション名であるが、その形式はこれらに限定されるものではない。また、対応付くことは、例えば、インテントが、業務処理を特定する情報を有する場合も含む。
【0064】
<端末2>
端末2として、例えばパーソナルコンピュータ、スマートフォン、タブレット端末等の公知の電子機器が用いられる。端末2は、例えば上述したプログラムコード自動生成装置1と同様の構成及び機能の少なくとも一部を備えてもよい。端末2は、例えば複数備えてもよく、各端末2がそれぞれ通信網4を介してプログラムコード自動生成装置1と接続されてもよい。
【0065】
<サーバ3>
サーバ3には、例えば上述した各種情報が記憶される。サーバ3には、例えば通信網4を介してプログラムコード自動生成装置1等から送られてきた各種情報が蓄積される。サーバ3には、例えば保存部104と同様の情報が記憶され、通信網4を介してプログラムコード自動生成装置1等と各種情報の送受信が行われてもよい。即ち、プログラムコード自動生成システム100では、プログラムコード自動生成装置1又はプログラムコード自動生成装置1の保存部104、記憶部14の代わりにサーバ3を用いてもよい。
【0066】
<通信網4>
通信網4は、プログラムコード自動生成装置1が通信回路を介して接続されるインターネット網等である。通信網4は、いわゆる光ファイバ通信網で構成されてもよい。また、通信網4は、有線通信網のほか、無線通信網等の公知の通信網で実現されてもよい。
【0067】
次に、本発明を適用したプログラムコード自動生成システム100の動作について説明をする。
【0068】
図9に示すようにステップS11において文書からテキストデータを抽出する。具体的には、文書から入力部108を構成するカメラやスキャナ等を介して電子データとして文字列を取得する。またスキャナ等を利用した場合には、OCR技術を利用して文字認識し、テキストデータを取得する。なお、電子データ化されたテキストデータを取得部11において取得した場合には、これをそのまま利用することになる。このようにして取得されたテキストデータは、記憶部14において一時的に記憶される。
【0069】
次にステップS12に移行し、S11において取得され、記憶部14において一時的に記憶されているテキストデータを読み出し、意味内容の関連付け解析を行う。演算部12は、記憶部14に記憶されている第1の学習済みモデルを読み出し、これを参照することで、テキストデータと連関度の高い意味内容を探索する。かかる場合には、例えば図4に示すように、新たに取得したテキストデータがP02と同一かこれに類似するものである場合には、連関度を介して意味内容R2がw15、意味内容R3が連関度w16で関連付けられている。かかる場合には、連関度の最も高い意味内容R2を最適解として選択する。
【0070】
次にステップS13へ移行し、プログラムコードの基本構文との関連付け解析を行う。かかる場合にはステップS12において探索した意味内容と最も関連性の高いプログラムコードの基本構文との関連付け解析を行う。かかる場合には、例えば図7に示すように、新たに取得した意味内容がR02と同一かこれに類似するものである場合には、連関度を介してプログラムコードの基本構文C2がw15、C3が連関度w16で関連付けられている。かかる場合には、連関度の最も高いプログラムコードの基本構文C2を最適解として選択する。
【0071】
このステップS12、S13を経ることで、文書から抽出したテキストデータに最も関連性の高い意味内容を探索し、この探索した意味内容と最も関連性の高いプログラムコードの基本構文を最適解として得ることができる。文書からテキストデータを抽出すればその後は自動的にプログラムコードの基本構文の最適解を得ることができる。そして、抽出した個々のテキストデータに対して、この探索したプログラムコードの基本構文を割り当てることが可能となる。
【0072】
次にステップS14に移行し、プログラムコードの作成を行う。ステップS13においては、上述したように単にプログラムコードの基本構文を抽出したに過ぎず、実際の処理動作の対象や、処理動作を完成させるために必要な各条件を規定する名詞又は名詞句を代入することでプログラムコードが完成になる。このため、ステップS14では、抽出したプログラムコードの基本構文に対して、実際の処理動作の対象や、処理動作を完成させるために必要な各条件を規定する名詞又は名詞句を代入する処理動作を行う。
【0073】
かかる場合には、テキストデータについて形態素解析を行い、実際の処理動作の対象や、処理動作を完成させるために必要な各条件を規定する名詞又は名詞句を抽出する。形態素解析は、主として演算部12が行う。形態素解析技術は周知のいかなる形態素解析技術を利用するようにしてもよい。
【0074】
例えば、「A5-7853Kを登録する」というテキストデータにおいては、ステップS14においてプログラムコードの基本構文として「INSERT INTO 商品マスタ(商品名) VALUES ({parame1}) 」が抽出できたものとする。このとき、{parame1}のところに埋めるべき実際の商品名を、形態素解析した命令文から拾い出す。その結果、商品名として「A5-7853K」を拾い出し、これを基本構文に代入することで、プログラムコードを完成させることができる。
【0075】
同様に「社員の今月の残業時間を伝送する」においては、ステップS14においてプログラムコードの基本構文として「SELECT 時間 FROM 残業データ WHERE 日付={param1} AND 社員={param2}」を抽出しているが、日付の{parame1}のところに「今月」を、社員の{param2}のところに各従業員名(例えば「山田太郎」等)を形態素解析した命令文から拾い出し、これを基本構文に代入することで、プログラムコードを完成させることができる。
【0076】
このステップS11~S14の工程において、ステップS11において受け付けられたテキストデータに記載されている各アクションの意図に基づいてプログラムを自動生成させることができる。
【0077】
このようにしてプログラムコードを完成させた後、これをユーザに提供し、或いは報知部109を介して表示するようにしてもよいし、実行部13を介してその完成させたプログラムコードを実行させるようにしてもよい。即ち、本発明によれば、この自動生成したプログラムコードをそのまま実行させるようにすることが可能となる。このため、ステップS11からの工程から含めた場合には、文書からテキストデータを抽出することで、その意図を組み込んだプログラムコードを自動生成することができ、しかもその生成したプログラムコードをそのまま実行に移すことができる。
【0078】
このため、本発明によれば、設計書やマニュアル、仕様書、各種説明書や企画書等をはじめとする各種文書に記載されている何千、何万もの文を単に読み込ませることで自動的かつ正確にプログラムコード化することができる。このような文書に記載されている各文に対応するプログラムコードを自動的に生成することができることで、今まで人手に頼っていたオペレーションをすべて自動化することも可能となる。
【0079】
なお、本発明は、上述した実施の形態に限定されるものでは無い。例えば以下の図11に示すように、第1の学習済みモデルの代替として、第1の連関性を、また第2の学習済みモデルの代替として、第2の連関性を適用するようにしてもよい。
【0080】
この第1の連関性は、上述したテキストデータと意味内容が互いに1対1で対応するように紐付けられたテーブルで構成される。また第2の連関性は、上述した意味内容とプログラムコードが互いに1対1で対応するように紐付けられたテーブルで構成される。
【0081】
このような第1の連関性と第2の連関性を予め作成しておく。そして、実際にプログラムコードの自動生成時には、先ず第1の連関性を参照し、文書から抽出したテキストデータと同一、又は類似するテキストデータに紐づけられた意味内容を抽出する。次に第2の連関性を参照し、この抽出した意味内容に紐付けられたプログラムコードを特定する。プログラムコードを特定した後のプログラムコードの自動生成の手順は上述と同様である。
【0082】
第1の学習済みモデルの代替として、第1の連関性を、また第2の学習済みモデルの代替として、第2の連関性を適用する場合も同様に、各種文書に記載されている何千、何万もの文を単に読み込ませることで自動的かつ正確にプログラムコード化することができる。
【0083】
なお、この第1の連関性、第2の連関性は、図10(a)に示すように、互いに入力と出力が一対一の関係で紐づけられていてもよいが、これに限定されるものでは無い。図10(b)に示すように一の入力に対して複数の出力が紐付けられていてもよいし、一の出力に対して複数の入力が紐づけられていてもよいことは勿論である。
【実施例0084】
図11は、ステップS11において、文書(設計書やドキュメント)からテキストデータを抽出する例を示している。文書中に記述されているテキストデータとして、「(配置場所)/zip_newフォルダを作成する」、「ken_all.zipを解凍し開く」等の文字列そのものを抽出するようにしてもよい。また、「バッチチェック一覧 No.1を実施する。」、「バッチチェック一覧 No.1を実施する。」等のような引用関係に関する記述がある場合には、その引用元の文字列をテキストデータとして抽出する。
【0085】
またステップS14において、処理動作を完成させるために必要な各条件を規定する名詞又は名詞句を代入する処理動作を行う上では、図10の例では、その名詞又は名詞句として、フォルダ名「zip_new」や、解凍対象「ken_all.zip」等を抽出する。そして、この抽出した名詞又は名詞句を拾い出し、これをステップS13において導き出した基本構文に代入することで、プログラムコードを完成させることができる。
【符号の説明】
【0086】
1 プログラムコード自動生成装置
2 端末
3 サーバ
4 通信網
10 筐体
11 取得部
12 演算部
13 実行部
14 記憶部
15 出力部
16 インテント格納部
61 中間ノード
100 プログラムコード自動生成システム
101 CPU
102 ROM
103 RAM
104 保存部
105~107 I/F
108 入力部
109 報知部
110 内部バス
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
【手続補正書】
【提出日】2021-08-06
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
文書から文章としてのテキストデータを抽出するテキストデータ抽出手段と、
形態素解析することにより、動詞、名詞、及び格成分を含む文章の個々の構成要素を抽出したテキストデータとその意味内容とが互いに関連付けられた第1の連関性を参照し、上記テキストデータ抽出手段により抽出されたテキストデータに対して関連性の高い意味内容を探索する意味内容探索手段と、
意味内容とプログラムコードの基本構文とが互いに関連付けられた第2の連関性を参照し、上記意味内容探索手段により探索された意味内容に基づいて、関連性の高いプログラムコードの基本構文を抽出するコード抽出手段とを備えること
を特徴とするプログラムコード自動生成装置。
【請求項2】
上記意味内容探索手段は、テキストデータとその意味内容との3段階以上の連関度を以って関連付けられた上記第1の連関性を参照し、
上記コード抽出手段は、意味内容とプログラムコードの基本構文とが3段階以上の連関度を以って関連付けられた上記第2の連関性を参照すること
を特徴とする請求項1記載のプログラムコード自動生成装置。
【請求項3】
上記意味内容探索手段及び上記コード抽出手段は、人工知能におけるニューラルネットワークのノードの各出力の重み付け係数に対応する上記連関度を利用すること
を特徴とする請求項2記載のプログラムコード自動生成装置。
【請求項4】
上記テキストデータに含まれる各文章や各記号に対して予め意味内容が割り当てられたデータセットに基づいて上記第1の連関性を更新する更新手段をさらに備え、
上記テキストデータ抽出手段は、テキストデータに含まれる各文章や各記号を抽出し、
上記意味内容探索手段は、上記更新手段により更新された第1の連関性を参照し、上記テキストデータ抽出手段により抽出されたテキストデータに含まれる各文章や各記号に対して関連性の高い意味内容を探索すること
を特徴とする請求項1~3のうち何れか1項記載のプログラムコード自動生成装置。
【請求項5】
上記コード抽出手段により抽出されたプログラムコードの基本構文に、上記テキストデータ抽出手段が受け付けたテキストデータから抽出した名詞又は名詞句を代入することによりプログラムコードを生成するコード生成手段とを備えること
を特徴とする請求項1~4のうち何れか1項記載のプログラムコード自動生成装置。
【請求項6】
文書から文章としてのテキストデータを抽出するテキストデータ抽出ステップと、
形態素解析することにより、動詞、名詞、及び格成分を含む文章の個々の構成要素を抽出したテキストデータとその意味内容とが互いに関連付けられた第1の連関性を参照し、上記テキストデータ抽出ステップにおいて抽出したテキストデータに対して関連性の高い意味内容を探索する意味内容探索ステップと、
意味内容とプログラムコードの基本構文とが互いに関連付けられた第2の連関性を参照し、上記意味内容探索ステップにおいて探索した意味内容に基づいて、関連性の高いプログラムコードの基本構文を抽出するコード抽出ステップとをコンピュータに実行させること
を特徴とするプログラムコード自動生成プログラム。
【請求項7】
上記意味内容探索ステップは、テキストデータとその意味内容との3段階以上の連関度を以って関連付けられた上記第1の連関性を参照し、
上記コード抽出ステップは、意味内容とプログラムコードの基本構文とが3段階以上の連関度を以って関連付けられた上記第2の連関性を参照すること
を特徴とする請求項6記載のプログラムコード自動生成プログラム。
【請求項8】
上記意味内容探索ステップ及び上記コード抽出ステップでは、人工知能におけるニューラルネットワークのノードの各出力の重み付け係数に対応する上記連関度を利用すること
を特徴とする請求項7記載のプログラムコード自動生成プログラム。
【請求項9】
上記テキストデータに含まれる各文章や各記号に対して予め意味内容が割り当てられたデータセットに基づいて上記第1の学習済みモデルを更新する更新ステップをさらに有し、
上記テキストデータ抽出ステップでは、テキストデータに含まれる各文章や各記号を抽出し、
上記意味内容探索ステップでは、上記更新ステップにより更新された第1の学習済みモデルを参照し、上記テキストデータ抽出ステップにおいて抽出したテキストデータに含まれる各文章や各記号に対して関連性の高い意味内容を探索すること
を特徴とする請求項6~8のうち何れか1項記載のプログラムコード自動生成プログラム。
【請求項10】
上記コード抽出ステップにおいて抽出したプログラムコードの基本構文に、上記テキストデータ抽出ステップにおいて受け付けたテキストデータから抽出した名詞又は名詞句を代入することによりプログラムコードを生成するコード生成ステップを更に有すること
を特徴とする請求項6~9のうち何れか1項記載のプログラムコード自動生成プログラム。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0011
【補正方法】変更
【補正の内容】
【0011】
第1の発明は、文書から文章としてのテキストデータを抽出するテキストデータ抽出手段と、形態素解析することにより、動詞、名詞、及び格成分を含む文章の個々の構成要素を抽出したテキストデータとその意味内容とが互いに関連付けられた第1の連関性を参照し、上記テキストデータ抽出手段により抽出されたテキストデータに対して関連性の高い意味内容を探索する意味内容探索手段と、意味内容とプログラムコードの基本構文とが互いに関連付けられた第2の連関性を参照し、上記意味内容探索手段により探索された意味内容に基づいて、関連性の高いプログラムコードの基本構文を抽出するコード抽出手段とを備えることを特徴とする。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0016
【補正方法】変更
【補正の内容】
【0016】
第6の発明は、文書から文章としてのテキストデータを抽出するテキストデータ抽出ステップと、形態素解析することにより、動詞、名詞、及び格成分を含む文章の個々の構成要素を抽出したテキストデータとその意味内容とが互いに関連付けられた第1の連関性を参照し、上記テキストデータ抽出ステップにおいて抽出したテキストデータに対して関連性の高い意味内容を探索する意味内容探索ステップと、意味内容とプログラムコードの基本構文とが互いに関連付けられた第2の連関性を参照し、上記意味内容探索ステップにおいて探索した意味内容に基づいて、関連性の高いプログラムコードの基本構文を抽出するコード抽出ステップとをコンピュータに実行させることを特徴とする。