JP6753598B1 - Program code automatic generator and program - Google Patents

Program code automatic generator and program Download PDF

Info

Publication number
JP6753598B1
JP6753598B1 JP2019215146A JP2019215146A JP6753598B1 JP 6753598 B1 JP6753598 B1 JP 6753598B1 JP 2019215146 A JP2019215146 A JP 2019215146A JP 2019215146 A JP2019215146 A JP 2019215146A JP 6753598 B1 JP6753598 B1 JP 6753598B1
Authority
JP
Japan
Prior art keywords
program code
execution instruction
intent
processing operation
code
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
JP2019215146A
Other languages
Japanese (ja)
Other versions
JP2021086409A (en
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 JP2019215146A priority Critical patent/JP6753598B1/en
Application granted granted Critical
Publication of JP6753598B1 publication Critical patent/JP6753598B1/en
Priority to PCT/JP2020/037992 priority patent/WO2021106380A1/en
Publication of JP2021086409A publication Critical patent/JP2021086409A/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management

Abstract

【課題】業務を実行するためのプログラムコードを生成する際において、極めて容易に、しかも人手を介することなく自動的に生成することができるプログラムコード自動生成装置及びプログラムを提供する。【解決手段】プログラムコード自動生成システムは、会話文を受け付け、処理動作と実行命令が互いに関連付けられた処理動作テーブルを参照し、受け付けた会話文から抽出した処理動作について、関連性の高い実行命令を割り当てる。受け付けた会話文に対応する、処理動作を特定するアクション名を有するインテントを決定し、実行命令とインテントの組み合わせに対するプログラムコードの基本構文が関連付けられたコードテーブルを参照し、割り当てられた実行命令と、インテント決定ステップにおいて決定されたインテントとに基づいて、関連性の高いプログラムコードの基本構文を抽出する。【選択図】図5PROBLEM TO BE SOLVED: To provide a program code automatic generation device and a program which can be extremely easily generated and automatically generated without human intervention when generating a program code for executing a business. An automatic program code generation system receives a conversational sentence, refers to a processing operation table in which a processing operation and an execution instruction are associated with each other, and has a highly relevant execution instruction for a processing operation extracted from the received conversational sentence. To assign. Determine the intent that has the action name that identifies the processing action corresponding to the received conversation statement, refer to the code table associated with the basic syntax of the program code for the combination of the execution instruction and the intent, and execute the assigned execution. Extract the basic syntax of the relevant program code based on the instruction and the intent determined in the intent determination step. [Selection diagram] Fig. 5

Description

本発明は、業務の補助を実現するための業務自動処理のプログラムを自動的に生成する上で好適なプログラムコード自動生成装置及びプログラムに関する。 The present invention relates to a program code automatic generation device and a program suitable for automatically generating a business automatic processing program for realizing business assistance.

近年、デスクワーク(定型作業)等のような業務の補助を実現するための手段として、RPA(Robotic Process Automation)等に関する技術が注目を集めている。このような技術として、例えば特許文献1の情報処理装置等が提案されている。 2. Description of the Related Art In recent years, technologies related to RPA (Robotic Process Automation) and the like have been attracting attention as means for realizing assistance such as desk work (routine work). As such a technique, for example, an information processing device disclosed in Patent Document 1 has been proposed.

特許文献1の情報処理装置は、ユーザのメッセージ情報を取得する取得部と、取得した前記メッセージ情報から、前記ユーザに関連するタスク情報を抽出する抽出部と、抽出した前記タスク情報から、タスクの担当者及び関係者を識別する識別部と、前記タスク情報を、前記ユーザが前記担当者である第1タスク情報、又は前記ユーザが前記関係者である第2タスク情報に分類する分類部と、分類した前記第1又は第2タスク情報をデータベースに登録する登録部と、該データベースを参照して、前記第1又は第2タスク情報を出力する出力部とを備えることを特徴とする。 The information processing apparatus of Patent Document 1 includes an acquisition unit that acquires message information of a user, an extraction unit that extracts task information related to the user from the acquired message information, and a task of a task from the extracted task information. An identification unit that identifies a person in charge and a person concerned, and a classification unit that classifies the task information into first task information in which the user is the person in charge or second task information in which the user is the person concerned. It is characterized by comprising a registration unit for registering the classified first or second task information in a database and an output unit for referring to the database and outputting the first or second task information.

特開2019−16280号公報JP, 2019-16280, A

ところで、新規業務についてプログラムにより自動的に実行させる場合には、プログラムを作成する作業が必要となる。プログラムの作成は、従来において、その新規業務の要件定義を行い、システム設計を行い、更にプログラムコードの開発を行った後、これをテスト、検証するプロセスが発生する。このようなプログラムコードは、新規業務が生まれる都度、人手によりコーディングするのが通常であった。 By the way, in order to automatically execute a new business by a program, it is necessary to create a program. Conventionally, the process of creating a program involves defining the requirements for the new business, designing the system, further developing the program code, and then testing and verifying the program code. Such program code was usually manually coded each time a new business was created.

しかしながら、近年のIT化の急速な進展に伴い、新規業務は多岐にわたり、これらが新たに生まれる頻度も増している。 However, with the rapid progress of IT in recent years, new businesses are diverse and the frequency of new creations is increasing.

また、社内の簡単な作業一つとっても状況によっては随時変更を施さなければならないケースがある。例えば、「社員〇〇の今月の残業時間を上司に通知する」という社内業務をプログラムコード化し、自動的に行えるようになったとしても、「社員〇〇」、「上司」が異動等で変更する都度、そのプログラムコードは書き換えなければならなくなる。 In addition, even one simple task in the company may have to be changed at any time depending on the situation. For example, even if the in-house work of "notifying the boss of this month's overtime hours of employee 〇〇" is made into a program code and can be performed automatically, "employee 〇〇" and "boss" are changed due to transfer etc. Each time you do, you have to rewrite the program code.

このように新規業務の増大と、業務内容の変更の都度、人手によりプログラムコードを生成することになると作業量が膨大になり、作業者の作業負担が増大してしまうばかりか、作業の遅延が生じれば業務の流れを阻害してしまうことにもなりかねないという問題点があった。 In this way, if the program code is manually generated each time the new work is increased and the work content is changed, the amount of work becomes enormous, the work load on the worker increases, and the work delays. If it occurs, there is a problem that it may hinder the flow of business.

そこで本発明は、上述した問題点に鑑みて案出されたものであり、その目的とするところは、業務をコンピュータ側のシステムにおいて自動的に実行していくために、その業務を実行するためのプログラムコードを生成する際において、極めて容易に、しかも人手を介することなく自動的に生成することが可能なプログラムコード自動生成装置及びプログラムを提供することにある。 Therefore, the present invention has been devised in view of the above-mentioned problems, and an object of the present invention is to execute the business in order to automatically execute the business in the system on the computer side. It is an object of the present invention to provide an automatic program code generation device and a program that can be extremely easily generated and automatically generated without human intervention.

本発明に係るプログラムコード自動生成装置は、会話文を受け付ける会話文受付手段と、処理動作と実行命令が互いに関連付けられた処理動作テーブルを参照し、上記会話文受付手段が受け付けた会話文から抽出した処理動作について、関連性の高い実行命令を割り当てる実行命令割当手段と、上記会話文受付手段が受け付けた会話文に含まれる処理動作を特定するアクション名を有するインテントを決定するインテント決定手段と、実行命令とインテントの組み合わせに対するプログラムコードの基本構文が関連付けられたコードテーブルを参照し、上記実行命令割当手段により割り当てられた実行命令と、インテント決定手段により決定されたインテントとに基づいて、関連性の高いプログラムコードの基本構文を抽出するコード抽出手段とを備え、上記実行命令割当手段は、処理動作と実行命令との3段階以上の連関度を以って関連付けられた上記処理動作テーブルを参照することを特徴とする。
また、本発明に係るプログラムコード自動生成装置は、会話文を受け付ける会話文受付手段と、処理動作と実行命令が互いに関連付けられた処理動作テーブルを参照し、上記会話文受付手段が受け付けた会話文から抽出した処理動作について、関連性の高い実行命令を割り当てる実行命令割当手段と、上記会話文受付手段が受け付けた会話文に含まれる処理動作を特定するアクション名を有するインテントを決定するインテント決定手段と、
実行命令とインテントの組み合わせに対するプログラムコードの基本構文が関連付けられたコードテーブルを参照し、上記実行命令割当手段により割り当てられた実行命令と、インテント決定手段により決定されたインテントとに基づいて、関連性の高いプログラムコードの基本構文を抽出するコード抽出手段とを備え、上記コード抽出手段は、実行命令とインテントとを有する組み合わせと、当該組み合わせに対するプログラムコードの基本構文とが3段階以上の連関度を以って関連付けられたコードテーブルを参照することを特徴とする。
The program code automatic generation device according to the present invention refers to the conversation sentence receiving means that accepts the conversation sentence and the processing operation table in which the processing operation and the execution instruction are associated with each other, and extracts from the conversation sentence received by the conversation sentence receiving means. An execution instruction assigning means for assigning a highly relevant execution instruction and an intent determining means for determining an intent having an action name for specifying the processing operation included in the conversation sentence received by the conversation sentence receiving means. With reference to the code table to which the basic syntax of the program code for the combination of the execution instruction and the intent is associated, the execution instruction assigned by the execution instruction assigning means and the intent determined by the intent determining means Based on the above, the code extraction means for extracting the basic syntax of the highly relevant program code is provided , and the execution instruction assignment means is associated with the processing operation and the execution instruction with three or more levels of association. It is characterized by referring to a processing operation table .
Further, the program code automatic generation device according to the present invention refers to the conversation sentence receiving means for receiving the conversation sentence and the processing operation table in which the processing operation and the execution instruction are associated with each other, and the conversation sentence received by the conversation sentence receiving means. For the processing operation extracted from, an execution instruction assigning means for assigning a highly relevant execution instruction and an intent having an action name for specifying the processing operation included in the conversation sentence received by the conversation sentence receiving means are determined. Determining means and
Refer to the code table to which the basic syntax of the program code for the combination of the execution instruction and the intent is associated, and based on the execution instruction assigned by the execution instruction assigning means and the intent determined by the intent determining means. , A code extraction means for extracting the basic syntax of a highly relevant program code is provided, and the above code extraction means has three or more stages of a combination having an execution instruction and an intent and a basic syntax of the program code for the combination. It is characterized in that it refers to the code table associated with the degree of association of.

本発明に係るプログラムコード自動生成プログラムは、会話文を受け付ける会話文受付ステップと、処理動作と実行命令が互いに関連付けられた処理動作テーブルを参照し、上記会話文受付ステップにおいて受け付けた会話文から抽出した処理動作について、関連性の高い実行命令を割り当てる実行命令割当ステップと、上記会話文受付ステップにおいて受け付けた会話文に対応する、処理動作を特定するアクション名を有するインテントを決定するインテント決定ステップと、実行命令とインテントの組み合わせに対するプログラムコードの基本構文が関連付けられたコードテーブルを参照し、上記実行命令割当ステップにおいて割り当てられた実行命令と、インテント決定ステップにおいて決定されたインテントとに基づいて、関連性の高いプログラムコードの基本構文を抽出するコード抽出ステップとをコンピュータに実行させ、上記実行命令割当ステップにおいて、処理動作と実行命令との3段階以上の連関度を以って関連付けられた上記処理動作テーブルを参照することを特徴とする。
また、本発明に係るプログラムコード自動生成プログラムは、会話文を受け付ける会話文受付ステップと、処理動作と実行命令が互いに関連付けられた処理動作テーブルを参照し、上記会話文受付ステップにおいて受け付けた会話文から抽出した処理動作について、関連性の高い実行命令を割り当てる実行命令割当ステップと、上記会話文受付ステップにおいて受け付けた会話文に対応する、処理動作を特定するアクション名を有するインテントを決定するインテント決定ステップと、実行命令とインテントの組み合わせに対するプログラムコードの基本構文が関連付けられたコードテーブルを参照し、上記実行命令割当ステップにおいて割り当てられた実行命令と、インテント決定ステップにおいて決定されたインテントとに基づいて、関連性の高いプログラムコードの基本構文を抽出するコード抽出ステップとをコンピュータに実行させ、上記コード抽出ステップにおいて、実行命令とインテントとを有する組み合わせと、当該組み合わせに対するプログラムコードの基本構文とが3段階以上の連関度を以って関連付けられたコードテーブルを参照することを特徴とする。
The program code automatic generation program according to the present invention refers to the conversation sentence reception step that accepts the conversation sentence and the processing operation table in which the processing operation and the execution instruction are associated with each other, and extracts from the conversation sentence received in the above conversation sentence reception step. An intent determination that determines an intent having an action name that specifies an action name corresponding to the conversational sentence received in the conversational sentence reception step and the execution instruction assignment step that assigns a highly relevant execution instruction to the processed processing operation. Referencing the code table in which the basic syntax of the program code for the combination of the step and the execution instruction and the intent is associated, the execution instruction assigned in the execution instruction assignment step and the intent determined in the intent determination step Based on the above, the computer is made to execute a code extraction step that extracts the basic syntax of the highly relevant program code, and in the above-mentioned execution instruction assignment step, the processing operation and the execution instruction are associated with each other in three or more stages. It is characterized by referring to the associated processing operation table .
Further, the program code automatic generation program according to the present invention refers to the conversation sentence reception step that accepts the conversation sentence and the processing operation table in which the processing operation and the execution instruction are associated with each other, and the conversation sentence received in the conversation sentence reception step. For the processing operation extracted from, an execution instruction assignment step for assigning a highly relevant execution instruction and an intent having an action name for specifying the processing operation corresponding to the conversation sentence received in the above conversation sentence reception step are determined. Referencing the code table in which the tent determination step and the basic syntax of the program code for the combination of the execution instruction and the intent are associated, the execution instruction assigned in the execution instruction allocation step and the in determined in the intent determination step. A computer is made to execute a code extraction step for extracting the basic syntax of highly relevant program code based on the tent, and in the above code extraction step, a combination having an execution instruction and an intent and a program code for the combination are executed. It is characterized in that the basic syntax of is referred to a code table associated with three or more levels of association.

上述した発明によれば、業務をコンピュータ側のシステムにおいて自動的に実行していくために、その業務を実行するためのプログラムコードを生成する際において、極めて容易に、しかも人手を介することなく自動的に生成することが可能となる。 According to the invention described above, in order to automatically execute a business in a computer-side system, it is extremely easy and automatic without human intervention when generating a program code for executing the business. It is possible to generate the system.

図1は、実施の形態におけるプログラムコード自動生成システムのブロック図である。FIG. 1 is a block diagram of the program code automatic generation system according to the embodiment. 図2(a)及び図2(b)は、プログラムコード自動生成装置1の構成の一例を示す模式図である。2 (a) and 2 (b) are schematic views showing an example of the configuration of the program code automatic generation device 1. 図3は、処理動作テーブルの例を示す図である。FIG. 3 is a diagram showing an example of a processing operation table. 図4は、コードテーブルの例を示す図である。FIG. 4 is a diagram showing an example of a code table. 図5は、本発明を適用したプログラムコード自動生成システムのフローチャートである。FIG. 5 is a flowchart of a program code automatic generation system to which the present invention is applied. 図6は、本発明を適用したプログラムコード自動生成システムの動作例を示す図である。FIG. 6 is a diagram showing an operation example of a program code automatic generation system to which the present invention is applied. 図7は、本発明を適用したプログラムコード自動生成システムの他の動作例を示す図である。FIG. 7 is a diagram showing another operation example of the program code automatic generation system to which the present invention is applied. 図8は、実行命令を探索する上で人工知能による機械学習を利用する場合について説明するための図である。FIG. 8 is a diagram for explaining a case where machine learning by artificial intelligence is used in searching for an execution instruction. 図9は、入力ノード又は隠れ層ノードの何れか一方又は両方において連関度が設定され、これが各ノードの重み付けとする例を示す図である。FIG. 9 is a diagram showing an example in which the degree of association is set in either one or both of the input node and the hidden layer node, and this is used as the weight of each node. 図10は、プログラムコードの基本構文を探索する上で人工知能による機械学習を利用する場合について説明するための図である。FIG. 10 is a diagram for explaining a case where machine learning by artificial intelligence is used in searching the basic syntax of the program code.

以下、本発明の実施形態におけるプログラムコード自動生成システムの一例について、図面を参照しながら説明する。 Hereinafter, an example of the program code automatic generation system according to the embodiment of the present invention will be described with reference to the drawings.

(実施形態:プログラムコード自動生成システム100)
図1〜図4を参照して、本実施形態におけるプログラムコード自動生成システム100の構成の一例について説明する。図1は、本実施形態におけるプログラムコード自動生成システム100の全体の構成を示す模式図である。
(Embodiment: Program Code Automatic Generation System 100)
An example of the configuration of the program code automatic generation system 100 according to the present embodiment will be described with reference to FIGS. 1 to 4. FIG. 1 is a schematic diagram showing the overall configuration of the program code automatic generation system 100 according to the present embodiment.

プログラムコード自動生成システム100は、主に定型作業等のような業務の補助(例えば業務の自動化処理)を実現するためのプログラムコードの生成のために利用される。プログラムコード自動生成システム100は、業務を実行するためのプログラムコードを自動生成することで、企業内における各業務(例えば、作業者の進捗状況の収集、タスク管理、勤務管理等)をコンピュータ上で自動的に行うことができる。プログラムコード自動生成システム100は、特にこのプログラムコードの自動生成を、音声又はテキストにより設定することができ、システム管理者等のような専門的知識を有しないユーザ(例えばプログラムコード自動生成システム100を利用して業務を管理する利用者等)においても、新規業務をコンピュータに自動的に行わせるためのプログラムコードの自動生成を容易に実現することが可能となる。 The program code automatic generation system 100 is mainly used for generating program code for realizing business assistance (for example, business automation processing) such as routine work. The program code automatic generation system 100 automatically generates a program code for executing a business, so that each business in the company (for example, collection of worker's progress, task management, work management, etc.) can be performed on a computer. It can be done automatically. The program code automatic generation system 100 can set the automatic generation of the program code by voice or text, and a user who does not have specialized knowledge such as a system administrator (for example, the program code automatic generation system 100). Even for users who manage their business by using it), it is possible to easily realize automatic generation of program code for automatically performing new business on a computer.

プログラムコード自動生成システム100は、例えば図1に示すように、プログラムコード自動生成装置1を備え、ユーザがプログラムコード自動生成装置1を利用してもよい。プログラムコード自動生成システム100は、例えば通信網4を介してプログラムコード自動生成装置1と接続された端末2を備え、ユーザが端末2を介してプログラムコード自動生成装置1を利用してもよい。プログラムコード自動生成システム100は、例えば通信網4を介してプログラムコード自動生成装置1と接続されたサーバ3を備え、ユーザがプログラムコード自動生成装置1又は端末2を介してサーバ3との各種情報の送受信により、各手段を実現してもよい。 As shown in FIG. 1, for example, the program code automatic generation system 100 includes a program code automatic generation device 1, and the user may use the program code automatic generation device 1. The program code automatic generation system 100 may include a terminal 2 connected to the program code automatic generation device 1 via, for example, a communication network 4, and the user may use the program code automatic generation device 1 via the terminal 2. The program code automatic generation system 100 includes, for example, a server 3 connected to the program code automatic generation device 1 via a communication network 4, and a user can perform various information with the server 3 via the program code automatic generation device 1 or a terminal 2. Each means may be realized by sending and receiving.

図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により接続される。 FIG. 2A is a schematic diagram showing an example of the configuration of the program code automatic generation device 1. As the program code automatic generation device 1, for example, a known electronic device such as a personal computer (PC), a smartphone, or a tablet terminal is used. The program code automatic generation device 1 includes, for example, a housing 10, a CPU (Central Processing Unit) 101, a ROM (Read Only Memory) 102, a RAM (Random Access Memory) 103, a storage unit 104, and an I / F 105-. It includes 107, an input unit 108, and a notification unit 109. The components 101 to 107 are connected by the internal bus 110.

CPU101は、プログラムコード自動生成装置1全体を制御する。ROM102は、CPU101の動作コードを格納する。RAM103は、CPU101の動作時に使用される作業領域である。保存部104は、処理用データ等の各種情報が保存される。保存部104として、例えばHDD(Hard Disk Drive)、SSD(Solid State Drive)等が用いられる。 The CPU 101 controls the entire program code automatic generation device 1. The ROM 102 stores the operation code of the CPU 101. The RAM 103 is a work area used during the operation of the CPU 101. The storage unit 104 stores various kinds of information such as processing data. As the storage unit 104, for example, an HDD (Hard Disk Drive), an SSD (Solid State Drive), or the like is used.

I/F105は、端末2、サーバ3、通信網4等との各種情報の送受信を行うためのインターフェースである。I/F106は、入力部108との各種情報の送受信を行うためのインターフェースである。I/F107は、報知部109との各種情報の送受信を行うためのインターフェースである。 The I/F 105 is an interface for transmitting and receiving various information with the terminal 2, the server 3, the communication network 4, and the like. The I/F 106 is an interface for transmitting/receiving various information to/from the input unit 108. The I/F 107 is an interface for transmitting and receiving various information to and from the notification unit 109.

入力部108として、キーボードが用いられるほか、例えばマイク等の収音装置が用いられてもよい。プログラムコード自動生成装置1を利用するユーザは、例えば入力部108を介してテキストデータや音声等の各種情報を入力できる。 A keyboard may be used as the input unit 108, and a sound collecting device such as a microphone may be used. The user who uses the program code automatic generation device 1 can input various information such as text data and voice via the input unit 108, for example.

報知部109は、保存部104に保存された表示用データ等の各種情報や、プログラムコード自動生成装置1の処理状況などを表示する。報知部109として、ディスプレイが用いられるほか、例えばスピーカが用いられてもよい。 The notification unit 109 displays various information such as display data stored in the storage unit 104, the processing status of the program code automatic generation device 1, and the like. As the notification unit 109, a display may be used and, for example, a speaker may be used.

なお、I/F105〜I/F107として、例えば同一のものが用いられてもよく、各I/F105〜I/F107として、例えばそれぞれ複数のものが用いられてもよい。また、報知部109としてタッチパネル式のディスプレイが用いられる場合、報知部109が入力部108を含む構成としてもよい。 The same I/F 105 to I/F 107 may be used, and a plurality of I/Fs 105 to I/F 107 may be used. When a touch panel type display is used as the notification unit 109, the notification unit 109 may include the input unit 108.

図2(b)は、プログラムコード自動生成装置1の機能の一例を示す模式図である。プログラムコード自動生成装置1は、取得部11と、演算部12とを備え、例えば実行部13と、記憶部14と、出力部15と、インテント格納部16とを備えてもよい。なお、図2(b)に示した各機能は、CPU101が、RAM103を作業領域として、保存部104等に記憶されたプログラムを実行することにより実現される。また、各機能の一部は、人工知能により制御されてもよい。ここで、「人工知能」は、いかなる周知の人工知能技術に基づくものであってもよい。 FIG. 2B is a schematic diagram showing an example of the function of the program code automatic generation device 1. The program code automatic generation device 1 may include an acquisition unit 11 and a calculation unit 12, and may include, for example, an execution unit 13, a storage unit 14, an output unit 15, and an intent storage unit 16. Each function shown in FIG. 2B is realized by the CPU 101 executing a program stored in the storage unit 104 or the like using the RAM 103 as a work area. Further, some of the functions may be controlled by artificial intelligence. Here, the "artificial intelligence" may be based on any well-known artificial intelligence technology.

<取得部11>
取得部11は、会話文からなるテキストデータを取得する。取得部11は、例えば端末2又は入力部108を介してユーザから入力されたテキストデータを取得する。例えば端末2又は入力部108を介して、ユーザから会話文が音声により入力された場合、取得部11は、公知の音声認識技術(例えば音素認識技術)を用いて音声から生成されたテキストデータを取得する。なお、音声認識技術は、例えば通信網4を介して、クラウド型の音声認識技術を用いてもよい。
<Acquisition unit 11>
The acquisition unit 11 acquires text data composed of conversational sentences. The acquisition unit 11 acquires text data input from the user via, for example, the terminal 2 or the input unit 108. For example, when a conversational sentence is input by voice from the user via the terminal 2 or the input unit 108, the acquisition unit 11 uses a known voice recognition technology (for example, phoneme recognition technology) to generate text data from the voice. get. As the voice recognition technology, for example, a cloud-type voice recognition technology may be used via the communication network 4.

<演算部12>
演算部12は、データベースを参照し、取得したテキストデータに基づいて各種処理動作、演算を実行する。演算部12は、受け付けた会話文について形態素解析することにより、動詞や名詞、格成分等を始めとする文の個々の構成要素を抽出する。演算部12は、受け付けた会話文から抽出した処理動作について、関連性の高い実行命令を割り当てる処理動作を行う。この演算部12は、受け付けた会話文に対応する、処理動作を特定するアクション名を有するインテントを決定する処理動作を実行する。演算部12は、記憶部14を参照し、実行命令とインテントに応じたプログラムコードの基本構文を抽出する。また演算部12は、抽出されたプログラムコードの基本構文に、会話文から抽出した名詞又は名詞句を代入することによりプログラムコードを生成する。
<Calculator 12>
The calculation unit 12 refers to the database and executes various processing operations and calculations based on the acquired text data. The arithmetic unit 12 extracts individual components of the sentence, including verbs, nouns, case components, etc., by performing morphological analysis on the received conversational sentence. The arithmetic unit 12 performs a processing operation of assigning a highly relevant execution instruction to the processing operation extracted from the received conversational sentence. The calculation unit 12 executes a processing operation for determining an intent having an action name that specifies the processing operation corresponding to the received conversational sentence. The arithmetic unit 12 refers to the storage unit 14 and extracts the basic syntax of the program code according to the execution instruction and the intent. Further, the arithmetic unit 12 generates a program code by substituting a noun or a noun phrase extracted from a conversational sentence into the basic syntax of the extracted program code.

<実行部13>
実行部13は、演算部12において生成されたプログラムコードに基づき、業務処理を実行する。業務処理として、例えばタスクの内容や期限に基づき担当者へのメール送信、勤務管理、タスク進行履歴更新等の定型作業が挙げられ、業務処理情報をプログラムとしてコンピュータに実行させることができる内容が用いられる。
<Execution unit 13>
The execution unit 13 executes business processing based on the program code generated by the calculation unit 12. Examples of business processing include routine work such as email transmission to a person in charge, work management, task progress history update, etc. based on the content and deadline of the task, and content that can be executed by a computer as business processing information is used. To be

<記憶部14>
記憶部14は、取得部11を介して取得した会話文からなるテキストデータを一時的に保存する。この記憶部14に記憶されたテキストデータは、演算部12や実行部13等による制御に基づき読み出され、また更新される場合もある。記憶部14は、処理動作テーブルと、コードテーブルの少なくとも2つのテーブルを保持している。
<Memory unit 14>
The storage unit 14 temporarily stores text data composed of conversational sentences acquired through the acquisition unit 11. The text data stored in the storage unit 14 may be read out and updated under the control of the calculation unit 12, the execution unit 13, and the like. The storage unit 14 holds at least two tables, a processing operation table and a code table.

図3は、処理動作テーブルの例を示している。処理動作テーブルは、会話文(テキストデータ)から抽出した処理動作が、具体的にプログラムのいかなる実行命令に相当するのかを紐づけるテーブルである。処理動作テーブルでは、会話文から抽出した処理動作の列と、プログラムコードの具体的な実行命令の意味の列で構成されている。処理動作は、図3に示すように「登録する」、「教えて」、「書き込む」等のように処理動作を規定するあらゆる文言を含むものである。処理動作は動詞に限定されるものでは無く、処理動作を規定するものであれば、名詞等、他のいかなる文法的要素で構成されていてもよい。処理動作を名詞で構成する例としては、「書き込み」、「登録」等であってもよい。 FIG. 3 shows an example of a processing operation table. The processing operation table is a table for associating what kind of execution instruction of the program the processing operation extracted from the conversation sentence (text data) specifically corresponds to. The processing operation table is composed of a column of processing operations extracted from conversational sentences and a column of meanings of specific execution instructions of the program code. As shown in FIG. 3, the processing operation includes all words that define the processing operation, such as "register", "tell", and "write". The processing action is not limited to the verb, and may be composed of any other grammatical element such as a noun as long as it defines the processing action. Examples of the processing operation composed of nouns may be "writing", "registration", and the like.

ここでいうプログラムコードの実行命令は、プログラムコードの中でも「PRINT(プリントアウトせよ)」や「DELETE(削除せよ)」、「Write Line(書き込め)」といった、いわば処理動作に該当するコードを上位概念化したものである。 The program code execution instruction here is a higher-level conceptualization of the code corresponding to the processing operation, such as "PRINT", "DELETE", and "Write Line" in the program code. It was done.

この処理動作テーブルでは、同一の行にある処理動作と実行命令が互いに対応する関係となる。例えば、処理動作「入力する」は、「DB(データベース)登録」に対応し、また「書き込む」は、「ファイル書き込み」に対応する。 In this processing operation table, the processing operations and the execution instructions in the same row have a corresponding relationship with each other. For example, the processing operation "input" corresponds to "DB (database) registration", and "write" corresponds to "file write".

このとき、一つの処理動作が複数の実行命令に対応する場合もあれば、逆に一つの実行命令が複数の処理動作に対応する場合もある。例えば処理動作「出力して」に対しては、「モニタ表示」、「ファイル作成」の2以上の実行命令が対応する場合もあれば、実行命令「モニタ表示」は、「見せて」、「出力して」の2以上の処理動作に対応する場合がある。 At this time, one processing operation may correspond to a plurality of execution instructions, and conversely, one execution instruction may correspond to a plurality of processing operations. For example, two or more execution instructions of "monitor display" and "file creation" may correspond to the processing operation "output", and the execution instruction "monitor display" may correspond to "show" and "show". It may correspond to two or more processing operations of "output".

このような処理動作テーブルを記憶部14に記憶させておくことで、演算部12による演算の過程でこれを読み出し、参照することができる。演算部12は、この処理動作テーブルを参照することにより、会話文(テキストデータ)から抽出した処理動作が、具体的にプログラムのいかなる実行命令に相当するのかを判別することが可能となる。 By storing such a processing operation table in the storage unit 14, it can be read out and referred to in the process of calculation by the calculation unit 12. By referring to this processing operation table, the arithmetic unit 12 can determine which execution instruction of the program the processing operation extracted from the conversational sentence (text data) specifically corresponds to.

図4は、コードテーブルの例を示している。コードテーブルは、プログラムコードの具体的な実行命令の意味と、会話文に含まれる処理動作を特定するアクション名を有するインテントとに対する、プログラムコードの基本構文とを紐づけるテーブルである。プログラムコードの具体的な実行命令は、処理動作テーブルに記述されている実行命令に対応するものである。インテントとは、業務処理ごとに管理される情報であり、後述するアクション名を規定するものである。業務処理とは、業務に関する処理である。業務は、例えば、会社や団体等の組織で行われる仕事である、といってもよい。業務は、例えば、定時までの勤務、定時後の残業、休暇、欠勤、A案件、B案件、経理、製造などであるが、その種類はこれらに限定されるものではない。業務処理は、例えば、情報の検索である。なお、検索は、例えば、照会といってもよい。検索される情報は、例えば、残業時間や勤務時間等の勤怠情報であるが、残高や株価等の金融情報、または製造ラインの稼働情況などでもよく、これらに限定されるものではない。 FIG. 4 shows an example of a code table. The code table is a table that associates the meaning of a specific execution instruction of the program code with the basic syntax of the program code for an intent having an action name that specifies a processing operation included in a conversational sentence. The specific execution instruction of the program code corresponds to the execution instruction described in the processing operation table. The intent is information managed for each business process, and defines an action name described later. Business processing is processing related to business. It can be said that the work is, for example, a work performed by an organization such as a company or an organization. The work includes, for example, work until the fixed time, overtime after the fixed time, vacation, absenteeism, A case, B case, accounting, manufacturing, etc., but the types are not limited to these. The business process is, for example, information retrieval. The search may be referred to as an inquiry, for example. The information to be searched is, for example, attendance information such as overtime hours and working hours, but may be financial information such as balances and stock prices, or operating conditions of manufacturing lines, and is not limited thereto.

ただし、業務処理は、例えば、情報の登録、または情報に基づく処理(例えば、勤怠情報に基づく給与計算、財務情報に基づく金融取引等)などでもよく、これらに限定されるものではない。 However, the business processing may be, for example, registration of information or processing based on information (for example, payroll calculation based on attendance information, financial transaction based on financial information, etc.), and is not limited thereto.

インテントは、通常、業務処理(処理動作)を特定するアクション名を有する。アクション名とは、アクションの名称である。アクションとは、通常、APIを介して実行される業務処理である。ただし、アクションは、例えば、SQL文に応じて実行される業務処理であってもよい。 The intent usually has an action name that identifies a business process (processing operation). The action name is the name of the action. An action is a business process that is usually executed via an API. However, the action may be, for example, a business process executed in response to an SQL statement.

なお、アクション名は、通常、後述するAPI情報にも対応付いている。従って、インテントは、例えば、アクション名を介して、API情報に対応付けられる、と考えてもよい。 The action name usually corresponds to the API information described later. Therefore, it may be considered that the intent is associated with the API information, for example, via the action name.

また、インテントは、通常、インテント名も有する。インテント名とは、インテントの名称である。従って、インテントは、インテント名または当該インテント名で特定されるインテントと、アクション名または当該アクション名で特定されるアクションとを対応付ける情報である、と考えることもできる。 The intent also usually has an intent name. The intent name is the name of the intent. Therefore, the intent can be considered as information that associates the intent specified by the intent name or the intent name with the action name or the action specified by the action name.

アクション名は、具体的には、例えば、「残業時間照会」、「勤務時間データ照会」等であるが、業務処理を特定し得る情報であれば何でもよい。 Specifically, the action name is, for example, "overtime hour inquiry", "working hour data inquiry", or the like, but any information that can specify the business process may be used.

プログラムコードの基本構文は、実際にPC等により各種処理動作を実行させるためのプログラムコードの原型である。このプログラムコードの基本構文に、必要な名詞又は名詞句を代入することで、プログラムコードを完成させることができる。プログラムコードの基本構文の例としては、「INSERT INTO 請求データ(請求月,請求額) VALUES ([param1],[param2]) ;」等であり、請求データや、処理の対象となるデータを挿入することでプログラムコードを完成させることができる。 The basic syntax of the program code is the prototype of the program code for actually executing various processing operations by a PC or the like. The program code can be completed by substituting the necessary nouns or noun phrases into the basic syntax of the program code. An example of the basic syntax of the program code is "INSERT INTO billing data (billing month, billing amount) VALUES ([param1], [param2]);", and inserts billing data and data to be processed. By doing so, the program code can be completed.

コードテーブルでは、同一の行にあるインテントと、プログラムコードの実行命令と、プログラムコードの基本構文が互いに対応する関係となる。例えば、インテント「請求データの参照」であり、実行命令が「DB参照」であれば、これに対応するプログラムコードの基本構文は、「SELECT 請求額 FROM 請求データ WHERE 会社= [param1] AND 請求月=[param2];」となる。 In the code table, the intent on the same line, the execution instruction of the program code, and the basic syntax of the program code correspond to each other. For example, if the intent is "reference to billing data" and the execution instruction is "DB reference", the basic syntax of the corresponding program code is "SELECT billing amount FROM billing data WHERE company = [param1] AND billing". Month = [param2]; ".

このとき、一つのインテントが複数の実行命令に対応する場合もあれば、逆に一つの実行命令が複数のインテントに対応する場合もある。また一つのインテントが複数のプログラムコードの基本構文に対応する場合もあれば、逆に一つの基本構文が複数のインテントに対応する場合もある。また一つの実行命令が複数のプログラムコードの基本構文に対応する場合もあれば、逆に一つの基本構文が複数の実行命令に対応する場合もある。 At this time, one intent may correspond to a plurality of execution instructions, and conversely, one execution instruction may correspond to a plurality of intents. In addition, one intent may correspond to the basic syntax of a plurality of program codes, and conversely, one basic syntax may correspond to a plurality of intents. In addition, one execution instruction may correspond to the basic syntax of a plurality of program codes, and conversely, one basic syntax may correspond to a plurality of execution instructions.

このようなコードテーブルを記憶部14に記憶させておくことで、演算部12による演算の過程でこれを読み出し、参照することができる。演算部12は、このコードテーブルを参照することにより、 By storing such a code table in the storage unit 14, it can be read out and referred to in the process of calculation by the calculation unit 12. By referring to this code table, the arithmetic unit 12 can refer to this code table.

会話文(テキストデータ)から抽出したインテントと、会話文(テキストデータ)から処理動作を介して特定した実行命令から、いかなるプログラムコードの基本構文に相当するのかを判別することが可能となる。 From the intent extracted from the conversational sentence (text data) and the execution instruction specified from the conversational sentence (text data) via the processing operation, it is possible to determine what kind of program code the basic syntax corresponds to.

<出力部15>
出力部15は、プログラムコードにより実行された動作に関する各種情報を出力する。表示用データは、報知部109又は端末2等を介して、ユーザが認識できるように報知される。出力部15は、I/F105を介して端末2等に表示用データ等を出力し、I/F107を介して報知部109に表示用データ等を出力する。
<Output unit 15>
The output unit 15 outputs various information regarding the operation executed by the program code. The display data is notified via the notification unit 109 or the terminal 2 so that the user can recognize it. The output unit 15 outputs the display data and the like to the terminal 2 and the like via the I/F 105, and outputs the display data and the like to the notification unit 109 via the I/F 107.

<インテント格納部16>
インテント格納部16には、1または2以上のインテントが格納される。インテントは、業務処理を特定する情報に対応付けて、このインテント格納部16に格納されるものであってもよい。なお、業務処理を特定する情報は、通常、後述するアクション名であるが、その形式はこれらに限定されるものではない。また、対応付くことは、例えば、インテントが、業務処理を特定する情報を有する場合も含む。
<Intent storage 16>
One or two or more intents are stored in the intent storage unit 16. The intent may be stored in the intent storage unit 16 in association with the information that specifies the business process. The information that identifies the business process is usually an action name described later, but the format is not limited to these. Correspondence also includes, for example, the case where the intent has information that identifies the business process.

<端末2>
端末2として、例えばパーソナルコンピュータ、スマートフォン、タブレット端末等の公知の電子機器が用いられる。端末2は、例えば上述したプログラムコード自動生成装置1と同様の構成及び機能の少なくとも一部を備えてもよい。端末2は、例えば複数備えてもよく、各端末2がそれぞれ通信網4を介してプログラムコード自動生成装置1と接続されてもよい。
<Terminal 2>
As the terminal 2, for example, a known electronic device such as a personal computer, a smart phone, or a tablet terminal is used. The terminal 2 may have at least a part of the same configuration and functions as the program code automatic generation device 1 described above, for example. A plurality of terminals 2 may be provided, for example, and each terminal 2 may be connected to the program code automatic generation device 1 via the communication network 4.

<サーバ3>
サーバ3には、例えば上述した各種情報が記憶される。サーバ3には、例えば通信網4を介してプログラムコード自動生成装置1等から送られてきた各種情報が蓄積される。サーバ3には、例えば保存部104と同様の情報が記憶され、通信網4を介してプログラムコード自動生成装置1等と各種情報の送受信が行われてもよい。即ち、プログラムコード自動生成システム100では、プログラムコード自動生成装置1又はプログラムコード自動生成装置1の保存部104の代わりにサーバ3を用いてもよい。
<Server 3>
The server 3 stores, for example, the various types of information described above. Various information sent from the program code automatic generation device 1 and the like is stored in the server 3 via, for example, the communication network 4. For example, the server 3 stores the same information as the storage unit 104, and may transmit and receive various information to and from the program code automatic generation device 1 and the like via the communication network 4. That is, in the program code automatic generation system 100, the server 3 may be used instead of the program code automatic generation device 1 or the storage unit 104 of the program code automatic generation device 1.

<通信網4>
通信網4は、プログラムコード自動生成装置1が通信回路を介して接続されるインターネット網等である。通信網4は、いわゆる光ファイバ通信網で構成されてもよい。また、通信網4は、有線通信網のほか、無線通信網等の公知の通信網で実現されてもよい。
<Communication network 4>
The communication network 4 is an Internet network or the like to which the program code automatic generation device 1 is connected via a communication circuit. The communication network 4 may be configured by a so-called optical fiber communication network. The communication network 4 may be realized by a known communication network such as a wireless communication network in addition to the wired communication network.

次に、本発明を適用したプログラムコード自動生成システム100の動作について説明をする。 Next, the operation of the program code automatic generation system 100 to which the present invention is applied will be described.

図5に示すようにステップS11において会話文の受け付けを行う。具体的には、音声データとして取得部11において会話文が取得した場合には、これを公知の音声認識技術(例えば音素認識技術)を用いテキストデータを生成する。また、電子データ化されたテキストデータを取得部11において取得した場合には、これをそのまま利用することになる。電子データ化されたテキストデータは、例えばメール文や社内又は社外において活用している情報掲示板や各種サイトの書き込みをそのまま取り込むようにしてもよい。 As shown in FIG. 5, the conversational sentence is accepted in step S11. Specifically, when a conversational sentence is acquired by the acquisition unit 11 as voice data, text data is generated by using a known voice recognition technique (for example, phoneme recognition technique). Further, when the text data converted into electronic data is acquired by the acquisition unit 11, it will be used as it is. The text data converted into electronic data may include, for example, e-mail texts, information bulletin boards used inside or outside the company, and posts on various sites as they are.

取得部11は、ユーザの入力するタイミング毎にテキストデータを取得するほか、例えば一定期間に蓄積された複数のテキストデータを一度に取得してもよい。なお、端末2又は入力部108を介して入力された非テキスト形式のデータから、テキストデータを生成する方法は、公知技術を用いることができる。このようにして取得されたテキストデータは、記憶部14において一時的に記憶される。 The acquisition unit 11 may acquire the text data at each timing input by the user, or may acquire, for example, a plurality of text data accumulated in a certain period at one time. A known technique can be used as a method for generating text data from non-text format data input via the terminal 2 or the input unit 108. The text data acquired in this way is temporarily stored in the storage unit 14.

図6、7は、図5に示す各ステップについて具体的な事例を挙げて説明した図である。テキストデータとしては、例えば、「商品名、A5-7853Kを登録して」や、「山田太郎の今月の残業時間を教えて」のような処理動作とこれに係り受けする格成分の関係からなる節が取得されていてもよいし、「A5-7853K、登録して」や、「山田太郎、今月、残業時間、教えて」等、キーワードが断片的に散りばめられたものを取得するようにしてもよい。 6 and 7 are diagrams for explaining each step shown in FIG. 5 with specific examples. The text data consists of the relationship between the processing operations such as "Register the product name, A5-7853K" and "Tell me about Taro Yamada's overtime hours this month" and the case components involved in this. The clause may have been acquired, and the keywords such as "A5-7853K, register" and "Taro Yamada, this month, overtime hours, tell me" should be acquired. May be good.

次にステップS12に移行し、S11において取得され、記憶部14において一時的に記憶されているテキストデータとしての会話文を読み出し、これを形態素解析する。この形態素解析は、主として演算部12が行う。形態素解析技術は周知のいかなる形態素解析技術を利用するようにしてもよい。 Next, the process proceeds to step S12, the conversational sentence as the text data acquired in S11 and temporarily stored in the storage unit 14 is read out, and this is morphologically analyzed. This morphological analysis is mainly performed by the arithmetic unit 12. As the morphological analysis technique, any well-known morphological analysis technique may be used.

このステップS12における形態素解析の結果、例えば会話文「商品名、A5-7853Kを登録して」については、「商品名|A5-7853K | を | 登録 | して」に分解することができ、また会話文「山田太郎の今月の残業時間を教えて」は、「山田太郎|の | 今月 | の | 残業 | 時間 | を | 教えて」に分解することができる。 As a result of the morphological analysis in step S12, for example, the conversational sentence "Register the product name, A5-7853K" can be decomposed into "Product name | A5-7853K | Register |". The conversation "Tell me about Taro Yamada's overtime hours this month" can be broken down into "Taro Yamada | | This month | | Overtime | Hours | Tell me".

次にステップS13に移行し、形態素解析を通じて解析した分の構成要素から1以上の自立語と同一または類似する単語を有するアクション名を有するインテントを決定する。 Next, the process proceeds to step S13, and an intent having an action name having a word that is the same as or similar to one or more independent words is determined from the components analyzed through the morphological analysis.

詳しくは、例えば、記憶部14に類義語辞書が格納されているものとする。類義語辞書とは、類義語に関する辞書である。類義語辞書には、記憶部14に格納されている1以上の各インテントを構成するアクション名ごとに、当該アクション名が有する単語と、当該単語の1または2以上の類義語とが登録されている。具体的には、例えば、アクション名「残業時間照会」が有する単語「残業時間」に対応付けて、「時間外」、「時間外時間」などが登録されていてもよい。 Specifically, for example, it is assumed that the synonym dictionary is stored in the storage unit 14. A synonym dictionary is a dictionary related to synonyms. In the synonym dictionary, a word possessed by the action name and one or more synonyms of the word are registered for each action name constituting one or more intents stored in the storage unit 14. .. Specifically, for example, "overtime", "overtime hours", and the like may be registered in association with the word "overtime hours" of the action name "overtime hours inquiry".

取得部11が会話文「山田太郎の今月の残業時間を教えて」を受け付けた場合、当該会話文から、「山田太郎」や「今月」や「残業時間」等の1以上の自立語を取得し、各自立語をキーにインテント格納部16を検索して、当該自立語と一致するアクション名を有するインテントがあるか否かを判断する。なお、一致は、例えば、完全一致であるが、部分一致でもよい。そして、当該自立語と一致する単語を有する、処理動作を特定するアクション名を有するインテントがある場合、当該インテントを決定する。上述した例では、自立語「商品名」と一致する単語「商品名」を有するアクション名「商品名の登録」を有するインテントがあれば、当該インテントが決定される。また、自立語「残業時間」と一致する単語「残業時間」を有するアクション名「残業時間の参照」を有するインテントがあれば、当該インテントが決定される。 When the acquisition department 11 accepts the conversation "Tell me about Taro Yamada's overtime hours this month", he acquires one or more independent words such as "Taro Yamada", "this month", and "overtime hours" from the conversation. Then, the intent storage unit 16 is searched using each independent word as a key, and it is determined whether or not there is an intent having an action name that matches the independent word. The match is, for example, an exact match, but may be a partial match. Then, if there is an intent having an action name that specifies the processing operation and having a word that matches the independent word, the intent is determined. In the above example, if there is an intent having the action name "registered product name" having the word "product name" matching the independent word "product name", the intent is determined. In addition, if there is an intent having the action name "reference to overtime hours" having the word "overtime hours" matching the independent word "overtime hours", the intent is determined.

なお、当該自立語と一致する単語を有するアクション名を有するインテントがない場合、例えば、類義語辞書から、当該自立語に対応する1以上の類義語のうち、一の類義語を取得し、当該一の類義語をキーにインテント格納部16を検索して、当該当該一の類義語と一致する単語を有するアクション名を有するインテントがあるか否かを判断する。そして、当該一の類義語と一致する単語を有するアクション名を有するインテントがある場合、当該インテントを決定する。かかるインテントがない場合、このステップS13では、他の類義語について、同様の処理を行い、インテントを決定する。どの類義語についても、かかるインテントがない場合、インテントが決定されない旨を出力してもよい。 If there is no intent with an action name that has a word that matches the independent word, for example, one synonym of one or more synonyms corresponding to the independent word is obtained from the synonym dictionary, and the synonym of the one is obtained. The intent storage unit 16 is searched using a synonym as a key, and it is determined whether or not there is an intent having an action name having a word matching the one synonym. Then, if there is an intent having an action name having a word that matches the one synonym, the intent is determined. If there is no such intent, in step S13, the same processing is performed for other synonyms to determine the intent. For any synonym, if there is no such intent, it may be output that the intent is not determined.

次にステップS14へ移行し、プログラムコードの関連付け解析を行う。演算部12は、先ずステップS12において形態素解析した会話文について、処理動作を抽出する。この処理動作の抽出は、処理動作そのものの抽出に限定されるものではなく、処理動作に相当する文言を含む形態素を抽出するものであってもよい。 Next, the process proceeds to step S14, and the association analysis of the program code is performed. The arithmetic unit 12 first extracts the processing operation of the conversational sentence analyzed by morphological analysis in step S12. The extraction of the processing operation is not limited to the extraction of the processing operation itself, and may be the extraction of the morpheme including the wording corresponding to the processing operation.

このようにして抽出された処理動作について、図6、7に示すように、処理動作と実行命令が互いに関連付けられた処理動作テーブルを参照し、より関連性の高い実行命令を割り当てる処理を行う。 Regarding the processing operations extracted in this way, as shown in FIGS. 6 and 7, the processing operations and the execution instructions refer to the processing operation table associated with each other, and a process of assigning a more relevant execution instruction is performed.

例えば、「商品名|A5-7853K | を | 登録 | して」に分解された形態素から、処理動作に該当するのは「登録(して)」であることから、図6に示すように、処理動作テーブルを参照し、当該処理動作に対応する実行命令を探索する。その結果、「登録(して)」に紐づけられている実行命令、換言すれば「登録(して)」と関連性の高い実行命令は、「DB(データベース)登録」であることが、この処理動作テーブルに示されている。このため、実行命令として、「DB登録」を割り当てることになる。 For example, from the morpheme decomposed into "Product name | A5-7853K | | Register |", the processing operation corresponds to "Register". Therefore, as shown in FIG. Refer to the processing operation table and search for the execution instruction corresponding to the processing operation. As a result, the execution instruction associated with "registration", in other words, the execution instruction highly related to "registration", is "DB (database) registration". It is shown in this processing operation table. Therefore, "DB registration" is assigned as the execution instruction.

例えば、「山田太郎|の | 今月 | の | 残業 | 時間 | を | 教えて」に分解された形態素から、処理動作に該当するのは「教えて」であることから、図7に示すように、処理動作テーブルを参照し、当該処理動作に対応する実行命令を探索する。その結果、「教えて」に紐づけられている実行命令、換言すれば「教えて」と関連性の高い実行命令は、「DB(データベース)参照」であることが、この処理動作テーブルに示されている。このため、実行命令として、「DB参照」を割り当てることになる。 For example, from the morpheme decomposed into "Taro Yamada | | This month | | Overtime | Time | | Tell me", the processing operation corresponds to "Tell me", so as shown in Fig. 7. , Refer to the processing operation table and search for the execution instruction corresponding to the processing operation. As a result, it is shown in this processing operation table that the execution instruction associated with "teach", in other words, the execution instruction highly related to "teach" is "DB (database) reference". Has been done. Therefore, "DB reference" is assigned as the execution instruction.

次に、このようにして割り当てられた実行命令と、ステップS13において決定されたインテントに基づいて、プログラムコードの基本構文の関係付けを行う。 Next, the basic syntax of the program code is associated with each other based on the execution instruction assigned in this way and the intent determined in step S13.

かかる場合には、記憶部14に記憶されているコードテーブルを参照することで、上述のように割り当てられた実行命令と、ステップS13において決定されたインテントとに基づいて、関連性の高いプログラムコードの基本構文を抽出する。 In such a case, by referring to the code table stored in the storage unit 14, a highly relevant program is based on the execution instruction assigned as described above and the intent determined in step S13. Extract the basic syntax of the code.

例えば、会話文「A5-7853K、登録して」においては、上述したように関連性の高い実行命令として「DB(データベース)登録」が割り当てられ、またインテントとして「商品名の登録」が決定されている。処理動作テーブルを参照し、これらの実行命令とインテントの両者に紐づけられている、換言すればより関連性の高いプログラムコードの基本構文は、「INSERT INTO 商品マスタ(商品名) VALUES ({parame1}) 」であることが示されている。このため、プログラムコードの基本構文として、「INSERT INTO 商品マスタ(商品名) VALUES ({parame1}) 」を抽出する。 For example, in the conversational sentence "A5-7853K, register", "DB (database) registration" is assigned as a highly relevant execution instruction as described above, and "register product name" is determined as an intent. Has been done. Refer to the processing operation table, and the basic syntax of the program code that is associated with both these execution instructions and intents, in other words, more relevant, is "INSERT INTO product master (product name) VALUES ({{ parame1}) ”is shown. Therefore, "INSERT INTO product master (product name) VALUES ({parame1})" is extracted as the basic syntax of the program code.

また、会話文「山田太郎の今月の残業時間を教えて」においては、上述したように関連性の高い実行命令として「DB(データベース)参照」が割り当てられ、またインテントとして「残業時間の参照」が決定されている。処理動作テーブルを参照し、これらの実行命令とインテントの両者に紐づけられている、換言すればより関連性の高いプログラムコードの基本構文は、「SELECT 時間 FROM 残業データ WHERE 日付={param1} AND 社員={param2」であることが示されている。このため、プログラムコードの基本構文として、「SELECT 時間 FROM 残業データ WHERE 日付={param1} AND 社員={param2}」を抽出する。 In addition, in the conversation "Tell me about Taro Yamada's overtime hours this month", "DB (database) reference" is assigned as a highly relevant execution instruction as described above, and "Reference overtime hours" is assigned as an intent. "Has been decided. Refer to the processing operation table, and the basic syntax of the program code that is linked to both these execution instructions and intents, in other words, more relevant, is "SELECT time FROM overtime data WHERE date = {param1}". It is shown that AND employee = {param2 ". Therefore, "SELECT time FROM overtime data WHERE date = {param1} AND employee = {param2}" is extracted as the basic syntax of the program code.

次にステップS15に移行し、プログラムコードの作成を行う。ステップS14においては、上述したように単にプログラムコードの基本構文を抽出したに過ぎず、実際の処理動作の対象や、処理動作を完成させるために必要な各条件を規定する名詞又は名詞句を代入することでプログラムコードが完成になる。このため、ステップS15では、抽出したプログラムコードの基本構文に対して、実際の処理動作の対象や、処理動作を完成させるために必要な各条件を規定する名詞又は名詞句を代入する処理動作を行う。 Next, the process proceeds to step S15, and the program code is created. In step S14, as described above, the basic syntax of the program code is merely extracted, and a noun or noun phrase that defines the target of the actual processing operation and each condition necessary for completing the processing operation is substituted. By doing so, the program code is completed. Therefore, in step S15, a processing operation of substituting a noun or a noun phrase that defines the target of the actual processing operation and each condition necessary for completing the processing operation is performed on the basic syntax of the extracted program code. Do.

かかる場合には、ステップS12において行った形態素解析の結果を利用し、実際の処理動作の対象や、処理動作を完成させるために必要な各条件を規定する名詞又は名詞句を抽出する。 In such a case, the result of the morphological analysis performed in step S12 is used to extract the target of the actual processing operation and the noun or noun phrase that defines each condition necessary for completing the processing operation.

例えば、「A5-7853K、登録して」においては、基本構文として「INSERT INTO 商品マスタ(商品名) VALUES ({parame1}) 」を抽出しているが、{parame1}のところに埋めるべき実際の商品名を、形態素解析した命令文から拾い出す。その結果、商品名として「A5-7853K」を拾い出し、これを基本構文に代入することで、プログラムコードを完成させることができる。 For example, in "A5-7853K, register", "INSERT INTO product master (product name) VALUES ({parame1})" is extracted as the basic syntax, but the actual one to be filled in {parame1}. The product name is picked up from the morphologically analyzed statement. As a result, the program code can be completed by picking up "A5-7853K" as the product name and substituting it into the basic syntax.

同様に「山田太郎の今月の残業時間を教えて」においては、基本構文として「SELECT 時間 FROM 残業データ WHERE 日付={param1} AND 社員={param2}」を抽出しているが、日付の{parame1}のところに「今月」を、社員の{param2}のところに「山田太郎」を形態素解析した命令文から拾い出し、これを基本構文に代入することで、プログラムコードを完成させることができる。 Similarly, in "Tell me about Taro Yamada's overtime hours this month", "SELECT time FROM overtime data WHERE date = {param1} AND employee = {param2}" is extracted as the basic syntax, but the date {parame1 The program code can be completed by picking up "this month" in the place of} and "Taro Yamada" in the place of {param2} of the employee from the morphologically analyzed statement and substituting this into the basic syntax.

このステップS11〜S15の工程において、ステップS11において受け付けられた会話文に含められているユーザの意図に基づいてプログラムを自動生成させることができる。 In the steps S11 to S15, the program can be automatically generated based on the user's intention included in the conversational sentence received in step S11.

このようにしてプログラムコードを完成させた後、これをユーザに提供し、或いは報知部109を介して表示するようにしてもよいし、実行部13を介してその完成させたプログラムコードを実行させるようにしてもよい。即ち、本発明によれば、この自動生成したプログラムコードをそのまま実行させるようにすることが可能となる。このため、ステップS11からの工程から含めた場合には、ユーザが会話文を発することで、その意図を組み込んだプログラムコードを自動生成することができ、しかもその生成したプログラムコードをそのまま実行に移すことができる。これは、ユーザがシステムに対して実行して欲しい動作を会話文で話すか、これに応じたテキストデータを入力すると、その意図を組み込んだ動作を、自動生成したプログラムコードに基づいてそのまま実行させることが可能となる。 After the program code is completed in this way, it may be provided to the user or displayed via the notification unit 109, or the completed program code may be executed via the execution unit 13. You may do so. That is, according to the present invention, it is possible to execute the automatically generated program code as it is. Therefore, when included from the process from step S11, the user can automatically generate a program code incorporating the intention by issuing a conversational sentence, and the generated program code is directly executed. be able to. This means that when the user speaks the action he or she wants the system to perform in a conversational sentence or inputs text data corresponding to the action, the action incorporating the intention is executed as it is based on the automatically generated program code. It becomes possible.

なお、本発明は、上述した実施の形態に限定されるものでは無い。処理動作テーブルを参照することによる実行命令の探索や、コードテーブルを利用したプログラムコードの探索を人工知能による機械学習を利用して行うようにしてもよい。 The present invention is not limited to the above-described embodiment. The search for the execution instruction by referring to the processing operation table and the search for the program code using the code table may be performed by using machine learning by artificial intelligence.

人工知能による機械学習を利用する場合には、例えば図8に示すように、処理動作と、実行命令との3段階以上の連関度が予め設定されていることが前提となる。入力データとして例えば処理動作P01〜P03であるものとする。例えば、この処理動作P01は、「参照して」、処理動作P02は「出力して」、処理動作P03は「見せて」等であるものとする。このような入力データとしての処理動作P01〜P03は、出力としての実行命令に連結している。 When machine learning by artificial intelligence is used, for example, as shown in FIG. 8, it is premised that three or more levels of association between the processing operation and the execution instruction are set in advance. It is assumed that the input data is, for example, processing operations P01 to P03. For example, it is assumed that the processing operation P01 is "referenced", the processing operation P02 is "output", the processing operation P03 is "show", and the like. The processing operations P01 to P03 as such input data are linked to the execution instruction as output.

処理動作は、この出力解としての実行命令(例えば、「DB参照」、「ファイルを開く」等)に対して3段階以上の連関度を通じて互いに連関しあっている。処理動作がこの連関度を介して左側に配列し、各実行命令が連関度を介して右側に配列している。連関度は、左側に配列された処理動作に対して、何れの実行命令と関連性が高いかの度合いを示すものである。換言すれば、この連関度は、各処理動作が、いかなる実行命令に紐付けられる可能性が高いかを示す指標であり、処理動作から最も確からしい実行命令を選択する上での的確性を示すものである。図8の例では、連関度としてw13〜w19が示されている。このw13〜w19は以下の表1に示すように10段階で示されており、10点に近いほど、中間ノードとしての各組み合わせが出力としての魚の品質と互いに関連度合いが高いことを示しており、逆に1点に近いほど中間ノードとしての各組み合わせが出力としての値段と互いに関連度合いが低いことを示している。 The processing operations are associated with each other through three or more levels of association with the execution instruction (for example, "DB reference", "open file", etc.) as the output solution. The processing operations are arranged on the left side via this degree of association, and each execution instruction is arranged on the right side via this degree of association. The degree of association indicates which execution instruction is highly relevant to the processing operations arranged on the left side. In other words, this degree of association is an index indicating which execution instruction is likely to be associated with each processing operation, and indicates the accuracy in selecting the most probable execution instruction from the processing operations. It is a thing. In the example of FIG. 8, w13 to w19 are shown as the degree of association. These w13 to w19 are shown in 10 stages as shown in Table 1 below, and the closer to 10 points, the higher the degree of relevance of each combination as an intermediate node to the quality of the fish as an output. On the contrary, the closer to one point, the lower the degree of relevance of each combination as an intermediate node to the price as an output.

Figure 0006753598
Figure 0006753598

このような図8に示す3段階以上の連関度w13〜w19を予め取得しておく。つまり実際の探索解の判別を行う上で、処理動作と、実行命令の何れが採用、評価されたか、過去のデータセットを蓄積しておき、これらを分析、解析することで図8に示す連関度を作り上げておく。 Such three or more levels of association w13 to w19 shown in FIG. 8 are acquired in advance. In other words, in determining the actual search solution, the linkage shown in FIG. 8 is obtained by accumulating past data sets of which of the processing operation and the execution instruction was adopted and evaluated, and analyzing and analyzing these. Make up the degree.

例えば、過去において処理動作P01に対して実行命令として「DB参照」が最も適合性が高いと判断され、評価されたものとする。このようなデータセットを集めて分析することにより、処理動作との連関度が強くなる。 For example, in the past, it is assumed that "DB reference" has the highest suitability as an execution instruction for the processing operation P01 and has been evaluated. By collecting and analyzing such a data set, the degree of association with the processing operation becomes stronger.

この分析、解析は人工知能により行うようにしてもよい。かかる場合には、例えば処理動作P01である場合に、過去のデータセットに基づいて分析する。処理動作P01である場合に、「DB参照」の事例が多い場合には、この実行命令につながる連関度をより高く設定し、「プリンタ出力」の事例が多い場合には、この実行命令につながる連関度をより高く設定する。例えば処理動作P01の例では、「DB参照」と、「プリンタ出力」にリンクしているが、以前の事例から「DB参照」につながるw13の連関度を7点に、「プリンタ出力」につながるw14の連関度を2点に設定している。 This analysis and analysis may be performed by artificial intelligence. In such a case, for example, in the case of the processing operation P01, the analysis is performed based on the past data set. In the case of processing operation P01, if there are many cases of "DB reference", the degree of association that leads to this execution instruction is set higher, and if there are many cases of "printer output", it leads to this execution instruction. Set a higher degree of association. For example, in the example of the processing operation P01, "DB reference" and "printer output" are linked, but from the previous case, the degree of association of w13 that leads to "DB reference" is set to 7 points, which leads to "printer output". The degree of association of w14 is set to 2 points.

また、この図8に示す連関度は、人工知能におけるニューラルネットワークのノードで構成されるものであってもよい。即ち、このニューラルネットワークのノードが出力に対する重み付け係数が、上述した連関度に対応することとなる。またニューラルネットワークに限らず、人工知能を構成するあらゆる意思決定因子で構成されるものであってもよい。 Further, the degree of association shown in FIG. 8 may be composed of the nodes of the neural network in artificial intelligence. That is, the weighting coefficient for the output of the node of this neural network corresponds to the above-mentioned degree of association. Further, the network is not limited to a neural network, and may be composed of all decision-making factors constituting artificial intelligence.

かかる場合には、図9に示すように、入力データとして処理動作が入力され、出力データとして実行命令が出力され、入力ノードと出力ノードの間に少なくとも1以上の隠れ層が設けられ、機械学習させるようにしてもよい。入力ノード又は隠れ層ノードの何れか一方又は両方において上述した連関度が設定され、これが各ノードの重み付けとなり、これに基づいて出力の選択が行われる。そして、この連関度がある閾値を超えた場合に、その出力を選択するようにしてもよい。 In such a case, as shown in FIG. 9, the processing operation is input as input data, the execution instruction is output as output data, at least one hidden layer is provided between the input node and the output node, and machine learning is performed. You may let it. The above-mentioned degree of association is set in either one or both of the input node and the hidden layer node, and this is the weight of each node, and the output is selected based on this. Then, when this degree of association exceeds a certain threshold value, the output may be selected.

このような連関度が、人工知能でいうところの学習済みデータとなる。このような学習済みデータを作った後に、実際にこれから新たに処理動作から実行命令の探索を行うこととなる。かかる場合には、ステップS12において抽出した処理動作を新たに取得する。新たに取得した処理動作に基づいて、これに見合う実行命令を探索する。かかる場合には、予め取得した図8(表1)に示す連関度を参照する。例えば、新たに取得した処理動作がP02と同一かこれに類似するものである場合には、連関度を介して「ファイルを開く」がw15、「プリンタ出力」が連関度w16で関連付けられている。かかる場合には、連関度の最も高い「ファイルを開く」を最適解として選択する。但し、最も連関度の高いものを最適解として選択することは必須ではなく、連関度は低いものの連関性そのものは認められる「プリンタ出力」を最適解として選択するようにしてもよい。また、これ以外に矢印が繋がっていない出力解を選択してもよいことは勿論であり、連関度に基づくものであれば、その他いかなる優先順位で選択されるものであってもよい。 Such a degree of association is what is called learned data in artificial intelligence. After creating such learned data, the execution instruction will be actually searched from the processing operation. In such a case, the processing operation extracted in step S12 is newly acquired. Based on the newly acquired processing operation, the execution instruction corresponding to this is searched. In such a case, the degree of association shown in FIG. 8 (Table 1) acquired in advance is referred to. For example, when the newly acquired processing operation is the same as or similar to P02, "open file" is associated with w15 and "printer output" is associated with association degree w16 via the association degree. .. In such a case, "Open file" with the highest degree of association is selected as the optimum solution. However, it is not essential to select the one with the highest degree of association as the optimum solution, and the "printer output", which has the lowest degree of association but the association itself is recognized, may be selected as the optimum solution. In addition to this, it goes without saying that an output solution to which the arrows are not connected may be selected, and as long as it is based on the degree of association, it may be selected in any other priority.

図10は、コードテーブルについて人工知能による機械学習を通じてプロゴラムコードの基本構文を探索する例を示している。この図10の例では、コードテーブルにおける入力変数としての実行命令とインテントとを有する組み合わせを入力し、プログラムコードの基本構文が出力となる。具体的には、入力データとして例えば実行命令(「プリンタ出力」、「ファイルを開く」等)と、インテントP18〜P21であるものとする。このような入力データとしての、実行命令に対して、インテントが組み合わさったものが、中間ノード61である。各中間ノード61は、更に出力に連結している。この出力においては、出力解としての、プログラムコードの基本構文A〜Eが表示されている。プログラムコードの基本構文Aは、例えば、「SELECT 請求額 FROM 請求データ WHERE 会社= [param1] AND 請求月=[param2];」であり、基本構文Bは、例えば「Write Line 商品リスト.dat [param1] ;」であるものとする。 FIG. 10 shows an example of searching the basic syntax of the program code through machine learning by artificial intelligence for the code table. In the example of FIG. 10, a combination having an execution instruction and an intent as an input variable in the code table is input, and the basic syntax of the program code is output. Specifically, it is assumed that the input data is, for example, an execution instruction (“printer output”, “open file”, etc.) and intents P18 to P21. The intermediate node 61 is a combination of intents for the execution instruction as such input data. Each intermediate node 61 is further connected to an output. In this output, the basic syntaxes A to E of the program code as the output solution are displayed. The basic syntax A of the program code is, for example, "SELECT billing amount FROM billing data WHERE company = [param1] AND billing month = [param2];", and the basic syntax B is, for example, "Write Line product list.dat [param1]". ]; ”.

実行命令とインテントとの各組み合わせ(中間ノード)は、この出力解としての、プログラムコードの基本構文に対して3段階以上の連関度を通じて互いに連関しあっている。実行命令とインテントがこの連関度を介して左側に配列し、基本構文が連関度を介して右側に配列している。連関度は、左側に配列された実行命令とインテントに対して、基本構文と関連性が高いかの度合いを示すものである。換言すれば、この連関度は、各実行命令とインテントが、いかなるプログラムコードの基本構文に紐付けられる可能性が高いかを示す指標であり、実行命令とインテントから最も確からしいプログラムコードの基本構文を選択する上での的確性を示すものである。 Each combination of the execution instruction and the intent (intermediate node) is associated with each other through three or more levels of association with the basic syntax of the program code as this output solution. Execution instructions and intents are arranged on the left side through this degree of association, and the basic syntax is arranged on the right side through this degree of association. The degree of association indicates the degree of relevance to the basic syntax for the execution instructions and intents arranged on the left side. In other words, this degree of association is an indicator of what program code basic syntax each execution instruction and intent is likely to be associated with, and is the most probable program code from the execution instruction and intent. It shows the accuracy in selecting the basic syntax.

このような図10に示す3段階以上の連関度w13〜w22を予め取得しておく。実際の探索解の判別を行う上で、実行命令と、インテント、並びにその場合のプログラムコードの基本構文が何れが好適であったか、過去のデータを蓄積しておき、これらを分析、解析することで連関度を作り上げておく。 Such three or more levels of association w13 to w22 shown in FIG. 10 are acquired in advance. Accumulate past data to determine which of the execution instruction, the intent, and the basic syntax of the program code in that case was suitable for determining the actual search solution, and analyze and analyze these. Create a degree of association with.

この分析、解析は人工知能により行うようにしてもよい。かかる場合には、例えば実行命令が「DB参照」であり、インテントP20である場合に、そのプログラムコードの基本構文を過去のデータから分析する。基本構文Aの事例が多い場合には、この基本構文Aにつながる連関度をより高く設定し、基本構文Bの事例が多く、基本構文Aの事例が少ない場合には、基本構文Bにつながる連関度を高くし、基本構文Aにつながる連関度を低く設定する。例えば中間ノード61aの例では、基本構文Aと基本構文Bの出力にリンクしているが、以前の事例から基本構文Aにつながるw13の連関度を7点に、基本構文Bにつながるw14の連関度を2点に設定している。 This analysis and analysis may be performed by artificial intelligence. In such a case, for example, when the execution instruction is "DB reference" and the intent P20, the basic syntax of the program code is analyzed from the past data. When there are many cases of basic syntax A, the degree of association leading to this basic syntax A is set higher, and when there are many cases of basic syntax B and few cases of basic syntax A, the association leading to basic syntax B is set. Set the degree high and the degree of association leading to the basic syntax A low. For example, in the example of the intermediate node 61a, the output of the basic syntax A and the basic syntax B is linked, but from the previous case, the degree of association of w13 connected to the basic syntax A is set to 7 points, and the association of w14 connected to the basic syntax B is set to 7. The degree is set to 2 points.

また、この図10に示す連関度は、人工知能におけるニューラルネットワークのノードで構成されるものであってもよい。即ち、このニューラルネットワークのノードが出力に対する重み付け係数が、上述した連関度に対応することとなる。またニューラルネットワークに限らず、人工知能を構成するあらゆる意思決定因子で構成されるものであってもよい。その他、人工知能に関する構成は、図9における説明と同様である。 Further, the degree of association shown in FIG. 10 may be composed of the nodes of the neural network in artificial intelligence. That is, the weighting coefficient for the output of the node of this neural network corresponds to the above-mentioned degree of association. Further, the network is not limited to a neural network, and may be composed of all decision-making factors constituting artificial intelligence. Other than that, the configuration related to artificial intelligence is the same as the description in FIG.

図10に示す連関度の例で、ノード61bは、実行命令「DB参照」に対してインテントP18の組み合わせのノードであり、基本構文Cの連関度がw15、基本構文Eの連関度がw16となっている。ノード61cは、実行命令「ファイルを開く」に対して、参照用分析情報P19、P21の組み合わせのノードであり、基本構文Bの連関度がw17、基本構文Dの連関度がw18となっている。 In the example of the degree of association shown in FIG. 10, the node 61b is a node of the combination of the intent P18 with respect to the execution instruction “DB reference”, the degree of association of the basic syntax C is w15, and the degree of association of the basic syntax E is w16. It has become. The node 61c is a node in which the reference analysis information P19 and P21 are combined with respect to the execution instruction "open file", and the degree of association of the basic syntax B is w17 and the degree of association of the basic syntax D is w18. ..

このような連関度が、人工知能でいうところの学習済みデータとなる。このような学習済みデータを作った後に、実際にこれから基本構文の探索を行う際において、上述した学習済みデータを利用して行うこととなる。かかる場合には、実際にその実行命令とインテントを取得する。実行命令は、図8に示す連関度に基づいて求められたものを入力データとして利用してもよい。また、インテントは、ステップS13において決定されたものを利用する。 Such a degree of association is what is called learned data in artificial intelligence. After creating such learned data, when actually searching for the basic syntax from now on, the above-mentioned learned data will be used. In such a case, the execution instruction and the intent are actually acquired. As the execution instruction, those obtained based on the degree of association shown in FIG. 8 may be used as input data. Further, as the intent, the one determined in step S13 is used.

このようにして新たに取得した実行命令と、インテントに基づいて、最適なプログラムコードの基本構文を探索する。かかる場合には、予め取得した図10(表1)に示す連関度を参照する。例えば、新たに取得した実行命令が「ファイルを開く」である場合であって、インテントがP21である場合には、連関度を介してノード61dが関連付けられており、このノード61dは、基本構文Cがw19、基本構文Dが連関度w20で関連付けられている。かかる場合には、連関度の最も高い基本構文Cを最適解として選択する。但し、最も連関度の高いものを最適解として選択することは必須ではなく、連関度は低いものの連関性そのものは認められる基本構文Dを最適解として選択するようにしてもよい。また、これ以外に矢印が繋がっていない出力解を選択してもよいことは勿論であり、連関度に基づくものであれば、その他いかなる優先順位で選択されるものであってもよい。 Based on the newly acquired execution instruction and the intent in this way, the basic syntax of the optimum program code is searched. In such a case, the degree of association shown in FIG. 10 (Table 1) acquired in advance is referred to. For example, when the newly acquired execution instruction is "open a file" and the intent is P21, the node 61d is associated via the degree of association, and this node 61d is basically The syntax C is associated with w19, and the basic syntax D is associated with a degree of association w20. In such a case, the basic syntax C having the highest degree of association is selected as the optimum solution. However, it is not essential to select the one with the highest degree of association as the optimum solution, and the basic syntax D in which the degree of association is low but the association itself is recognized may be selected as the optimum solution. In addition to this, it goes without saying that an output solution to which the arrows are not connected may be selected, and as long as it is based on the degree of association, it may be selected in any other priority.

また、入力から伸びている連関度w1〜w12の例を以下の表2に示す。 In addition, Table 2 below shows examples of the degrees of association w1 to w12 extending from the input.

Figure 0006753598
Figure 0006753598

この入力から伸びている連関度w1〜w12に基づいて中間ノード61が選択されていてもよい。つまり連関度w1〜w12が大きいほど、中間ノード61の選択における重みづけを重くしてもよい。しかし、この連関度w1〜w12は何れも同じ値としてもよく、中間ノード61の選択における重みづけは何れも全て同一とされていてもよい。 The intermediate node 61 may be selected based on the degree of association w1 to w12 extending from this input. That is, the larger the degree of association w1 to w12, the heavier the weighting in the selection of the intermediate node 61 may be. However, the association degrees w1 to w12 may all have the same value, and the weightings in the selection of the intermediate node 61 may all be the same.

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 Program code automatic generation device 2 Terminal 3 Server 4 Communication network 10 Housing 11 Acquisition unit 12 Calculation unit 13 Execution unit 14 Storage unit 15 Output unit 16 Intent storage unit 61 Intermediate node 100 Program code automatic generation system 101 CPU
102 ROM
103 RAM
104 Preservation unit 105-107 I / F
108 Input unit 109 Notification unit 110 Internal bus

Claims (10)

会話文を受け付ける会話文受付手段と、
処理動作と実行命令が互いに関連付けられた処理動作テーブルを参照し、上記会話文受付手段が受け付けた会話文から抽出した処理動作について、関連性の高い実行命令を割り当てる実行命令割当手段と、
上記会話文受付手段が受け付けた会話文に含まれる処理動作を特定するアクション名を有するインテントを決定するインテント決定手段と、
実行命令とインテントの組み合わせに対するプログラムコードの基本構文が関連付けられたコードテーブルを参照し、上記実行命令割当手段により割り当てられた実行命令と、インテント決定手段により決定されたインテントとに基づいて、関連性の高いプログラムコードの基本構文を抽出するコード抽出手段とを備え
上記実行命令割当手段は、処理動作と実行命令との3段階以上の連関度を以って関連付けられた上記処理動作テーブルを参照すること
を特徴とするプログラムコード自動生成装置。
Conversational sentence reception means for accepting conversational sentences and
An execution instruction assigning means that assigns highly relevant execution instructions to the processing operations extracted from the conversation sentence received by the conversation sentence receiving means by referring to the processing operation table in which the processing operation and the execution instruction are associated with each other.
An intent determination means for determining an intent having an action name that specifies a processing operation included in the conversation sentence received by the conversation sentence reception means,
Refer to the code table to which the basic syntax of the program code for the combination of the execution instruction and the intent is associated, and based on the execution instruction assigned by the execution instruction assigning means and the intent determined by the intent determining means. Equipped with a code extraction means to extract the basic syntax of highly relevant program code ,
The execution instruction assigning means is a program code automatic generation device, characterized in that it refers to the processing operation table associated with the processing operation and the execution instruction with three or more levels of association .
上記実行命令割当手段は、人工知能におけるニューラルネットワークのノードの各出力の重み付け係数に対応する上記連関度を利用することThe execution instruction assigning means uses the degree of association corresponding to the weighting coefficient of each output of the node of the neural network in artificial intelligence.
を特徴とする請求項1記載のプログラムコード自動生成装置。The program code automatic generation device according to claim 1.
上記コード抽出手段は、実行命令とインテントとを有する組み合わせと、当該組み合わせに対するプログラムコードの基本構文とが3段階以上の連関度を以って関連付けられたコードテーブルを参照することThe above code extraction means refers to a code table in which a combination having an execution instruction and an intent and the basic syntax of the program code for the combination are associated with each other with three or more levels of association.
を特徴とする請求項1又は2に記載のプログラムコード自動生成装置。The program code automatic generation device according to claim 1 or 2.
会話文を受け付ける会話文受付手段と、
処理動作と実行命令が互いに関連付けられた処理動作テーブルを参照し、上記会話文受付手段が受け付けた会話文から抽出した処理動作について、関連性の高い実行命令を割り当てる実行命令割当手段と、
上記会話文受付手段が受け付けた会話文に含まれる処理動作を特定するアクション名を有するインテントを決定するインテント決定手段と、
実行命令とインテントの組み合わせに対するプログラムコードの基本構文が関連付けられたコードテーブルを参照し、上記実行命令割当手段により割り当てられた実行命令と、インテント決定手段により決定されたインテントとに基づいて、関連性の高いプログラムコードの基本構文を抽出するコード抽出手段とを備え、
上記コード抽出手段は、実行命令とインテントとを有する組み合わせと、当該組み合わせに対するプログラムコードの基本構文とが3段階以上の連関度を以って関連付けられたコードテーブルを参照すること
を特徴とするプログラムコード自動生成装置。
Conversational sentence reception means for accepting conversational sentences and
An execution instruction assigning means that assigns highly relevant execution instructions to the processing operations extracted from the conversation sentence received by the conversation sentence receiving means by referring to the processing operation table in which the processing operation and the execution instruction are associated with each other.
An intent determination means for determining an intent having an action name that specifies a processing operation included in the conversation sentence received by the conversation sentence reception means,
Refer to the code table to which the basic syntax of the program code for the combination of the execution instruction and the intent is associated, and based on the execution instruction assigned by the execution instruction assigning means and the intent determined by the intent determining means. Equipped with a code extraction means to extract the basic syntax of highly relevant program code,
The above code extraction means is characterized in that it refers to a code table in which a combination having an execution instruction and an intent and the basic syntax of the program code for the combination are associated with each other with three or more levels of association. Help program code automatic generation system.
上記コード抽出手段は、人工知能におけるニューラルネットワークのノードの各出力の重み付け係数に対応する上記連関度を利用することThe code extraction means uses the degree of association corresponding to the weighting coefficient of each output of the node of the neural network in artificial intelligence.
を特徴とする請求項3又は4に記載のプログラムコード自動生成装置。The program code automatic generation device according to claim 3 or 4.
上記コード抽出手段により抽出されたプログラムコードの基本構文に、上記会話文受付手段が受け付けた会話文から抽出した名詞又は名詞句を代入することによりプログラムコードを生成するコード生成手段とを備えることA code generating means for generating a program code by substituting a noun or a noun phrase extracted from a conversation sentence accepted by the conversation sentence receiving means into the basic syntax of the program code extracted by the code extracting means is provided.
を特徴とする請求項1〜5のうち何れか1項に記載のプログラムコード自動生成装置。The program code automatic generation device according to any one of claims 1 to 5.
会話文を受け付ける会話文受付ステップと、
処理動作と実行命令が互いに関連付けられた処理動作テーブルを参照し、上記会話文受付ステップにおいて受け付けた会話文から抽出した処理動作について、関連性の高い実行命令を割り当てる実行命令割当ステップと、
上記会話文受付ステップにおいて受け付けた会話文に対応する、処理動作を特定するアクション名を有するインテントを決定するインテント決定ステップと、
実行命令とインテントの組み合わせに対するプログラムコードの基本構文が関連付けられたコードテーブルを参照し、上記実行命令割当ステップにおいて割り当てられた実行命令と、インテント決定ステップにおいて決定されたインテントとに基づいて、関連性の高いプログラムコードの基本構文を抽出するコード抽出ステップとをコンピュータに実行させ
上記実行命令割当ステップにおいて、処理動作と実行命令との3段階以上の連関度を以って関連付けられた上記処理動作テーブルを参照すること
を特徴とするプログラムコード自動生成プログラム。
Conversational sentence reception step to accept conversational sentences and
An execution instruction assignment step that assigns highly relevant execution instructions to the processing operations extracted from the conversation sentence received in the above conversation sentence reception step by referring to the processing operation table in which the processing operation and the execution instruction are related to each other, and
An intent determination step for determining an intent having an action name that specifies a processing operation corresponding to the conversation sentence received in the above conversation sentence reception step,
Refer to the code table to which the basic syntax of the program code for the combination of the execution instruction and the intent is associated, and based on the execution instruction assigned in the execution instruction assignment step and the intent determined in the intent determination step. Have your computer perform a code extraction step to extract the basic syntax of the relevant program code ,
A program code automatic generation program, characterized in that , in the execution instruction assignment step, the processing operation table associated with the processing operation and the execution instruction is referred to by three or more stages of association .
上記コード抽出ステップにおいて、実行命令とインテントとを有する組み合わせと、当該組み合わせに対するプログラムコードの基本構文とが3段階以上の連関度を以って関連付けられたコードテーブルを参照することIn the above code extraction step, refer to the code table in which the combination having the execution instruction and the intent and the basic syntax of the program code for the combination are associated with each other with three or more levels of association.
を特徴とする請求項7記載のプログラムコード自動生成プログラム。7. The program code automatic generation program according to claim 7.
会話文を受け付ける会話文受付ステップと、Conversational sentence reception step to accept conversational sentences and
処理動作と実行命令が互いに関連付けられた処理動作テーブルを参照し、上記会話文受付ステップにおいて受け付けた会話文から抽出した処理動作について、関連性の高い実行命令を割り当てる実行命令割当ステップと、An execution instruction assignment step that assigns highly relevant execution instructions to the processing operations extracted from the conversation sentence received in the above conversation sentence reception step by referring to the processing operation table in which the processing operation and the execution instruction are related to each other, and
上記会話文受付ステップにおいて受け付けた会話文に対応する、処理動作を特定するアクション名を有するインテントを決定するインテント決定ステップと、An intent determination step for determining an intent having an action name that specifies a processing operation corresponding to the conversation sentence received in the above conversation sentence reception step,
実行命令とインテントの組み合わせに対するプログラムコードの基本構文が関連付けられたコードテーブルを参照し、上記実行命令割当ステップにおいて割り当てられた実行命令と、インテント決定ステップにおいて決定されたインテントとに基づいて、関連性の高いプログラムコードの基本構文を抽出するコード抽出ステップとをコンピュータに実行させ、Refer to the code table to which the basic syntax of the program code for the combination of the execution instruction and the intent is associated, and based on the execution instruction assigned in the execution instruction assignment step and the intent determined in the intent determination step. Have your computer perform a code extraction step to extract the basic syntax of the relevant program code,
上記コード抽出ステップにおいて、実行命令とインテントとを有する組み合わせと、当該組み合わせに対するプログラムコードの基本構文とが3段階以上の連関度を以って関連付けられたコードテーブルを参照することIn the above code extraction step, refer to the code table in which the combination having the execution instruction and the intent and the basic syntax of the program code for the combination are associated with each other with three or more levels of association.
を特徴とするプログラムコード自動生成プログラム。A program code automatic generation program characterized by.
上記コード抽出ステップにおいて抽出されたプログラムコードの基本構文に、上記会話文受付ステップにおいて受け付けた会話文から抽出した名詞又は名詞句を代入することによりプログラムコードを生成するコード生成ステップを有することHaving a code generation step for generating a program code by substituting a noun or a noun phrase extracted from the conversation sentence received in the conversation sentence reception step into the basic syntax of the program code extracted in the code extraction step.
を特徴とする請求項7〜9のうち何れか1項に記載のプログラムコード自動生成プログラム。The program code automatic generation program according to any one of claims 7 to 9, wherein the program code is automatically generated.
JP2019215146A 2019-11-28 2019-11-28 Program code automatic generator and program Active JP6753598B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019215146A JP6753598B1 (en) 2019-11-28 2019-11-28 Program code automatic generator and program
PCT/JP2020/037992 WO2021106380A1 (en) 2019-11-28 2020-10-07 Program code automatic generation device and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019215146A JP6753598B1 (en) 2019-11-28 2019-11-28 Program code automatic generator and program

Publications (2)

Publication Number Publication Date
JP6753598B1 true JP6753598B1 (en) 2020-09-09
JP2021086409A JP2021086409A (en) 2021-06-03

Family

ID=72333440

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019215146A Active JP6753598B1 (en) 2019-11-28 2019-11-28 Program code automatic generator and program

Country Status (2)

Country Link
JP (1) JP6753598B1 (en)
WO (1) WO2021106380A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021161629A1 (en) * 2020-02-13 2021-08-19 ソプラ株式会社 Automatic program code generation system, and program
JP6949341B1 (en) * 2021-03-10 2021-10-13 ソプラ株式会社 Program code automatic generator and program

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6958884B1 (en) * 2021-06-15 2021-11-02 ソプラ株式会社 Program code automatic generation system
JP7064680B1 (en) * 2021-07-28 2022-05-11 SOPPRA Digital transformation株式会社 Program code automatic generation system

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6477341B2 (en) * 2015-08-04 2019-03-06 富士通株式会社 Execution flow creation support program and execution flow creation support method
JP7169770B2 (en) * 2018-05-20 2022-11-11 株式会社タカラトミー Artificial intelligence programming server and its program
JP6598418B1 (en) * 2019-05-17 2019-10-30 ソプラ株式会社 Information output device, information output method, and program

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021161629A1 (en) * 2020-02-13 2021-08-19 ソプラ株式会社 Automatic program code generation system, and program
JP2021128516A (en) * 2020-02-13 2021-09-02 ソプラ株式会社 Program code automatic generation system and program
JP6949341B1 (en) * 2021-03-10 2021-10-13 ソプラ株式会社 Program code automatic generator and program
WO2022190646A1 (en) * 2021-03-10 2022-09-15 ソプラ株式会社 Automatic program code generation device and program
JP2022138568A (en) * 2021-03-10 2022-09-26 ソプラ株式会社 Program code automatically generating device and program

Also Published As

Publication number Publication date
JP2021086409A (en) 2021-06-03
WO2021106380A1 (en) 2021-06-03

Similar Documents

Publication Publication Date Title
JP6753598B1 (en) Program code automatic generator and program
CN110765244B (en) Method, device, computer equipment and storage medium for obtaining answering operation
CN110337645B (en) Adaptable processing assembly
US8082264B2 (en) Automated scheme for identifying user intent in real-time
US9373075B2 (en) Applying a genetic algorithm to compositional semantics sentiment analysis to improve performance and accelerate domain adaptation
CN106383836B (en) Attributing actionable attributes to data describing an identity of an individual
WO2021161629A1 (en) Automatic program code generation system, and program
US11482223B2 (en) Systems and methods for automatically determining utterances, entities, and intents based on natural language inputs
EP2734938A1 (en) Method and system of classification in a natural language user interface
KR102285142B1 (en) Apparatus and method for recommending learning data for chatbots
CN112699303A (en) Medical information intelligent pushing system and method based on 5G message
WO2011111038A2 (en) Method and system of providing completion suggestion to a partial linguistic element
JP2020135135A (en) Dialog content creation assisting method and system
CN112579733A (en) Rule matching method, rule matching device, storage medium and electronic equipment
JP6958884B1 (en) Program code automatic generation system
CN115062135B (en) Patent screening method and electronic equipment
JP2021114234A (en) Information processor, information processing system, and information processing program
WO2021002800A1 (en) Apparatus and method for tagging electronic legal documents for classification and retrieval
CN115796177A (en) Method, medium and electronic device for realizing Chinese word segmentation and part-of-speech tagging
CN111159526B (en) Query statement processing method, device, equipment and storage medium
JP7216627B2 (en) INPUT SUPPORT METHOD, INPUT SUPPORT SYSTEM, AND PROGRAM
JP6949341B1 (en) Program code automatic generator and program
CN112445959A (en) Retrieval method, retrieval device, computer-readable medium and electronic device
KR20180137394A (en) A device for extracting and managing terms from a document and a method for extracting and managing terms using the same
JP6777907B1 (en) Business support device and business support system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191128

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20191128

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20191212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200310

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200511

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: 20200811

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200814

R150 Certificate of patent or registration of utility model

Ref document number: 6753598

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250