WO2021182984A1 - Method and system for applying artificial intelligence in software development - Google Patents

Method and system for applying artificial intelligence in software development Download PDF

Info

Publication number
WO2021182984A1
WO2021182984A1 PCT/RU2020/000134 RU2020000134W WO2021182984A1 WO 2021182984 A1 WO2021182984 A1 WO 2021182984A1 RU 2020000134 W RU2020000134 W RU 2020000134W WO 2021182984 A1 WO2021182984 A1 WO 2021182984A1
Authority
WO
WIPO (PCT)
Prior art keywords
program code
natural language
user
learning model
speech recognition
Prior art date
Application number
PCT/RU2020/000134
Other languages
French (fr)
Russian (ru)
Inventor
Сергей Станиславович ЧАЙКОВСКИЙ
Original Assignee
Сергей Станиславович ЧАЙКОВСКИЙ
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 Сергей Станиславович ЧАЙКОВСКИЙ filed Critical Сергей Станиславович ЧАЙКОВСКИЙ
Publication of WO2021182984A1 publication Critical patent/WO2021182984A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Definitions

  • the Present technical solution relates to systems for coding programs using artificial intelligence and its method. More specifically, the present invention relates to a system and method for recognizing a user's voice and generating program code corresponding to a transformed natural language. The present invention relates to technical solutions in which program code is automatically generated, which is enhanced and optimized by the user's voice using artificial intelligence. LEVEL OF TECHNOLOGY
  • the specified technical result is achieved by implementing a method for coding programs based on artificial intelligence based on speech recognition in accordance with an embodiment of the present invention, which includes the steps of generating a learning model by studying a mapping relationship between a natural language phrase and a program code, extracting a natural language phrase by recognizing the user's speech, and evaluating and outputting the program code to the user's display.
  • FIG. 1 shows an example of an implementation of an artificial intelligence program coding system and its method in accordance with the present invention.
  • FIG. 2 is a block diagram of an artificial intelligence speech recognition based program coding apparatus according to an embodiment of the present invention.
  • FIG. 3 is a flowchart illustrating a process for preprocessing input data that is input to a CNN when performing machine learning via a CNN in a speech recognition-based artificial intelligence program encoder according to an embodiment of the present invention.
  • FIG. 5 is a block diagram illustrating a CNN based learning structure and learning process in accordance with an embodiment of the present invention.
  • FIG. 6 is a block diagram for explaining a machine learning structure and learning process via an RNN in accordance with an embodiment of the present invention.
  • FIG. 7 is a flowchart illustrating a process of performing a method for coding a program using artificial intelligence based on speech recognition in accordance with an embodiment of the present invention. DETAILED DESCRIPTION OF THE INVENTION
  • Server an electronic device that performs service functions at the request of the client, providing him with access to certain resources.
  • a server is contemplated that has a persistent connection to the internetwork that can transmit data to a client device. The server can process this data and transmit the processing result back to the client device.
  • the computing unit is a server unit that is a microprocessor specially adapted for complex signal processing.
  • an artificial intelligence program coding system using speech recognition recognizes the user's voice and converts the user's recognized speech into program code using machine learning through deep learning.
  • a training database e.g., Sen2Cod (200), in which mapping tables for natural language labels and program code are stored as data for machine learning, a training database (Sen2Cod), and at least one or more user devices (400 ).
  • the training database 200 stores a program for a programming element, including instructions, functions, variables, constants, or combinations thereof for various programming languages such as R, C ++, JAVA, Python programs, but not limited to.
  • the database includes information that matches the code labels and words that users say. For example, all possible natural language expressions are generated for specific program codes, and natural language expressions and specific program codes are stored in a 1: 1 ratio.
  • a mapping table for natural language program code marks is used as training data for deep learning in the AI program coding apparatus 100 by speech recognition (1), as shown in FIG. 1.
  • Training data is used as input to machine learning, and as a result, a training model is created, after which the generated training model is stored in the training model database for use in software coding.
  • machine learning can be performed with a recurrent neural network (RNN) or a convolutional neural network (CNN), or other suitable types of neural networks, but are not limited to.
  • RNN recurrent neural network
  • CNN convolutional neural network
  • the basic data preprocessing unit may contain a text preprocessing unit that is responsible for reducing the variety of possible message texts in order to simplify the operation of the following modules of the system 100.
  • This unit may be designed to split the incoming user input into sentences and words, as well as their morphological parsing, parsing and semantic typing of tokens.
  • the stage of tokenization involves the selection of basic text elements (tokens), delimited on both sides by separating characters, spaces or punctuation marks.
  • the elements here are words, numbers, dates, abbreviations, abbreviations, compound prepositions, etc.
  • Tokenization allows you to select discrete units of text, which are the basis for further work at the stages of morphological and parsing. As a result of tokenization, each element is assigned the appropriate type: word, number, date, address, etc.
  • the purpose of text preprocessing is to prepare it for high-quality classification and further labels with program code.
  • the user accesses the program code and uses the learning model from the learning model database 300 to generate the program code through the artificial intelligence program encoder 100 using speech recognition.
  • the user device 400 through the speech recognition artificial intelligence program encoding apparatus 100 or through a program encoding application downloaded from the speech recognition artificial intelligence program encoding apparatus 100, converts the voice recognition result into a program code.
  • the user can input mapping data between natural language and program code if the content input by voice and the program result are not optimal.
  • a user or manager with certain authority confirms the output program, then verifies that the program is the optimal program through the verification process, and updates the learning database 200 storing the mapping table.
  • a user or manager with certain powers / skills can be an expert in a particular programming language. Therefore, the user performing the verification process is not an ordinary user, but a person who has an advanced level of proficiency in a particular programming language.
  • the user device 400 is a mobile communication device such as a smartphone, tablet computer, or the like, and is a user terminal provided by the user.
  • User device 400 includes a microphone for receiving the user's voice.
  • the mobile communication device downloads an application for coding programs from the artificial intelligence program coding apparatus 100 by voice recognition, and executes the application to become the user apparatus 400 for coding programs.
  • the speech recognition coding server (6) updates the training model and stores the result in the training model database 300.
  • the learning model becomes more advanced due to reinforcement learning.
  • the device 100 for encoding programs using artificial intelligence through speech recognition may be implemented by a cloud server, a local server, or a combination thereof.
  • Speech recognition can include receiving user speech from user device 400, but it can be performed on another user device 400 having a speech recognition engine.
  • FIG. 2 shows a block diagram of an artificial intelligence speech recognition based program coding apparatus according to an embodiment of the present invention.
  • the speech recognition unit 110 recognizes the user speech received in real time from the user terminal, extracts the natural language phrase or phrases (hereinafter referred to as natural language) from the recognized speech of the user, and provides the extracted speech to the preprocessing unit 120.
  • the preprocessing unit 120 preprocesses the natural language and injects it into the learning model generated by the learning model generating unit 130, so that the program code for the user's voice can be evaluated through the learning model.
  • the speech recognition unit 100 performs natural language processing on user speech input by a user who performs programming exercises or coding tasks through morphological, syntactic, semantic, discourse analysis, and the like.
  • Siri or various machine learning methods for speech recognition can be used to perform natural language processing on user speech.
  • natural language user language processing may be performed on a user device 400 equipped with a speech recognition engine.
  • the voice recognition unit 120 receives natural language from the user device 400, and receives data that can be input into the training model.
  • the preprocessing unit 120 prepares the training data loaded into the training database 200 and preprocesses the loaded training data in accordance with the machine learning method performed by the training model generation unit 130.
  • the training data is stored in the training database 200 in the form of a mapping table in which the program code label configured in the coding scheme is indexed in the specific program code and in natural language in a 1: 1 ratio.
  • block 130 generating a training model can generate a training model by training preprocessed training data through at least one of the machine learning methods, such as CNN or RNN.
  • Convolutional neural networks provide partial resistance to changes in scale, displacement, rotation, change of perspective and other distortions.
  • Convolutional neural networks combine three architectural ideas to provide invariance to scaling, rotation, shear, and spatial distortion:
  • Recurrent neural networks are a class of machine learning models based on the use of previous network states to compute the current one. Each character in the source text, individual words, punctuation marks and even entire phrases - all this is an atomic element of the input sequence for the neural network.
  • GRUs gated recurrent units
  • the update filter determines how much information will remain from the previous state and how much will be taken from the previous layer.
  • the reset filter works much like a forgetting filter.
  • corpuses namely tribanks, are used as a training sample. In linguistics, a corpus is a collection of texts selected and processed according to certain rules, used as a database for the study of a language.
  • Tribank is a collection of parsed sentences (that is, parse graphs) prepared manually or automatically in advance. Tribanks are classified into phrase-structure treebanks and dependency treebanks. In this technical solution, the following tribanks or corpora for the Russian language can be used, but are not limited to: SynTagRus (1.107 thousand tokens), PUD (19 thousand tokens), GSD (99 thousand tokens), Taiga (20 thousand tokens), Dependency Treebanks, etc.
  • Transition-based dependency parsing approach widely known in the art is applied. This approach consists in an attempt to predict a sequence of actions (transitions) from some initial configuration of a phrase or user request to the final one, as a result of which the desired parse tree will be obtained, which allows obtaining a sufficiently high accuracy and achieving fairly high speeds in text processing.
  • the Arc-standard system is one of the most popular approaches to implementing a transition-based system.
  • A is a plurality of dependencies.
  • A 0 - the set of dependencies is empty.
  • LEFT_ARC - adds to A a link from s x to s 2 , with a specific label of the link type, and removes s 2 from the stack;
  • SWAP Returns the second item from the stack to the buffer. [0078] Thus, a total of
  • 2N ⁇ + possible actions, where Ni is the number of dependency label types. The purpose of the text parser 210 is to select the most appropriate action for a given configuration.
  • the learning model generation unit 120 generates a learning model for receiving the displayed training data and evaluating the program code for a specific natural language, and stores the generated learning model in the learning model database 300.
  • the size of the CNN may be composed of a plurality of networks of the same size, or the size of the network may gradually increase in accordance with the update or change of the training data. That is, the CNN network is adapted to increase the capacity of all training data to be studied. Accordingly, the depth of the CNN can vary depending on the size of the network.
  • the preprocessing unit 120 can quantify the mapping relationship between the natural language of the mapping table and the program code label as a sequence of numbers, so that the training data is suitable for the RNN ... [0086] Thereafter, the learning model generation unit 120 receives a plurality of sequences obtained by digitizing the mapping relationship between the natural language program code labels, and generates a learning model for evaluating the specific program code from the user's speech and stores it in the model database 300 during training. learning.
  • each of the series of numeric display ratio values is set so that the label display ratio between a specific natural language and the program code is not duplicated.
  • the RNN may be composed of a plurality of networks of the same size, or the size of the network may gradually increase in accordance with the update or change of the training data. That is, the RNN is adapted to the capacity of all the training data to be learned.
  • the sequence includes at least one sequence fragment, and the sequence fragment includes a combination of at least one bit sequence.
  • the size of the bit stream can be continuously added according to the size of the CNN. The CNN preprocessing process will be described in detail with reference to FIG. 3.
  • the training model generation unit 130 downloads the training data preprocessed by the preprocessing unit 120 from the training database 200 and examines the program code corresponding to the user's voice received from the user device 400, and then generates a training model for evaluation.
  • the learning model generating unit 130 may perform machine learning by the machine learning method of at least CNN or RNN, and the training data may be generated in accordance with the machine learning method performed by the learning model generating unit 130.
  • the learning model generated by the learning model generation unit 130 is for evaluating the program code based on the user's voice recognized by the user device 200 or recognized by the voice recognition unit 110.
  • the input data is data obtained by natural language preprocessing for the voice of the recognized user, and the output is the natural language program code.
  • the learning model generation unit 130 knows the programming code for a specific natural language, the backpropagation method is applied to the learning process to adjust the weight of the machine learning network (i.e., RNN or CNN), thereby improving the accuracy of the machine learning network. to generate a learning model.
  • the machine learning network i.e., RNN or CNN
  • the natural language for the user's voice is preprocessed with a series of chunks.
  • the checking unit 150 may compare the program code evaluated by the program code evaluator 140 and the natural language of the user's voice based on the estimated program code with a user or administrator having certain privileges (eg, an artificial intelligence program).
  • the encoder 100 can provide information in real time or periodically to a person skilled in the art (eg, a language expert who has specific authority) to perform verification of the generated program code.
  • a user or manager with certain authority can re-create and add, or change the mapping relationship between the natural language and the program code label stored in the training database 200 according to the check result.
  • the natural language program code obtained through the validator 150 is not optimal, the user or administrator may update the program code label for the natural language and natural language program code.
  • the checker 150 may provide the received updater data to the training data updater 160 to update the training database 200.
  • the training data update unit 160 may update the training data base 200, reflecting the received update data in the training data base 200, when the update data in accordance with the verification result is received from the checking unit 150. Meanwhile, the update is performed in real time or periodically in accordance with the rules of the checking unit 140 (i.e., the checking process is performed in real time or periodically) that are predetermined.
  • the training model generation unit 130 regenerates the training model having higher accuracy and reliability than the existing training model by reflecting the updated training data, and stores the training model in the training model database 300.
  • the learning model generated through the learning unit 130 is progressively advanced so that an optimal program code can be generated from the user's voice.
  • Fig. 3 illustrates a diagram showing a preprocessing process for input data that is input to a CNN when machine learning is performed via the CNN in a speech recognition-based artificial intelligence program encoder according to an embodiment of the present invention.
  • the input data preprocessing process is performed in the first training database 200.
  • the speech recognition AI-based program coding apparatus 100 generates image data by rendering a plurality of labeled image tiles into an image having a specific resolution (eg, 32 * 32).
  • the resolution is configured to continuously add in accordance with the total capacity of the training data to be learned.
  • the speech recognition AI based program coding apparatus 100 can adaptively learn the training data by expanding the resolution.
  • the speech recognition artificial intelligence-based program coding apparatus 100 generates a training model for inputting image data into CNN, thereby learning the mapping relationship between the natural language and the program code label and outputting the program code for a specific natural language.
  • a preprocessing process is performed to apply training data to the CNN when the AI speech recognition program encoder 100 performs training via the CNN.
  • Figure 4 is a diagram illustrating a preprocessing process for input data to be input to an RNN when machine learning is performed via the RNN in a speech recognition-based artificial intelligence encoder in accordance with an embodiment of the present invention.
  • the preprocessing process for the input of data entered into the RNN is based on artificial speech recognition.
  • the program encoding apparatus 100 downloads natural language-displayed training data and a program code mark from the training database 200.
  • the speech recognition AI-based program coding apparatus 100 generates each of the natural words through a predetermined process and generates them as one sequence, and assigns the corresponding sequences for the generated natural language to one fragment of the sequence.
  • the sequence section includes a combination of at least one bit string, and the bit string size can be continuously added according to the RNN size. That is, the speech recognition-based artificial intelligence coding apparatus 100 allows the bit string size to be expanded so that the training data can be learned adaptively.
  • Marking is then performed on each of the sequence chunks to assign a program code label to each of the sequence chunks to form the final original sequence.
  • the program code mark is configured in a direct encoding scheme, and the program code mark is a target sequence for the natural language program code.
  • the speech recognition artificial intelligence-based program coding apparatus 100 inputs the generated source sequence into the RNN, thereby examining the mapping relationship between the natural language and the program code label and outputting the program code for the specific natural language.
  • Fig. 5 is a diagram illustrating a CNN-based learning structure and a learning process in accordance with an embodiment of the present invention.
  • the input layer receives the mapped training data through a preprocessing process, and the convolution layer moves in accordance with a predetermined pitch (meaning a moving unit of the core) of the core having a specific weight and core weight, and generates and outputs a feature map for certain part of the image.
  • a predetermined pitch meaning a moving unit of the core
  • the next layer selects at least one or more slices of images by combining feature maps according to kernel size and passing through the maximum pool or average pool method.
  • the CNN may repeatedly perform convolution and subsampling to generate a feature map for a program code label for a particular natural language.
  • the fully associative layer then associates a feature map for a program code label to output program code for a specific natural language.
  • the speech recognition AI based program coding apparatus 100 can learn natural language, program code, and learning data in relation to the mapping between natural language and program code.
  • the speech recognition AI based program coding apparatus 100 can evaluate the optimized program code for the user's voice and provide it to the user by generating an extended training model by reflecting the training data update.
  • the speech recognition AI-based program coding apparatus 100 knows a specific natural language and corresponding program code in advance, the CNN weight can be adjusted using a backpropagation technique in a learning process. The accuracy of the CNN can be improved.
  • Fig. 6 is a diagram for explaining a machine learning structure and a learning process via an RNN in accordance with an embodiment of the present invention.
  • the RNN when the training data is learned via the RNN in the learning model generating unit 130 of the speech recognition-based artificial intelligence program coding apparatus 100 according to an embodiment of the present invention, the RNN includes an encoder and a decoder.
  • the encoder sequentially receives the numerical values of the original sequence generated by the preprocessing process, accumulates the values as the state values of the internal nodes, and delivers the final state of each internal node to the decoder according to the weights of the internal nodes.
  • the decoder outputs the final state of the original sequence transmitted from the encoder, one by one, to the target sequence (ie, program code label) for the original sequence according to the weight of each internal node constituting the decoder.
  • the target sequence ie, program code label
  • each of the nodes constituting the encoder and the decoder has different weights
  • the encoder sequentially takes the original sequence as input and performs forward propagation in accordance with the time stamp, and transmits the information of the last encoder node to the decoder.
  • the information passed to the decoder can be viewed as a presentation of the sentence containing all the information of the input source sequence.
  • the decoder receiving the original sequence information outputs the numerical values of the target sequence one after another in accordance with the weights of the nodes, so that the program code for a specific natural language can be estimated.
  • FIG. 7 is a flowchart illustrating a process of a method for encoding an artificial intelligence-based program based on speech recognition in accordance with an embodiment of the present invention.
  • a process of a method for encoding a speech recognition-based artificial intelligence-based program starts from a speech recognition-based artificial intelligence-based program encoding apparatus 100.
  • the training data is preprocessed and stored in the training database 200 so that the training data can be applied to the CNN or RNN (step S110).
  • a speech recognition-based artificial intelligence program coding apparatus 100 is executed to generate machine learning input data and to generate a learning model.
  • the learning-based artificial intelligence program coding apparatus 100 performs processing on the training data using the training data as an original sequence, and when the training data is learned via the RNN, a preprocessing process is performed for transformation.
  • the speech recognition AI-based program coding apparatus 100 downloads the training data preprocessed from the training data database 200 (step S120) and examines the downloaded training data (step S130) to obtain specific program codes, and saves the training model in a database of 300 training models.
  • training can be performed via RNN or CNN, as described above.
  • the speech recognition AI-based program coding apparatus 100 receives user speech to encode programs from the user device 400 (step S210), the speech recognition artificial intelligence-based program coding apparatus 100 performs a natural language process for recognizing the received user speech, wherein the natural language generated by the natural language processing is preprocessed (step S220).
  • the natural language for the user's voice is generated and processed by the speech recognition AI-based program encoder 100, but it can be processed and generated in the user device 200 equipped with the speech recognition engine. At this time, the user device 200 transmits the generated natural language to the device 100 for encoding programs based on artificial intelligence based on speech recognition.
  • the preprocessing process for the user's speech is performed in the same manner as the preprocessing process performed in step S110 according to the machine learning method (i.e., RNN or CNN) of the artificial speech recognition based program coding apparatus 100. intelligence.
  • the speech recognition based artificial intelligence coding apparatus 100 downloads a learning model from the learning model database 300 and inputs a natural language for the user's speech preprocessed in the loaded learning model.
  • the program code corresponding to the user's voice is evaluated by generating the natural language program code.
  • the input of the learning model is natural language
  • the output of the learning model is a natural language program code label
  • program code for the program code label is generated by evaluating the program code
  • the speech recognition AI based program coding apparatus 100 transmits the estimated program code to the user equipment 400, provided by the user, thereby providing the evaluation code to the user.
  • the speech recognition AI based program coding apparatus 100 improves the accuracy and reliability of the estimated program code through reinforcement learning.
  • the speech recognition-based artificial intelligence coding apparatus 100 provides the estimated program code to a user or administrator with certain skills, such as a programming language expert, in real time or periodically (S240).
  • the speech recognition AI-based program coding apparatus 100 may update the training data according to the result of checking the checking process (S260).
  • a user or manager with certain authority receives the program code estimated based on the natural language of the user's voice and the natural language in real time or periodically from the artificial intelligence speech recognition program encoder 100 if the program code is not optimal, the update data including the optimal natural language program code is provided to the artificial intelligence speech recognition based program coding apparatus 100.
  • the speech recognition-based artificial intelligence coding apparatus 100 updates the training database 200 by updating the training data reflecting the provided update data.
  • the speech recognition AI-based program coding apparatus 100 performs a gain learning process that reflects the updated training data to generate a new training model. By repeating this process, the program encoding apparatus 100 based on artificial intelligence speech recognition can greatly improve the accuracy and reliability of the learning model for coding programs.
  • the training data is updated through the generated program code validation process, thereby performing reinforcement learning on the training data, thereby improving the accuracy and reliability of the generated program code based on the user's voice.
  • a data bus includes one or more data buses.
  • the data bus can be implemented in accordance with the Controller Area Network (CAN) bus protocol, which is defined by the International Organization for Standardization (ISO) 11898-1, the Multimedia System Data Bus (MOST) protocol, the flexible CAN data bus (CAN-FD) protocol (ISO 11898-7) and / or K-line bus protocol (ISO 9141 and ISO 14230-1) and / or Ethemet TM -iiJHHbi IEEE 802.3 protocol (2002 onwards), etc.
  • CAN Controller Area Network
  • MOST Multimedia System Data Bus
  • CAN-FD flexible CAN data bus
  • K-line bus protocol ISO 9141 and ISO 14230-1
  • Ethemet TM -iiJHHbi IEEE 802.3 protocol 2002 onwards
  • All blocks used in the system can be implemented using electronic components used to create digital integrated circuits, which is obvious to a person skilled in the art. Not limited to, microcircuits can be used, the logic of which is determined during manufacture, or programmable logic integrated circuits (FPGA), the logic of which is set through programming. For programming, programmers and debugging environments are used that allow you to set the desired structure of a digital device in the form of a circuit diagram or a program in special hardware description languages: Verilog, VHDL, AHDL, etc.
  • FPGAs programmable logic controllers
  • BMK basic matrix crystals
  • ASICs are specialized custom large integrated circuits (LSI), which are significantly more expensive for small-scale and single-piece production.
  • the FPGA itself consists of the following components: ⁇ configurable logic blocks that implement the required logic function;
  • Blocks can also be implemented using read-only memory devices.
  • aspects of the present technical solution may be embodied in a system, method, or computer program product. Accordingly, various aspects of the present technical solution may be implemented solely as hardware, as software (including application software, and so on), or as an embodiment combining software and hardware aspects, which may generally be referred to as a "block” , “System” or “architecture”. In addition, aspects of the present technical solution can take the form of a computer program product implemented on one or more computer-readable media having a computer-readable program code that is implemented on them.
  • the computer-readable storage medium can be, without limitation, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or any suitable combination thereof. More specifically, examples (non-exhaustive list) of a computer-readable storage medium include: an electrical connection using one or more wires, a portable computer diskette; hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or Flash memory), fiber optic connection, compact disk read-only memory (CD-ROM), optical storage device, magnetic storage device, or any combination of the above.
  • a computer-readable storage medium can be any flexible storage medium that can contain or store a program for use by the system itself, device, apparatus, or in connection therewith.
  • the program code embedded in a computer-readable medium can be transmitted using any medium, including, without limitation, wireless, wired, fiber optic, infrared, and any other suitable network or a combination of the above.
  • Computer program code for performing operations for the steps of the present technical solution may be written in any programming language or combinations of programming languages, including an object-oriented programming language such as Java, Smalltalk, C ++, and so on, and conventional procedural programming languages such as programming language "C" or similar programming languages.
  • the program code can be executed on the user's computer in whole, in part, or as a separate software package, partially on the user's computer and partially on the remote computer, or completely on the remote computer.
  • the remote computer can be connected to the user's computer through any type of network, including a local area network (LAN), a wide area network (WAN), or a connection to an external computer (for example, via the Internet using Internet service providers).
  • LAN local area network
  • WAN wide area network
  • Internet service providers for example, via the Internet using Internet service providers.
  • These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other data processing device to create a procedure, such that instructions executed by a computer processor or other programmable data processing device create means to implement the functions / actions specified in block or blocks of flowchart and / or diagram.
  • These computer program instructions may also be stored on a computer-readable medium that can control a computer other than a programmable data processing device or devices that function in a particular way, such that the instructions stored on the computer-readable medium create a device including instructions that perform the functions / actions specified in the block diagram and / or diagram.

Abstract

The present technical solution relates to systems for coding programs with the aid of artificial intelligence and to a method therefor. More specifically, the present invention relates to a system and a method for recognizing the voice of a user and generating program code corresponding to converted natural language. A method for applying artificial intelligence in software development, which can be carried out by at least one computer device, in which at least one machine learning model is generated by studying the mapping relationships between phrases in a natural language and program code; at least one program code fragment is obtained; the speech of at least one user is recognized by extracting phrases in the natural language; the extracted phrases in the natural language and the at least one previously obtained program code fragment are sent to the generated learning model; and the program code fragment is evaluated through application of the learning model.

Description

СПОСОБ И СИСТЕМА ПРИМЕНЕНИЯ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА В РАЗРАБОТКЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ОБЛАСТЬ ТЕХНИКИ METHOD AND SYSTEM FOR APPLYING ARTIFICIAL INTELLIGENCE IN SOFTWARE DEVELOPMENT TECHNICAL FIELD
[001] Настоящее техническое решение относится к системам кодирования программ с помощью искусственного интеллекта и ее способу. Более конкретно, настоящее изобретение относится к системе и способу для распознавания голоса пользователя и генерации программного кода, соответствующего преобразованному естественному языку. Настоящее изобретение относится к техническим решениям, в которых автоматически генерируется программный код, который улучшается и оптимизируется голосом пользователя с применением искусственного интеллекта. УРОВЕНЬ ТЕХНИКИ [001] the Present technical solution relates to systems for coding programs using artificial intelligence and its method. More specifically, the present invention relates to a system and method for recognizing a user's voice and generating program code corresponding to a transformed natural language. The present invention relates to technical solutions in which program code is automatically generated, which is enhanced and optimized by the user's voice using artificial intelligence. LEVEL OF TECHNOLOGY
[002] По мере развития цифровых технологий и повышения производительности вычислений увеличивается успешное применение алгоритмов искусственного интеллекта, основанных на сложном глубоком обучении. В последние годы глубокое обучение используется в реальной жизни и область его применения расширяется. [002] As digital technology advances and computing performance improves, the successful application of artificial intelligence algorithms based on complex deep learning is increasing. In recent years, deep learning has been used in real life and its scope has expanded.
[003] Поскольку основа такого искусственного интеллекта реализована с помощью программирования, необходимо обучать специалистов с экспертными знаниями программного обеспечения. Поэтому потребность в различных видах обучения программированию для увеличения мощности компьютеров и сложности вычислений возрастает, и пользователи все больше заинтересованы в создании программного обеспечения, связанного с прикладными программами, анализом больших данных, интеллектуальным анализом данных и статистическим анализом. [003] Since the basis of such artificial intelligence is implemented through programming, it is necessary to train specialists with software expertise. Therefore, the need for various types of programming training to increase the power of computers and the complexity of computations is increasing, and users are increasingly interested in creating software related to applications, big data analysis, data mining and statistical analysis.
[004] Хотя потребность в образовании для различных видов программного обеспечения значительно возросла, обучение часто не является бесплатным из-за того, что пользователи должны получать образование в определенном месте и в определенное время. Кроме того, не только не хватает инструментов, но и не хватает образовательного пространства, в связи с чем существует проблема, связанная с тем, что стоимость обучения слишком высока. [004] Although the need for education for various types of software has increased significantly, training is often not free due to the fact that users must be educated in a certain place and at a certain time. In addition, not only is there a lack of tools, but also a lack of educational space, and therefore there is a problem that the cost of training is too high.
[005] Для решения этих проблем активно продвигается онлайн-образование с такими преимуществами как массовое и высококачественное образование, практическое обучение, преодоление ограничений по времени и пространству, внедрение мобильных пользовательских терминалов, например, таких как смартфон или планшет. Интеллектуальные образовательные услуги, которые пользователи могут свободно использовать в движении, привлекают внимание все больше и больше. [006] Однако в случае использования обучающего контента (например, на языке программирования R, Python, Java, С и т. д.), относящегося к программированию, в котором практика или кодирование важны при проведении онлайн-обучения через пользовательский терминал, часто входные данные для практики кодирования неудобно использовать. В результате возникает проблема, заключающаяся в том, что программа обучения не может быть хорошо выполнена в той же мобильной среде. Листинг программы необходимо печатать вручную, что становится очень неудобным и в свою очередь усложняет процесс. [005] To solve these problems, online education is actively promoted with such advantages as mass and high-quality education, hands-on learning, overcoming time and space constraints, the introduction of mobile user terminals, such as a smartphone or tablet. Intelligent educational services that users can freely use on the move are gaining more and more attention. [006] However, in the case of using educational content (eg, in the programming language R, Python, Java, C, etc.) related to programming, in which practice or coding is important when conducting online learning through a user terminal, often input data for coding practice is inconvenient to use. As a result, a problem arises that the training program cannot be performed well in the same mobile environment. The program listing must be typed manually, which becomes very inconvenient and, in turn, complicates the process.
[007] Кроме того, большая часть программного обеспечения, которое в настоящее время распространяется онлайн, предназначено для широкой публики. Поэтому, даже если пользователь, например, с ограниченными возможностями заинтересован в программном обеспечении, он имеет ограничения при обучении данному программному обеспечению. [007] In addition, most of the software that is currently distributed online is intended for the general public. Therefore, even if a user with disabilities, for example, is interested in the software, he has limitations in learning this software.
[008] Далее будет дано краткое описание предшествующего уровня техники, существующего в области техники настоящего изобретения, и будут описаны технические проблемы, которые настоящее изобретение решает по сравнению с существующим уровнем техники. [008] Next, a brief description will be given of the prior art in the art of the present invention, and technical problems that the present invention solves in comparison with the prior art will be described.
[009] Из уровня техники известна заявка KR20020030156A “Control method of computer program used voice recognition technology” (правообладатель: PARK KEE BUM, опубликовано: 24.04.2002). В данном техническом решении раскрыты система и способ управления операционной системой компьютера и различными прикладными программами с использованием только голосовых команд пользователя, использующие технологию распознавания голоса без устройства ручного ввода, такого как как клавиатура или мышь. Настоящее изобретение относится к способу управления компьютерной программой с использованием распознавания речи, которая позволяет не только широкой публике, но и различным людям с ограниченными возможностями легко использовать различные программы, а также компьютерную систему. [0010] Однако в данном решении управляют компьютерной программой, а не самим программным кодом и его написанием. [009] From the prior art, the application KR20020030156A “Control method of computer program used voice recognition technology” is known (copyright holder: PARK KEE BUM, published: 04.24.2002). This technical solution discloses a system and method for controlling the operating system of a computer and various application programs using only the user's voice commands, using voice recognition technology without a manual input device such as a keyboard or mouse. The present The invention relates to a method for controlling a computer program using speech recognition, which allows not only the general public, but also various people with disabilities to easily use various programs as well as the computer system. [0010] However, in this solution, the computer program is controlled, and not the program code itself and its writing.
[0011] Настоящее же изобретение распознает голос пользователя для выполнения обработки на естественном языке и генерирует соответствующий программный код на основе глубокого обучения, тем самым не только автоматически решая задачу программирования, но и технически улучшения конфигурацию качества изображения. Следовательно, предшествующий уровень техники явно отличается от способа, представленного в настоящем изобретении. [0011] The present invention recognizes the user's voice to perform natural language processing and generates the corresponding program code based on deep learning, thereby not only automatically solving the programming problem, but also technically improving the image quality configuration. Therefore, the prior art is clearly different from the method presented in the present invention.
[0012] Также из уровня техники известен патент Ns US6604110B1 «Automated software code generation from a metadata-based repository», патентообладатель: International Business Machines Corp, дата публикации: 31.10.2000. В данном техническом решении раскрывается способ предоставления исполняемого программного кода для использования в приложении управления модели данных предприятия (EDM), который передает данные из одного или нескольких источников данных в базу данных приложений EDM, для использования в них в ответ на пользовательские команды. [0012] Also known from the prior art patent Ns US6604110B1 "Automated software code generation from a metadata-based repository", patentee: International Business Machines Corp, publication date: 31.10.2000. This technical solution discloses a method for providing executable code for use in an enterprise data model (EDM) management application that transfers data from one or more data sources to an EDM application database for use therein in response to user commands.
[0013] Данное изобретение работает только в интерактивном режиме в ответ на команды пользователя, что требует определенных трудозатрат и влияет на скорость работы. Более того, данное изобретение предоставляет только исполняемый код, что значительно сужает возможности технического решения и не предоставляет сценарии или метаданные, на основании которых в режиме исполнения эти метаданные будут определять сценарий выполнения. СУЩНОСТЬ ТЕХНИЧЕСКОГО РЕШЕНИЯ [0013] The present invention operates only in interactive mode in response to user commands, which is labor intensive and affects the speed of operation. Moreover, the present invention provides only executable code, which significantly narrows the scope of the technical solution and does not provide scripts or metadata on the basis of which, in runtime, this metadata will determine the execution script. ESSENCE OF THE TECHNICAL SOLUTION
[0014] Данное техническое решение направлено на устранение недостатков, известных из уровня техники. [0015] Технической задачей или технической проблемой, решаемой в данном техническом решении, является осуществление системы и способа для распознавания голоса пользователя и генерации программного кода, соответствующего преобразованному естественному языку [0016] Техническим результатом является повышение скорости и качества программирования за счет распознавания голоса пользователя и применения искусственного интеллекта. [0014] This technical solution is aimed at eliminating the disadvantages known from the prior art. [0015] The technical problem or technical problem solved in this technical solution is to implement a system and method for recognizing a user's voice and generating a program code corresponding to the transformed natural language. [0016] artificial intelligence applications.
[0017] Указанный технический результат достигается за счет осуществления способа кодирования программ на основании искусственного интеллекта на основе распознавания речи в соответствии с вариантом осуществления настоящего изобретения, который включает в себя этапы формирования модели обучения путем изучения отношения отображения между фразой на естественном языке и программным кодом, извлечения фразы на естественном языке путем распознавания речи пользователя, и оценку и вывод программного кода на дисплей пользователя. [0017] The specified technical result is achieved by implementing a method for coding programs based on artificial intelligence based on speech recognition in accordance with an embodiment of the present invention, which includes the steps of generating a learning model by studying a mapping relationship between a natural language phrase and a program code, extracting a natural language phrase by recognizing the user's speech, and evaluating and outputting the program code to the user's display.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ BRIEF DESCRIPTION OF DRAWINGS
[0018] Признаки и преимущества настоящего технического решения станут очевидными из приведенного ниже подробного описания и прилагаемых чертежей, на которых: [0018] The features and advantages of the present technical solution will become apparent from the following detailed description and the accompanying drawings, in which:
[0019] На Фиг. 1 показан пример реализации системы кодирования программ с помощью искусственного интеллекта и ее способа в соответствии с настоящим изобретением. [0019] FIG. 1 shows an example of an implementation of an artificial intelligence program coding system and its method in accordance with the present invention.
[0020] На Фиг. 2 показана блок-схема устройства кодирования программ на основе распознавания речи с искусственным интеллектом согласно варианту осуществления настоящего изобретения. [0020] FIG. 2 is a block diagram of an artificial intelligence speech recognition based program coding apparatus according to an embodiment of the present invention.
[0021] На Фиг. 3 показана блок-схема, иллюстрирующая процесс предварительной обработки входных данных, которые вводятся в CNN, при выполнении машинного обучения через CNN в устройстве кодирования программ с искусственным интеллектом на основе распознавания речи согласно варианту осуществления настоящего изобретения. [0021] FIG. 3 is a flowchart illustrating a process for preprocessing input data that is input to a CNN when performing machine learning via a CNN in a speech recognition-based artificial intelligence program encoder according to an embodiment of the present invention.
[0022] На Фиг. 4 показана блок-схема, иллюстрирующая процесс предварительной обработки входных данных, которые должны быть введены в RNN, при выполнении машинного обучения через RNN в устройстве кодирования программ с искусственным интеллектом на основе распознавания речи в соответствии с вариантом осуществления настоящего изобретения. [0022] FIG. 4 is a flowchart illustrating the preprocessing of input data to be entered into an RNN when performing machine learning via the RNN in a device. coding artificial intelligence programs based on speech recognition in accordance with an embodiment of the present invention.
[0023] На Фиг. 5 показана блок-схема, иллюстрирующая структуру обучения на основе CNN и процесс обучения в соответствии с вариантом осуществления настоящего изобретения. [0023] FIG. 5 is a block diagram illustrating a CNN based learning structure and learning process in accordance with an embodiment of the present invention.
[0024] На Фиг. 6 показана блок-схема, поясняющая структуру машинного обучения и процесс обучения через RNN в соответствии с вариантом осуществления настоящего изобретения. [0025] На Фиг. 7 показана блок-схема последовательности операций, иллюстрирующая процесс выполнения способа кодирования программы с помощью искусственного интеллекта на основе распознавания речи в соответствии с вариантом осуществления настоящего изобретения. ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ [0024] FIG. 6 is a block diagram for explaining a machine learning structure and learning process via an RNN in accordance with an embodiment of the present invention. [0025] FIG. 7 is a flowchart illustrating a process of performing a method for coding a program using artificial intelligence based on speech recognition in accordance with an embodiment of the present invention. DETAILED DESCRIPTION OF THE INVENTION
[0026] Ниже будут подробно рассмотрены термины и их определения, используемые в описании данного технического решения. [0026] Below will be discussed in detail the terms and their definitions used in the description of this technical solution.
[0027] В данном изобретении под системой подразумевается компьютерная система, ЭВМ (электронно-вычислительная машина), ЧПУ (числовое программное управление), ПЛК (программируемый логический контроллер), компьютеризированные системы управления и любые другие устройства, способные выполнять заданную, четко определенную последовательность операций (действий, инструкций), централизованные и распределенные базы данных, смарт-контракты. [0028] Под устройством обработки команд подразумевается электронный блок либо интегральная схема (микропроцессор), исполняющая машинные инструкции (программы), или подобное. Устройство обработки команд считывает и выполняет машинные инструкции (программы) с одного или более устройства хранения данных. В роли устройства хранения данных могут выступать, но, не ограничиваясь, жесткие диски (HDD), флеш-память, ПЗУ (постоянное запоминающее устройство), твердотельные накопители (SSD), оптические приводы. [0029] Программа - последовательность инструкций, предназначенных для исполнения устройством управления вычислительной машины или устройством обработки команд. [0027] In this invention, the system means a computer system, a computer (electronic computer), CNC (numerical control), PLC (programmable logic controller), computerized control systems and any other devices capable of performing a given, well-defined sequence of operations. (actions, instructions), centralized and distributed databases, smart contracts. [0028] By a command processor is meant an electronic unit or an integrated circuit (microprocessor) executing machine instructions (programs), or the like. A command processor reads and executes machine instructions (programs) from one or more storage devices. The role of data storage devices can be, but are not limited to, hard disks (HDD), flash memory, ROM (read only memory), solid state drives (SSD), optical drives. [0029] A program is a sequence of instructions for execution by a computer control device or command processing device.
[0030] Сервер (англ server) - электронное устройство, выполняющее сервисные функции по запросу клиента, предоставляя ему доступ к определенным ресурсам. В целях настоящего описания рассматривается сервер, имеющий постоянное подключение к объединенной сети, которая может передавать данные на клиентское устройство. Сервер может обрабатывать эти данные и передавать результат обработки обратно на клиентское устройство. [0030] Server (English server) - an electronic device that performs service functions at the request of the client, providing him with access to certain resources. For the purposes of this description, a server is contemplated that has a persistent connection to the internetwork that can transmit data to a client device. The server can process this data and transmit the processing result back to the client device.
[0031] Блок обмена данных — это блок сервера, который может представлять приемник входящих сигналов, и преобразователь их для последующей обработки, и транслятор для дальнейшей отправки. [0031] A data exchange unit is a server unit that can represent a receiver of incoming signals, and a converter for subsequent processing, and a translator for further sending.
[0032] Вычислительный блок — это блок сервера, который представляет собой микропроцессор, специально приспособленный для сложной обработки сигналов. [0032] The computing unit is a server unit that is a microprocessor specially adapted for complex signal processing.
[0033] Как показано на Фиг. 1, система кодирования программ с помощью искусственного интеллекта, использующая распознавание речи, распознает голос пользователя и преобразует распознанную речь пользователя в программный код, применяя машинное обучение посредством глубокого обучения. База обучающих данных (например, Sen2Cod) (200), в которой таблицы отображения для меток естественного языка и кода программы хранятся в качестве данных для машинного обучения, базы обучающих данных (Sen2Cod) и, по меньшей мере, одного или нескольких пользовательских устройств (400). [0033] As shown in FIG. 1, an artificial intelligence program coding system using speech recognition recognizes the user's voice and converts the user's recognized speech into program code using machine learning through deep learning. A training database (e.g., Sen2Cod) (200), in which mapping tables for natural language labels and program code are stored as data for machine learning, a training database (Sen2Cod), and at least one or more user devices (400 ).
[0034] Первоначально база 200 обучающих данных хранит программу для элемента программирования, включая команды, функции, переменные, константы или их комбинации для различных языков программирования, таких как программы на R, С ++, JAVA, Python, не ограничиваясь. База данных включает информацию, которая соответствует меткам кода и словам, которые говорят пользователи. Например, все возможные выражения на естественном языке генерируются для конкретных программных кодов, а выражения на естественном языке и конкретные программные коды сохраняются в соответствии с соотношением 1: 1. [0035] Таблица отображения для меток кода программы на естественном языке используется в качестве обучающих данных для глубокого обучения в устройстве 100 кодирования программ с помощью искусственного интеллекта посредством распознавания речи (1), как показано на Фиг. 1. Данные обучения используются в качестве входных данных машинного обучения, и в результате создается модель обучения, после чего сгенерированная модель обучения сохраняется в базе данных моделей обучения для использования в программном кодировании. Здесь машинное обучение может выполняться с помощью рекуррентной нейронной сети (RNN) или сверточной нейронной сети (CNN), или других подходящих типов нейронных сетей, не ограничиваясь. [0034] Initially, the training database 200 stores a program for a programming element, including instructions, functions, variables, constants, or combinations thereof for various programming languages such as R, C ++, JAVA, Python programs, but not limited to. The database includes information that matches the code labels and words that users say. For example, all possible natural language expressions are generated for specific program codes, and natural language expressions and specific program codes are stored in a 1: 1 ratio. [0035] A mapping table for natural language program code marks is used as training data for deep learning in the AI program coding apparatus 100 by speech recognition (1), as shown in FIG. 1. Training data is used as input to machine learning, and as a result, a training model is created, after which the generated training model is stored in the training model database for use in software coding. Here machine learning can be performed with a recurrent neural network (RNN) or a convolutional neural network (CNN), or other suitable types of neural networks, but are not limited to.
[0036] Между тем, устройство 100 кодирования программ с помощью искусственного интеллекта посредством распознавания речи предварительно обрабатывает данные обучения, чтобы соответствовать методам машинного обучения (то есть RNN или CNN), перечисленным выше. Затем устройство 100 кодирования программ с помощью искусственного интеллекта посредством распознавания речи изучает предварительно обработанные данные обучения и генерирует модель обучения для оценки программного кода для конкретной фразы пользователя на естественном языке. Процесс предварительной обработки в соответствии с CNN или RNN будет подробно описан со ссылкой на Фиг. 3 и 4 соответственно ниже. [0036] Meanwhile, the artificial intelligence program coding apparatus 100 by speech recognition preprocesses the training data to correspond to the machine learning methods (ie, RNN or CNN) listed above. Then, the apparatus 100 for coding programs using artificial intelligence through speech recognition learns the preprocessed learning data and generates a learning model for evaluating the program code for a specific natural language phrase of the user. The preprocessing process according to CNN or RNN will be described in detail with reference to FIG. 3 and 4, respectively, below.
[0037] Базовый блок предобработки данных может содержать блок предобработки текста, который отвечает за снижение многообразия возможных текстов сообщений для того, чтобы упростить работу следующим модулям системы 100. Данный блок может быть предназначен для разбиения входящего пользовательского ввода на предложения и слова, а также их морфологического разбора, синтаксического разбора и семантической типизации токенов. [0037] The basic data preprocessing unit may contain a text preprocessing unit that is responsible for reducing the variety of possible message texts in order to simplify the operation of the following modules of the system 100. This unit may be designed to split the incoming user input into sentences and words, as well as their morphological parsing, parsing and semantic typing of tokens.
[0038] Этап токенизации, предполагает выделение базовых элементов текста (токенов), ограниченных с двух сторон разделительными символами, пробелами или знаками пунктуации. Элементами здесь выступают слова, числа, даты, сокращения, аббревиатуры, составные предлоги и т.д. Токенизация позволяет выделить дискретные единицы текста, являющиеся основой для дальнейшей работы на этапах морфологического и синтаксического анализа. В результате токенизации каждому элементу присваивается соответствующий тип: слово, число, дата, адрес и т.д. [0038] The stage of tokenization involves the selection of basic text elements (tokens), delimited on both sides by separating characters, spaces or punctuation marks. The elements here are words, numbers, dates, abbreviations, abbreviations, compound prepositions, etc. Tokenization allows you to select discrete units of text, which are the basis for further work at the stages of morphological and parsing. As a result of tokenization, each element is assigned the appropriate type: word, number, date, address, etc.
[0039] Цель предобработки текста - подготовить его для качественной классификации и дальнейших меток с программным кодом. [0040] Пользователь осуществляет доступ к программному коду и использует модель обучения из базы 300 данных моделей обучения для генерации программного кода через устройство 100 кодирования программ с помощью искусственного интеллекта с использованием распознавания речи. В пользовательском устройстве 400 через устройство 100 кодирования программ с помощью искусственного интеллекта посредством распознавания речи или через приложение для кодирования программ, загруженное из устройства 100 кодирования программ с помощью искусственного интеллекта посредством распознавания речи, преобразует результат распознавания голоса в программный код. В этом процессе пользователь может вводить данные отображения между естественным языком и программным кодом, если содержание, вводимое голосом, и результат программы не являются оптимальными. То есть пользователь или менеджер, имеющий определенные полномочия, подтверждает выходную программу, затем проверяет, что программа является оптимальной программой посредством процесса проверки, и обновляет базу данных 200 обучения, хранящую таблицу отображения. Здесь пользователь или менеджер с определенными полномочиями/навыками может быть экспертом по конкретному языку программирования. Следовательно, пользователь, выполняющий процесс проверки, является не обычным пользователем, а человеком, который имеет повышенный уровень владения конкретным языком программирования. [0039] The purpose of text preprocessing is to prepare it for high-quality classification and further labels with program code. [0040] The user accesses the program code and uses the learning model from the learning model database 300 to generate the program code through the artificial intelligence program encoder 100 using speech recognition. In the user device 400, through the speech recognition artificial intelligence program encoding apparatus 100 or through a program encoding application downloaded from the speech recognition artificial intelligence program encoding apparatus 100, converts the voice recognition result into a program code. In this process, the user can input mapping data between natural language and program code if the content input by voice and the program result are not optimal. That is, a user or manager with certain authority confirms the output program, then verifies that the program is the optimal program through the verification process, and updates the learning database 200 storing the mapping table. Here, a user or manager with certain powers / skills can be an expert in a particular programming language. Therefore, the user performing the verification process is not an ordinary user, but a person who has an advanced level of proficiency in a particular programming language.
[0041] Пользовательское устройство 400 представляет собой устройство мобильной связи, такое как смартфон, планшетный компьютер или тому подобное, и представляет собой пользовательский терминал, предоставленный пользователем. Пользовательское устройство 400 включает в себя микрофон для приема голоса пользователя. Таким образом, устройство мобильной связи загружает приложение для кодирования программ из устройства 100 кодирования программ с помощью искусственного интеллекта посредством распознавания голоса и выполняет приложение, чтобы стать пользовательским устройством 400 для кодирования программ. [0042] Когда база данных вновь обновляется, сервер кодирования распознавания речи (6) обновляет модель обучения и сохраняет результат в базе данных 300 модели обучения. [0041] The user device 400 is a mobile communication device such as a smartphone, tablet computer, or the like, and is a user terminal provided by the user. User device 400 includes a microphone for receiving the user's voice. Thus, the mobile communication device downloads an application for coding programs from the artificial intelligence program coding apparatus 100 by voice recognition, and executes the application to become the user apparatus 400 for coding programs. [0042] When the database is updated again, the speech recognition coding server (6) updates the training model and stores the result in the training model database 300.
[0043] Поскольку пользователь использует систему кодирования для распознавания речи в соответствии с настоящим изобретением, модель обучения становится более продвинутой благодаря обучению с подкреплением. [0043] Since the user uses the coding system for speech recognition in accordance with the present invention, the learning model becomes more advanced due to reinforcement learning.
[0044] Кроме того, устройство 100 кодирования программ с помощью искусственного интеллекта посредством распознавания речи может быть реализовано облачным сервером, локальным сервером или их комбинацией. Распознавание речи может включать в себя прием пользовательской речи от пользовательского устройства 400, но оно может выполняться в другом пользовательском устройстве 400, имеющем механизм распознавания речи. [0044] In addition, the device 100 for encoding programs using artificial intelligence through speech recognition may be implemented by a cloud server, a local server, or a combination thereof. Speech recognition can include receiving user speech from user device 400, but it can be performed on another user device 400 having a speech recognition engine.
[0045] Фиг.2 показывает блок-схему устройства кодирования программ на основе распознавания речи с искусственным интеллектом согласно варианту осуществления настоящего изобретения. [0045] FIG. 2 shows a block diagram of an artificial intelligence speech recognition based program coding apparatus according to an embodiment of the present invention.
[0046] Устройство 100 кодирования программ с помощью искусственного интеллекта на основе распознавания речи в соответствии с вариантом осуществления настоящего изобретения включает в себя блок 110 распознавания речи для распознавания речи пользователя, принятой от пользовательского устройства 400, блок 120 предварительной обработки для предварительной обработки голоса пользователя и данных обучения. Чтобы применить данные обучения в соответствии со способом машинного обучения, блок 130 формирования модели обучения для генерации модели обучения путем обучения предварительно обработанных данных обучения, блок 140 оценки кода программы (на Фиг. 2 - оценщик кода программы) для оценки кода программы путем применения предварительно обработанного голоса пользователя к сгенерированной модели обучения, блок 150 проверки для проверки оцененного программного кода, блок 160 обновления обучающих данных для обновления обучающих данных и составных частей устройства 100 кодирования программ на основе распознавания речи с искусственным интеллектом в целом. Он выполнен с возможностью включать в себя контроллер 170. [0047] Блок 110 распознавания речи распознает пользовательскую речь, принятую в режиме реального времени из пользовательского терминала, извлекает фразу или фразы на естественном языке (в дальнейшем называемые естественным языком) из распознанной речи пользователя и предоставляет извлеченную речь в блок 120 предварительной обработки. [0046] A speech recognition-based artificial intelligence program coding apparatus 100 according to an embodiment of the present invention includes a speech recognition unit 110 for recognizing a user's speech received from a user device 400, a preprocessing unit 120 for preprocessing the user's voice, and training data. To apply the training data in accordance with the machine learning method, a learning model generating unit 130 for generating a learning model by training preprocessed training data, a program code evaluator 140 (a program code evaluator in Fig. 2) for evaluating a program code by applying a preprocessed user voices to the generated learning model, a verification unit 150 for checking the evaluated program code, a training data update unit 160 for updating the training data and parts of the AI speech recognition-based program coding apparatus 100 in general. It is configured to include a controller 170. [0047] The speech recognition unit 110 recognizes the user speech received in real time from the user terminal, extracts the natural language phrase or phrases (hereinafter referred to as natural language) from the recognized speech of the user, and provides the extracted speech to the preprocessing unit 120.
[0048] В это время блок 120 предварительной обработки предварительно обрабатывает естественный язык и вводит его в модель обучения, сгенерированную блоком 130 генерации модели обучения, так что программный код для голоса пользователя может оцениваться через модель обучения. [0048] At this time, the preprocessing unit 120 preprocesses the natural language and injects it into the learning model generated by the learning model generating unit 130, so that the program code for the user's voice can be evaluated through the learning model.
[0049] Таким образом, блок 110 распознавания речи распознает речь пользователя через механизм распознавания речи и выполняет обработку естественного языка, извлекает естественный язык из речи пользователя и оценивает конкретный программный код для извлеченного естественного языка через модель обучения. [0049] Thus, the speech recognition unit 110 recognizes the user's speech through the speech recognition engine and performs natural language processing, extracts the natural language from the user's speech, and evaluates the specific program code for the extracted natural language through the learning model.
[0050] Между тем, блок 100 распознавания речи выполняет обработку естественного языка для пользовательской речи, введенной пользователем, который выполняет упражнения по программированию или задачи кодирования посредством морфологического, синтаксического, семантического, дискурсивного анализа и тому подобного. Например, система Siri или различные методы машинного обучения для распознавания речи могут использоваться для выполнения обработки естественного языка пользовательской речи. В настоящем изобретении нет ограничений на способ обработки естественной речи пользователя. [0051] Между тем обработка пользовательского языка на естественном языке может выполняться в пользовательском устройстве 400, оборудованном механизмом распознавания речи. Блок 120 распознавания голоса принимает естественный язык от пользовательского устройства 400, и получает данные, которые могут быть введены в модель обучения. [0052] Блок 120 предварительной обработки подготавливает данные обучения, загруженные в базу 200 данных обучения, и предварительно обрабатывает загруженные данные обучения в соответствии со способом машинного обучения, выполняемым блоком 130 генерации модели обучения. [0053] С другой стороны, данные обучения хранятся в базе данных 200 обучения в форме таблицы отображения, в которой метка кода программы, сконфигурированная в схеме кодирования, индексируется в конкретном коде программы и на естественном языке в отношении 1: 1. [0054] Кроме того, блок 130 генерации модели обучения может генерировать модель обучения путем обучения предварительно обработанных данных обучения посредством, по меньшей мере, одного из методов машинного обучения, например, CNN или RNN. [0050] Meanwhile, the speech recognition unit 100 performs natural language processing on user speech input by a user who performs programming exercises or coding tasks through morphological, syntactic, semantic, discourse analysis, and the like. For example, Siri or various machine learning methods for speech recognition can be used to perform natural language processing on user speech. In the present invention, there is no limitation on the natural speech processing method of the user. [0051] Meanwhile, natural language user language processing may be performed on a user device 400 equipped with a speech recognition engine. The voice recognition unit 120 receives natural language from the user device 400, and receives data that can be input into the training model. [0052] The preprocessing unit 120 prepares the training data loaded into the training database 200 and preprocesses the loaded training data in accordance with the machine learning method performed by the training model generation unit 130. [0053] On the other hand, the training data is stored in the training database 200 in the form of a mapping table in which the program code label configured in the coding scheme is indexed in the specific program code and in natural language in a 1: 1 ratio. [0054] In addition in addition, block 130 generating a training model can generate a training model by training preprocessed training data through at least one of the machine learning methods, such as CNN or RNN.
[0055] Сверточные нейронные сети (англ. CNN) обеспечивают частичную устойчивость к изменениям масштаба, смещениям, поворотам, смене ракурса и прочим искажениям. Сверточные нейронные сети объединяют три архитектурных идеи, для обеспечения инвариантности к изменению масштаба, повороту сдвигу и пространственным искажениям: [0055] Convolutional neural networks (CNN) provide partial resistance to changes in scale, displacement, rotation, change of perspective and other distortions. Convolutional neural networks combine three architectural ideas to provide invariance to scaling, rotation, shear, and spatial distortion:
• локальные рецепторные поля (обеспечивают локальную двумерную связность нейронов); • local receptor fields (provide local two-dimensional connectivity of neurons);
• общие синаптические коэффициенты (обеспечивают детектирование некоторых черт в любом месте изображения и уменьшают общее число весовых коэффициентов); • general synaptic coefficients (provide detection of some features anywhere in the image and reduce the total number of weight coefficients);
• иерархическая организация с пространственными подвыборками. [0056] В настоящее время сверточная нейронная сеть и ее модификации считаются лучшими по точности и скорости алгоритмами нахождения объектов. • hierarchical organization with spatial subsamples. [0056] Currently, the convolutional neural network and its modifications are considered the best algorithms for finding objects in terms of accuracy and speed.
[0057] Рекуррентные нейронные сети (англ. RNN) - это класс моделей машинного обучения, основанный на использовании предыдущих состояний сети для вычисления текущего. Каждый символ в исходном тексте, отдельные слова, знаки препинания и даже целые фразы — все это является атомарным элементом входной последовательности для нейронной сети. В некоторых вариантах реализации могут использоваться управляемые рекуррентные нейроны (gated recurrent units, GRU). Фильтр обновления определяет, сколько информации останется от прошлого состояния и сколько будет взято из предыдущего слоя. Фильтр сброса работает примерно как забывающий фильтр. [0058] Для обучения нейронных сетей в качестве обучающей выборки используются корпусы, а именно трибанки. В лингвистике корпус — подобранная и обработанная по определённым правилам совокупность текстов, используемых в качестве базы данных для исследования языка. Они используются для статистического анализа и проверки статистических гипотез, подтверждения лингвистических правил в данном языке. Трибанк — это коллекция разобранных предложений (то есть графов разбора), подготовленных вручную или автоматически заранее. Трибанки по классификации делятся на phrase-structure treebanks и dependency treebanks. В данном техническом решении могут использоваться, не ограничиваясь, следующие трибанки или корпусы для русского языка: SynTagRus (1,107 тыс. токенов), PUD (19 тыс. токенов), GSD (99 тыс. токенов), Taiga (20 тыс. токенов), Dependency Treebanks и т.д. [0057] Recurrent neural networks (RNNs) are a class of machine learning models based on the use of previous network states to compute the current one. Each character in the source text, individual words, punctuation marks and even entire phrases - all this is an atomic element of the input sequence for the neural network. In some implementations, gated recurrent units (GRUs) may be used. The update filter determines how much information will remain from the previous state and how much will be taken from the previous layer. The reset filter works much like a forgetting filter. [0058] For training neural networks, corpuses, namely tribanks, are used as a training sample. In linguistics, a corpus is a collection of texts selected and processed according to certain rules, used as a database for the study of a language. They are used for statistical analysis and statistical hypothesis testing, confirmation of linguistic rules in a given language. Tribank is a collection of parsed sentences (that is, parse graphs) prepared manually or automatically in advance. Tribanks are classified into phrase-structure treebanks and dependency treebanks. In this technical solution, the following tribanks or corpora for the Russian language can be used, but are not limited to: SynTagRus (1.107 thousand tokens), PUD (19 thousand tokens), GSD (99 thousand tokens), Taiga (20 thousand tokens), Dependency Treebanks, etc.
[0059] Далее применяют подход Transition-based dependency parsing, широко известный из уровня техники. Этот подход заключается в попытке предсказать последовательность действий (переходов) от некоторой изначальной конфигурации фразы или запроса пользователя к конечной, в результате выполнения которых будет получено искомое дерево разбора, что позволяет получить достаточно высокую точность и достичь довольно высоких скоростей при обработке текста. [0059] Next, a Transition-based dependency parsing approach widely known in the art is applied. This approach consists in an attempt to predict a sequence of actions (transitions) from some initial configuration of a phrase or user request to the final one, as a result of which the desired parse tree will be obtained, which allows obtaining a sufficiently high accuracy and achieving fairly high speeds in text processing.
[0060] Arc-standard system - один из наиболее популярных подходов реализации transition-based системы. Система описывается конфигурацией, состоящей из трех частей: с = (s, b, А), [0060] The Arc-standard system is one of the most popular approaches to implementing a transition-based system. The system is described by a configuration consisting of three parts: c = (s, b, A),
[0061] где: s - стек данных; [0062] b - буфер данных; [0061] where: s - data stack; [0062] b - data buffer;
[0063] А - множество зависимостей. [0063] A is a plurality of dependencies.
[0064] Изначально конфигурация для последовательности символов w1 ... , wn следующая перед обработкой: [0064] Initially, the configuration for the sequence of characters w 1 ..., w n is as follows before processing:
[0065] s = [ROOT] - в стеке один служебный символ; [0066] b = [wv wn] - в буфере вся последовательность символов; [0065] s = [ROOT] - one service symbol in the stack; [0066] b = [w v w n ] - the entire sequence of characters is in the buffer;
[0067] А = 0 - множество зависимостей пусто. [0067] A = 0 - the set of dependencies is empty.
[0068] Конечная конфигурация после обработки следующая: [0068] The final configuration after processing is as follows:
[0069] s = [ROOT] - в стеке один служебный символ; [0069] s = [ROOT] - one service symbol in the stack;
[0070] b - пуст; [0071] A - содержит искомое дерево разбора. [0070] b - empty; [0071] A - contains the desired parse tree.
[0072] Будем считать sh где i = (1, 2, ...), i-м верхним элементом стека, b* , i = (1, 2, ...) - i-й элемент буфера данных. [0072] Let's consider s h where i = (1, 2, ...), the i-th element of the stack, b *, i = (1, 2, ...) is the i-th element of the data buffer.
[0073] Подход Arc-standard system имеет 4 типа операций: [0074] SHIFT - удаление Ьг из буфера и добавление его в стек; [0073] The Arc-standard system approach has 4 types of operations: [0074] SHIFT - remove b r from the buffer and add it to the stack;
[0075] LEFT_ARC - добавляет в А связь от sx к s2, с определенной меткой типа связи, и удаляет s2 из стека; [0075] LEFT_ARC - adds to A a link from s x to s 2 , with a specific label of the link type, and removes s 2 from the stack;
[0076] RIGHT ARC - аналогично LEFT_ARC, только с заменой s1 и s2. [0076] RIGHT ARC - similar to LEFT_ARC, only with the replacement of s 1 and s 2 .
[0077] SWAP: возвращает из стека второй элемент в буфер. [0078] Таким образом, получается всего |Т | = 2N^+ возможных действий, где Ni - количество типов меток зависимости. Цель синтаксического парсера 210 текста - выбрать наиболее подходящее действие по данной конфигурации. [0077] SWAP: Returns the second item from the stack to the buffer. [0078] Thus, a total of | T | = 2N ^ + possible actions, where Ni is the number of dependency label types. The purpose of the text parser 210 is to select the most appropriate action for a given configuration.
[0079] Для обучения искусственной нейронной сети требуется на основе имеющихся данных сгенерировать наиболее подходящую последовательность действий. На каждом шаге конфигурация будет содержать необходимые данные, а действие - ответ. [0079] To train an artificial neural network, it is required to generate the most appropriate sequence of actions based on the available data. At each step, the configuration will contain the necessary data, and the action will contain the response.
[0080] Соответственно, когда блок 130 генерации модели обучения выполняет машинное обучение посредством сети CNN, блок 120 предварительной обработки численно отображает соотношение отображения между естественным языком таблицы отображения и программным кодом, так что данные обучения подходят для CNN, и сохраняет отображаемые данные обучения в базе 200 данных обучения. [0080] Accordingly, when the learning model generation unit 130 performs machine learning via the CNN, the preprocessing unit 120 numerically displays the mapping relationship between the natural language of the mapping table and the program code so that the learning data is suitable for the CNN, and stores the displayed learning data in the database 200 training data.
[0081] Затем блок 120 генерации модели обучения генерирует модель обучения для приема отображаемых обучающих данных и оценки программного кода для конкретного естественного языка и сохраняет сгенерированную модель обучения в базе 300 данных моделей обучения. [0081] Next, the learning model generation unit 120 generates a learning model for receiving the displayed training data and evaluating the program code for a specific natural language, and stores the generated learning model in the learning model database 300.
[0082] С другой стороны, каждое изображение, полученное путем количественной оценки отношения отображения, устанавливается таким образом, чтобы отношение отображения между конкретным естественным языком и меткой кода программы не дублировалось однозначно. [0082] On the other hand, each image obtained by quantifying the display ratio is set so that the display ratio between a specific natural language and a program code mark is not uniquely duplicated.
[0083] Кроме того, размер сети CNN, может состоять из множества сетей, имеющих одинаковый размер, или размер сети может постепенно увеличиваться в соответствии с обновлением или изменением данных обучения. То есть сеть CNN адаптирована для увеличения емкости всех данных обучения, подлежащих изучению. Соответственно, глубина сети CNN может изменяться в зависимости от размера сети. [0083] In addition, the size of the CNN may be composed of a plurality of networks of the same size, or the size of the network may gradually increase in accordance with the update or change of the training data. That is, the CNN network is adapted to increase the capacity of all training data to be studied. Accordingly, the depth of the CNN can vary depending on the size of the network.
[0084] Изображение также содержит, по меньшей мере, один фрагмент изображения, причем фрагмент изображения содержит двоичное изображение, изображение в градациях серого, цветное изображение или их комбинацию в зависимости от степени количественного определения естественного языка, программного кода и отношения отображения. Например, когда естественный язык, программный код и его отношение отображения численно выражаются как 0 или 1 , данные обучения могут быть преобразованы в двоичное изображение. Когда числовое значение находится в диапазоне от 0 до 255, данные обучения преобразуются в серый цвет. Разрешение изображения сконфигурировано для непрерывного добавления в соответствии с размером сети CNN. Процесс предварительной обработки для CNN будет подробно описан со ссылкой на Фиг. 3. [0085] Кроме того, когда блок 130 генерации модели обучения выполняет машинное обучение через RNN, блок 120 предварительной обработки может количественно определять отношение отображения между естественным языком таблицы отображения и меткой кода программы в виде последовательности чисел, так что данные обучения подходят для RNN. [0086] После этого блок 120 генерации модели обучения принимает множество последовательностей, полученных путем оцифровки отношения отображения между метками кода программы на естественном языке, и генерирует модель обучения для оценки конкретного кода программы из речи пользователя и сохраняет его в процессе обучения в базе 300 данных моделей обучения. [0084] The image also contains at least one piece of the image, and the piece of image contains a binary image, a grayscale image, a color image, or a combination thereof depending on the degree of quantification of natural language, program code and display ratio. For example, when natural language, program code and its display ratio are numerically expressed as 0 or 1, the training data can be converted to a binary image. When the numeric value is in the range 0 to 255, the training data is converted to gray. Image resolution is configured for continuous addition according to CNN size. The CNN preprocessing process will be described in detail with reference to FIG. 3. [0085] In addition, when the learning model generation unit 130 performs machine learning via the RNN, the preprocessing unit 120 can quantify the mapping relationship between the natural language of the mapping table and the program code label as a sequence of numbers, so that the training data is suitable for the RNN ... [0086] Thereafter, the learning model generation unit 120 receives a plurality of sequences obtained by digitizing the mapping relationship between the natural language program code labels, and generates a learning model for evaluating the specific program code from the user's speech and stores it in the model database 300 during training. learning.
[0087] С другой стороны, каждая из серий числовых значений отношений отображения задается так, чтобы отношение отображения метки между конкретным естественным языком и программным кодом не дублировалось. [0087] On the other hand, each of the series of numeric display ratio values is set so that the label display ratio between a specific natural language and the program code is not duplicated.
[0088] Кроме того, сеть RNN может состоять из множества сетей, имеющих одинаковый размер, или размер сети может постепенно увеличиваться в соответствии с обновлением или изменением данных обучения. То есть сеть RNN адаптирована к емкости всех данных обучения, подлежащих изучению. [0088] In addition, the RNN may be composed of a plurality of networks of the same size, or the size of the network may gradually increase in accordance with the update or change of the training data. That is, the RNN is adapted to the capacity of all the training data to be learned.
[0089] Кроме того, последовательность включает в себя, по меньшей мере, один фрагмент последовательности, а фрагмент последовательности включает в себя комбинацию, по меньшей мере, одной битовой последовательности. С другой стороны, размер потока битов может непрерывно добавляться в соответствии с размером сети CNN. Процесс предварительной обработки для CNN будет подробно описан со ссылкой на Фиг. 3. [0089] In addition, the sequence includes at least one sequence fragment, and the sequence fragment includes a combination of at least one bit sequence. On the other hand, the size of the bit stream can be continuously added according to the size of the CNN. The CNN preprocessing process will be described in detail with reference to FIG. 3.
[0090] Кроме того, блок 130 генерации модели обучения загружает данные обучения, предварительно обработанные блоком 120 предварительной обработки, из базы данных 200 обучения и изучает программный код, соответствующий голосу пользователя, принятому от пользовательского устройства 400, после чего генерируется модель обучения для оценки. Между тем, блок 130 генерирования модели обучения может выполнять машинное обучение посредством способа машинного обучения, по меньшей мере, CNN или RNN, и данные обучения могут генерироваться в соответствии со способом машинного обучения, выполняемым блоком 130 генерирования модели обучения. [0090] In addition, the training model generation unit 130 downloads the training data preprocessed by the preprocessing unit 120 from the training database 200 and examines the program code corresponding to the user's voice received from the user device 400, and then generates a training model for evaluation. Meanwhile, the learning model generating unit 130 may perform machine learning by the machine learning method of at least CNN or RNN, and the training data may be generated in accordance with the machine learning method performed by the learning model generating unit 130.
[0091] Модель обучения, сгенерированная блоком 130 генерации модели обучения, предназначена для оценки программного кода на основе голоса пользователя, распознаваемого пользовательским устройством 200 или распознаваемого блоком 110 распознавания голоса. Входными данными являются данные, полученные путем предварительной обработки естественного языка для голоса распознанного пользователя, причем выводом является программный код для естественного языка. [0091] The learning model generated by the learning model generation unit 130 is for evaluating the program code based on the user's voice recognized by the user device 200 or recognized by the voice recognition unit 110. The input data is data obtained by natural language preprocessing for the voice of the recognized user, and the output is the natural language program code.
[0092] Кроме того, поскольку блок 130 генерации модели обучения знает программный код для конкретного естественного языка, метод обратного распространения ошибки применяется к процессу обучения для регулировки веса сети машинного обучения (то есть сети RNN или CNN), тем самым повышая точность сети машинного обучения для генерации модели обучения. [0092] In addition, since the learning model generation unit 130 knows the programming code for a specific natural language, the backpropagation method is applied to the learning process to adjust the weight of the machine learning network (i.e., RNN or CNN), thereby improving the accuracy of the machine learning network. to generate a learning model.
[0093] Когда естественный язык голоса пользователя, введенного пользователем, вводится после того, как модель обучения сгенерирована через блок 130 генерирования модели обучения, блок 140 оценки кода программы вычисляет модель обучения из базы 300 данных модели обучения и применяет естественный язык к загруженной модели обучения, таким образом оценивая программный код, соответствующий естественному языку, и предоставляя его пользовательскому устройству 400. [0094] С другой стороны, естественный язык голоса пользователя предварительно обрабатывает данные посредством того же процесса, что и предварительная обработка обучающих данных блоком 120 предварительной обработки. [0095] То есть, когда блок 130 генерации модели обучения изучает данные обучения через CNN, чтобы сгенерировать модель обучения, отображается естественный язык для голоса пользователя, и блок 130 генерации модели обучения изучает данные обучения через RNN. Естественный язык для голоса пользователя предварительно обрабатывается серией фрагментов. [0096] Кроме того, блок 150 проверки может сравнивать программный код, оцененный блоком 140 оценки программного кода, и естественный язык голоса пользователя на основе оцененного программного кода с пользователем или администратором, имеющим определенные полномочия (например, программа искусственного интеллекта). Устройство 100 кодирования может предоставлять в режиме реального времени или периодически информацию специалисту (например, специалисту по языку программирования, который имеет определенные полномочия) для выполнения проверки сгенерированного программного кода. [0093] When the natural language of the user's voice input by the user is input after the learning model is generated through the learning model generating unit 130, the program code evaluator 140 calculates the learning model from the learning model database 300 and applies the natural language to the loaded learning model. thus evaluating the natural language code and providing it to the user device 400. [0094] On the other hand, the natural language of the user's voice preprocesses the data through the same process as preprocessing the training data by the preprocessing unit 120. [0095] That is, when the learning model generation unit 130 learns the learning data via CNN to generate a learning model, a natural language for the user's voice is displayed, and the learning model generation unit 130 learns the learning data via the RNN. The natural language for the user's voice is preprocessed with a series of chunks. [0096] In addition, the checking unit 150 may compare the program code evaluated by the program code evaluator 140 and the natural language of the user's voice based on the estimated program code with a user or administrator having certain privileges (eg, an artificial intelligence program). The encoder 100 can provide information in real time or periodically to a person skilled in the art (eg, a language expert who has specific authority) to perform verification of the generated program code.
[0097] С другой стороны, пользователь или администратор, имеющий определенные полномочия, подтверждает естественный язык, и программный код, полученный от блока 150 проверки, определяет, является ли программный код, сгенерированный для естественного языка, оптимальным программным кодом. Позволяет обновить базу обучающих данных. [0097] On the other hand, a user or administrator having certain authority validates the natural language, and the program code obtained from the checker 150 determines whether the program code generated for the natural language is the optimal program code. Allows you to update the training database.
[0098] Другими словами, пользователь или менеджер, имеющий определенные полномочия, может заново создать и добавить, или изменить отношение отображения между естественным языком и меткой программного кода, хранящейся в базе данных 200 обучения, в соответствии с результатом проверки. Например, если программный код для естественного языка, полученный через блок 150 проверки, не является оптимальным, пользователь или администратор может обновить метку программного кода для кода программы, соответствующего естественному языку и естественному языку. Блок 150 проверки может предоставить принятые данные средства обновления средству 160 обновления данных обучения для обновления базы 200 данных обучения. [0099] Блок 160 обновления обучающих данных может обновлять базу 200 обучающих данных, отражая принятые данные обновления в базе 200 обучающих данных, когда данные обновления в соответствии с результатом проверки принимаются от блока 150 проверки. Между тем, обновление выполняется в реальном времени или периодически в соответствии с правилами блока 140 проверки (т.е. процесс проверки выполняется в режиме реального времени или периодически), которые заранее заданы. [0098] In other words, a user or manager with certain authority can re-create and add, or change the mapping relationship between the natural language and the program code label stored in the training database 200 according to the check result. For example, if the natural language program code obtained through the validator 150 is not optimal, the user or administrator may update the program code label for the natural language and natural language program code. The checker 150 may provide the received updater data to the training data updater 160 to update the training database 200. [0099] The training data update unit 160 may update the training data base 200, reflecting the received update data in the training data base 200, when the update data in accordance with the verification result is received from the checking unit 150. Meanwhile, the update is performed in real time or periodically in accordance with the rules of the checking unit 140 (i.e., the checking process is performed in real time or periodically) that are predetermined.
[00100] Когда база 200 данных обучения обновляется, блок 130 генерации модели обучения заново генерирует модель обучения, имеющую более высокую точность и надежность, чем существующая модель обучения, путем отражения обновленных данных обучения, и сохраняет модель обучения в базе 300 данных модели обучения. В случае, когда такой процесс выполняется многократно, модель обучения, сгенерированная через блок 130 обучения, постепенно продвигается, так что из голоса пользователя может быть сгенерирован оптимальный программный код. [00100] When the training database 200 is updated, the training model generation unit 130 regenerates the training model having higher accuracy and reliability than the existing training model by reflecting the updated training data, and stores the training model in the training model database 300. In the case where such a process is performed repeatedly, the learning model generated through the learning unit 130 is progressively advanced so that an optimal program code can be generated from the user's voice.
[00101] Фиг.З иллюстрирует схему, на которой показан процесс предварительной обработки входных данных, которые вводятся в CNN, при выполнении машинного обучения через CNN в устройстве кодирования программ с искусственным интеллектом на основе распознавания речи согласно варианту осуществления настоящего изобретения. [00101] Fig. 3 illustrates a diagram showing a preprocessing process for input data that is input to a CNN when machine learning is performed via the CNN in a speech recognition-based artificial intelligence program encoder according to an embodiment of the present invention.
[00102] Как показано на Фиг. 3, при выполнении машинного обучения через CNN в устройстве 100 кодирования программ на основе распознавания речи с использованием искусственного интеллекта в соответствии с вариантом осуществления настоящего изобретения процесс предварительной обработки входных данных выполняется в первой базе 200 данных обучения. [00102] As shown in FIG. 3, when machine learning is performed via CNN in the artificial intelligence speech recognition based program coding apparatus 100 in accordance with an embodiment of the present invention, the input data preprocessing process is performed in the first training database 200.
[00103] Данные обучения однозначно отображаются с меткой кода программы, соответствующей естественному языку и коду программы. [00103] The training data is uniquely displayed with the program code mark corresponding to the natural language and the program code.
[00104] Устройство 100 кодирования программ на основании искусственного интеллекта на основе распознавания речи отличается тем, что каждый естественный язык оцифровывается в соответствии с заранее определенным процессом и назначается одному фрагменту изображения, а маркировка выполняется на каждом фрагменте изображения. [00104] The speech recognition artificial intelligence-based program coding apparatus 100 is characterized in that each natural language is digitized according to a predetermined process and assigned to one slice, and marking is performed on each slice.
[00105] Метка кода программы сконфигурирована в формате схемы прямого кодирования, причем каждая метка кода программы индексируется с помощью конкретного кода программы, а код программы означает одну полную строку программы для естественного языка. То есть программный код может представлять полную функцию, такую как sum (), printf () и т. д., а также один код (а = Ь). Соответственно, пользователь может последовательно вводить посредством голоса символы, тем самым позволяя подключить множество программных кодов для создания полной программы. [00105] The program code mark is configured in a direct coding scheme format, with each program code mark being indexed with specific program code, and program code means one complete line of natural language program. That is, a program code can represent a complete function such as sum (), printf (), etc., as well as a single code (a = b). Accordingly, the user can sequentially input characters through his voice, thereby allowing multiple programming codes to be connected to create a complete program.
[00106] Затем устройство 100 кодирования программ на основании искусственного интеллекта на основе распознавания речи генерирует данные изображения путем визуализации множества фрагментов изображения, подвергнутых маркировке, в изображение, имеющее конкретное разрешение (например, 32 * 32). [00106] Then, the speech recognition AI-based program coding apparatus 100 generates image data by rendering a plurality of labeled image tiles into an image having a specific resolution (eg, 32 * 32).
[00107] Между тем, разрешение сконфигурировано для непрерывного добавления в соответствии с общей емкостью обучаемых данных, подлежащих изучению. Таким образом, устройство 100 кодирования программ на основании искусственного интеллекта на основе распознавания речи может адаптивно изучать данные обучения, расширяя разрешение. [00107] Meanwhile, the resolution is configured to continuously add in accordance with the total capacity of the training data to be learned. Thus, the speech recognition AI based program coding apparatus 100 can adaptively learn the training data by expanding the resolution.
[00108] Затем устройство 100 кодирования программ на основании искусственного интеллекта на основе распознавания речи генерирует обучающую модель для ввода данных изображения в CNN, тем самым изучая соотношение отображения между естественным языком и меткой программного кода и выводя программный код для конкретного естественного языка. [00108] Then, the speech recognition artificial intelligence-based program coding apparatus 100 generates a training model for inputting image data into CNN, thereby learning the mapping relationship between the natural language and the program code label and outputting the program code for a specific natural language.
[00109] Как описано выше, процесс предварительной обработки выполняется для применения данных обучения к CNN, когда устройство 100 кодирования программ на основе распознавания речи с искусственным интеллектом выполняет обучение через CNN. [00109] As described above, a preprocessing process is performed to apply training data to the CNN when the AI speech recognition program encoder 100 performs training via the CNN.
[00110] На Фиг.4 показана схема, иллюстрирующая процесс предварительной обработки входных данных, которые должны быть введены в RNN, при выполнении машинного обучения через RNN в устройстве кодирования программ с искусственным интеллектом на основе распознавания речи в соответствии с вариантом осуществления настоящего изобретения. [00110] Figure 4 is a diagram illustrating a preprocessing process for input data to be input to an RNN when machine learning is performed via the RNN in a speech recognition-based artificial intelligence encoder in accordance with an embodiment of the present invention.
[00111] Как показано на Фиг.4, в случае, когда машинное обучение выполняется через RNN в устройстве 100 кодирования программ на основании искусственного интеллекта на основе распознавания речи согласно варианту осуществления настоящего изобретения, процесс предварительной обработки ввода данных, введенных в RNN, основан на искусственном распознавании речи. Устройство 100 кодирования программ загружает данные обучения, отображенные на естественном языке, и метку кода программы из базы 200 данных обучения. [00111] As shown in FIG. 4, in the case where machine learning is performed via the RNN in the speech recognition artificial intelligence-based program coding apparatus 100 according to the embodiment For the implementation of the present invention, the preprocessing process for the input of data entered into the RNN is based on artificial speech recognition. The program encoding apparatus 100 downloads natural language-displayed training data and a program code mark from the training database 200.
[00112] Затем устройство 100 кодирования программ на основании искусственного интеллекта на основе распознавания речи генерирует каждое из естественных слов посредством заранее определенного процесса и генерирует их как одну последовательность, и назначает соответствующие последовательности для сгенерированного естественного языка одному фрагменту последовательности. В это время секция последовательности включает в себя комбинацию, по меньшей мере, одной строки битов, а размер строки битов может непрерывно добавляться в соответствии с размером сети RNN. То есть устройство 100 кодирования программ искусственного интеллекта на основе распознавания речи позволяет расширять размер строки битов, так что данные обучения могут быть адаптивно изучены. [00112] Then, the speech recognition AI-based program coding apparatus 100 generates each of the natural words through a predetermined process and generates them as one sequence, and assigns the corresponding sequences for the generated natural language to one fragment of the sequence. At this time, the sequence section includes a combination of at least one bit string, and the bit string size can be continuously added according to the RNN size. That is, the speech recognition-based artificial intelligence coding apparatus 100 allows the bit string size to be expanded so that the training data can be learned adaptively.
[00113] Затем выполняется маркировка на каждом из фрагментов последовательности, чтобы назначить метку программного кода каждому из фрагментов последовательности, чтобы сформировать окончательную исходную последовательность. Между тем, метка кода программы сконфигурирована в схеме прямого кодирования, а метка кода программы является целевой последовательностью для кода программы, соответствующего естественному языку. [00113] Marking is then performed on each of the sequence chunks to assign a program code label to each of the sequence chunks to form the final original sequence. Meanwhile, the program code mark is configured in a direct encoding scheme, and the program code mark is a target sequence for the natural language program code.
[00114] Затем устройство 100 кодирования программ на основании искусственного интеллекта на основе распознавания речи вводит сгенерированную исходную последовательность в RNN, таким образом изучая соотношение отображения между естественным языком и меткой кода программы и выводя программный код для конкретного естественного языка. [00114] Then, the speech recognition artificial intelligence-based program coding apparatus 100 inputs the generated source sequence into the RNN, thereby examining the mapping relationship between the natural language and the program code label and outputting the program code for the specific natural language.
[00115] Как описано выше со ссылкой на Фиг. 4, процесс предварительной обработки выполняется так, что устройство 100 кодирования программ на основании искусственного интеллекта на основе распознавания речи может применять данные обучения к RNN при выполнении обучения на данных обучения через RNN. [00116] На Фиг.5 показана схема, иллюстрирующая структуру обучения на основе CNN и процесс обучения в соответствии с вариантом осуществления настоящего изобретения. [00115] As described above with reference to FIG. 4, the preprocessing process is performed so that the speech recognition AI based program coding apparatus 100 can apply training data to the RNN while performing training on the training data via the RNN. [00116] Fig. 5 is a diagram illustrating a CNN-based learning structure and a learning process in accordance with an embodiment of the present invention.
[00117] Как показано на Фиг. 5, когда блок 130 генерирования модели обучения устройства 100 кодирования программ искусственного интеллекта на основе распознавания речи изучает данные обучения через CNN, структура обучения CNN отображается посредством процесса предварительной обработки. Слой свертки для свертки конкретной части изображения с ядром использует ядро определенного размера, входной слой, на который вводятся обучающие данные, слой свертки для объединения свернутой конкретной части в максимальное значение или среднее значение. [00117] As shown in FIG. 5, when the learning model generating unit 130 of the speech recognition-based artificial intelligence program coding apparatus 100 learns the training data via the CNN, the CNN training pattern is displayed through the preprocessing process. A convolution layer to convolve a specific portion of the image with a kernel uses a kernel of a certain size, an input layer to which the training data is injected, a convolution layer to combine the convolved specific portion into a maximum value or average.
[00118] Кроме того, входной слой принимает отображенные обучающие данные посредством процесса предварительной обработки, и слой свертки перемещается в соответствии с заранее определенным шагом (означающим движущуюся единицу ядра) ядра, имеющего конкретный вес, и вес ядра, и генерирует и выводит карту признаков для определенной части изображения. [00118] In addition, the input layer receives the mapped training data through a preprocessing process, and the convolution layer moves in accordance with a predetermined pitch (meaning a moving unit of the core) of the core having a specific weight and core weight, and generates and outputs a feature map for certain part of the image.
[00119] Следующий слой затем производит выборку, по меньшей мере, одного или нескольких фрагментов изображений путем объединения карт признаков в соответствии с размером ядра и прохождения через метод максимального пула или среднего пула. [00119] The next layer then selects at least one or more slices of images by combining feature maps according to kernel size and passing through the maximum pool or average pool method.
[00120] Кроме того, CNN может многократно выполнять свертку и подвыборку, чтобы генерировать карту признаков для метки кода программы для конкретного естественного языка. [00120] In addition, the CNN may repeatedly perform convolution and subsampling to generate a feature map for a program code label for a particular natural language.
[00121] Затем полностью ассоциативный слой связывает карту объектов для метки кода программы, чтобы вывести код программы для определенного естественного языка. [00121] The fully associative layer then associates a feature map for a program code label to output program code for a specific natural language.
[00122] Посредством этого процесса устройство 100 кодирования программ на основании искусственного интеллекта на основе распознавания речи может изучать естественный язык, программный код и данные обучения в отношении отображения между естественным языком и программным кодом. Кроме того, устройство 100 кодирования программ на основании искусственного интеллекта на основе распознавания речи может оценивать оптимизированный программный код для голоса пользователя и предоставлять его пользователю путем генерации расширенной модели обучения путем отражения обновления данных обучения. [00122] Through this process, the speech recognition AI based program coding apparatus 100 can learn natural language, program code, and learning data in relation to the mapping between natural language and program code. In addition, the speech recognition AI based program coding apparatus 100 can evaluate the optimized program code for the user's voice and provide it to the user by generating an extended training model by reflecting the training data update.
[00123] Кроме того, поскольку устройство 100 кодирования программ на основании искусственного интеллекта на основе распознавания речи заранее знает конкретный естественный язык и соответствующий программный код, вес для сети CNN можно регулировать с помощью метода обратного распространения в процессе обучения. Точность сети CNN может быть улучшена. [00123] In addition, since the speech recognition AI-based program coding apparatus 100 knows a specific natural language and corresponding program code in advance, the CNN weight can be adjusted using a backpropagation technique in a learning process. The accuracy of the CNN can be improved.
[00124] На Фиг.6 показана схема, поясняющая структуру машинного обучения и процесс обучения через RNN в соответствии с вариантом осуществления настоящего изобретения. [00124] Fig. 6 is a diagram for explaining a machine learning structure and a learning process via an RNN in accordance with an embodiment of the present invention.
[00125] Как показано на Фиг. 6, когда данные обучения изучаются через RNN в блоке 130 генерирования модели обучения устройства 100 кодирования программ с искусственным интеллектом на основе распознавания речи в соответствии с вариантом осуществления настоящего изобретения, сеть RNN, включает кодер и декодер. [00125] As shown in FIG. 6, when the training data is learned via the RNN in the learning model generating unit 130 of the speech recognition-based artificial intelligence program coding apparatus 100 according to an embodiment of the present invention, the RNN includes an encoder and a decoder.
[00126] Кодер последовательно принимает числовые значения исходной последовательности, сгенерированные посредством процесса предварительной обработки, накапливает значения в качестве значений состояния внутренних узлов и доставляет конечное состояние каждого внутреннего узла в декодер в соответствии с весами внутренних узлов. [00126] The encoder sequentially receives the numerical values of the original sequence generated by the preprocessing process, accumulates the values as the state values of the internal nodes, and delivers the final state of each internal node to the decoder according to the weights of the internal nodes.
[00127] Кроме того, декодер выводит конечное состояние исходной последовательности, передаваемой из кодера, одно за другим, в целевую последовательность (то есть метку программного кода) для исходной последовательности в соответствии с весом каждого внутреннего узла, составляющего декодер. [00127] In addition, the decoder outputs the final state of the original sequence transmitted from the encoder, one by one, to the target sequence (ie, program code label) for the original sequence according to the weight of each internal node constituting the decoder.
[00128] То есть каждый из узлов, составляющих кодер и декодер, имеет разные весовые коэффициенты, и кодер последовательно принимает исходную последовательность в качестве входных данных и выполняет прямое распространение в соответствии с меткой времени, и передает информацию последнего узла кодера к декодеру. В это время информация, передаваемая в декодер, может рассматриваться как представление предложения, содержащее всю информацию входной исходной последовательности. Декодер, принимающий информацию исходной последовательности, выводит числовые значения целевой последовательности одно за другим в соответствии с весами узлов, чтобы можно было оценить программный код для конкретного естественного языка. [00128] That is, each of the nodes constituting the encoder and the decoder has different weights, and the encoder sequentially takes the original sequence as input and performs forward propagation in accordance with the time stamp, and transmits the information of the last encoder node to the decoder. At this time, the information passed to the decoder can be viewed as a presentation of the sentence containing all the information of the input source sequence. The decoder receiving the original sequence information outputs the numerical values of the target sequence one after another in accordance with the weights of the nodes, so that the program code for a specific natural language can be estimated.
[00129] На Фиг. 7 показана блок-схема последовательности операций, иллюстрирующая процесс выполнения способа кодирования программы на основании искусственного интеллекта на основе распознавания речи в соответствии с вариантом осуществления настоящего изобретения. [00129] FIG. 7 is a flowchart illustrating a process of a method for encoding an artificial intelligence-based program based on speech recognition in accordance with an embodiment of the present invention.
[00130] Как показано на Фиг. 7, процесс выполнения способа кодирования программы на основании искусственного интеллекта на основе распознавания речи согласно варианту осуществления настоящего изобретения начинается с устройства 100 кодирования программы на основании искусственного интеллекта на основе распознавания речи. Учебные данные предварительно обрабатываются и сохраняются в базе обучающих данных 200, так что данные обучения могут быть применены к CNN или RNN (шаг S110). [00131] Как описано со ссылкой на Фиг. 3 и Фиг. 4, устройство 100 кодирования программ на основании искусственного интеллекта на основе распознавания речи выполняется для генерации входных данных машинного обучения и для генерации модели обучения. Устройство 100 кодирования программ на основании искусственного интеллекта на основе обучения выполняет обработку для данных обучения с использованием данных обучения в качестве исходной последовательности, и когда данные обучения изучаются через RNN, выполняют процесс предварительной обработки для преобразования. [00130] As shown in FIG. 7, a process of a method for encoding a speech recognition-based artificial intelligence-based program according to an embodiment of the present invention starts from a speech recognition-based artificial intelligence-based program encoding apparatus 100. The training data is preprocessed and stored in the training database 200 so that the training data can be applied to the CNN or RNN (step S110). [00131] As described with reference to FIG. 3 and FIG. 4, a speech recognition-based artificial intelligence program coding apparatus 100 is executed to generate machine learning input data and to generate a learning model. The learning-based artificial intelligence program coding apparatus 100 performs processing on the training data using the training data as an original sequence, and when the training data is learned via the RNN, a preprocessing process is performed for transformation.
[00132] Затем устройство 100 кодирования программ на основании искусственного интеллекта на основе распознавания речи загружает обучающие данные, предварительно обработанные из базы данных 200 обучающих данных (шаг S120), и изучает загруженные обучающие данные (шаг S130), чтобы получать конкретные программные коды, и сохраняет обучающую модель в базе 300 обучающих моделей. [00133] С другой стороны, обучение может выполняться через RNN или CNN, как описано выше. [00132] Then, the speech recognition AI-based program coding apparatus 100 downloads the training data preprocessed from the training data database 200 (step S120) and examines the downloaded training data (step S130) to obtain specific program codes, and saves the training model in a database of 300 training models. [00133] Alternatively, training can be performed via RNN or CNN, as described above.
[00134] Когда устройство 100 кодирования программ на основании искусственного интеллекта на основе распознавания речи принимает пользовательскую речь для кодирования программ от пользовательского устройства 400 (шаг S210), устройство 100 кодирования программ на основании искусственного интеллекта на основе распознавания речи выполняет процесс на естественном языке для распознавания принятой пользовательской речи, причем естественный язык, сгенерированный посредством обработки естественного языка, предварительно обрабатывается (шаг S220). [00134] When the speech recognition AI-based program coding apparatus 100 receives user speech to encode programs from the user device 400 (step S210), the speech recognition artificial intelligence-based program coding apparatus 100 performs a natural language process for recognizing the received user speech, wherein the natural language generated by the natural language processing is preprocessed (step S220).
[00135] С другой стороны, предпочтительно, чтобы естественный язык для голоса пользователя генерировался и обрабатывался устройством 100 кодирования программ на основании искусственного интеллекта на основе распознавания речи, но он может обрабатываться и генерироваться в пользовательском устройстве 200, оборудованном механизмом распознавания речи. В это время пользовательское устройство 200 передает сгенерированный естественный язык в устройство 100 кодирования программ на основании искусственного интеллекта на основе распознавания речи. [00136] С другой стороны, процесс предварительной обработки для речи пользователя выполняется таким же образом, что и процесс предварительной обработки, выполняемый на этапе S110, согласно способу машинного обучения (то есть RNN или CNN) устройства 100 кодирования программ на основе распознавания речи с искусственным интеллектом. [00137] Затем устройство 100 кодирования программ искусственного интеллекта на основе распознавания речи загружает модель обучения из базы 300 данных моделей обучения и вводит естественный язык для речи пользователя, предварительно обработанной в загруженной модели обучения. На этапе S230 программный код, соответствующий голосу пользователя, оценивается путем генерации программного кода для естественного языка. [00135] On the other hand, it is preferable that the natural language for the user's voice is generated and processed by the speech recognition AI-based program encoder 100, but it can be processed and generated in the user device 200 equipped with the speech recognition engine. At this time, the user device 200 transmits the generated natural language to the device 100 for encoding programs based on artificial intelligence based on speech recognition. [00136] On the other hand, the preprocessing process for the user's speech is performed in the same manner as the preprocessing process performed in step S110 according to the machine learning method (i.e., RNN or CNN) of the artificial speech recognition based program coding apparatus 100. intelligence. [00137] Next, the speech recognition based artificial intelligence coding apparatus 100 downloads a learning model from the learning model database 300 and inputs a natural language for the user's speech preprocessed in the loaded learning model. In step S230, the program code corresponding to the user's voice is evaluated by generating the natural language program code.
[00138] Таким образом, вводом модели обучения является естественный язык, а вывод модели обучения является метка кода программы для естественного языка, таким образом генерируется код программы для метки кода программы, оценивая код программы. [00138] Thus, the input of the learning model is natural language, and the output of the learning model is a natural language program code label, thus, program code for the program code label is generated by evaluating the program code.
[00139] Затем устройство 100 кодирования программ на основании искусственного интеллекта на основе распознавания речи передает оцененный программный код в пользовательское устройство 400, предоставленное пользователем, тем самым предоставляя оценочный программный код пользователю. [00139] Then, the speech recognition AI based program coding apparatus 100 transmits the estimated program code to the user equipment 400, provided by the user, thereby providing the evaluation code to the user.
[00140] Между тем, устройство 100 кодирования программ на основании искусственного интеллекта на основе распознавания речи повышает точность и надежность оцененного программного кода посредством обучения с подкреплением. [00140] Meanwhile, the speech recognition AI based program coding apparatus 100 improves the accuracy and reliability of the estimated program code through reinforcement learning.
[00141] То есть устройство 100 кодирования программ искусственного интеллекта на основе распознавания речи предоставляет оцененный программный код пользователю или администратору, обладающему определенными навыками, такими как эксперт по языку программирования, в режиме реального времени или периодически (S240). [00141] That is, the speech recognition-based artificial intelligence coding apparatus 100 provides the estimated program code to a user or administrator with certain skills, such as a programming language expert, in real time or periodically (S240).
[00142] Затем устройство 100 кодирования программ на основании искусственного интеллекта на основе распознавания речи может обновлять данные обучения в соответствии с результатом проверки процесса проверки (S260). [00142] Then, the speech recognition AI-based program coding apparatus 100 may update the training data according to the result of checking the checking process (S260).
[00143] То есть пользователь или менеджер, имеющий определенные полномочия, принимает программный код, оцененный на основе естественного языка голоса пользователя и естественного языка, в режиме реального времени или периодически из устройства 100 кодирования программ на основе распознавания речи с искусственным интеллектом, если программный код не является оптимальным, данные обновления, включающие в себя оптимальный программный код, соответствующий естественному языку, предоставляются устройству 100 кодирования программ на основе распознавания речи с искусственным интеллектом. [00144] В это время устройство 100 кодирования программ искусственного интеллекта на основе распознавания речи обновляет базу 200 данных обучения, обновляя данные обучения, отражающие предоставленные данные обновления. [00143] That is, a user or manager with certain authority receives the program code estimated based on the natural language of the user's voice and the natural language in real time or periodically from the artificial intelligence speech recognition program encoder 100 if the program code is not optimal, the update data including the optimal natural language program code is provided to the artificial intelligence speech recognition based program coding apparatus 100. [00144] At this time, the speech recognition-based artificial intelligence coding apparatus 100 updates the training database 200 by updating the training data reflecting the provided update data.
[00145] После этого, когда данные обучения обновляются, устройство 100 кодирования программ на основании искусственного интеллекта на основе распознавания речи выполняет процесс обучения с усилением, который отражает обновленные данные обучения, чтобы сформировать новую модель обучения. Повторяя этот процесс, устройство 100 кодирования программ на основе распознавания речи с искусственным интеллектом может значительно повысить точность и надежность модели обучения для кодирования программ. [00145] Thereafter, when the training data is updated, the speech recognition AI-based program coding apparatus 100 performs a gain learning process that reflects the updated training data to generate a new training model. By repeating this process, the program encoding apparatus 100 based on artificial intelligence speech recognition can greatly improve the accuracy and reliability of the learning model for coding programs.
[00146] Как описано выше, в соответствии с настоящим изобретением, чтобы сгенерировать программный код на основе голоса пользователя, данные обучения, полученные путем отображения естественного языка, и программный код, соответствующий естественному языку, изучают через RNN или CNN, чтобы сгенерировать модель обучения. Достигается эффект, что пользователь может автоматически генерировать программный код, просто преобразовывая голос пользователя на естественный язык и вводя его в модель обучения для генерации программного кода. [00146] As described above, in accordance with the present invention, in order to generate program code based on the user's voice, natural language display learning data and natural language program code are learned via RNN or CNN to generate a learning model. The effect is achieved that the user can automatically generate the program code by simply transforming the user's voice into natural language and entering it into the learning model to generate the program code.
[00147] Кроме того, согласно настоящему изобретению данные обучения обновляются посредством процесса проверки сгенерированного программного кода, тем самым выполняя обучение с подкреплением для данных обучения, тем самым повышая точность и надежность программного кода, сгенерированного на основе голоса пользователя. [00147] In addition, according to the present invention, the training data is updated through the generated program code validation process, thereby performing reinforcement learning on the training data, thereby improving the accuracy and reliability of the generated program code based on the user's voice.
[00148] Хотя настоящее изобретение было конкретно показано и описано со ссылкой на его примерные варианты осуществления, следует понимать, что изобретение не ограничено раскрытыми примерными вариантами осуществления. [00149] Все компоненты данного технического решения могут быть соединены шиной. В некоторых примерах информационная шина включает в себя одну или более информационных шин. Информационная шина может быть реализована в соответствии с протоколом шины локальной сети контроллеров (CAN), который определен Международной организацией стандартизации (ISO) 11898-1, протоколом шины передачи данных мультимедийных систем (MOST), протоколом гибкой информационной CAN-шины (CAN-FD) (ISO 11898-7) и/или протоколом шины К-line (ISO 9141 и ISO 14230-1) и/или протоколом Ethemet™-iiJHHbi IEEE 802.3 (2002 г. и далее), и т.д. [00148] Although the present invention has been specifically shown and described with reference to exemplary embodiments thereof, it should be understood that the invention is not limited to the disclosed exemplary embodiments. [00149] All components of this technical solution can be connected by a bus. In some examples, a data bus includes one or more data buses. The data bus can be implemented in accordance with the Controller Area Network (CAN) bus protocol, which is defined by the International Organization for Standardization (ISO) 11898-1, the Multimedia System Data Bus (MOST) protocol, the flexible CAN data bus (CAN-FD) protocol (ISO 11898-7) and / or K-line bus protocol (ISO 9141 and ISO 14230-1) and / or Ethemet ™ -iiJHHbi IEEE 802.3 protocol (2002 onwards), etc.
[00150] Элементы заявляемого технического решения находятся в функциональной взаимосвязи, а их совместное использование приводит к созданию нового и уникального технического решения. Таким образом, все блоки функционально связаны. [00150] The elements of the proposed technical solution are in a functional relationship, and their joint use leads to the creation of a new and unique technical solution. Thus, all blocks are functionally linked.
[00151] Все блоки, используемые в системе, могут быть реализованы с помощью электронных компонент, используемых для создания цифровых интегральных схем, что очевидно для специалиста в данном уровне техники. Не ограничиваюсь, могут быть использоваться микросхемы, логика работы которых определяется при изготовлении, или программируемые логические интегральные схемы (ПЛИС), логика работы которых задаётся посредством программирования. Для программирования используются программаторы и отладочные среды, позволяющие задать желаемую структуру цифрового устройства в виде принципиальной электрической схемы или программы на специальных языках описания аппаратуры: Verilog, VHDL, AHDL и др. Альтернативой ПЛИС могут быть программируемые логические контроллеры (ПЛК), базовые матричные кристаллы (БМК), требующие заводского производственного процесса для программирования; ASIC специализированные заказные большие интегральные схемы (БИС), которые при мелкосерийном и единичном производстве существенно дороже. [00151] All blocks used in the system can be implemented using electronic components used to create digital integrated circuits, which is obvious to a person skilled in the art. Not limited to, microcircuits can be used, the logic of which is determined during manufacture, or programmable logic integrated circuits (FPGA), the logic of which is set through programming. For programming, programmers and debugging environments are used that allow you to set the desired structure of a digital device in the form of a circuit diagram or a program in special hardware description languages: Verilog, VHDL, AHDL, etc. An alternative to FPGAs can be programmable logic controllers (PLCs), basic matrix crystals ( BMK) requiring a factory production process for programming; ASICs are specialized custom large integrated circuits (LSI), which are significantly more expensive for small-scale and single-piece production.
[00152] Обычно, сама микросхема ПЛИС состоит из следующих компонент: · конфигурируемых логических блоков, реализующих требуемую логическую функцию; [00152] Typically, the FPGA itself consists of the following components: · configurable logic blocks that implement the required logic function;
• программируемых электронных связей между конфигурируемыми логическими блоками; • programmable electronic links between configurable logic blocks;
• программируемых блоков ввода/вывода, обеспечивающих связь внешнего вывода микросхемы с внутренней логикой. • programmable input / output blocks providing connection of the external output of the microcircuit with the internal logic.
[00153] Также блоки могут быть реализованы с помощью постоянных запоминающих устройств. [00153] Blocks can also be implemented using read-only memory devices.
[00154] Таким образом, реализация всех используемых блоков достигается стандартными средствами, базирующимися на классических принципах реализации основ вычислительной техники. [00154] Thus, the implementation of all the blocks used is achieved by standard means based on the classical principles of the implementation of the foundations of computing.
[00155] Как будет понятно специалисту в данной области техники, аспекты настоящего технического решения могут быть выполнены в виде системы, способа или компьютерного программного продукта. Соответственно, различные аспекты настоящего технического решения могут быть реализованы исключительно как аппаратное обеспечение, как программное обеспечение (включая прикладное программное обеспечение и так далее) или как вариант осуществления, сочетающий в себе программные и аппаратные аспекты, которые в общем случае могут упоминаться как «блок», «система» или «архитектура». Кроме того, аспекты настоящего технического решения могут принимать форму компьютерного программного продукта, реализованного на одном или нескольких машиночитаемых носителях, имеющих машиночитаемый программный код, который на них реализован. [00155] As one skilled in the art will appreciate, aspects of the present technical solution may be embodied in a system, method, or computer program product. Accordingly, various aspects of the present technical solution may be implemented solely as hardware, as software (including application software, and so on), or as an embodiment combining software and hardware aspects, which may generally be referred to as a "block" , "System" or "architecture". In addition, aspects of the present technical solution can take the form of a computer program product implemented on one or more computer-readable media having a computer-readable program code that is implemented on them.
[00156] Также может быть использована любая комбинация одного или нескольких машиночитаемых носителей. Машиночитаемый носитель хранилища может представлять собой, без ограничений, электронную, магнитную, оптическую, электромагнитную, инфракрасную или полупроводниковую систему, аппарат, устройство или любую подходящую их комбинацию. Конкретнее, примеры (неисчерпывающий список) машиночитаемого носителя хранилища включают в себя: электрическое соединение с помощью одного или нескольких проводов, портативную компьютерную дискету; жесткий диск, оперативную память (ОЗУ), постоянную память (ПЗУ), стираемую программируемую постоянную память (EPROM или Flash-память), оптоволоконное соединение, постоянную память на компакт- диске (CD-ROM), оптическое устройство хранения, магнитное устройство хранения или любую комбинацию вышеперечисленного. В контексте настоящего описания, машиночитаемый носитель хранилища может представлять собой любой гибкий носитель данных, который может содержать или хранить программу для использования самой системой, устройством, аппаратом или в соединении с ними. [00156] Any combination of one or more computer readable media can also be used. The computer-readable storage medium can be, without limitation, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or any suitable combination thereof. More specifically, examples (non-exhaustive list) of a computer-readable storage medium include: an electrical connection using one or more wires, a portable computer diskette; hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or Flash memory), fiber optic connection, compact disk read-only memory (CD-ROM), optical storage device, magnetic storage device, or any combination of the above. As used herein, a computer-readable storage medium can be any flexible storage medium that can contain or store a program for use by the system itself, device, apparatus, or in connection therewith.
[00157] Программный код, встроенный в машиночитаемый носитель, может быть передан с помощью любого носителя, включая, без ограничений, беспроводную, проводную, оптоволоконную, инфракрасную и любую другую подходящую сеть или комбинацию вышеперечисленного. [00158] Компьютерный программный код для выполнения операций для шагов настоящего технического решения может быть написан на любом языке программирования или комбинаций языков программирования, включая объектно-ориентированный язык программирования, например Java, Smalltalk, C++ и так далее, и обычные процедурные языки программирования, например язык программирования «С» или аналогичные языки программирования. Программный код может выполняться на компьютере пользователя полностью, частично, или же как отдельный пакет программного обеспечения, частично на компьютере пользователя и частично на удаленном компьютере, или же полностью на удаленном компьютере. В последнем случае, удаленный компьютер может быть соединен с компьютером пользователя через сеть любого типа, включая локальную сеть (LAN), глобальную сеть (WAN) или соединение с внешним компьютером (например, через Интернет с помощью Интернет-провайдеров). [00159] Аспекты настоящего технического решения были описаны подробно со ссылкой на блок-схемы, принципиальные схемы и/или диаграммы способов, устройств (систем) и компьютерных программных продуктов в соответствии с вариантами осуществления настоящего технического решения. Следует иметь в виду, что каждый блок из блок-схемы и/или диаграмм, а также комбинации блоков из блок-схемы и/или диаграмм, могут быть реализованы компьютерными программными инструкциями. Эти компьютерные программные инструкции могут быть предоставлены процессору компьютера общего назначения, компьютера специального назначения или другому устройству обработки данных для создания процедуры, таким образом, чтобы инструкции, выполняемые процессором компьютера или другим программируемым устройством обработки данных, создавали средства для реализации функций/действий, указанных в блоке или блоках блок-схемы и/или диаграммы. [00157] The program code embedded in a computer-readable medium can be transmitted using any medium, including, without limitation, wireless, wired, fiber optic, infrared, and any other suitable network or a combination of the above. [00158] Computer program code for performing operations for the steps of the present technical solution may be written in any programming language or combinations of programming languages, including an object-oriented programming language such as Java, Smalltalk, C ++, and so on, and conventional procedural programming languages such as programming language "C" or similar programming languages. The program code can be executed on the user's computer in whole, in part, or as a separate software package, partially on the user's computer and partially on the remote computer, or completely on the remote computer. In the last In this case, the remote computer can be connected to the user's computer through any type of network, including a local area network (LAN), a wide area network (WAN), or a connection to an external computer (for example, via the Internet using Internet service providers). [00159] Aspects of the present technical solution have been described in detail with reference to block diagrams, schematic diagrams, and / or diagrams of methods, devices (systems), and computer program products in accordance with embodiments of the present technical solution. It should be appreciated that each block from the block diagram and / or diagrams, as well as combinations of blocks from the block diagram and / or diagrams, may be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other data processing device to create a procedure, such that instructions executed by a computer processor or other programmable data processing device create means to implement the functions / actions specified in block or blocks of flowchart and / or diagram.
[00160] Эти компьютерные программные инструкции также могут храниться на машиночитаемом носителе, который может управлять компьютером, отличным от программируемого устройства обработки данных или отличным от устройств, которые функционируют конкретным образом, таким образом, что инструкции, хранящиеся на машиночитаемом носителе, создают устройство, включающее инструкции, которые осуществляют функции/действия, указанные в блоке блок-схемы и/или диаграммы. [00160] These computer program instructions may also be stored on a computer-readable medium that can control a computer other than a programmable data processing device or devices that function in a particular way, such that the instructions stored on the computer-readable medium create a device including instructions that perform the functions / actions specified in the block diagram and / or diagram.

Claims

ФОРМУЛА FORMULA
1. Способ применения искусственного интеллекта в разработке программного обеспечения, выполняемый по меньшей мере одним вычислительным устройством и включающий следующие шаги: 1. A method of using artificial intelligence in software development, performed by at least one computing device, and includes the following steps:
• формируют по меньшей мере одну модель машинного обучения путем изучения отношения отображения между фразами на естественном языке и программным кодом; • form at least one machine learning model by examining the mapping relationship between natural language phrases and program code;
• получают по меньшей мере один фрагмент программного кода; • get at least one piece of program code;
• осуществляют распознавание речи по меньшей мере одного пользователя посредством извлечения фраз на естественном языке; • performing speech recognition of at least one user by extracting phrases in natural language;
• направляют извлеченные фразы на естественном языке и по меньшей мере один полученный ранее фрагмент программного кода в сформированную модель обучения; • send the extracted natural language phrases and at least one previously obtained piece of program code to the generated learning model;
• осуществляют оценку фрагмента программного кода на основании применения модели обучения. • carry out an assessment of a piece of program code based on the application of a learning model.
2. Способ по п.1, характеризующийся тем, что осуществляют распознавание речи по меньшей мере одного пользователя через механизм распознавания речи, предоставленный в облачном сервере и/или локальном сервере, и/или пользовательском оборудовании. 2. A method according to claim 1, characterized in that speech recognition of at least one user is performed through a speech recognition engine provided in a cloud server and / or a local server and / or user equipment.
3. Способ по п.1, характеризующийся тем, что этап генерации модели обучения включает в себя выполнение машинного обучения через сверточную нейронную сеть (CNN). 3. The method of claim 1, wherein the step of generating the learning model includes performing machine learning through a convolutional neural network (CNN).
4. Способ по п.1, характеризующийся тем, что CNN состоит из множества сетей, имеющих одинаковый размер, или выполнена с возможностью постепенного увеличения размера, чтобы адаптивно соответствовать общей емкости, подлежащей изучению. 4. A method according to claim 1, characterized in that the CNN consists of a plurality of networks having the same size, or is capable of gradually increasing in size to adaptively correspond to the total capacity to be studied.
5. Способ по п.З, характеризующийся тем, что CNN выполняет обучение, принимая изображение, полученное путем оцифровки отношения отображения между фразой на естественном языке и кодом программы, в котором фраза на естественном языке назначается метке для конкретного кода программы, каждое изображение, полученное путем оцифровки отношения отображения, устанавливается таким образом, чтобы отношение отображения между конкретным естественным языком и программным кодом не дублировалось однозначно. 5. The method according to claim 3, characterized in that CNN performs training by receiving an image obtained by digitizing a mapping relationship between a natural language phrase and a program code, in which a natural language phrase is assigned to a label for a specific program code, each image obtained by digitizing the mapping relationship, is set in such a way that the relationship mapping between a specific natural language and program code was not duplicated unambiguously.
6. Способ по п.5, характеризующийся тем, что разрешение изображения непрерывно добавляется в зависимости от размера сети. 6. The method according to claim 5, characterized in that the image resolution is continuously added depending on the size of the network.
57. Способ по п.1, характеризующийся тем, что этап генерации модели обучения включает в себя этап генерации модели обучения включает в себя выполнение машинного обучения через рекурсивную нейронную сеть (RNN). 57. The method according to claim 1, characterized in that the step of generating a learning model includes the step of generating a learning model including performing machine learning through a recursive neural network (RNN).
8. Способ по п. 7, характеризующийся тем, что RNN составлена из множества сетей, имеющих одинаковый размер, или сконструирована так, чтобы размеры8. The method according to claim 7, characterized in that the RNN is composed of a plurality of networks having the same size, or is designed so that the dimensions
10 постепенно увеличивались, чтобы адаптивно соответствовать общей емкости, подлежащей изучению. 10 were gradually increased to adaptively correspond to the total capacity to be studied.
9. Способ по п. 7, характеризующийся тем, что RNN выполняет обучение путем ввода серии чисел, полученных путем оцифровки отношения отображения между кодами программы для конкретной фразы на естественном языке.9. The method of claim 7, wherein the RNN performs training by inputting a series of numbers obtained by digitizing the mapping relationship between program codes for a particular natural language phrase.
1510. Способ по п. 9, характеризующийся тем, что каждый из ряда числовых значений отношения отображения устанавливает отношение отображения между конкретным естественным языком и программным кодом, чтобы не быть уникальным, где последовательность содержит, по меньшей мере, один или несколько секций последовательности, причем секция1510. The method according to claim 9, characterized in that each of the number of numerical values of the mapping relationship establishes a mapping relationship between a specific natural language and a program code so as not to be unique, where the sequence contains at least one or more sections of the sequence, and section
20 последовательности содержит комбинацию, по меньшей мере, одной битовой последовательности. Sequence 20 contains a combination of at least one bit sequence.
11. Система применения искусственного интеллекта в разработке программного обеспечения, содержащая: 11. A system for using artificial intelligence in software development, containing:
• по меньшей мере один блок генерации модели обучения для• at least one unit for generating a learning model for
25 изучения отношения отображения между фразой на естественном языке и программным кодом для генерации модели обучения; и 25 exploring the mapping relationship between a natural language phrase and program code to generate a learning model; and
• по меньшей мере один блок оценки кода программы для распознанной речи пользователя, извлечения фразы на• at least one block for evaluating the program code for the recognized speech of the user, extracting the phrase on
30 естественном языке, ввода фразы на естественном языке в модель обучения, а также оценки и вывода кода программы.30 natural language, inputting natural language phrases into the learning model, and evaluating and outputting program code.
12. Система по п. 11, характеризующаяся тем, что дополнительно содержит блок распознавания речи для распознавания речи пользователя и извлечения фразы на естественном языке. 12. The system according to claim 11, further comprising a speech recognition unit for recognizing the user's speech and extracting a natural language phrase.
PCT/RU2020/000134 2020-03-13 2020-03-13 Method and system for applying artificial intelligence in software development WO2021182984A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
RU2020110541 2020-03-13
RU2020110541A RU2020110541A (en) 2020-03-13 2020-03-13 METHOD AND SYSTEM FOR APPLYING ARTIFICIAL INTELLIGENCE IN SOFTWARE DEVELOPMENT

Publications (1)

Publication Number Publication Date
WO2021182984A1 true WO2021182984A1 (en) 2021-09-16

Family

ID=77670895

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/RU2020/000134 WO2021182984A1 (en) 2020-03-13 2020-03-13 Method and system for applying artificial intelligence in software development

Country Status (2)

Country Link
RU (1) RU2020110541A (en)
WO (1) WO2021182984A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180136912A1 (en) * 2016-11-17 2018-05-17 The Mathworks, Inc. Systems and methods for automatically generating code for deep learning systems
KR20190061488A (en) * 2017-11-28 2019-06-05 윤종식 A program coding system based on artificial intelligence through voice recognition and a method thereof
US20190317739A1 (en) * 2019-06-27 2019-10-17 Intel Corporation Methods and apparatus to automatically generate code for graphical user interfaces

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180136912A1 (en) * 2016-11-17 2018-05-17 The Mathworks, Inc. Systems and methods for automatically generating code for deep learning systems
KR20190061488A (en) * 2017-11-28 2019-06-05 윤종식 A program coding system based on artificial intelligence through voice recognition and a method thereof
US20190317739A1 (en) * 2019-06-27 2019-10-17 Intel Corporation Methods and apparatus to automatically generate code for graphical user interfaces

Also Published As

Publication number Publication date
RU2020110541A3 (en) 2021-09-14
RU2020110541A (en) 2021-09-14

Similar Documents

Publication Publication Date Title
CN112270379A (en) Training method of classification model, sample classification method, device and equipment
CN109214006B (en) Natural language reasoning method for image enhanced hierarchical semantic representation
CN112417092B (en) Intelligent text automatic generation system based on deep learning and implementation method thereof
CN112765345A (en) Text abstract automatic generation method and system fusing pre-training model
WO2023024412A1 (en) Visual question answering method and apparatus based on deep learning model, and medium and device
US11636272B2 (en) Hybrid natural language understanding
WO2023201975A1 (en) Difference description sentence generation method and apparatus, and device and medium
CN111966812A (en) Automatic question answering method based on dynamic word vector and storage medium
CN116820429A (en) Training method and device of code processing model, electronic equipment and storage medium
CN113705196A (en) Chinese open information extraction method and device based on graph neural network
CN113987167A (en) Dependency perception graph convolutional network-based aspect-level emotion classification method and system
CN111597807B (en) Word segmentation data set generation method, device, equipment and storage medium thereof
CN112309528A (en) Medical image report generation method based on visual question-answering method
CN115759042A (en) Sentence-level problem generation method based on syntax perception prompt learning
CN111145914B (en) Method and device for determining text entity of lung cancer clinical disease seed bank
CN113971394A (en) Text repeat rewriting system
CN111125323A (en) Chat corpus labeling method and device, electronic equipment and storage medium
Mathur et al. A scaled‐down neural conversational model for chatbots
CN114330483A (en) Data processing method, model training method, device, equipment and storage medium
CN111767720B (en) Title generation method, computer and readable storage medium
CN113705207A (en) Grammar error recognition method and device
CN113761883A (en) Text information identification method and device, electronic equipment and storage medium
CN112349294A (en) Voice processing method and device, computer readable medium and electronic equipment
WO2023159759A1 (en) Model training method and apparatus, emotion message generation method and apparatus, device and medium
CN116483314A (en) Automatic intelligent activity diagram generation method

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20924516

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20924516

Country of ref document: EP

Kind code of ref document: A1