[go: up one dir, main page]

JP6949341B1 - プログラムコード自動生成装置及びプログラム - Google Patents

プログラムコード自動生成装置及びプログラム Download PDF

Info

Publication number
JP6949341B1
JP6949341B1 JP2021038519A JP2021038519A JP6949341B1 JP 6949341 B1 JP6949341 B1 JP 6949341B1 JP 2021038519 A JP2021038519 A JP 2021038519A JP 2021038519 A JP2021038519 A JP 2021038519A JP 6949341 B1 JP6949341 B1 JP 6949341B1
Authority
JP
Japan
Prior art keywords
text data
program code
association
meaning
content
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2021038519A
Other languages
English (en)
Other versions
JP2022138568A (ja
Inventor
基光 白川
基光 白川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Soppra Corp
Original Assignee
Soppra Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Soppra Corp filed Critical Soppra Corp
Priority to JP2021038519A priority Critical patent/JP6949341B1/ja
Application granted granted Critical
Publication of JP6949341B1 publication Critical patent/JP6949341B1/ja
Priority to CN202280009077.8A priority patent/CN116710926A/zh
Priority to US18/277,880 priority patent/US20240231764A9/en
Priority to PCT/JP2022/001580 priority patent/WO2022190646A1/ja
Publication of JP2022138568A publication Critical patent/JP2022138568A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/33Intelligent editors
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Molecular Biology (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Machine Translation (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】業務を実行するためのプログラムコードを生成する際において、極めて容易に、しかも人手を介することなく自動的に生成する。
【解決手段】文書からテキストデータを抽出するテキストデータ抽出ステップと、テキストデータとその意味内容との連関度を以って関連付けられた第1の学習済みモデルを参照し、上記テキストデータ抽出ステップにおいて抽出したテキストデータに対して関連性の高い意味内容を探索する意味内容探索手段と、意味内容とプログラムコードの基本構文とが連関度を以って関連付けられた第2の学習済みモデルを参照し、上記意味内容探索ステップにおいて探索した意味内容に基づいて、関連性の高いプログラムコードの基本構文を抽出するコード抽出ステップとをコンピュータに実行させる。
【選択図】図6

Description

本発明は、文書に含まれるテキストデータの意味内容に沿ったプログラムコードを自動生成する上で好適なプログラムコード自動生成装置及びプログラムに関する。
新規業務についてプログラムにより自動的に実行させる場合には、プログラムを作成する作業が必要となる。プログラムの作成は、従来において、その新規業務の要件定義を行い、システム設計を行い、更にプログラムコードの開発を行った後、これをテスト、検証するプロセスが発生する。このようなプログラムコードは、新規業務が生まれる都度、人手によりコーディングするのが通常であった。
しかしながら、近年のIT化の急速な進展に伴い、新規業務は多岐にわたり、これらが新たに生まれる頻度も増している。
また、社内の簡単な作業一つとっても状況によっては随時変更を施さなければならないケースがある。例えば、「社員〇〇の今月の残業時間を上司に通知する」という社内業務をプログラムコード化し、自動的に行えるようになったとしても、「社員〇〇」、「上司」が異動等で変更する都度、そのプログラムコードは書き換えなければならなくなる。
このように新規業務の増大と、業務内容の変更の都度、人手によりプログラムコードを生成することになると作業量が膨大になり、作業者の作業負担が増大してしまうばかりか、作業の遅延が生じれば業務の流れを阻害してしまうことにもなりかねないという問題点があった。
このため、従来においては、業務をコンピュータ側のシステムにおいて自動的に実行していくために、その業務を実行するためのプログラムコードを生成する際において、極めて容易に、しかも人手を介することなく自動的に生成することが可能なプログラムコード自動生成装置が提案されている(例えば、特許文献1参照。)。
特許6753598号公報
しかしながら、上述した特許文献1の開示技術は、あくまで、会話文を受け付け、この会話文が意図するインテントを介してプログラムコードの基本構文を探索するものである。つまり言葉で発せられた一フレーズに対応するプログラムコードを自動生成することに特化した技術である。このため、この特許文献1の開示技術によれば、設計書やマニュアル、仕様書、各種説明書や企画書等をはじめとする各種文書に記載されている何千、何万もの文を自動的にプログラムコード化することができないという問題点があった。
このような文書に記載されている各文に対応するプログラムコードを自動的に生成することができれば、今まで人手に頼っていたオペレーションをすべて自動化できる途も開ける。このため、文書を単に読み込ませることで自動的かつ正確にその意味内容に応じたプログラムコードを生成する技術に対する要望が近年高まっている反面、これに応えることができる技術がいまだ提案されていないのが現状であった。
そこで、本発明は、上述した問題点に鑑みて案出されたものであり、その目的とするところは、文書を単に読み込ませることで自動的かつ正確にその意味内容に応じたプログラムコードを生成することが可能なプログラムコード自動生成装置及びプログラムを提供することにある。
第1の発明は、文書から文章としてのテキストデータを抽出するテキストデータ抽出手段と、形態素解析することにより、動詞、名詞、及び格成分を含む文章の個々の構成要素を抽出したテキストデータとその意味内容とが互いに関連付けられた第1の連関性を参照し、上記テキストデータ抽出手段により抽出されたテキストデータに対して関連性の高い意味内容を探索する意味内容探索手段と、意味内容とプログラムコードの基本構文とが互いに関連付けられた第2の連関性を参照し、上記意味内容探索手段により探索された意味内容に基づいて、関連性の高いプログラムコードの基本構文を抽出するコード抽出手段とを備えることを特徴とする。
第2の発明は、第1の発明において、上記意味内容探索手段は、テキストデータとその意味内容との3段階以上の連関度を以って関連付けられた上記第1の連関性を参照し、上記コード抽出手段は、意味内容とプログラムコードの基本構文とが3段階以上の連関度を以って関連付けられた上記第2の連関性を参照することを特徴とする。
第3の発明は、第2の発明において、上記意味内容探索手段及び上記コード抽出手段は、人工知能におけるニューラルネットワークのノードの各出力の重み付け係数に対応する上記連関度を利用することを特徴とする。
第4の発明は、第1の発明〜第3の発明の何れかにおいて、上記テキストデータに含まれる各文章や各記号に対して予め意味内容が割り当てられたデータセットに基づいて上記第1の連関性を更新する更新手段をさらに備え、上記テキストデータ抽出手段は、テキストデータに含まれる各文章や各記号を抽出し、上記意味内容探索手段は、上記更新手段により更新された第1の連関性を参照し、上記テキストデータ抽出手段により抽出されたテキストデータに含まれる各文章や各記号に対して関連性の高い意味内容を探索することを特徴とする。
第5の発明は、第1の発明〜第4の発明の何れかにおいて、上記コード抽出手段により抽出されたプログラムコードの基本構文に、上記テキストデータ抽出手段が受け付けたテキストデータから抽出した名詞又は名詞句を代入することによりプログラムコードを生成するコード生成手段とを備えることを特徴とする。
第6の発明は、文書から文章としてのテキストデータを抽出するテキストデータ抽出ステップと、形態素解析することにより、動詞、名詞、及び格成分を含む文章の個々の構成要素を抽出したテキストデータとその意味内容とが互いに関連付けられた第1の連関性を参照し、上記テキストデータ抽出ステップにおいて抽出したテキストデータに対して関連性の高い意味内容を探索する意味内容探索ステップと、意味内容とプログラムコードの基本構文とが互いに関連付けられた第2の連関性を参照し、上記意味内容探索ステップにおいて探索した意味内容に基づいて、関連性の高いプログラムコードの基本構文を抽出するコード抽出ステップとをコンピュータに実行させることを特徴とする。
第7の発明は、第6の発明において、上記意味内容探索ステップは、テキストデータとその意味内容との3段階以上の連関度を以って関連付けられた上記第1の連関性を参照し、上記コード抽出ステップは、意味内容とプログラムコードの基本構文とが3段階以上の連関度を以って関連付けられた上記第2の連関性を参照することを特徴とする。
第8の発明は、第7の発明において、上記意味内容探索ステップ及び上記コード抽出ステップでは、人工知能におけるニューラルネットワークのノードの各出力の重み付け係数に対応する上記連関度を利用することを特徴とする。
第9の発明は、第6の発明〜第8の発明において、上記テキストデータに含まれる各文章や各記号に対して予め意味内容が割り当てられたデータセットに基づいて上記第1の学習済みモデルを更新する更新ステップをさらに有し、上記テキストデータ抽出ステップでは、テキストデータに含まれる各文章や各記号を抽出し、上記意味内容探索ステップでは、上記更新ステップにより更新された第1の学習済みモデルを参照し、上記テキストデータ抽出ステップにおいて抽出したテキストデータに含まれる各文章や各記号に対して関連性の高い意味内容を探索することを特徴とする。
第10の発明は、第6の発明〜第9の発明の何れかにおいて、上記コード抽出ステップにおいて抽出したプログラムコードの基本構文に、上記テキストデータ抽出ステップにおいて受け付けたテキストデータから抽出した名詞又は名詞句を代入することによりプログラムコードを生成するコード生成ステップを更に有することを特徴とする。
上述した発明によれば、設計書やマニュアル、仕様書、各種説明書や企画書等をはじめとする各種文書に記載されている何千、何万もの文を極めて容易に、しかも人手を介することなく自動的にプログラムコード化することが可能となる。
図1は、実施の形態におけるプログラムコード自動生成システムのブロック図である。 図2(a)及び図2(b)は、プログラムコード自動生成装置1の構成の一例を示す模式図である。 図3は、第1の学習済みモデルの例を示す図である。 図4は、第1の学習済みモデルについて人工知能による機械学習を利用するコードテーブルの例を示す図である。 図5は、入力データとしてテキストデータが入力され、出力データとして意味内容が出力されるモデルを示す図である。 図6は、第2の学習済みモデルの例を示す図である。 図7は、第2の学習済みモデルについて人工知能による機械学習を利用する例を示す図である。 図8は、入力データとして意味内容が入力され、出力データとしてプログラムコードが出力されるモデルを示す図である。 図9は、本発明を適用したプログラムコード自動生成システムの動作について説明するためのフローチャートである。 図10は、第1の連関性、第2の連関性について説明するための図である。 図11は、文書(設計書やドキュメント)からテキストデータを抽出する例を示す図である。
以下、本発明の実施形態におけるプログラムコード自動生成システムの一例について、図面を参照しながら説明する。
(実施形態:プログラムコード自動生成システム100)
図1〜図2を参照して、本実施形態におけるプログラムコード自動生成システム100の構成の一例について説明する。図1は、本実施形態におけるプログラムコード自動生成システム100の全体の構成を示す模式図である。
プログラムコード自動生成システム100は、主に定型作業等のような業務の補助(例えば業務の自動化処理)を実現するためのプログラムコードの生成のために利用される。プログラムコード自動生成システム100は、業務を実行するためのプログラムコードを自動生成することで、企業内における各業務(例えば、マニュアルに記載された業務フローの実行、作業者の進捗状況の収集、タスク管理等)をコンピュータ上で自動的に行うことができる。プログラムコード自動生成システム100は、特にこのプログラムコードの自動生成を、テキストデータに基づいて設定することができ、システム管理者等のような専門的知識を有しないユーザ(例えばプログラムコード自動生成システム100を利用して業務を管理する利用者等)においても、各文書に記載された業務フローをコンピュータに自動的に行わせるためのプログラムコードの自動生成を容易に実現することが可能となる。
プログラムコード自動生成システム100は、例えば図1に示すように、プログラムコード自動生成装置1を備え、ユーザがプログラムコード自動生成装置1を利用してもよい。プログラムコード自動生成システム100は、例えば通信網4を介してプログラムコード自動生成装置1と接続された端末2を備え、ユーザが端末2を介してプログラムコード自動生成装置1を利用してもよい。プログラムコード自動生成システム100は、例えば通信網4を介してプログラムコード自動生成装置1と接続されたサーバ3を備え、ユーザがプログラムコード自動生成装置1又は端末2を介してサーバ3との各種情報の送受信により、各手段を実現してもよい。
<プログラムコード自動生成装置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により接続される。
CPU101は、プログラムコード自動生成装置1全体を制御する。ROM102は、CPU101の動作コードを格納する。RAM103は、CPU101の動作時に使用される作業領域である。保存部104は、処理用データ等の各種情報が保存される。保存部104として、例えばHDD(Hard Disk Drive)、SSD(Solid State Drive)等が用いられる。
I/F105は、端末2、サーバ3、通信網4等との各種情報の送受信を行うためのインターフェースである。I/F106は、入力部108との各種情報の送受信を行うためのインターフェースである。I/F107は、報知部109との各種情報の送受信を行うためのインターフェースである。
入力部108として、キーボードが用いられるほか、カメラやスキャナ等の装置が用いられてもよい。プログラムコード自動生成装置1を利用するユーザは、例えば入力部108を介して各種文書に記載されているテキストデータを読み取る。ここでいう文書とは、設計書やマニュアル、仕様書、各種説明書や企画書等をはじめとする文書であるが、これに限定されるものではなく、個人または企業内でドキュメントされたあらゆる文書が含まれる。また、実際に不特定多数が読むことができる状態に置かれる刊行物のみならず、特定人のみにしか読むことができない文書も含まれる。また手書きで書かれたノートも文書に含まれる。これら文書は紙媒体に印刷された印刷物を介して提供されるものに限定されるものではなく、電子データとして提供されるものであってもよい。
入力部108は、このような文書に記載されたデータが入力されるあらゆるデバイスで構成される。文書が紙媒体に印刷された印刷物として提供されるものであれば、その印刷物にされたテキストデータを読み取ることが可能なスキャナやOCRソフトで構成されている。また文書が電子データで構成されるものであれば、その電子データに記載されているテキストデータを読み取り可能なOCRソフトで構成されていてもよい。
報知部109は、保存部104に保存された表示用データ等の各種情報や、プログラムコード自動生成装置1の処理状況などを表示する。報知部109として、ディスプレイが用いられるほか、例えばスピーカが用いられてもよい。
なお、I/F105〜I/F107として、例えば同一のものが用いられてもよく、各I/F105〜I/F107として、例えばそれぞれ複数のものが用いられてもよい。また、報知部109としてタッチパネル式のディスプレイが用いられる場合、報知部109が入力部108を含む構成としてもよい。
図2(b)は、プログラムコード自動生成装置1の機能の一例を示す模式図である。プログラムコード自動生成装置1は、取得部11と、演算部12とを備え、例えば実行部13と、記憶部14と、出力部15と、インテント格納部16とを備えてもよい。なお、図2(b)に示した各機能は、CPU101が、RAM103を作業領域として、保存部104等に記憶されたプログラムを実行することにより実現される。また、各機能の一部は、人工知能により制御されてもよい。ここで、「人工知能」は、いかなる周知の人工知能技術に基づくものであってもよい。
<取得部11>
取得部11は、文書に記載されているテキストデータを取得する。取得部11は、例えば端末2又は入力部108を介して文書から入力されたテキストデータを取得する。例えば端末2又は入力部108を介して、文書からテキストデータを抽出した場合、取得部11は、公知のOCR技術を用いてテキストデータの文字を認識する。なお、文字認識技術は、例えば通信網4を介して、クラウド型の文字認識技術を用いてもよい。
<演算部12>
演算部12は、データベースを参照し、取得したテキストデータに基づいて各種処理動作、演算を実行する。演算部12は、受け付けたテキストデータについて形態素解析することにより、動詞や名詞、格成分等を始めとする文の個々の構成要素を抽出する。演算部12は、記憶部14を参照し、テキストデータに応じたプログラムコードの基本構文を抽出する。また演算部12は、抽出されたプログラムコードの基本構文に、テキストデータを構成する文字列から抽出した名詞又は名詞句を代入することによりプログラムコードを生成する。
<実行部13>
実行部13は、演算部12において生成されたプログラムコードに基づき、業務処理を実行する。業務処理として、例えばタスクの内容や期限に基づき担当者へのメール送信、勤務管理、タスク進行履歴更新等の定型作業が挙げられ、業務処理情報をプログラムとしてコンピュータに実行させることができる内容が用いられる。
<記憶部14>
記憶部14は、取得部11を介して取得したテキストデータを一時的に保存する。この記憶部14に記憶されたテキストデータは、演算部12や実行部13等による制御に基づき読み出され、また更新される場合もある。記憶部14は、第1の学習済みモデルと、第2の学習済みモデルの少なくとも2つの学習済みモデルを保持している。
図3は、第1の学習済みモデルの例を示している。第1の学習済みモデルは、文書から抽出したテキストデータとその意味内容との3段階以上の連関度を以って関連付けられた学習済みモデルである。この第1の学習済みモデルでは、テキストデータが入力であり、意味内容が出力となる。テキストデータの種類としてはとしては文章、文章と記号の組み合わせ、或いは記号のみで構成される。
例えば、入力側のテキストデータとして、「“A”ファイルを“B”ファイルにして、“C”フォルダに配置する」とある場合に、出力側として「“A”ファイルを“B”ファイル名に変更し、Cフォルダにコピーする」という意味内容が最も高い連関度をもって関連付けられている。
第1の学習済みモデルについて人工知能による機械学習やディープラーニングを利用する場合には、例えば図4に示すように、テキストデータと、意味内容との3段階以上の連関度が予め設定されていることが前提となる。入力データとして例えばテキストデータP01〜P03であるものとする。例えば、このテキストデータP01は、「“A”ファイルを“B”ファイルにして、“C”フォルダに配置する」、P02は、「“A”ファイルに“B”ファイルを合わせる」、P03は、「“A”ファイルと“B”ファイルを出す」等であるものとする。このような入力データとしてのテキストデータP01〜P03は、出力としての意味内容R1〜R4にそれぞれ連結している。
なお、意味内容は、上述したように実際に人間が読んで解釈できるような文字列で構成される場合に限定されるものではなく、意味内容を示す記号で表現されていてもよいし、媒介変数等で表現されるものであってもよい。
テキストデータは、この出力解としての意味内容(例えば、意味内容R1として「“A”ファイルを“B”ファイル名に変更し、Cフォルダにコピーする」等)に対して3段階以上の連関度を通じて互いに連関しあっている。テキストデータがこの連関度を介して左側に配列し、各意味内容が連関度を介して右側に配列している。連関度は、左側に配列されたテキストデータに対して、何れの意味内容と関連性が高いかの度合いを示すものである。換言すれば、この連関度は、各テキストデータが、いかなる意味内容に紐付けられる可能性が高いかを示す指標であり、テキストデータから最も確からしい意味内容を選択する上での的確性を示すものである。図4の例では、連関度としてw13〜w19が示されている。このw13〜w19は以下の表1に示すように10段階で示されており、10点に近いほど、中間ノードとしての各組み合わせが出力としての意味内容と互いに関連度合いが高いことを示しており、逆に1点に近いほど中間ノードとしての各組み合わせが出力としての意味内容と互いに関連度合いが低いことを示している。
Figure 0006949341
このような図4に示す3段階以上の連関度w13〜w19を予め取得しておく。つまり実際の探索解の判別を行う上で、テキストデータP01〜P03と、意味内容R1〜R4の何れが採用、評価されたか、過去のデータセットを蓄積しておき、これらを分析、解析することで図4に示す連関度を作り上げておく。
例えば、過去においてテキストデータP01に対して意味内容R1が最も適合性が高いと判断され、評価されたものとする。このようなデータセットを集めて分析することにより、当該意味内容との連関度が強くなる。
この分析、解析は人工知能により行うようにしてもよい。かかる場合には、例えばテキストデータP01である場合に、意味内容R1の事例が多い場合には、この意味内容R1につながる連関度をより高く設定し、意味内容R2の事例が多い場合には、この意味内容R2につながる連関度をより高く設定する。例えばテキストデータP01の例では、意味内容R1と、意味内容R2にリンクしているが、以前の事例から意味内容R1につながるw13の連関度を7点に、意味内容R2につながるw14の連関度を2点に設定している。
なお、テキストデータが記号で構成される場合も同様であり、各記号がいかなる意味内容で解釈されているかを過去のデータセットを通じて学習させる。これにより、当該第1の学習済みモデルを参照することで記号から意味内容を探索することが可能となる。
また、この図4に示す連関度は、人工知能におけるニューラルネットワークのノードで構成されるものであってもよい。即ち、このニューラルネットワークのノードが出力に対する重み付け係数が、上述した連関度に対応することとなる。またニューラルネットワークに限らず、人工知能を構成するあらゆる意思決定因子で構成されるものであってもよい。
かかる場合には、図5に示すように、入力データとしてテキストデータが入力され、出力データとして意味内容が出力され、入力ノードと出力ノードの間に少なくとも1以上の隠れ層が設けられ、機械学習させるようにしてもよい。入力ノード又は隠れ層ノードの何れか一方又は両方において上述した連関度が設定され、これが各ノードの重み付けとなり、これに基づいて出力の選択が行われる。そして、この連関度がある閾値を超えた場合に、その出力を選択するようにしてもよい。
このような連関度が、第1の学習済みモデルとなる。このような第1の学習済みモデルを作った後に、実際にテキストデータからから意味内容の探索を行うことが可能となる。
図6は、第2の学習済みモデルの例を示している。第2の学習済みモデルは、意味内容とプログラムコードの基本構文とが3段階以上の連関度を以って関連付けられた学習済みモデルである。この第2の学習済みモデルでは、意味内容が入力であり、プログラムコードの基本構文が出力となる。この第2の学習済みモデルにおいて、入力側の意味内容は、第1の学習済みモデルの出力側に該当するものである。
例えば、入力側の意味内容として、「“A”ファイルを“B”ファイル名に変更し、Cフォルダにコピーする」である場合に、出力側のプログラムコードの基本構文として、「cpA./C/B (copy A toフォルダ/B)」が最も高い連関度をもって関連付けられている。
第2の学習済みモデルについて人工知能による機械学習やディープラーニングを利用する場合には、例えば図7に示すように、意味内容と、プログラムコードの基本構文との3段階以上の連関度が予め設定されていることが前提となる。入力データとして例えば意味内容R01〜R03であるものとする。
つまり意味内容R1〜R3は、出力解としてのプログラムコードの基本構文C1〜C4に対して3段階以上の連関度を通じて互いに連関しあっている。意味内容R1〜R3がこの連関度を介して左側に配列し、各プログラムコードの基本構文C1〜C4が連関度を介して右側に配列している。連関度は、左側に配列された意味内容R1〜R3に対して、何れのプログラムコードの基本構文C1〜C4と関連性が高いかの度合いを示すものである。換言すれば、この連関度は、各意味内容R1〜R3が、いかなるプログラムコードの基本構文C1〜C4に紐付けられる可能性が高いかを示す指標であり、意味内容から最も確からしいプログラムコードの基本構文を選択する上での的確性を示すものである。図7の例では、連関度の例としてw13〜w19が示されている。
このような図7に示す3段階以上の連関度w13〜w19を予め取得しておく。つまり実際の探索解の判別を行う上で、意味内容R1〜R3と、プログラムコードの基本構文C1〜C4の何れが採用、評価されたか、過去のデータセットを蓄積しておき、これらを分析、解析することで図7に示す連関度を作り上げておく。
例えば、過去において意味内容R02に対してプログラムコードの基本構文C3が最も適合性が高いと判断され、評価されたものとする。このようなデータセットを集めて分析することにより、当該意味内容との連関度が強くなる。
この分析、解析は人工知能により行うようにしてもよい。かかる場合には、例えば意味内容R02である場合に、プログラムコードC2の事例が多い場合には、このプログラムコードC2につながる連関度をより高く設定し、プログラムコードC3の事例が多い場合には、このプログラムコードC3につながる連関度をより高く設定する。
また、この図7に示す連関度は、人工知能におけるニューラルネットワークのノードで構成されるものであってもよい。かかる場合には、図8に示すように、入力データとして意味内容が入力され、出力データとしてプログラムコードが出力され、入力ノードと出力ノードの間に少なくとも1以上の隠れ層が設けられ、機械学習させるようにしてもよい。
このような連関度が、第2の学習済みモデルとなる。このような第2の学習済みモデルを作った後に、実際に意味内容からプログラムコードの基本構文の探索を行うことが可能となる。
このような第1の学習済みモデルと第2の学習済みモデルを記憶部14に記憶させておくことで、演算部12による演算の過程でこれを読み出し、参照することができる。
<出力部15>
出力部15は、プログラムコードにより実行された動作に関する各種情報を出力する。表示用データは、報知部109又は端末2等を介して、ユーザが認識できるように報知される。出力部15は、I/F105を介して端末2等に表示用データ等を出力し、I/F107を介して報知部109に表示用データ等を出力する。
<インテント格納部16>
インテント格納部16には、1または2以上のインテントが格納される。インテントは、業務処理を特定する情報に対応付けて、このインテント格納部16に格納されるものであってもよい。なお、業務処理を特定する情報は、通常、後述するアクション名であるが、その形式はこれらに限定されるものではない。また、対応付くことは、例えば、インテントが、業務処理を特定する情報を有する場合も含む。
<端末2>
端末2として、例えばパーソナルコンピュータ、スマートフォン、タブレット端末等の公知の電子機器が用いられる。端末2は、例えば上述したプログラムコード自動生成装置1と同様の構成及び機能の少なくとも一部を備えてもよい。端末2は、例えば複数備えてもよく、各端末2がそれぞれ通信網4を介してプログラムコード自動生成装置1と接続されてもよい。
<サーバ3>
サーバ3には、例えば上述した各種情報が記憶される。サーバ3には、例えば通信網4を介してプログラムコード自動生成装置1等から送られてきた各種情報が蓄積される。サーバ3には、例えば保存部104と同様の情報が記憶され、通信網4を介してプログラムコード自動生成装置1等と各種情報の送受信が行われてもよい。即ち、プログラムコード自動生成システム100では、プログラムコード自動生成装置1又はプログラムコード自動生成装置1の保存部104、記憶部14の代わりにサーバ3を用いてもよい。
<通信網4>
通信網4は、プログラムコード自動生成装置1が通信回路を介して接続されるインターネット網等である。通信網4は、いわゆる光ファイバ通信網で構成されてもよい。また、通信網4は、有線通信網のほか、無線通信網等の公知の通信網で実現されてもよい。
次に、本発明を適用したプログラムコード自動生成システム100の動作について説明をする。
図9に示すようにステップS11において文書からテキストデータを抽出する。具体的には、文書から入力部108を構成するカメラやスキャナ等を介して電子データとして文字列を取得する。またスキャナ等を利用した場合には、OCR技術を利用して文字認識し、テキストデータを取得する。なお、電子データ化されたテキストデータを取得部11において取得した場合には、これをそのまま利用することになる。このようにして取得されたテキストデータは、記憶部14において一時的に記憶される。
次にステップS12に移行し、S11において取得され、記憶部14において一時的に記憶されているテキストデータを読み出し、意味内容の関連付け解析を行う。演算部12は、記憶部14に記憶されている第1の学習済みモデルを読み出し、これを参照することで、テキストデータと連関度の高い意味内容を探索する。かかる場合には、例えば図4に示すように、新たに取得したテキストデータがP02と同一かこれに類似するものである場合には、連関度を介して意味内容R2がw15、意味内容R3が連関度w16で関連付けられている。かかる場合には、連関度の最も高い意味内容R2を最適解として選択する。
次にステップS13へ移行し、プログラムコードの基本構文との関連付け解析を行う。かかる場合にはステップS12において探索した意味内容と最も関連性の高いプログラムコードの基本構文との関連付け解析を行う。かかる場合には、例えば図7に示すように、新たに取得した意味内容がR02と同一かこれに類似するものである場合には、連関度を介してプログラムコードの基本構文C2がw15、C3が連関度w16で関連付けられている。かかる場合には、連関度の最も高いプログラムコードの基本構文C2を最適解として選択する。
このステップS12、S13を経ることで、文書から抽出したテキストデータに最も関連性の高い意味内容を探索し、この探索した意味内容と最も関連性の高いプログラムコードの基本構文を最適解として得ることができる。文書からテキストデータを抽出すればその後は自動的にプログラムコードの基本構文の最適解を得ることができる。そして、抽出した個々のテキストデータに対して、この探索したプログラムコードの基本構文を割り当てることが可能となる。
次にステップS14に移行し、プログラムコードの作成を行う。ステップS13においては、上述したように単にプログラムコードの基本構文を抽出したに過ぎず、実際の処理動作の対象や、処理動作を完成させるために必要な各条件を規定する名詞又は名詞句を代入することでプログラムコードが完成になる。このため、ステップS14では、抽出したプログラムコードの基本構文に対して、実際の処理動作の対象や、処理動作を完成させるために必要な各条件を規定する名詞又は名詞句を代入する処理動作を行う。
かかる場合には、テキストデータについて形態素解析を行い、実際の処理動作の対象や、処理動作を完成させるために必要な各条件を規定する名詞又は名詞句を抽出する。形態素解析は、主として演算部12が行う。形態素解析技術は周知のいかなる形態素解析技術を利用するようにしてもよい。
例えば、「A5-7853Kを登録する」というテキストデータにおいては、ステップS14においてプログラムコードの基本構文として「INSERT INTO 商品マスタ(商品名) VALUES ({parame1}) 」が抽出できたものとする。このとき、{parame1}のところに埋めるべき実際の商品名を、形態素解析した命令文から拾い出す。その結果、商品名として「A5-7853K」を拾い出し、これを基本構文に代入することで、プログラムコードを完成させることができる。
同様に「社員の今月の残業時間を伝送する」においては、ステップS14においてプログラムコードの基本構文として「SELECT 時間 FROM 残業データ WHERE 日付={param1} AND 社員={param2}」を抽出しているが、日付の{parame1}のところに「今月」を、社員の{param2}のところに各従業員名(例えば「山田太郎」等)を形態素解析した命令文から拾い出し、これを基本構文に代入することで、プログラムコードを完成させることができる。
このステップS11〜S14の工程において、ステップS11において受け付けられたテキストデータに記載されている各アクションの意図に基づいてプログラムを自動生成させることができる。
このようにしてプログラムコードを完成させた後、これをユーザに提供し、或いは報知部109を介して表示するようにしてもよいし、実行部13を介してその完成させたプログラムコードを実行させるようにしてもよい。即ち、本発明によれば、この自動生成したプログラムコードをそのまま実行させるようにすることが可能となる。このため、ステップS11からの工程から含めた場合には、文書からテキストデータを抽出することで、その意図を組み込んだプログラムコードを自動生成することができ、しかもその生成したプログラムコードをそのまま実行に移すことができる。
このため、本発明によれば、設計書やマニュアル、仕様書、各種説明書や企画書等をはじめとする各種文書に記載されている何千、何万もの文を単に読み込ませることで自動的かつ正確にプログラムコード化することができる。このような文書に記載されている各文に対応するプログラムコードを自動的に生成することができることで、今まで人手に頼っていたオペレーションをすべて自動化することも可能となる。
なお、本発明は、上述した実施の形態に限定されるものでは無い。例えば以下の図11に示すように、第1の学習済みモデルの代替として、第1の連関性を、また第2の学習済みモデルの代替として、第2の連関性を適用するようにしてもよい。
この第1の連関性は、上述したテキストデータと意味内容が互いに1対1で対応するように紐付けられたテーブルで構成される。また第2の連関性は、上述した意味内容とプログラムコードが互いに1対1で対応するように紐付けられたテーブルで構成される。
このような第1の連関性と第2の連関性を予め作成しておく。そして、実際にプログラムコードの自動生成時には、先ず第1の連関性を参照し、文書から抽出したテキストデータと同一、又は類似するテキストデータに紐づけられた意味内容を抽出する。次に第2の連関性を参照し、この抽出した意味内容に紐付けられたプログラムコードを特定する。プログラムコードを特定した後のプログラムコードの自動生成の手順は上述と同様である。
第1の学習済みモデルの代替として、第1の連関性を、また第2の学習済みモデルの代替として、第2の連関性を適用する場合も同様に、各種文書に記載されている何千、何万もの文を単に読み込ませることで自動的かつ正確にプログラムコード化することができる。
なお、この第1の連関性、第2の連関性は、図10(a)に示すように、互いに入力と出力が一対一の関係で紐づけられていてもよいが、これに限定されるものでは無い。図10(b)に示すように一の入力に対して複数の出力が紐付けられていてもよいし、一の出力に対して複数の入力が紐づけられていてもよいことは勿論である。
図11は、ステップS11において、文書(設計書やドキュメント)からテキストデータを抽出する例を示している。文書中に記述されているテキストデータとして、「(配置場所)/zip_newフォルダを作成する」、「ken_all.zipを解凍し開く」等の文字列そのものを抽出するようにしてもよい。また、「バッチチェック一覧 No.1を実施する。」、「バッチチェック一覧 No.1を実施する。」等のような引用関係に関する記述がある場合には、その引用元の文字列をテキストデータとして抽出する。
またステップS14において、処理動作を完成させるために必要な各条件を規定する名詞又は名詞句を代入する処理動作を行う上では、図10の例では、その名詞又は名詞句として、フォルダ名「zip_new」や、解凍対象「ken_all.zip」等を抽出する。そして、この抽出した名詞又は名詞句を拾い出し、これをステップS13において導き出した基本構文に代入することで、プログラムコードを完成させることができる。
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 内部バス

Claims (10)

  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項記載のプログラムコード自動生成プログラム。
JP2021038519A 2021-03-10 2021-03-10 プログラムコード自動生成装置及びプログラム Active JP6949341B1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2021038519A JP6949341B1 (ja) 2021-03-10 2021-03-10 プログラムコード自動生成装置及びプログラム
CN202280009077.8A CN116710926A (zh) 2021-03-10 2022-01-18 程序代码自动生成装置以及程序
US18/277,880 US20240231764A9 (en) 2021-03-10 2022-01-18 Automatic program code generation device and program
PCT/JP2022/001580 WO2022190646A1 (ja) 2021-03-10 2022-01-18 プログラムコード自動生成装置及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021038519A JP6949341B1 (ja) 2021-03-10 2021-03-10 プログラムコード自動生成装置及びプログラム

Publications (2)

Publication Number Publication Date
JP6949341B1 true JP6949341B1 (ja) 2021-10-13
JP2022138568A JP2022138568A (ja) 2022-09-26

Family

ID=78001376

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021038519A Active JP6949341B1 (ja) 2021-03-10 2021-03-10 プログラムコード自動生成装置及びプログラム

Country Status (4)

Country Link
US (1) US20240231764A9 (ja)
JP (1) JP6949341B1 (ja)
CN (1) CN116710926A (ja)
WO (1) WO2022190646A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN120335783A (zh) * 2025-03-31 2025-07-18 山东凌然智能科技有限公司 一种代码自动编程的方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06214776A (ja) * 1993-01-20 1994-08-05 Hitachi Ltd ソフトウェア自動生成システム
US7765097B1 (en) * 2006-03-20 2010-07-27 Intuit Inc. Automatic code generation via natural language processing
EP2915068A4 (en) * 2012-11-02 2016-08-03 Fido Labs Inc SYSTEM AND METHOD FOR PROCESSING NATURAL LANGUAGE
US9110659B2 (en) * 2012-11-20 2015-08-18 International Business Machines Corporation Policy to source code conversion
KR101957277B1 (ko) * 2017-02-14 2019-03-12 윤종식 음성 인식을 이용한 코딩시스템 및 코딩방법
US10528329B1 (en) * 2017-04-27 2020-01-07 Intuit Inc. Methods, systems, and computer program product for automatic generation of software application code
US20190102390A1 (en) * 2017-09-29 2019-04-04 Novabase Sgps, S.A. Semantic search engine and visualization platform
US10732937B2 (en) * 2017-10-31 2020-08-04 Fujitsu Limited Programming by voice
US11481389B2 (en) * 2017-12-18 2022-10-25 Fortia Financial Solutions Generating an executable code based on a document
US10489126B2 (en) * 2018-02-12 2019-11-26 Oracle International Corporation Automated code generation
US20200218722A1 (en) * 2019-01-04 2020-07-09 SayMosaic Inc. System and method for natural language processing (nlp) based searching and question answering
JP2020198023A (ja) * 2019-06-05 2020-12-10 京セラドキュメントソリューションズ株式会社 情報処理装置、方法及びプログラム
US10977009B1 (en) * 2019-10-31 2021-04-13 Rovi Guides, Inc. Method and apparatus for automatic modification of applications from retrieved instructions
JP6753598B1 (ja) * 2019-11-28 2020-09-09 ソプラ株式会社 プログラムコード自動生成装置及びプログラム
US12159211B2 (en) * 2020-11-20 2024-12-03 Microsoft Technology Licensing, Llc. Automated merge conflict resolution with transformers

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN120335783A (zh) * 2025-03-31 2025-07-18 山东凌然智能科技有限公司 一种代码自动编程的方法

Also Published As

Publication number Publication date
US20240231764A9 (en) 2024-07-11
CN116710926A (zh) 2023-09-05
US20240134612A1 (en) 2024-04-25
WO2022190646A1 (ja) 2022-09-15
JP2022138568A (ja) 2022-09-26

Similar Documents

Publication Publication Date Title
US9239875B2 (en) Method for disambiguated features in unstructured text
CN110929038A (zh) 基于知识图谱的实体链接方法、装置、设备和存储介质
WO2023278052A1 (en) Automated troubleshooter
CN108345686A (zh) 一种基于搜索引擎技术的数据分析方法及系统
JP6753598B1 (ja) プログラムコード自動生成装置及びプログラム
KR102666247B1 (ko) 프롬프트 자동 생성을 통한 생성형 딥러닝 모델 학습 데이터 생성 방법
TWI851259B (zh) 一種語意分析商標類別推薦系統及其方法
CN111753517A (zh) 基于rpa及ai的文档对比方法、装置、设备及介质
KR102794591B1 (ko) 지식 정보의 버전별 관리를 적용한 법률 정보 검색 증강 시스템
JP2021144348A (ja) 情報処理装置及び情報処理方法
CN114968915A (zh) 一种自动识别解析并产生标准结构化数据报告的方法及系统
JP6889448B1 (ja) プログラムコード自動生成システム及びプログラム
JP6949341B1 (ja) プログラムコード自動生成装置及びプログラム
JP6965773B2 (ja) 提示装置、提示方法および提示プログラム
CN114141384A (zh) 用于检索医学数据的方法、设备和介质
JP6958884B1 (ja) プログラムコード自動生成システム
CN119829700A (zh) 语言处理模型训练方法及装置、问题处理方法及装置
JP2021086400A (ja) 情報処理装置、指示書データ生成方法及びプログラム
CN111966830A (zh) 结合rpa和ai的文本分类方法、装置、设备及介质
JP6777907B1 (ja) 業務支援装置、及び業務支援システム
JP7685921B2 (ja) 情報処理システム、情報処理方法、および情報処理プログラム
JP6703698B1 (ja) 情報提供システム
JP7498876B1 (ja) 検索支援システム、検索支援方法及びプログラム
CN120562434A (zh) 文本翻译方法、系统、装置、设备以及存储介质
CN120910204A (zh) 问答方法、装置、计算机设备、存储介质及程序产品

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210311

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20210311

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210615

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210806

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210907

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210910

R150 Certificate of patent or registration of utility model

Ref document number: 6949341

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20250613

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D04

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02