WO2024029708A1 - Method of generating math problem code provision model based on artificial intelligence, and method and device for generating math problem by using same model - Google Patents

Method of generating math problem code provision model based on artificial intelligence, and method and device for generating math problem by using same model Download PDF

Info

Publication number
WO2024029708A1
WO2024029708A1 PCT/KR2023/007317 KR2023007317W WO2024029708A1 WO 2024029708 A1 WO2024029708 A1 WO 2024029708A1 KR 2023007317 W KR2023007317 W KR 2023007317W WO 2024029708 A1 WO2024029708 A1 WO 2024029708A1
Authority
WO
WIPO (PCT)
Prior art keywords
code block
code
math
block
math problem
Prior art date
Application number
PCT/KR2023/007317
Other languages
French (fr)
Korean (ko)
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
Priority claimed from KR1020230066190A external-priority patent/KR102645590B1/en
Application filed by 주식회사 프로키언 filed Critical 주식회사 프로키언
Publication of WO2024029708A1 publication Critical patent/WO2024029708A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/111Mathematical or scientific formatting; Subscripts; Superscripts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/53Processing of non-Latin text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/58Use of machine translation, e.g. for multi-lingual retrieval, for server-side translation for client devices or for real-time translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Definitions

  • the present invention provides a method for generating an artificial intelligence model trained to learn mathematical problems and output problem code blocks to automatically generate various mathematical problems that can be derived or derived from the fingerprint of a specific mathematical problem, and the artificial intelligence model This is a method and device for generating mathematical problems using.
  • the present invention proposes a method for generating various mathematical problems using computer program codes.
  • the method of creating math problems with program codes requires not only mathematical knowledge but also an understanding of programming languages, and because mathematical concepts are expressed in codes, detailed settings are required, so a method to improve productivity is needed.
  • the present invention is intended to solve the above-mentioned problems, and uses an artificial intelligence model trained to learn mathematical problems and output problem code blocks to automatically generate various mathematical problems that can be derived or derived from the fingerprint of a specific mathematical problem.
  • One technical task is to provide a method and device for generating mathematical problems using the corresponding artificial intelligence model.
  • the embodiment according to the first aspect of the present invention includes learning target math problem data, code blocks required to generate the learning target math problem data, and annotation data for the code blocks.
  • Disclosed is a method for generating a model for providing a mathematical problem code including generating an artificial intelligence model trained to output at least one of the main code block clusters including a plurality of problem code blocks for the mathematical problem.
  • an embodiment according to the second aspect of the present invention includes at least one processor, a model generating program that provides a mathematical problem code that is electrically connected to the processor, and is performed in the processor. It provides a model generation device that provides a mathematical problem code containing memory to be stored. The memory is trained by performing a preprocessing process in which the processor converts learning target math problem data, code blocks required to generate the learning target math problem data, and annotation data for the code blocks into an embedding vector.
  • Generate a data set and through learning of the training data set, receive a fingerprint of a specific mathematical problem and select a problem code block for the mathematical problem and a cluster of main code blocks including a plurality of problem code blocks for the mathematical problem.
  • an embodiment according to the third aspect of the present invention includes the steps of obtaining a fingerprint of a math problem and converting the fingerprint into an embedding vector, and preprocessing the math problem data to be studied.
  • a fingerprint of a specific math problem is input, and a problem code block for the math problem and the above
  • a problem code block for the math problem based on the fingerprint converted to an embedding vector using an artificial intelligence model trained to output at least one of the main code block clusters including a plurality of problem code blocks for the math problem, and Disclosing a method for generating a mathematical problem comprising the steps of obtaining at least one of the main code block clusters including a plurality of problem code blocks for the mathematical problem, and generating a new mathematical problem using the obtained code block. do.
  • an embodiment according to the fourth aspect of the present invention includes at least one processor, electrically connected to the processor, and storing a mathematical problem generation program executed by the processor.
  • a mathematical problem providing device including a memory.
  • the memory includes a code block necessary for the processor to obtain a fingerprint for a math problem, convert the fingerprint into an embedding vector, preprocessed math problem data to be learned, and generate the math problem data to be learned, and the code block.
  • a fingerprint of a specific mathematical problem is input and a problem code block for the mathematical problem and a cluster of major code blocks including a plurality of problem code blocks for the mathematical problem are selected.
  • a main code block cluster including a problem code block for the math problem and a plurality of problem code blocks for the math problem based on the fingerprint converted to an embedding vector using an artificial intelligence model trained to output at least one Obtain at least one of the following, and store a code that causes a new mathematical problem to be created using the obtained code block.
  • a main code block cluster including a problem code block for the mathematical problem and a plurality of problem code blocks for the mathematical problem is generated from the fingerprint of a specific mathematical problem through an artificial intelligence model. It can be easily derived.
  • understanding of programming language is achieved by receiving a math problem fingerprint from a user who wants to create a math problem, outputting a problem code block for the fingerprint, and creating a math problem based on the problem code block. Even without , users can easily create math problems through mathematical knowledge.
  • Figure 1 is a block diagram showing the configuration of a mathematical problem code providing model generating device according to an embodiment of the present invention.
  • FIG. 2 is a diagram illustrating an example of training an artificial intelligence model using the model generating device for providing mathematical problem codes shown in FIG. 1.
  • Figures 3 and 4 are diagrams showing examples of problem code blocks and comments.
  • Figures 5 to 7 are diagrams showing examples of training data sets.
  • Figure 8 is an operation flowchart explaining a method for generating a model for providing mathematical problem codes according to another embodiment of the present invention.
  • FIG. 9 is a flowchart showing detailed steps included in the steps of the method for generating a mathematical problem code providing model shown in FIG. 8.
  • Figure 10 is a diagram illustrating a mathematical problem generating device connected to communication with a user terminal according to another embodiment of the present invention.
  • FIG. 11 is a block diagram showing the configuration of the mathematical problem generating device shown in FIG. 10.
  • FIG. 12 is a diagram illustrating an example of generating a math problem using the math problem generating device shown in FIG. 11.
  • Figure 13 is an operation flowchart explaining a method for generating a math problem according to another embodiment of the present invention.
  • first, second, etc. used in this specification are used only for the purpose of distinguishing one component from another component and do not limit the order or relationship of the components.
  • first component of the present invention may be named a second component, and similarly, the second component may also be named a first component.
  • singular forms of expression should be construed to also include plural forms of expression, unless the contrary is clearly indicated.
  • the communication module described below may include a device including hardware and software necessary to transmit and receive signals such as control signals or data signals through wired or wireless connections with other network devices.
  • the memory may store at least one of information and data input to the communication module, information and data required for functions performed by the processor, and data generated according to execution of the processor. Memory should be interpreted as a general term for non-volatile storage devices that retain stored information even when power is not supplied, and volatile storage devices that require power to maintain stored information. Memory may include magnetic storage media or flash storage media in addition to volatile storage devices that require power to maintain stored information, but the scope of the present invention is not limited thereto.
  • a processor may include various types of devices that control and process data.
  • a processor may refer to a data processing device built into hardware that has physically structured circuitry to perform functions expressed by codes or instructions included in a program.
  • the processor may include a microprocessor, central processing unit (CPU), processor core, multiprocessor, application-specific integrated circuit (ASIC), or field programmable gate (FPGA). array), etc., but the scope of the present invention is not limited thereto.
  • Figure 1 is a block diagram showing the configuration of a mathematical problem code providing model generating device 100 according to an embodiment of the present invention
  • Figure 2 shows an artificial intelligence model trained by the mathematical problem code providing model generating device 100. This is a drawing showing an example of what to do.
  • the mathematical problem code providing model generating device 100 includes at least one processor 130 and a memory 140, and further includes a communication module 110 and a database 120. can do.
  • the communication module 110 may transmit and receive information with an external device or server to transmit and receive data necessary for generating a model for providing a mathematical problem code.
  • the database 120 may be a place where data necessary for creating a model for providing mathematical problem codes is stored.
  • the database 120 may be built in a portion of the memory 140 or may be implemented as separate hardware.
  • the processor 130 performs operations according to the code stored in the memory 140.
  • the memory 140 is electrically connected to the processor 130 and stores a model generation program that provides mathematical problem codes performed by the processor 130.
  • the memory 140 stores code that, when executed through the processor 130, causes the processor 130 to perform the following functions and procedures.
  • the memory 140 contains the learning target math problem data 210, the code block 220 required to generate the learning target math problem data 210, and the annotation data 230 for the code block.
  • a training data set 300 is generated by performing a preprocessing process including.
  • the code block 220 includes at least one of a variable setting code block, a variable condition code block, a result condition code block, and a result generation code block.
  • the variable setting code block is a code block that sets the variables of the math problem data to be studied.
  • a variable condition code block is a code block that sets the conditions of a variable.
  • the result condition code block is a code block that sets conditions for the correct and incorrect answers of the math problem data to be studied.
  • the result generation code block is a code block that generates one correct answer that satisfies the conditions of the correct answer and one or more incorrect answers that satisfy the conditions of the incorrect answer, based on the variables created through the variable setting code block and the variable condition setting code block.
  • the annotation 230 includes a description of at least one block among a variable setting code block, a variable condition code block, a result condition code block, and a result generation code block.
  • the memory 140 stores a code that causes code similarity to be calculated by comparing a specific code block included in the training data set 300 with a different code block.
  • the memory 140 stores a code that causes a code block cluster to be created by clustering a specific code block and a code block different from the specific code block based on code similarity. If the code similarity is greater than a preset value, the memory 140 stores a code that causes a code block cluster to be generated by clustering a specific code block and a code block different from the specific code block.
  • Code similarity includes at least one of variable setting code similarity, variable condition code similarity, result condition code similarity, and result generation code similarity.
  • Variable setting code similarity is a similarity derived by comparing a variable setting code block included in a specific code block with a variable setting code block included in a code block different from the specific code block.
  • Variable condition code similarity is a similarity derived by comparing a variable condition code block included in a specific code block with a variable condition code block included in a code block different from the specific code block.
  • Resulting condition code similarity is the similarity derived by comparing a result condition code block included in a specific code block with a result condition code block included in a code block different from the specific code block.
  • Result generation code similarity is a similarity derived by comparing a result generation code block included in a specific code block with a result generation code block included in a code block different from the specific code block.
  • the memory 140 stores a code that causes the code block cluster to match the math problem data to be learned included in the training data set 300 corresponding to the code block cluster and the annotations included in the training data set 300.
  • the training data set 300 may be a data table formed by matching math problem data to be learned converted into an embedding vector, code blocks, annotations, and code block clusters.
  • the code block cluster includes at least one of a variable setting code cluster, a variable condition code cluster, a result condition code cluster, and a result generation code cluster.
  • Variable setting code clustering clusters variable setting code blocks included in a specific code block included in the training data set 300 and variable setting code blocks included in a code block different from the specific code block, based on variable setting code similarity. It is a cluster of codes.
  • the variable condition code cluster is a code cluster that clusters variable condition code blocks included in a specific code block and variable condition code blocks included in a code block different from the specific code block, based on variable condition code similarity.
  • the result condition code cluster is a code cluster that clusters result condition code blocks included in a specific code block and result condition code blocks included in a code block different from the specific code block, based on result condition code similarity.
  • the result generation code cluster is a code cluster that clusters result generation code blocks included in a specific code block and result generation code blocks included in a code block different from the specific code block, based on result generation code similarity.
  • the memory 140 receives the fingerprint of a specific math problem through learning of the training data set 300, and contains a main code block cluster containing a problem code block for a specific math problem and a plurality of problem code blocks for a specific math problem.
  • a code that causes the artificial intelligence model 400 to be trained to output at least one of the following is stored.
  • the problem code block includes the variable setting code block that sets the variables of the math problem, the variable condition code block that sets the conditions for the variables, the result condition code block that sets the conditions for the correct and incorrect answers in the math problem, and the variable setting code block and variable conditions. Based on the variables created through the code block, it includes at least one of a result generation code block that generates one correct answer that satisfies the conditions of the correct answer and one or more incorrect answers that satisfy the conditions of the incorrect answer.
  • the artificial intelligence model 400 learns the code block position relationship between the variable setting code block, variable condition code block, result condition code block, and result generation code block included in the code block of the training data set.
  • the artificial intelligence model 400 calculates fingerprint similarity by comparing the fingerprint of a specific math problem with the learning target math problem data included in the training data set 300 and at least one of the annotations included in the training data set 300. .
  • the artificial intelligence model 400 selects a code block cluster corresponding to the learning target math problem data included in the training data set 300 or the annotation included in the training data set 300, based on fingerprint similarity. If the fingerprint similarity is more than a preset value, the artificial intelligence model 400 selects a code block cluster corresponding to the learning target math problem data included in the training data set 300 or the annotation included in the training data set 300. .
  • the artificial intelligence model 400 is an artificial intelligence trained to output code blocks that satisfy preset criteria among code blocks included in the code block cluster as problem code blocks for mathematical problems, or to output the code block cluster as the main code block cluster. It is an intelligence model.
  • the artificial intelligence model may be a supervised learning model. More specifically, the artificial intelligence model may be an artificial intelligence model based on the Omikuji algorithm.
  • 3 and 4 are diagrams illustrating an example of a code block 220 and annotation 230.
  • the code block 220 includes at least one of a variable setting code block 221, a variable condition code block 222, a result generation code block 223, and a result condition code block 224. Includes more.
  • the annotation 230 includes the variable setting annotation 231 for the variable setting code block 221, the variable condition annotation 232 for the variable condition code block 222, and the result generation annotation for the answer generation code block 223 ( (not shown) and a correct answer condition annotation (not shown) for the result condition code block 224.
  • the variable condition code block 222 may be a code block in which variable conditions are set, such as the condition that the x value and the y value must be prime or that they must not be 0.
  • the resulting condition code block 224 may be a code block in which conditions such as a condition that the value of b must not be 0, a condition that it must be a positive number, etc. are set.
  • the result generation code block 223 is one or more that satisfies the correct answer and incorrect answer conditions set by the correct answer generation code block 223 based on the variables created through the variable setting code block 221 and the variable condition code block 222. This is a code block set up to generate incorrect and correct answers.
  • Figures 5 to 7 are diagrams showing an example of the training data set 300.
  • Figure 5 is a diagram showing a training data set in the form of a data table in which mathematical problems, annotations, and code blocks are matched to each other
  • Figure 6 is a diagram showing another type of training data set in which mathematical problems and annotations are matched.
  • FIG. 7 is a diagram showing an example of converting the training data set shown in FIG. 6 into an embedding vector.
  • the training data set shown in FIGS. 5 and 6 is a diagram showing a training data set that has not been converted to an embedding vector.
  • the training data set 300 includes learning target math problem data 510, a variable setting code block included in the code block 530 for the learning target math problem data 510, a variable condition code block, This is a data table that matches the annotations 520 for each of the answer condition code block and the answer generation code block.
  • the training data set 300 includes math problem data to be learned 610, code blocks (not shown) for the math problem data to be learned 610, and annotation data 620 for the code blocks. ) may be a data table that matches each other. If the data included in the data table shown in FIG. 6 is converted into an embedding vector, it may appear as shown in FIG. 7.
  • FIG. 8 is an operation flowchart explaining a method for generating a mathematical problem code providing model according to another embodiment of the present invention
  • FIG. 9 is a flowchart showing detailed steps included in the steps of the method for generating a mathematical problem code providing model.
  • a method for generating a model for providing a mathematical problem code will be described.
  • Each step of the method for generating a mathematical problem code providing model to be described below may be performed by the mathematical problem code providing model generating apparatus 100 previously described with reference to FIGS. 1 to 7 . Accordingly, the contents of the embodiments of the present invention previously described with reference to FIGS.
  • the method of generating a model for providing a mathematical problem code includes a training data set creation step (S1100) and an artificial intelligence model training step (S1200).
  • the training data set generation step (S1100) performs a preprocessing process including converting the learning target math problem data, the code blocks required to generate the learning target math problem data, and the annotation data for the code blocks into an embedding vector to generate training data. This is the step of creating a set.
  • the artificial intelligence model training step (S1200) based on the training data set, at least one of the main code block clusters including a problem code block for the mathematics problem and a plurality of problem code blocks for the mathematics problem is extracted from the fingerprint of a specific mathematics problem. This is the step of creating an artificial intelligence model that has been trained to output.
  • the artificial intelligence model calculates fingerprint similarity by comparing the fingerprint of the math problem with at least one of the target math problem data included in the training data set and annotations included in the training data set.
  • the artificial intelligence model selects a cluster of code blocks corresponding to the math problem data to be learned or annotations included in the training data set based on fingerprint similarity.
  • the artificial intelligence model is an artificial intelligence model that is trained to output code blocks that meet preset criteria among code blocks included in a code block cluster as problem code blocks for math problems, or output code block clusters as main code block clusters. .
  • the training data set generation step (S1100) includes a code similarity derivation step (S1110), a code block cluster generation step (S1120), and a data matching step (S1130).
  • the code similarity derivation step (S1210) is a step of calculating code similarity by comparing a specific code block included in the training data set with a code block different from the specific code block included in the training data set.
  • the code block cluster generation step (S1120) is a step of generating a code block cluster by clustering a specific code block and a code block different from the specific code block based on code similarity.
  • the data matching step (S1130) is a step of matching the code block cluster with the learning target math problem data included in the training data set corresponding to the code block cluster and the annotations included in the training data set.
  • Figure 10 is a diagram showing a mathematical problem generating device 1000 connected to communication with a user terminal 1100 according to another embodiment of the present invention.
  • the math problem generating device 1000 is interconnected with the user terminal 1100 through a wired or wireless communication network.
  • a communication network is any wired network such as a Local Area Network (LAN), Wide Area Network (WAN), or Value Added Network (VAN), a mobile radio communication network, or a satellite communication network. It can be implemented as any type of wireless network.
  • the math problem generating device 1000 may be formed as a cloud computing server such as Software as a Service (SaaS), Platform as a Service (PaaS), or Infrastructure as a Service (IaaS).
  • the user terminal 1100 is, for example, a laptop equipped with a web browser, a desktop, a laptop, a wireless communication device or smartphone that ensures portability and mobility, and a tablet including a touchpad. It can refer to all types of handheld-based wireless communication devices such as PCs, etc.
  • the user terminal 1100 includes a communication module, an input/output module, at least one processor, and a memory.
  • the communication module of the user terminal 1100 may transmit and receive information with the math problem generating device 1000.
  • the input/output module of the user terminal 1100 may receive information or data transmitted to the user terminal 1100 from the outside, or may output information or data held by the user terminal 1100 to the outside.
  • the input/output module of the user terminal 1100 may include a display, a touch pad, a speaker, and a microphone.
  • the processor of the user terminal 1100 is electrically connected to the memory and operates by executing the code stored in the memory.
  • the memory of the user terminal 1100 is electrically connected to the processor and stores at least one code executed by the processor.
  • the memory of the user terminal 1100 stores code that, when executed through the processor, causes the processor to perform the following functions and procedures.
  • a code that causes a fingerprint for a math problem to be transmitted to the math problem generating device 1000 is stored in the memory of the user terminal 1100 .
  • the memory of the user terminal 1100 receives a problem code block for a math problem or a main code block cluster including a plurality of problem code blocks for a math problem from the math problem generating device 1000 and causes it to be output to the input/output module.
  • the code is saved.
  • the memory of the user terminal 1100 stores a code that causes a problem code block for a math problem or a selection input for a specific problem code block among a plurality of problem code blocks for a math problem to be transmitted to the math problem generating device 1000. do.
  • a code that causes the user terminal 1100 to receive a math problem generated through a problem code block or a specific problem code block corresponding to a selection input from the math problem generating device 1000 is stored in the memory of the user terminal 1100 .
  • FIG. 11 is a block diagram showing the configuration of the math problem generating device 1000
  • FIG. 12 is a diagram showing an example of generating a math problem by the math problem generating device 1000.
  • the math problem generating device 1000 includes at least one processor 1030 and a memory 1040, and may further include a communication module 1010 and a database 1020. .
  • the communication module 1010 can transmit and receive data necessary for creating math problems by exchanging information with an external device or server.
  • the database 1020 may be a place where data necessary for creating math problems is stored.
  • the database 1020 may be built in a portion of the memory 1040 or may be implemented as separate hardware.
  • the processor 1030 performs operations according to the code stored in the memory 1040.
  • the memory 1040 is electrically connected to the processor 1030 and stores a math problem generation program performed by the processor 1040.
  • the memory 1040 stores code that, when executed through the processor 1030, causes the processor 1040 to perform the following functions and procedures.
  • the memory 1040 stores a code that causes the fingerprint 1200 for a math problem to be obtained and the fingerprint to be converted into an embedding vector. More specifically, a code that causes a fingerprint 1200 for a math problem to be received from the user terminal 1100 is stored in the memory 1040 . Memory 1040 stores a code that causes the fingerprint to be converted into an embedding vector.
  • the memory 1040 includes a problem code block 1400 for a math problem and a plurality of problem code blocks for a math problem based on a fingerprint converted to an embedding vector using the math problem code provision model 1300.
  • Code that causes at least one of the code block clusters to be obtained is stored.
  • the math problem code provision model 1300 learns a specific training data set including preprocessed math problem data to be learned, code blocks required to generate the math problem data to be learned, and annotation data for the code blocks. It is trained to receive a fingerprint of a math problem as an input and output at least one of a problem code block for the math problem and a major code block cluster containing a plurality of problem code blocks for the math problem.
  • the math problem code providing model 1300 calculates fingerprint similarity by comparing the fingerprint of the math problem with at least one of the learning target math problem data included in the training data set and the annotations included in the training data set, and calculates the fingerprint similarity. Based on this, a code block cluster corresponding to the learning target math problem data included in the training data set or annotations included in the training data set is selected, and a preset standard is applied among the code blocks included in the code block cluster. It can be trained to output a satisfying code block as a problem code block for the math problem, or to output the code block cluster as the main code block cluster.
  • the problem code block is a variable setting code block that sets the variables of a math problem, a variable condition code block that sets conditions for variables, and a result condition code block and variable setting code block that sets conditions for correct and incorrect answers in a math problem. It includes at least one of a result generation code block that generates one correct answer that satisfies the conditions of the correct answer and one or more incorrect answers that satisfy the conditions of the incorrect answer based on the variables created through the condition code block.
  • the math problem code provision model 1300 is based on a training data set that preprocesses the math problem data to be learned, the code blocks needed to generate the math problem data to be learned, and the annotation data for the code blocks, and is based on a training data set that preprocesses the math problem data to be learned, and the annotation data for the code blocks required to generate the math problem data to be learned. It is an artificial intelligence model trained to output at least one of the problem code blocks for math problems and major code block clusters that include multiple problem code blocks for specific math problems.
  • the memory 1040 stores a specific problem code block selected among a plurality of problem code blocks included in the main code block cluster and a code that causes a math problem to be generated based on at least one of the problem code blocks. More specifically, in the memory 1040, when a main code block cluster is obtained by the mathematical problem code provision model 1300, a list is generated in which a plurality of problem code blocks included in the main code block cluster are displayed and selected from the list. Upon obtaining a selection input for a specific problem code block, code that causes the math problem to be generated (1500) based on the specific problem code block is stored.
  • the memory 1040 stores a code that, when the problem code block 1400 is obtained by the mathematical problem code provision model 1300, generates a mathematical problem 1500 based on the problem code block. More specifically, the memory 1040 stores a code that causes code blocks included in the problem code block 1400 or a specific problem code block to be arranged in order using an artificial intelligence model.
  • the memory 1040 stores a problem code block 1400 in which code blocks are arranged in order or a code that causes a math problem to be generated 1500 based on a specific problem code block.
  • the artificial intelligence model is based on the code block position relationship between the variable setting code block, variable condition code block, result condition code block, and result generation code block included in the code block required to generate the math problem data to be studied, and the problem code to be analyzed. It is an artificial intelligence model trained to place the variable setting code block, variable condition code block, answer condition code block, and answer generation code block included in the block in order.
  • the artificial intelligence model may be a model that uses the Extreme Multi-classification algorithm.
  • Figure 13 is an operation flowchart explaining a method for generating a math problem according to another embodiment of the present invention.
  • a method for generating a math problem will be described.
  • Each step of the math problem generation method to be described below may be performed by the math problem generation device 1000 previously described with reference to FIGS. 10 to 12 . Therefore, the contents of the embodiments of the present invention previously described with reference to FIGS. 10 to 12 can be equally applied to the embodiments to be described below, and any content that overlaps with the description described above will be omitted below.
  • the steps described below do not necessarily have to be performed in order, the order of the steps may be set in various ways, and the steps may be performed almost simultaneously.
  • the math problem generation method is a method in which each step is performed by a processor, and includes a vector conversion step (S2100), a code provision step (S2200), and a math problem creation step (S2300).
  • the vector conversion step (S2100) is a step of obtaining a fingerprint for a math problem and converting the fingerprint into an embedding vector.
  • the code provision step (S2200) uses a math problem code provision model to select a problem code block for a math problem based on a fingerprint converted to an embedding vector and a cluster of main code blocks including a plurality of problem code blocks for a math problem. This is the step of acquiring at least one thing.
  • the math problem code provision model is designed to provide a specific math problem through learning of a training data set that includes preprocessed math problem data to be learned, code blocks needed to generate the math problem data to be learned, and annotation data for the code blocks. It is trained to receive a fingerprint as an input and output at least one of the main code block clusters including a problem code block for a math problem and a plurality of problem code blocks for a math problem.
  • the fingerprint similarity is calculated by comparing the fingerprint of the mathematical problem in the mathematical problem code providing model with at least one of the learning target mathematical problem data included in the training data set and the annotations included in the training data set, and the fingerprint similarity is based on Select a code block cluster that corresponds to the learning target math problem data included in the training data set or annotations included in the training data set, and code that satisfies preset criteria among the code blocks included in the code block cluster. It can be trained to output blocks as problem code blocks for math problems, or to output clusters of code blocks as clusters of major code blocks.
  • the problem code block includes the variable setting code block that sets the variables of the math problem, the variable condition code block that sets the conditions for the variables, the result condition code block that sets the conditions for the correct and incorrect answers in the math problem, and the variable setting code block and variable conditions. Based on the variables created through the code block, it includes at least one of a result generation code block that generates one correct answer that satisfies the conditions of the correct answer and one or more incorrect answers that satisfy the conditions of the incorrect answer.
  • the math problem code provision model is based on a training data set that preprocesses the math problem data to be learned, the code blocks needed to generate the math problem data to be learned, and the annotation data for the code blocks, and is based on a training data set that preprocesses the math problem data to be learned, and the annotation data for the code blocks, from the fingerprint of the specific math problem. It is an artificial intelligence model trained to output at least one of the major code block clusters, including problem code blocks for and multiple problem code blocks for specific math problems.
  • the math problem generation step (S2300) is a step of generating the math problem based on at least one of a specific problem code block and a problem code block selected among a plurality of problem code blocks included in the main code block cluster. More specifically, in the mathematical problem generation step (S2300), when a major code block cluster is obtained by a mathematical problem code provision model, a list displaying a plurality of problem code blocks included in the major code block cluster is generated and a specific problem code block from the list is generated. When a selection input for a problem code block is obtained, generating the math problem based on a specific problem code block, and when a problem code block is obtained by a math problem code provision model, generating a math problem based on the problem code block. am.
  • Computer-readable media can be any available media that can be accessed by a computer and includes both volatile and non-volatile media, removable and non-removable media. Additionally, computer-readable media may include computer storage media. Computer storage media includes both volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules or other data.
  • the present invention is a technology for automatically generating various mathematical problems and can be used in the education industry, so it has industrial applicability.
  • Model generation device providing mathematical problem code

Abstract

An embodiment of the present invention provides a method of generating a math problem code provision model, the method comprising the steps of: generating a training data set through a preprocessing process including an operation of converting, into an embedding vector, math problem data to be learned, a code block required for generating the math problem data to be learned, and annotation data for the code block; and generating an artificial intelligence model that is trained with the training data set to receive the text of a particular math problem and output at least one of a problem code block for the math problem and a main code block group including multiple problem code blocks for the math problem.

Description

인공지능 기반의 수학 문제 코드 제공 모델 생성 방법과 해당 모델을 이용한 수학 문제 생성 방법 및 장치Artificial intelligence-based mathematical problem code provision model generation method and mathematical problem generation method and device using the model
본 발명은 수학 문제들을 학습하여 특정 수학 문제의 지문으로부터 파생 또는 유도될 수 있는 다양한 수학 문제를 자동으로 생성하기 위한 문제 코드 블록을 출력하도록 훈련된 인공지능 모델을 생성하는 방법과, 해당 인공지능 모델을 이용하여 수학 문제를 생성하는 방법 및 장치에 한 것이다. The present invention provides a method for generating an artificial intelligence model trained to learn mathematical problems and output problem code blocks to automatically generate various mathematical problems that can be derived or derived from the fingerprint of a specific mathematical problem, and the artificial intelligence model This is a method and device for generating mathematical problems using.
최근 개인용 휴대 단말의 컴퓨팅 성능이 향상됨에 따라, 사진 촬영을 통해 각종 수학 문제를 손쉽게 인식하고, 이의 해답을 실시간으로 제공하는 다양한 형태의 온라인 서비스가 사업화중에 있다. 다만, 이는 문제를 생산하는 저작자의 노력을 침해할 뿐만 아니라, 수학을 학습하는 학습자 입장에서도 직접 문제를 풀이하지 않고, 해답만을 베끼는 형태로 변질될 수 있는 문제가 있다.Recently, as the computing performance of personal portable terminals has improved, various types of online services that easily recognize various mathematical problems by taking pictures and provide answers in real time are being commercialized. However, this not only infringes on the efforts of the author who creates the problem, but also has the potential to degenerate into a form of students learning mathematics only copying the answer without directly solving the problem.
이를 방지하기 위해서는 다양한 수학 문제를 실시간으로 생성하여, 이와 같은 어뷰징(abusing) 문제를 해소하고, 학습자에게 맞춤형 문제를 실시간으로 제공할 수 있는 기술이 필요하다.In order to prevent this, technology is needed that can generate various math problems in real time, solve this abusing problem, and provide customized problems to learners in real time.
본 발명에서는 다양한 수학 문제를 생성하기 위한 방법으로서, 컴퓨터 프로그램 코드를 이용하여 수학 문제를 생성하는 방법을 제안한다. 즉, 각 수학 문제의 생성을 위한 프로그램 코드를 설정하면, 해당 코드를 통해 특정 수학 문제를 쉽게 생성할 수 있고, 몇 가지 변수의 설정을 변경하면, 해당 수학 문제와 동일한 유형의 다른 문제를 빠르게 생성할 수 있다. 다만, 프로그램 코드로 수학 문제를 생성하는 방법은 수학적인 지식뿐만 아니라 프로그래밍 언어에 대한 이해가 필요하고 수학적 개념들을 코드로 나타내기 때문에 세부적인 설정이 필요하여 생산성을 향상시키기 위한 방법이 필요하다.The present invention proposes a method for generating various mathematical problems using computer program codes. In other words, by setting the program code for creating each math problem, you can easily create a specific math problem through that code, and by changing the settings of a few variables, you can quickly create other problems of the same type as the math problem. can do. However, the method of creating math problems with program codes requires not only mathematical knowledge but also an understanding of programming languages, and because mathematical concepts are expressed in codes, detailed settings are required, so a method to improve productivity is needed.
본 발명은 전술한 문제점을 해결하기 위한 것으로, 수학 문제들을 학습하여 특정 수학 문제의 지문으로부터 파생 또는 유도될 수 있는 다양한 수학 문제를 자동으로 생성하기 위한 문제 코드 블록을 출력하도록 훈련된 인공지능 모델을 생성하는 방법과, 해당 인공지능 모델을 이용하여 수학 문제를 생성하는 방법 및 장치를 제공하는 것을 일 기술적 과제로 한다. The present invention is intended to solve the above-mentioned problems, and uses an artificial intelligence model trained to learn mathematical problems and output problem code blocks to automatically generate various mathematical problems that can be derived or derived from the fingerprint of a specific mathematical problem. One technical task is to provide a method and device for generating mathematical problems using the corresponding artificial intelligence model.
본 발명이 이루고하 하는 기술적 과제들은 상기한 기술적 과제로 제한되지 않으며, 이하의 설명으로부터 본 발명의 또 다른 기술적 과제들이 도출될 수 있다.The technical problems achieved by the present invention are not limited to the above-described technical problems, and other technical problems of the present invention can be derived from the following description.
상술한 기술적 과제를 해결하기 위한 기술적 수단으로서, 본 발명의 제1 측면에 따른 실시예는 학습 대상 수학 문제 데이터, 상기 학습 대상 수학 문제 데이터를 생성하는데 필요한 코드 블록 및 상기 코드 블록에 대한 주석 데이터를 임베딩 벡터로 변환하는 동작을 포함하는 전처리 과정을 수행하여 훈련 데이터 세트를 생성하는 단계, 그리고, 상기 훈련 데이터 세트의 학습을 통해, 특정 수학 문제의 지문을 입력 받아 상기 수학 문제에 대한 문제 코드 블록 및 상기 수학 문제에 대한 복수의 문제 코드 블록을 포함하는 주요 코드 블록 군집 중 적어도 하나를 출력하도록 훈련된 인공지능 모델을 생성하는 단계를 포함하는, 수학 문제 코드 제공 모델 생성 방법을 개시한다.As a technical means for solving the above-described technical problem, the embodiment according to the first aspect of the present invention includes learning target math problem data, code blocks required to generate the learning target math problem data, and annotation data for the code blocks. Generating a training data set by performing a preprocessing process including converting to an embedding vector; and, through learning of the training data set, receiving a fingerprint of a specific mathematical problem as an input, a problem code block for the mathematical problem, and Disclosed is a method for generating a model for providing a mathematical problem code, including generating an artificial intelligence model trained to output at least one of the main code block clusters including a plurality of problem code blocks for the mathematical problem.
또한, 상술한 기술적 과제를 해결하기 위한 기술적 수단으로서, 본 발명의 제2 측면에 따른 실시예는 적어도 하나의 프로세서, 상기 프로세서와 전기적으로 연결되고, 상기 프로세서에서 수행되는 수학문제 코드 제공 모델 생성 프로그램이 저장되는 메모리를 포함하는 수학 문제 코드 제공 모델 생성 장치를 제공한다. 상기 메모리는, 상기 프로세서가, 학습 대상 수학 문제 데이터, 상기 학습 대상 수학 문제 데이터를 생성하는데 필요한 코드 블록 및 상기 코드 블록에 대한 주석 데이터를 임베딩 벡터로 변환하는 동작을 포함하는 전처리 과정을 수행하여 훈련 데이터 세트를 생성하고, 상기 훈련 데이터 세트의 학습을 통해, 특정 수학 문제의 지문을 입력 받아 상기 수학 문제에 대한 문제 코드 블록 및 상기 수학 문제에 대한 복수의 문제 코드 블록을 포함하는 주요 코드 블록 군집 중 적어도 하나를 출력하도록 훈련된 인공지능 모델을 생성하도록 야기하는 코드를 개시한다.In addition, as a technical means for solving the above-described technical problem, an embodiment according to the second aspect of the present invention includes at least one processor, a model generating program that provides a mathematical problem code that is electrically connected to the processor, and is performed in the processor. It provides a model generation device that provides a mathematical problem code containing memory to be stored. The memory is trained by performing a preprocessing process in which the processor converts learning target math problem data, code blocks required to generate the learning target math problem data, and annotation data for the code blocks into an embedding vector. Generate a data set, and through learning of the training data set, receive a fingerprint of a specific mathematical problem and select a problem code block for the mathematical problem and a cluster of main code blocks including a plurality of problem code blocks for the mathematical problem. Discloses code that causes an artificial intelligence model to be trained to output at least one.
또한, 상술한 기술적 과제를 해결하기 위한 기술적 수단으로서, 본 발명의 제3 측면에 따른 실시예는 수학 문제의 지문을 획득하고, 상기 지문을 임베딩 벡터로 변환하는 단계, 전처리된 학습 대상 수학 문제 데이터, 상기 학습 대상 수학 문제 데이터를 생성하는데 필요한 코드 블록 및 상기 코드 블록에 대한 주석 데이터를 포함하는 훈련 데이터 세트의 학습을 통해, 특정 수학 문제의 지문을 입력 받아 상기 수학 문제에 대한 문제 코드 블록 및 상기 수학 문제에 대한 복수의 문제 코드 블록을 포함하는 주요 코드 블록 군집 중 적어도 하나를 출력하도록 훈련된 인공지능 모델을 이용하여, 임베딩 벡터로 변환된 상기 지문을 기초로 상기 수학 문제에 대한 문제 코드 블록 및 상기 수학 문제에 대한 복수의 문제 코드 블록을 포함하는 주요 코드 블록 군집 중 적어도 하나를 획득하는 단계, 그리고, 획득한 코드 블록을 이용하여 새로운 수학 문제를 생성하는 단계를 포함하는 수학 문제 생성 방법을 개시한다. In addition, as a technical means for solving the above-described technical problem, an embodiment according to the third aspect of the present invention includes the steps of obtaining a fingerprint of a math problem and converting the fingerprint into an embedding vector, and preprocessing the math problem data to be studied. , through learning of a training data set containing code blocks necessary for generating the learning target math problem data and annotation data for the code blocks, a fingerprint of a specific math problem is input, and a problem code block for the math problem and the above A problem code block for the math problem based on the fingerprint converted to an embedding vector using an artificial intelligence model trained to output at least one of the main code block clusters including a plurality of problem code blocks for the math problem, and Disclosing a method for generating a mathematical problem comprising the steps of obtaining at least one of the main code block clusters including a plurality of problem code blocks for the mathematical problem, and generating a new mathematical problem using the obtained code block. do.
또한, 상술한 기술적 과제를 해결하기 위한 기술적 수단으로서, 본 발명의 제4 측면에 따른 실시예는 적어도 하나의 프로세서, 상기 프로세서와 전기적으로 연결되고, 상기 프로세서에서 수행되는 수학문제 생성 프로그램이 저장되는 메모리를 포함하는 수학 문제 제공 장치를 개시한다. 상기 메모리는, 상기 프로세서가, 수학 문제에 대한 지문을 획득하고, 상기 지문을 임베딩 벡터로 변환하고, 전처리된 학습 대상 수학 문제 데이터, 상기 학습 대상 수학 문제 데이터를 생성하는데 필요한 코드 블록 및 상기 코드 블록에 대한 주석 데이터를 포함하는 훈련 데이터 세트의 학습을 통해, 특정 수학 문제의 지문을 입력 받아 상기 수학 문제에 대한 문제 코드 블록 및 상기 수학 문제에 대한 복수의 문제 코드 블록을 포함하는 주요 코드 블록 군집 중 적어도 하나를 출력하도록 훈련된 인공지능 모델을 이용하여, 임베딩 벡터로 변환된 상기 지문을 기초로 상기 수학 문제에 대한 문제 코드 블록 및 상기 수학 문제에 대한 복수의 문제 코드 블록을 포함하는 주요 코드 블록 군집 중 적어도 하나를 획득하고, 그리고, 획득한 코드 블록을 이용하여 새로운 수학 문제를 생성하도록 야기하는 코드를 저장한다. In addition, as a technical means for solving the above-described technical problem, an embodiment according to the fourth aspect of the present invention includes at least one processor, electrically connected to the processor, and storing a mathematical problem generation program executed by the processor. Disclosed is a mathematical problem providing device including a memory. The memory includes a code block necessary for the processor to obtain a fingerprint for a math problem, convert the fingerprint into an embedding vector, preprocessed math problem data to be learned, and generate the math problem data to be learned, and the code block. Through learning of a training data set containing annotation data, a fingerprint of a specific mathematical problem is input and a problem code block for the mathematical problem and a cluster of major code blocks including a plurality of problem code blocks for the mathematical problem are selected. A main code block cluster including a problem code block for the math problem and a plurality of problem code blocks for the math problem based on the fingerprint converted to an embedding vector using an artificial intelligence model trained to output at least one Obtain at least one of the following, and store a code that causes a new mathematical problem to be created using the obtained code block.
전술한 본 발명의 과제 해결 수단들에 따르면, 인공지능 모델을 통해 특정 수학 문제의 지문으로부터 해당 수학 문제에 대한 문제 코드 블록 및 해당 수학 문제에 대한 복수의 문제 코드 블록들을 포함하는 주요 코드 블록 군집을 쉽게 도출할 수 있다. According to the problem-solving means of the present invention described above, a main code block cluster including a problem code block for the mathematical problem and a plurality of problem code blocks for the mathematical problem is generated from the fingerprint of a specific mathematical problem through an artificial intelligence model. It can be easily derived.
또한, 본 발명에 따르면, 수학 문제를 생성하고자 하는 사용자로부터 수학 문제 지문을 수신하고, 해당 지문에 대한 문제 코드 블록을 출력하고, 해당 문제 코드 블록을 토대로 수학 문제를 생성함으로써, 프로그래밍 언어에 대한 이해가 없어도 수학적인 지식을 통해 사용자가 쉽게 수학 문제를 생성하도록 할 수 있다. In addition, according to the present invention, understanding of programming language is achieved by receiving a math problem fingerprint from a user who wants to create a math problem, outputting a problem code block for the fingerprint, and creating a math problem based on the problem code block. Even without , users can easily create math problems through mathematical knowledge.
도 1은 본 발명의 일 실시예에 따른 수학 문제 코드 제공 모델 생성 장치의 구성을 도시한 블록도이다. Figure 1 is a block diagram showing the configuration of a mathematical problem code providing model generating device according to an embodiment of the present invention.
도 2는 도 1에 도시된 수학 문제 코드 제공 모델 생성 장치에 의해 인공지능 모델을 훈련시키는 것에 대한 일례를 나타낸 도면이다. FIG. 2 is a diagram illustrating an example of training an artificial intelligence model using the model generating device for providing mathematical problem codes shown in FIG. 1.
도 3 및 도 4는 문제 코드 블록과 주석에 대한 일례를 나타낸 도면이다. Figures 3 and 4 are diagrams showing examples of problem code blocks and comments.
도 5 내지 도 7은 훈련 데이터 세트에 대한 일례를 나타낸 도면이다. Figures 5 to 7 are diagrams showing examples of training data sets.
도 8은 본 발명의 다른 실시예에 따른 수학 문제 코드 제공 모델 생성 방법을 설명하는 동작 흐름도이다. Figure 8 is an operation flowchart explaining a method for generating a model for providing mathematical problem codes according to another embodiment of the present invention.
도 9는 도 8에 도시된 수학 문제 코드 제공 모델 생성 방법의 단계들이 포함하는 세부 단계들을 나타낸 흐름도이다. FIG. 9 is a flowchart showing detailed steps included in the steps of the method for generating a mathematical problem code providing model shown in FIG. 8.
도 10은 본 발명의 또 다른 실시예에 따른 사용자 단말과 통신 연결된 수학 문제 생성 장치를 도시한 도면이다. Figure 10 is a diagram illustrating a mathematical problem generating device connected to communication with a user terminal according to another embodiment of the present invention.
도 11은 도 10에 도시된 수학 문제 생성 장치의 구성을 도시한 블록도이다. FIG. 11 is a block diagram showing the configuration of the mathematical problem generating device shown in FIG. 10.
도 12는 도 11에 도시된 수학 문제 생성 장치에 의해 수학 문제를 생성하는 것에 대한 일례를 나타낸 도면이다. FIG. 12 is a diagram illustrating an example of generating a math problem using the math problem generating device shown in FIG. 11.
도 13은 본 발명의 또 다른 실시예에 따른 수학 문제 생성 방법을 설명하는 동작 흐름도이다.Figure 13 is an operation flowchart explaining a method for generating a math problem according to another embodiment of the present invention.
이하에서는 첨부한 도면을 참조하여 본 발명을 상세히 설명하기로 한다. 다만, 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며, 여기에서 설명하는 실시예들로 한정되는 것은 아니다. 또한, 첨부된 도면은 본 명세서에 개시된 실시예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않는다. 여기에 사용되는 기술용어 및 과학용어를 포함하는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 일반적으로 이해하는 의미로 해석되어야 한다. 사전에 정의된 용어들은 관련기술문헌과 현재 개시된 내용에 부합하는 의미를 추가적으로 갖는 것으로 해석되어야 하며, 별도로 정의되지 않는 한 매우 이상적이거나 제한적인 의미로 해석되지 않는다.Hereinafter, the present invention will be described in detail with reference to the attached drawings. However, the present invention may be implemented in various different forms and is not limited to the embodiments described herein. In addition, the attached drawings are only intended to facilitate understanding of the embodiments disclosed in this specification, and the technical idea disclosed in this specification is not limited by the attached drawings. All terms, including technical and scientific terms, used herein should be interpreted as meanings commonly understood by those skilled in the art in the technical field to which the present invention pertains. Terms defined in the dictionary should be interpreted as having additional meanings consistent with the related technical literature and currently disclosed content, and should not be interpreted in a very ideal or limited sense unless otherwise defined.
도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 도면에 나타난 각 구성요소의 크기, 형태, 형상은 다양하게 변형될 수 있다. 명세서 전체에 대하여 동일/유사한 부분에 대해서는 동일/유사한 도면 부호를 붙였다. In order to clearly explain the present invention in the drawings, parts not related to the description are omitted, and the size, shape, and shape of each component shown in the drawings may be modified in various ways. Throughout the specification, identical/similar parts are given identical/similar reference numerals.
이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 “부” 등은 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 또한, 본 명세서에 개시된 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시 예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략하였다. The suffixes “module” and “part” for components used in the following description are given or used interchangeably only for the ease of preparing the specification, and do not have distinct meanings or roles in themselves. Additionally, in describing the embodiments disclosed in this specification, if it is determined that detailed descriptions of related known technologies may obscure the gist of the embodiments disclosed in this specification, the detailed descriptions are omitted.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결(접속, 접촉 또는 결합)"되어 있다고 할 때, 이는 "직접적으로 연결(접속, 접촉 또는 결합)"되어 있는 경우뿐만 아니라, 그 중간에 다른 부재를 사이에 두고 "간접적으로 연결 (접속, 접촉 또는 결합)"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함(구비 또는 마련)"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 "포함(구비 또는 마련)"할 수 있다는 것을 의미한다. Throughout the specification, when a part is said to be “connected (connected, contacted, or combined)” with another part, this means not only when it is “directly connected (connected, contacted, or combined),” but also when it is “connected (connected, contacted, or combined)” with another member in between. It also includes cases where they are “indirectly connected (connected, contacted, or combined).” Additionally, when a part is said to "include (equip or provide)" a certain component, this does not exclude other components, unless specifically stated to the contrary, but rather "includes (provides or provides)" other components. It means that you can.
본 명세서에서 사용되는 제1, 제2 등과 같이 서수를 나타내는 용어들은 하나의 구성 요소를 다른 구성요소로부터 구별하는 목적으로만 사용되며, 구성 요소들의 순서나 관계를 제한하지 않는다. 예를 들어, 본 발명의 제1구성요소는 제2구성요소로 명명될 수 있고, 유사하게 제2구성요소도 제1구성 요소로 명명될 수 있다. 본 명세서에서 사용되는 단수 표현의 형태들은 명백히 반대의 의미를 나타내지 않는 한 복수 표현의 형태들도 포함하는 것으로 해석되어야 한다. Terms representing ordinal numbers, such as first, second, etc., used in this specification are used only for the purpose of distinguishing one component from another component and do not limit the order or relationship of the components. For example, the first component of the present invention may be named a second component, and similarly, the second component may also be named a first component. As used herein, singular forms of expression should be construed to also include plural forms of expression, unless the contrary is clearly indicated.
이하에서 설명되는 통신 모듈은 다른 네트워크 장치와 유무선 연결을 통해 제어 신호 또는 데이터 신호와 같은 신호를 송수신하기 위해 필요한 하드웨어 및 소프트웨어를 포함하는 장치를 포함할 수 있다. 또한, 메모리는 통신 모듈로 입력되는 정보 및 데이터, 프로세서에 의해 수행되는 기능에 필요한 정보 및 데이터, 프로세서의 실행에 따라 생성된 데이터 중 적어도 어느 하나 이상을 저장할 수 있다. 메모리는 전원이 공급되지 않아도 저장된 정보를 계속 유지하는 비휘발성 저장장치 및 저장된 정보를 유지하기 위하여 전력을 필요로 하는 휘발성 저장장치를 통칭하는 것으로 해석되어야 한다. 메모리는 저장된 정보를 유지하기 위하여 전력이 필요한 휘발성 저장장치 외에 자기 저장 매체(magnetic storage media) 또는 플래시 저장 매체(flash storage media)를 포함할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다. 프로세서는 데이터를 제어 및 처리하는 다양한 종류의 장치들을 포함할 수 있다. 프로세서는 프로그램 내에 포함된 코드 또는 명령으로 표현된 기능을 수행하기 위해 물리적으로 구조화된 회로를 갖는, 하드웨어에 내장된 데이터 처리 장치를 의미할 수 있다. 일 예에서, 프로세서는 마이크로프로세서(microprocessor), 중앙처리장치(central processing unit: CPU), 프로세서 코어(processor core), 멀티프로세서(multiprocessor), ASIC(application-specific integrated circuit), FPGA(field programmable gate array) 등의 형태로 구현될 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다. The communication module described below may include a device including hardware and software necessary to transmit and receive signals such as control signals or data signals through wired or wireless connections with other network devices. Additionally, the memory may store at least one of information and data input to the communication module, information and data required for functions performed by the processor, and data generated according to execution of the processor. Memory should be interpreted as a general term for non-volatile storage devices that retain stored information even when power is not supplied, and volatile storage devices that require power to maintain stored information. Memory may include magnetic storage media or flash storage media in addition to volatile storage devices that require power to maintain stored information, but the scope of the present invention is not limited thereto. A processor may include various types of devices that control and process data. A processor may refer to a data processing device built into hardware that has physically structured circuitry to perform functions expressed by codes or instructions included in a program. In one example, the processor may include a microprocessor, central processing unit (CPU), processor core, multiprocessor, application-specific integrated circuit (ASIC), or field programmable gate (FPGA). array), etc., but the scope of the present invention is not limited thereto.
도 1은 본 발명의 일 실시예에 따른 수학 문제 코드 제공 모델 생성 장치(100)의 구성을 도시한 블록도이고, 도 2는 수학 문제 코드 제공 모델 생성 장치(100)에 의해 인공지능 모델을 훈련시키는 것에 대한 일례를 나타낸 도면이다. Figure 1 is a block diagram showing the configuration of a mathematical problem code providing model generating device 100 according to an embodiment of the present invention, and Figure 2 shows an artificial intelligence model trained by the mathematical problem code providing model generating device 100. This is a drawing showing an example of what to do.
도 1 및 도 2를 함께 참조하면, 수학 문제 코드 제공 모델 생성 장치(100)는 적어도 하나의 프로세서(130) 및 메모리(140)를 포함하고, 통신 모듈(110) 및 데이터베이스(120)를 더 포함할 수 있다. Referring to FIGS. 1 and 2 together, the mathematical problem code providing model generating device 100 includes at least one processor 130 and a memory 140, and further includes a communication module 110 and a database 120. can do.
통신 모듈(110)은 외부 장치 또는 서버와 정보 송수신을 수행하여 수학 문제 코드 제공 모델 생성에 필요한 데이터를 송수신할 수 있다.The communication module 110 may transmit and receive information with an external device or server to transmit and receive data necessary for generating a model for providing a mathematical problem code.
데이터베이스(120)는 수학 문제 코드 제공 모델 생성에 필요한 데이터가 저장되는 곳일 수 있다. 데이터베이스(120)는 메모리(140)의 일부 영역에 구축되거나 별도의 하드웨어로 구현될 수 있다. The database 120 may be a place where data necessary for creating a model for providing mathematical problem codes is stored. The database 120 may be built in a portion of the memory 140 or may be implemented as separate hardware.
프로세서(130)는 메모리(140)에 저장된 코드에 따라 동작을 수행한다. The processor 130 performs operations according to the code stored in the memory 140.
메모리(140)는 프로세서(130)와 전기적으로 연결되고, 프로세서(130)에서 수행되는 수학문제 코드 제공 모델 생성 프로그램이 저장된다. 메모리(140)는 프로세서(130)를 통해 실행될 때 프로세서(130)가 다음과 같은 기능 및 절차들을 수행하도록 야기하는 코드가 저장된다. The memory 140 is electrically connected to the processor 130 and stores a model generation program that provides mathematical problem codes performed by the processor 130. The memory 140 stores code that, when executed through the processor 130, causes the processor 130 to perform the following functions and procedures.
메모리(140)에는 학습 대상 수학 문제 데이터(210), 학습 대상 수학 문제 데이터(210)를 생성하는데 필요한 코드 블록(220) 및 코드 블록에 대한 주석 데이터(230)의 데이터를 임베딩 벡터로 변환하는 동작을 포함하는 전처리 과정을 수행하여 훈련 데이터 세트(300)를 생성한다. The memory 140 contains the learning target math problem data 210, the code block 220 required to generate the learning target math problem data 210, and the annotation data 230 for the code block. An operation of converting data into an embedding vector. A training data set 300 is generated by performing a preprocessing process including.
코드 블록(220)은, 변수 설정 코드 블록, 변수 조건 코드 블록, 결과 조건 코드 블록 및 결과 생성 코드 블록 중 적어도 하나 이상을 포함한다. 변수 설정 코드 블록은 학습 대상 수학 문제 데이터의 변수를 설정하는 코드 블록이다. 변수 조건 코드 블록은 변수의 조건을 설정하는 코드 블록이다. 결과 조건 코드 블록은 학습 대상 수학 문제 데이터의 정답 및 오답에 대한 조건을 설정하는 코드 블록이다. 결과 생성 코드 블록은 변수 설정 코드 블록 및 변수 조건 설정 코드 블록을 통해 생성되는 변수를 기초로, 정답의 조건을 만족하는 하나의 정답과 오답의 조건을 만족하는 하나 이상의 오답을 생성하는 코드 블록이다. 주석(230)은, 변수 설정 코드 블록, 변수 조건 코드 블록, 결과 조건 코드 블록 및 결과 생성 코드 블록 중 적어도 하나 이상의 블록에 대한 설명을 포함한다. The code block 220 includes at least one of a variable setting code block, a variable condition code block, a result condition code block, and a result generation code block. The variable setting code block is a code block that sets the variables of the math problem data to be studied. A variable condition code block is a code block that sets the conditions of a variable. The result condition code block is a code block that sets conditions for the correct and incorrect answers of the math problem data to be studied. The result generation code block is a code block that generates one correct answer that satisfies the conditions of the correct answer and one or more incorrect answers that satisfy the conditions of the incorrect answer, based on the variables created through the variable setting code block and the variable condition setting code block. The annotation 230 includes a description of at least one block among a variable setting code block, a variable condition code block, a result condition code block, and a result generation code block.
메모리(140)에는 훈련 데이터 세트(300)에 포함된 특정 코드 블록과 특정 코드 블록과 상이한 코드 블록을 비교하여 코드 유사도를 산출하도록 야기하는 코드가 저장된다. 메모리(140)에는 코드 유사도를 기초로, 특정 코드 블록과 특정 코드 블록과 상이한 코드 블록을 군집화 하여 코드 블록 군집을 생성하도록 야기하는 코드가 저장된다. 메모리(140)에는 코드 유사도가 기설정된 값 이상이면, 특정 코드 블록과 특정 코드 블록과 상이한 코드 블록을 군집화 하여 코드 블록 군집을 생성하도록 야기하는 코드가 저장된다. The memory 140 stores a code that causes code similarity to be calculated by comparing a specific code block included in the training data set 300 with a different code block. The memory 140 stores a code that causes a code block cluster to be created by clustering a specific code block and a code block different from the specific code block based on code similarity. If the code similarity is greater than a preset value, the memory 140 stores a code that causes a code block cluster to be generated by clustering a specific code block and a code block different from the specific code block.
코드 유사도는 변수 설정 코드 유사도, 변수 조건 코드 유사도, 결과 조건 코드 유사도 및 결과 생성 코드 유사도 중 적어도 하나 이상을 포함한다. 변수 설정 코드 유사도는 특정 코드 블록에 포함된 변수 설정 코드 블록과 특정 코드 블록과 상이한 코드 블록에 포함된 변수 설정 코드 블록을 비교하여 도출된 유사도이다. 변수 조건 코드 유사도는 특정 코드 블록에 포함된 변수 조건 코드 블록과 특정 코드 블록과 상이한 코드 블록에 포함된 변수 조건 코드 블록을 비교하여 도출된 유사도이다. 결과 조건 코드 유사도는 특정 코드 블록에 포함된 결과 조건 코드 블록과 특정 코드 블록과 상이한 코드 블록에 포함된 결과 조건 코드 블록을 비교하여 도출된 유사도이다. 결과 생성 코드 유사도는 특정 코드 블록에 포함된 결과 생성 코드 블록과 상기 특정 코드 블록과 상이한 코드 블록에 포함된 결과 생성 코드 블록을 비교하여 도출된 유사도이다. Code similarity includes at least one of variable setting code similarity, variable condition code similarity, result condition code similarity, and result generation code similarity. Variable setting code similarity is a similarity derived by comparing a variable setting code block included in a specific code block with a variable setting code block included in a code block different from the specific code block. Variable condition code similarity is a similarity derived by comparing a variable condition code block included in a specific code block with a variable condition code block included in a code block different from the specific code block. Resulting condition code similarity is the similarity derived by comparing a result condition code block included in a specific code block with a result condition code block included in a code block different from the specific code block. Result generation code similarity is a similarity derived by comparing a result generation code block included in a specific code block with a result generation code block included in a code block different from the specific code block.
메모리(140)에는 코드 블록 군집을 코드 블록 군집에 대응되는 훈련 데이터 세트(300)에 포함된 학습 대상 수학 문제 데이터 및 훈련 데이터 세트(300)에 포함된 주석과 매칭하도록 야기하는 코드가 저장된다. 훈련 데이터 세트(300)는 임베딩 벡터로 변환된 학습 대상 수학 문제 데이터, 코드 블록, 주석 및 코드 블록 군집이 매칭되어 형성된 데이터 테이블일 수 있다. The memory 140 stores a code that causes the code block cluster to match the math problem data to be learned included in the training data set 300 corresponding to the code block cluster and the annotations included in the training data set 300. The training data set 300 may be a data table formed by matching math problem data to be learned converted into an embedding vector, code blocks, annotations, and code block clusters.
코드 블록 군집은 변수 설정 코드 군집, 변수 조건 코드 군집, 결과 조건 코드 군집 및 결과 생성 코드 군집 중 적어도 하나 이상을 포함한다. 변수 설정 코드 군집은 변수 설정 코드 유사도를 기초로, 훈련 데이터 세트(300)에 포함된 특정 코드 블록에 포함된 변수 설정 코드 블록과 특정 코드 블록과 상이한 코드 블록에 포함된 변수 설정 코드 블록을 군집화한 코드 군집이다. 변수 조건 코드 군집은 변수 조건 코드 유사도를 기초로, 특정 코드 블록에 포함된 변수 조건 코드 블록과 특정 코드 블록과 상이한 코드 블록에 포함된 변수 조건 코드 블록을 군집화한 코드 군집이다. 결과 조건 코드 군집은 결과 조건 코드 유사도를 기초로, 특정 코드 블록에 포함된 결과 조건 코드 블록과 특정 코드 블록과 상이한 코드 블록에 포함된 결과 조건 코드 블록을 군집화한 코드 군집이다. 결과 생성 코드 군집은 결과 생성 코드 유사도를 기초로, 특정 코드 블록에 포함된 결과 생성 코드 블록과 특정 코드 블록과 상이한 코드 블록에 포함된 결과 생성 코드 블록을 군집화한 코드 군집이다. The code block cluster includes at least one of a variable setting code cluster, a variable condition code cluster, a result condition code cluster, and a result generation code cluster. Variable setting code clustering clusters variable setting code blocks included in a specific code block included in the training data set 300 and variable setting code blocks included in a code block different from the specific code block, based on variable setting code similarity. It is a cluster of codes. The variable condition code cluster is a code cluster that clusters variable condition code blocks included in a specific code block and variable condition code blocks included in a code block different from the specific code block, based on variable condition code similarity. The result condition code cluster is a code cluster that clusters result condition code blocks included in a specific code block and result condition code blocks included in a code block different from the specific code block, based on result condition code similarity. The result generation code cluster is a code cluster that clusters result generation code blocks included in a specific code block and result generation code blocks included in a code block different from the specific code block, based on result generation code similarity.
메모리(140)에는 훈련 데이터 세트(300)의 학습을 통해, 특정 수학 문제의 지문을 입력 받아 특정 수학 문제에 대한 문제 코드 블록 및 특정 수학 문제에 대한 복수의 문제 코드 블록을 포함하는 주요 코드 블록 군집 중 적어도 하나 이상을 출력하도록 훈련된 인공지능 모델(400)을 생성하도록 야기하는 코드가 저장된다. The memory 140 receives the fingerprint of a specific math problem through learning of the training data set 300, and contains a main code block cluster containing a problem code block for a specific math problem and a plurality of problem code blocks for a specific math problem. A code that causes the artificial intelligence model 400 to be trained to output at least one of the following is stored.
문제 코드 블록은 수학 문제의 변수를 설정하는 변수 설정 코드 블록, 변수의 조건을 설정하는 변수 조건 코드 블록, 수학 문제의 정답과 오답의 조건을 설정하는 결과 조건 코드 블록 및 변수 설정 코드 블록 및 변수 조건 코드 블록을 통해 생성되는 변수를 기초로, 정답의 조건을 만족하는 하나의 정답과, 오답의 조건을 만족하는 하나 이상의 오답을 생성하는 결과 생성 코드 블록 중 적어도 하나 이상을 포함한다. The problem code block includes the variable setting code block that sets the variables of the math problem, the variable condition code block that sets the conditions for the variables, the result condition code block that sets the conditions for the correct and incorrect answers in the math problem, and the variable setting code block and variable conditions. Based on the variables created through the code block, it includes at least one of a result generation code block that generates one correct answer that satisfies the conditions of the correct answer and one or more incorrect answers that satisfy the conditions of the incorrect answer.
인공지능 모델(400)은 훈련 데이터 세트의 코드 블록에 포함된 변수 설정 코드 블록, 변수 조건 코드 블록, 결과 조건 코드 블록 및 결과 생성 코드 블록 간의 코드 블록 위치 관계를 학습한다. 인공지능 모델(400)은 특정 수학 문제의 지문과 훈련 데이터 세트(300)에 포함된 학습 대상 수학 문제 데이터 및 훈련 데이터 세트(300)에 포함된 주석 중 적어도 하나 이상을 비교하여 지문 유사도를 산출한다. The artificial intelligence model 400 learns the code block position relationship between the variable setting code block, variable condition code block, result condition code block, and result generation code block included in the code block of the training data set. The artificial intelligence model 400 calculates fingerprint similarity by comparing the fingerprint of a specific math problem with the learning target math problem data included in the training data set 300 and at least one of the annotations included in the training data set 300. .
인공지능 모델(400)은 지문 유사도를 기초로, 훈련 데이터 세트(300)에 포함된 학습 대상 수학 문제 데이터 또는 훈련 데이터 세트(300)에 포함된 주석과 대응되는 코드 블록 군집을 선정한다. 인공지능 모델(400)은 지문 유사도가 기설정된 값 이상이면, 훈련 데이터 세트(300)에 포함된 학습 대상 수학 문제 데이터 또는 훈련 데이터 세트(300)에 포함된 주석과 대응되는 코드 블록 군집을 선정한다. 인공지능 모델(400)은 코드 블록 군집에 포함된 코드 블록 중 기설정된 기준을 만족하는 코드 블록을 수학 문제에 대한 문제 코드 블록으로 출력하거나, 코드 블록 군집을 주요 코드 블록 군집으로 출력하도록 훈련된 인공지능 모델이다. 인공지능 모델은 지도 학습 모델일 수 있다. 보다 상세하게는, 인공지능 모델은 오미쿠지 알고리즘 기반의 인공지능 모델일 수 있다. The artificial intelligence model 400 selects a code block cluster corresponding to the learning target math problem data included in the training data set 300 or the annotation included in the training data set 300, based on fingerprint similarity. If the fingerprint similarity is more than a preset value, the artificial intelligence model 400 selects a code block cluster corresponding to the learning target math problem data included in the training data set 300 or the annotation included in the training data set 300. . The artificial intelligence model 400 is an artificial intelligence trained to output code blocks that satisfy preset criteria among code blocks included in the code block cluster as problem code blocks for mathematical problems, or to output the code block cluster as the main code block cluster. It is an intelligence model. The artificial intelligence model may be a supervised learning model. More specifically, the artificial intelligence model may be an artificial intelligence model based on the Omikuji algorithm.
도 3 및 도 4는 코드 블록(220)과 주석(230)에 대한 일례를 나타낸 도면이다.3 and 4 are diagrams illustrating an example of a code block 220 and annotation 230.
도 2 내지 도 4를 함께 참조하면, 코드 블록(220)은 변수 설정 코드 블록(221), 변수 조건 코드 블록(222), 결과 생성 코드 블록(223) 및 결과 조건 코드 블록(224) 중 적어도 하나 이상을 포함한다. 주석(230)은 변수 설정 코드 블록(221)에 대한 변수 설정 주석(231), 변수 조건 코드 블록(222)에 대한 변수 조건 주석(232), 정답 생성 코드 블록(223)에 대한 결과 생성 주석(미도시) 및 결과 조건 코드 블록(224)에 대한 정답 조건 주석(미도시) 중 적어도 하나 이상을 포함한다. Referring to FIGS. 2 to 4 together, the code block 220 includes at least one of a variable setting code block 221, a variable condition code block 222, a result generation code block 223, and a result condition code block 224. Includes more. The annotation 230 includes the variable setting annotation 231 for the variable setting code block 221, the variable condition annotation 232 for the variable condition code block 222, and the result generation annotation for the answer generation code block 223 ( (not shown) and a correct answer condition annotation (not shown) for the result condition code block 224.
문제 코드 블록(220)은 수학 문제를 생성하는 코드 블록이다. 보다 상세하게는, 문제 코드 블록(220)은 특정 수학 문제와 동일한 수학 문제 유형에서 변수, 오답 및 정답이 변경된 다양한 수학 문제를 생성하도록 하는 코드 블록이다. 예를 들면, ‘a=x이고, a+b=y일 때, b의 값을 구하시오’와 같은 수학 문제 유형에서 변수 설정 코드 블록(221)은 a=x, a+b=y와 같은 전체적인 변수와 x값의 범위 및 y값의 범위가 설정되는 코드 블록일 수 있다. 보다 상세하게는, 변수 설정 코드 블록(221)은 x 값의 범위가 숫자 2 내지 10 사이의 값이고, y값의 범위가 1 내지 7 사이의 값이 되도록 설정되는 코드 블록일 수 있다. 변수 조건 코드 블록(222)은 x값과 y값이 소수여야 한다는 조건, 0이면 안 된다는 조건 등의 변수 조건이 설정된 코드 블록일 수 있다. 결과 조건 코드 블록(224)은 b의 값이 0이면 안 된다는 조건, 양수여야 한다는 조건 등이 설정된 코드 블록일 수 있다. 결과 생성 코드 블록(223)은 변수 설정 코드 블록(221)과 변수 조건 코드 블록(222)을 통해 생성된 변수를 기초로 정답 생성 코드 블록(223)이 설정한 정답 및 오답 조건을 만족하는 하나 이상의 오답과 정답을 생성하도록 설정된 코드 블록이다. The problem code block 220 is a code block that generates a math problem. More specifically, the problem code block 220 is a code block that generates various math problems in which variables, incorrect answers, and correct answers are changed in the same math problem type as a specific math problem. For example, in a math problem type such as 'If a=x and a+b=y, find the value of b', the variable setting code block 221 is It may be a code block in which the overall variables, x-value range, and y-value range are set. More specifically, the variable setting code block 221 may be a code block that is set so that the x value range is between 2 and 10, and the y value range is between 1 and 7. The variable condition code block 222 may be a code block in which variable conditions are set, such as the condition that the x value and the y value must be prime or that they must not be 0. The resulting condition code block 224 may be a code block in which conditions such as a condition that the value of b must not be 0, a condition that it must be a positive number, etc. are set. The result generation code block 223 is one or more that satisfies the correct answer and incorrect answer conditions set by the correct answer generation code block 223 based on the variables created through the variable setting code block 221 and the variable condition code block 222. This is a code block set up to generate incorrect and correct answers.
도 5는 내지 도 7은 훈련 데이터 세트(300)에 대한 일례를 나타낸 도면이다. 구체적으로, 도 5는 수학 문제, 주석, 코드 블록이 서로 매칭된 데이터 테이블 형태의 훈련 데이터 세트를 나타낸 도면이고, 도 6은 수학 문제와 주석이 매칭된 다른 형태의 훈련 데이터 세트를 나타낸 도면이고, 도 7은 도 6에 도시된 훈련 데이터 세트를 임베딩 벡터로 변환한 것에 대한 일례를 나타낸 도면이다. 도 5 및 도 6에 도시된 훈련 데이터 세트는 임베딩 벡터로 변환되지 않은 상태의 훈련 데이터 세트를 도시한 도면이다. Figures 5 to 7 are diagrams showing an example of the training data set 300. Specifically, Figure 5 is a diagram showing a training data set in the form of a data table in which mathematical problems, annotations, and code blocks are matched to each other, and Figure 6 is a diagram showing another type of training data set in which mathematical problems and annotations are matched. FIG. 7 is a diagram showing an example of converting the training data set shown in FIG. 6 into an embedding vector. The training data set shown in FIGS. 5 and 6 is a diagram showing a training data set that has not been converted to an embedding vector.
도 5를 참조하면, 훈련 데이터 세트(300)는 학습 대상 수학 문제 데이터(510), 학습 대상 수학 문제 데이터(510)에 대한 코드 블록(530)에 포함된 변수 설정 코드 블록, 변수 조건 코드 블록, 정답 조건 코드 블록 및 정답 생성 코드 블록 각각에 대한 주석(520)을 서로 매칭한 데이터 테이블이다. Referring to FIG. 5, the training data set 300 includes learning target math problem data 510, a variable setting code block included in the code block 530 for the learning target math problem data 510, a variable condition code block, This is a data table that matches the annotations 520 for each of the answer condition code block and the answer generation code block.
도 6 및 도 7을 참조하면, 훈련 데이터 세트(300)는 학습 대상 수학 문제 데이터(610), 학습 대상 수학 문제 데이터(610)에 대한 코드 블록(미도시), 코드 블록에 대한 주석 데이터(620)을 서로 매칭한 데이터 테이블일 수 있다. 도 6에 도시된 데이터 테이블에 포함된 데이터들을 임베딩 벡터로 변환하면, 도 7과 같이 나타날 수 있다. Referring to Figures 6 and 7, the training data set 300 includes math problem data to be learned 610, code blocks (not shown) for the math problem data to be learned 610, and annotation data 620 for the code blocks. ) may be a data table that matches each other. If the data included in the data table shown in FIG. 6 is converted into an embedding vector, it may appear as shown in FIG. 7.
도 8은 본 발명의 다른 실시예에 따른 수학 문제 코드 제공 모델 생성 방법을 설명하는 동작 흐름도이고, 도 9는 수학 문제 코드 제공 모델 생성 방법의 단계들이 포함하는 세부 단계들을 나타낸 흐름도이다. 이하에서 도 8 및 도 9를 참조하여, 수학 문제 코드 제공 모델 생성 방법을 설명하도록 한다. 이하에서 설명될 수학 문제 코드 제공 모델 생성 방법의 각 단계들은 앞서 도 1 내지 도 7을 참조하여 설명한 수학 문제 코드 제공 모델 생성 장치(100)에 의해 수행될 수 있다. 따라서, 앞서 도 1 내지 도 7을 참조하여 설명한 본 발명의 실시예에 대한 내용은 이하에서 설명될 실시예에도 동일하게 적용될 수 있으며, 이하에서 상술한 설명과 중복되는 내용은 생략하도록 한다. 이하에서 설명되는 단계들은 반드시 순서대로 수행되어야 하는 것은 아니고, 단계들의 순서는 다양하게 설정될 수 있으며, 단계들은 거의 동시에 수행될 수도 있다.FIG. 8 is an operation flowchart explaining a method for generating a mathematical problem code providing model according to another embodiment of the present invention, and FIG. 9 is a flowchart showing detailed steps included in the steps of the method for generating a mathematical problem code providing model. Hereinafter, with reference to FIGS. 8 and 9, a method for generating a model for providing a mathematical problem code will be described. Each step of the method for generating a mathematical problem code providing model to be described below may be performed by the mathematical problem code providing model generating apparatus 100 previously described with reference to FIGS. 1 to 7 . Accordingly, the contents of the embodiments of the present invention previously described with reference to FIGS. 1 to 7 can be equally applied to the embodiments described below, and any content that overlaps with the description described above will be omitted below. The steps described below do not necessarily have to be performed in order, the order of the steps may be set in various ways, and the steps may be performed almost simultaneously.
도 8을 참조하면, 수학 문제 코드 제공 모델 생성 방법은 훈련 데이터 세트 생성 단계(S1100) 및 인공지능 모델 훈련 단계(S1200)를 포함한다. Referring to FIG. 8, the method of generating a model for providing a mathematical problem code includes a training data set creation step (S1100) and an artificial intelligence model training step (S1200).
훈련 데이터 세트 생성 단계(S1100)는 학습 대상 수학 문제 데이터, 학습 대상 수학 문제 데이터를 생성하는데 필요한 코드 블록 및 코드 블록에 대한 주석 데이터를 임베딩 벡터로 변환하는 동작을 포함하는 전처리 과정을 수행하여 훈련 데이터 세트를 생성하는 단계이다. The training data set generation step (S1100) performs a preprocessing process including converting the learning target math problem data, the code blocks required to generate the learning target math problem data, and the annotation data for the code blocks into an embedding vector to generate training data. This is the step of creating a set.
인공지능 모델 훈련 단계(S1200)는 훈련 데이터 세트를 기초로, 특정 수학 문제의 지문으로부터 수학 문제에 대한 문제 코드 블록 및 수학 문제에 대한 복수의 문제 코드 블록을 포함하는 주요 코드 블록 군집 중 적어도 하나를 출력하도록 훈련된 인공지능 모델을 생성하는 단계이다. In the artificial intelligence model training step (S1200), based on the training data set, at least one of the main code block clusters including a problem code block for the mathematics problem and a plurality of problem code blocks for the mathematics problem is extracted from the fingerprint of a specific mathematics problem. This is the step of creating an artificial intelligence model that has been trained to output.
인공지능 모델은 수학 문제의 지문과 훈련 데이터 세트에 포함된 학습 대상 수학 문제 데이터 및 훈련 데이터 세트에 포함된 주석 중 적어도 하나 이상을 비교하여 지문 유사도를 산출한다. 인공지능 모델은 지문 유사도를 기초로 훈련 데이터 세트에 포함된 학습 대상 수학 문제 데이터 또는 훈련 데이터 세트에 포함된 주석과 대응되는 코드 블록 군집을 선정한다. 인공지능 모델은 코드 블록 군집에 포함된 코드 블록 중 기설정된 기준을 만족하는 코드 블록을 수학 문제에 대한 문제 코드 블록으로 출력하거나, 코드 블록 군집을 주요 코드 블록 군집으로 출력하도록 훈련된 인공지능 모델이다. The artificial intelligence model calculates fingerprint similarity by comparing the fingerprint of the math problem with at least one of the target math problem data included in the training data set and annotations included in the training data set. The artificial intelligence model selects a cluster of code blocks corresponding to the math problem data to be learned or annotations included in the training data set based on fingerprint similarity. The artificial intelligence model is an artificial intelligence model that is trained to output code blocks that meet preset criteria among code blocks included in a code block cluster as problem code blocks for math problems, or output code block clusters as main code block clusters. .
도 9를 참조하면, 훈련 데이터 세트 생성 단계(S1100)는 코드 유사도 도출 단계(S1110), 코드블록 군집 생성 단계(S1120) 및 데이터 매칭 단계(S1130)를 포함한다. Referring to FIG. 9, the training data set generation step (S1100) includes a code similarity derivation step (S1110), a code block cluster generation step (S1120), and a data matching step (S1130).
코드 유사도 도출 단계(S1210)는 훈련 데이터 세트에 포함된 특정 코드 블록과 훈련 데이터 세트에 포함된 특정 코드 블록과 상이한 코드 블록을 비교하여 코드 유사도를 산출하는 단계이다. 코드블록 군집 생성 단계(S1120)는 코드 유사도를 기초로, 특정 코드 블록과 특정 코드 블록과 상이한 코드 블록을 군집화하여 코드 블록 군집을 생성하는 단계이다. 데이터 매칭 단계(S1130)는 코드 블록 군집을 코드 블록 군집에 대응되는 훈련 데이터 세트에 포함된 학습 대상 수학 문제 데이터 및 훈련 데이터 세트에 포함된 주석과 매칭하는 단계이다. The code similarity derivation step (S1210) is a step of calculating code similarity by comparing a specific code block included in the training data set with a code block different from the specific code block included in the training data set. The code block cluster generation step (S1120) is a step of generating a code block cluster by clustering a specific code block and a code block different from the specific code block based on code similarity. The data matching step (S1130) is a step of matching the code block cluster with the learning target math problem data included in the training data set corresponding to the code block cluster and the annotations included in the training data set.
도 10은 본 발명의 또 다른 실시예에 따른 사용자 단말(1100)과 통신 연결된 수학 문제 생성 장치(1000)를 나타낸 도면이다. Figure 10 is a diagram showing a mathematical problem generating device 1000 connected to communication with a user terminal 1100 according to another embodiment of the present invention.
도 10을 참조하면, 수학 문제 생성 장치(1000)은 유선 또는 무선 통신망을 통해 사용자 단말(1100)과 상호 연결된다. 통신망은 근거리 통신망(Local Area Network; LAN), 광역 통신망(Wide Area Network; WAN) 또는 부가가치 통신망(Value Added Network; VAN) 등과 같은 유선 네트워크나 이동 통신망(mobile radio communication network) 또는 위성 통신망 등과 같은 모든 종류의 무선 네트워크로 구현될 수 있다. 수학 문제 생성 장치(1000)은 SaaS (Software as a Service), PaaS (Platform as a Service) 또는 IaaS (Infrastructure as a Service)와 같은 클라우드 컴퓨팅 서버로 형성될 수 있다. 사용자 단말(1100)은 예를 들어, 웹 브라우저(WEB Browser)가 탑재된 노트북, 데스크톱(desktop), 랩톱(laptop), 휴대성과 이동성이 보장되는 무선 통신 장치 또는 스마트폰, 터치패드를 포함하는 태블릿 PC 등과 같은 모든 종류의 핸드헬드(Handheld) 기반의 무선 통신 장치를 의미할 수 있다.Referring to FIG. 10, the math problem generating device 1000 is interconnected with the user terminal 1100 through a wired or wireless communication network. A communication network is any wired network such as a Local Area Network (LAN), Wide Area Network (WAN), or Value Added Network (VAN), a mobile radio communication network, or a satellite communication network. It can be implemented as any type of wireless network. The math problem generating device 1000 may be formed as a cloud computing server such as Software as a Service (SaaS), Platform as a Service (PaaS), or Infrastructure as a Service (IaaS). The user terminal 1100 is, for example, a laptop equipped with a web browser, a desktop, a laptop, a wireless communication device or smartphone that ensures portability and mobility, and a tablet including a touchpad. It can refer to all types of handheld-based wireless communication devices such as PCs, etc.
사용자 단말(1100)은 통신 모듈, 입출력 모듈, 적어도 하나의 프로세서, 메모리를 포함한다. 사용자 단말(1100)의 통신 모듈은 수학 문제 생성 장치(1000)과의 정보 송수신을 수행할 수 있다. 사용자 단말(1100)의 입출력 모듈은 외부로부터 사용자 단말(1100)로 전송되는 정보, 데이터 등을 입력 받거나, 사용자 단말(1100)이 보유한 정보, 데이터 등을 외부로 출력할 수 있다. 예컨데, 사용자 단말(1100)의 입출력 모듈은 디스플레이, 터치패드, 스피커 및 마이크 등을 포함할 수 있다. 사용자 단말(1100)의 프로세서는 메모리와 전기적으로 연결되고, 메모리에 저장된 코드를 실행하여 동작한다. 사용자 단말(1100)의 메모리는 프로세서와 전기적으로 연결되고, 프로세서에서 수행되는 적어도 하나의 코드가 저장된다. 사용자 단말(1100)의 메모리는 프로세서를 통해 실행될 때, 프로세서가 다음과 같은 기능 및 절차들을 수행하도록 야기하는 코드가 저장된다. The user terminal 1100 includes a communication module, an input/output module, at least one processor, and a memory. The communication module of the user terminal 1100 may transmit and receive information with the math problem generating device 1000. The input/output module of the user terminal 1100 may receive information or data transmitted to the user terminal 1100 from the outside, or may output information or data held by the user terminal 1100 to the outside. For example, the input/output module of the user terminal 1100 may include a display, a touch pad, a speaker, and a microphone. The processor of the user terminal 1100 is electrically connected to the memory and operates by executing the code stored in the memory. The memory of the user terminal 1100 is electrically connected to the processor and stores at least one code executed by the processor. The memory of the user terminal 1100 stores code that, when executed through the processor, causes the processor to perform the following functions and procedures.
사용자 단말(1100)의 메모리에는 수학 문제 생성 장치(1000)로 수학 문제에 대한 지문을 송신하도록 야기하는 코드가 저장된다. 사용자 단말(1100)의 메모리에는 수학 문제 생성 장치(1000)로부터 수학 문제에 대한 문제 코드 블록 또는 수학 문제에 대한 복수의 문제 코드 블록들을 포함하는 주요 코드 블록 군집을 수신하여 입출력 모듈에 출력하도록 야기하는 코드가 저장된다. 사용자 단말(1100)의 메모리에는 수학 문제에 대한 문제 코드 블록 또는 수학 문제에 대한 복수의 문제 코드 블록 중 특정 문제 코드 블록에 대한 선택 입력을 수학 문제 생성 장치(1000)로 송신하도록 야기하는 코드가 저장된다. 사용자 단말(1100)의 메모리에는 수학 문제 생성 장치(1000)로부터 선택 입력에 대응되는 문제 코드 블록 또는 특정 문제 코드 블록을 통해 생성된 수학 문제를 수신하도록 야기하는 코드가 저장된다. A code that causes a fingerprint for a math problem to be transmitted to the math problem generating device 1000 is stored in the memory of the user terminal 1100 . The memory of the user terminal 1100 receives a problem code block for a math problem or a main code block cluster including a plurality of problem code blocks for a math problem from the math problem generating device 1000 and causes it to be output to the input/output module. The code is saved. The memory of the user terminal 1100 stores a code that causes a problem code block for a math problem or a selection input for a specific problem code block among a plurality of problem code blocks for a math problem to be transmitted to the math problem generating device 1000. do. A code that causes the user terminal 1100 to receive a math problem generated through a problem code block or a specific problem code block corresponding to a selection input from the math problem generating device 1000 is stored in the memory of the user terminal 1100 .
도 11은 수학 문제 생성 장치(1000)의 구성을 도시한 블록도이고, 도 12는 수학 문제 생성 장치(1000)에 의해 수학 문제를 생성하는 것에 대한 일례를 나타낸 도면이다. FIG. 11 is a block diagram showing the configuration of the math problem generating device 1000, and FIG. 12 is a diagram showing an example of generating a math problem by the math problem generating device 1000.
도 10 내지 도 12를 함께 참조하면, 수학 문제 생성 장치(1000)은 적어도 하나의 프로세서(1030) 및 메모리(1040)를 포함하고, 통신 모듈(1010) 및 데이터베이스(1020)를 더 포함할 수 있다. Referring to FIGS. 10 to 12 together, the math problem generating device 1000 includes at least one processor 1030 and a memory 1040, and may further include a communication module 1010 and a database 1020. .
통신 모듈(1010)은 외부 장치 또는 서버와 정보 송수신을 수행하여 수학 문제 생성에 필요한 데이터를 송수신할 수 있다.The communication module 1010 can transmit and receive data necessary for creating math problems by exchanging information with an external device or server.
데이터베이스(1020)는 수학 문제 생성에 필요한 데이터가 저장되는 곳일 수 있다. 데이터베이스(1020)는 메모리(1040)의 일부 영역에 구축되거나 별도의 하드웨어로 구현될 수 있다. The database 1020 may be a place where data necessary for creating math problems is stored. The database 1020 may be built in a portion of the memory 1040 or may be implemented as separate hardware.
프로세서(1030)는 메모리(1040)에 저장된 코드에 따라 동작을 수행한다. 메모리(1040)는 프로세서(1030)와 전기적으로 연결되고, 프로세서(1040)에서 수행되는 수학문제 생성 프로그램이 저장된다. 메모리(1040)는 프로세서(1030)를 통해 실행될 때 프로세서(1040)가 다음과 같은 기능 및 절차들을 수행하도록 야기하는 코드가 저장된다. The processor 1030 performs operations according to the code stored in the memory 1040. The memory 1040 is electrically connected to the processor 1030 and stores a math problem generation program performed by the processor 1040. The memory 1040 stores code that, when executed through the processor 1030, causes the processor 1040 to perform the following functions and procedures.
메모리(1040)에는 수학 문제에 대한 지문(1200)을 획득하고, 지문을 임베딩 벡터로 변환하도록 야기하는 코드가 저장된다. 보다 상세하게는, 메모리(1040)에는 사용자 단말(1100)로부터 수학 문제에 대한 지문(1200)을 수신하도록 야기하는 코드가 저장된다. 메모리(1040)에는 지문을 임베딩 벡터로 변환하도록 야기하는 코드가 저장된다. The memory 1040 stores a code that causes the fingerprint 1200 for a math problem to be obtained and the fingerprint to be converted into an embedding vector. More specifically, a code that causes a fingerprint 1200 for a math problem to be received from the user terminal 1100 is stored in the memory 1040 . Memory 1040 stores a code that causes the fingerprint to be converted into an embedding vector.
메모리(1040)에는 수학 문제 코드 제공 모델(1300)을 이용하여, 임베딩 벡터로 변환된 지문을 기초로 수학 문제에 대한 문제 코드 블록(1400) 및 수학 문제에 대한 복수의 문제 코드 블록을 포함하는 주요 코드 블록 군집 중 적어도 하나 이상을 획득하도록 야기하는 코드가 저장된다. 여기서, 수학 문제 코드 제공 모델(1300)은 전처리된 학습 대상 수학 문제 데이터, 학습 대상 수학 문제 데이터를 생성하는데 필요한 코드 블록 및 해당 코드 블록에 대한 주석 데이터를 포함하는 훈련 데이터 세트의 학습을 통해, 특정 수학 문제의 지문을 입력 받아 수학 문제에 대한 문제 코드 블록 및 수학 문제에 대한 복수의 문제 코드 블록을 포함하는 주요 코드 블록 군집 중 적어도 하나를 출력하도록 훈련된다. 또한, 수학 문제 코드 제공 모델(1300)은 수학 문제의 지문과 훈련 데이터 세트에 포함된 학습 대상 수학 문제 데이터 및 훈련 데이터 세트에 포함된 주석 중 적어도 하나 이상을 비교하여 지문 유사도를 산출하고, 지문 유사도를 기초로, 훈련 데이터 세트에 포함된 학습 대상 수학 문제 데이터 또는 훈련 데이터 세트에 포함된 주석과 대응되는 코드 블록 군집을 선정하고, 그리고, 상기 코드 블록 군집에 포함된 코드 블록들 중 기설정된 기준을 만족하는 코드 블록을 상기 수학 문제에 대한 문제 코드 블록으로 출력하거나, 상기 코드 블록 군집을 상기 주요 코드 블록 군집으로 출력하도록 훈련될 수 있다.The memory 1040 includes a problem code block 1400 for a math problem and a plurality of problem code blocks for a math problem based on a fingerprint converted to an embedding vector using the math problem code provision model 1300. Code that causes at least one of the code block clusters to be obtained is stored. Here, the math problem code provision model 1300 learns a specific training data set including preprocessed math problem data to be learned, code blocks required to generate the math problem data to be learned, and annotation data for the code blocks. It is trained to receive a fingerprint of a math problem as an input and output at least one of a problem code block for the math problem and a major code block cluster containing a plurality of problem code blocks for the math problem. In addition, the math problem code providing model 1300 calculates fingerprint similarity by comparing the fingerprint of the math problem with at least one of the learning target math problem data included in the training data set and the annotations included in the training data set, and calculates the fingerprint similarity. Based on this, a code block cluster corresponding to the learning target math problem data included in the training data set or annotations included in the training data set is selected, and a preset standard is applied among the code blocks included in the code block cluster. It can be trained to output a satisfying code block as a problem code block for the math problem, or to output the code block cluster as the main code block cluster.
문제 코드 블록은 수학 문제의 변수를 설정하는 변수 설정 코드 블록, 변수의 조건을 설정하는 변수 조건 코드 블록, 수학 문제의 정답 및 오답에 대한 조건을 설정하는 결과 조건 코드 블록 및 변수 설정 코드 블록 및 변수 조건 코드 블록을 통해 생성되는 변수를 기초로 정답의 조건을 만족하는 하나의 정답과 오답의 조건을 만족하는 하나 이상의 오답을 생성하는 결과 생성 코드 블록 중 적어도 하나 이상을 포함한다. 수학 문제 코드 제공 모델(1300)은 학습 대상 수학 문제 데이터, 학습 대상 수학 문제 데이터를 생성하는데 필요한 코드 블록 및 코드 블록에 대한 주석 데이터를 전처리한 훈련 데이터 세트를 기초로, 특정 수학 문제의 지문으로부터 특정 수학 문제에 대한 문제 코드 블록 및 특정 수학 문제에 대한 복수의 문제 코드 블록을 포함하는 주요 코드 블록 군집 중 적어도 하나 이상을 출력하도록 훈련된 인공지능 모델이다. The problem code block is a variable setting code block that sets the variables of a math problem, a variable condition code block that sets conditions for variables, and a result condition code block and variable setting code block that sets conditions for correct and incorrect answers in a math problem. It includes at least one of a result generation code block that generates one correct answer that satisfies the conditions of the correct answer and one or more incorrect answers that satisfy the conditions of the incorrect answer based on the variables created through the condition code block. The math problem code provision model 1300 is based on a training data set that preprocesses the math problem data to be learned, the code blocks needed to generate the math problem data to be learned, and the annotation data for the code blocks, and is based on a training data set that preprocesses the math problem data to be learned, and the annotation data for the code blocks required to generate the math problem data to be learned. It is an artificial intelligence model trained to output at least one of the problem code blocks for math problems and major code block clusters that include multiple problem code blocks for specific math problems.
메모리(1040)에는 주요 코드 블록 군집에 포함된 복수의 문제 코드 블록 중 선택된 특정 문제 코드 블록 및 문제 코드 블록 중 적어도 하나 이상을 토대로 수학 문제를 생성하도록 야기하는 코드가 저장된다. 보다 상세하게는, 메모리(1040)에는 수학 문제 코드 제공 모델(1300)에 의해 주요 코드 블록 군집을 획득한 경우, 주요 코드 블록 군집에 포함된 복수의 문제 코드 블록들이 표시된 리스트로 생성하여 해당 리스트 중 특정 문제 코드 블록에 대한 선택 입력을 획득하면, 특정 문제 코드 블록을 토대로 상기 수학 문제를 생성(1500)하도록 야기하는 코드가 저장된다. The memory 1040 stores a specific problem code block selected among a plurality of problem code blocks included in the main code block cluster and a code that causes a math problem to be generated based on at least one of the problem code blocks. More specifically, in the memory 1040, when a main code block cluster is obtained by the mathematical problem code provision model 1300, a list is generated in which a plurality of problem code blocks included in the main code block cluster are displayed and selected from the list. Upon obtaining a selection input for a specific problem code block, code that causes the math problem to be generated (1500) based on the specific problem code block is stored.
메모리(1040)에는 수학 문제 코드 제공 모델(1300)에 의해 문제 코드 블록(1400)이 획득한 경우, 해당 문제 코드 블록을 토대로 수학 문제를 생성(1500)하도록 야기하는 코드가 저장된다. 보다 상세하게는, 메모리(1040)에는 인공지능 모델을 이용하여, 문제 코드 블록(1400) 또는 특정 문제 코드 블록에 포함된 코드 블록을 순서대로 배치하도록 야기하는 코드가 저장된다. 메모리(1040)에는 코드 블록이 순서대로 배치된 문제 코드 블록(1400) 또는 특정 문제 코드 블록을 토대로 수학 문제를 생성(1500)하도록 야기하는 코드가 저장된다. 인공지능 모델은 학습 대상 수학 문제 데이터를 생성하는데 필요한 코드 블록에 포함된 변수 설정 코드 블록, 변수 조건 코드 블록, 결과 조건 코드 블록 및 결과 생성 코드 블록 간의 코드 블록 위치 관계를 기초로, 분석 대상 문제 코드 블록에 포함된 변수 설정 코드 블록, 변수 조건 코드 블록, 정답 조건 코드 블록 및 정답 생성 코드 블록을 순서대로 배치하도록 훈련된 인공지능 모델이다. 해당 인공지능 모델은 Extreme Multi-classification 알고리즘을 이용하는 모델일 수 있다. The memory 1040 stores a code that, when the problem code block 1400 is obtained by the mathematical problem code provision model 1300, generates a mathematical problem 1500 based on the problem code block. More specifically, the memory 1040 stores a code that causes code blocks included in the problem code block 1400 or a specific problem code block to be arranged in order using an artificial intelligence model. The memory 1040 stores a problem code block 1400 in which code blocks are arranged in order or a code that causes a math problem to be generated 1500 based on a specific problem code block. The artificial intelligence model is based on the code block position relationship between the variable setting code block, variable condition code block, result condition code block, and result generation code block included in the code block required to generate the math problem data to be studied, and the problem code to be analyzed. It is an artificial intelligence model trained to place the variable setting code block, variable condition code block, answer condition code block, and answer generation code block included in the block in order. The artificial intelligence model may be a model that uses the Extreme Multi-classification algorithm.
도 13은 본 발명의 또 다른 실시예에 따른 수학 문제 생성 방법을 설명하는 동작 흐름도이다. 이하에서 도 13을 참조하여, 수학 문제 생성 방법을 설명하도록 한다. 이하에서 설명될 수학 문제 생성 방법의 각 단계들은 앞서 도 10 내지 도 12를 참조하여 설명한 수학 문제 생성 장치(1000)에 의해 수행될 수 있다. 따라서, 앞서 도 10 내지 도 12를 참조하여 설명한 본 발명의 실시예에 대한 내용은 이하에서 설명될 실시예에도 동일하게 적용될 수 있으며, 이하에서 상술한 설명과 중복되는 내용은 생략하도록 한다. 이하에서 설명되는 단계들은 반드시 순서대로 수행되어야 하는 것은 아니고, 단계들의 순서는 다양하게 설정될 수 있으며, 단계들은 거의 동시에 수행될 수도 있다.Figure 13 is an operation flowchart explaining a method for generating a math problem according to another embodiment of the present invention. Below, with reference to FIG. 13, a method for generating a math problem will be described. Each step of the math problem generation method to be described below may be performed by the math problem generation device 1000 previously described with reference to FIGS. 10 to 12 . Therefore, the contents of the embodiments of the present invention previously described with reference to FIGS. 10 to 12 can be equally applied to the embodiments to be described below, and any content that overlaps with the description described above will be omitted below. The steps described below do not necessarily have to be performed in order, the order of the steps may be set in various ways, and the steps may be performed almost simultaneously.
도 13을 참조하면, 수학 문제 생성 방법은 각 단계가 프로세서에 의해 수행되는 방법으로서, 벡터 변환 단계 (S2100), 코드 제공 단계(S2200) 및 수학 문제 생성 단계 (S2300)를 포함한다. Referring to FIG. 13, the math problem generation method is a method in which each step is performed by a processor, and includes a vector conversion step (S2100), a code provision step (S2200), and a math problem creation step (S2300).
벡터 변환 단계(S2100)는 수학 문제에 대한 지문을 획득하고, 지문을 임베딩 벡터로 변환하는 단계이다. The vector conversion step (S2100) is a step of obtaining a fingerprint for a math problem and converting the fingerprint into an embedding vector.
코드 제공 단계(S2200)는 수학 문제 코드 제공 모델을 이용하여, 임베딩 벡터로 변환된 지문을 기초로 수학 문제에 대한 문제 코드 블록 및 수학 문제에 대한 복수의 문제 코드 블록을 포함하는 주요 코드 블록 군집 중 적어도 하나 이상을 획득하는 단계이다. 여기서 수학 문제 코드 제공 모델은 전처리된 학습 대상 수학 문제 데이터, 상기 학습 대상 수학 문제 데이터를 생성하는데 필요한 코드 블록 및 상기 코드 블록에 대한 주석 데이터를 포함하는 훈련 데이터 세트의 학습을 통해, 특정 수학 문제의 지문을 입력 받아 수학 문제에 대한 문제 코드 블록 및 수학 문제에 대한 복수의 문제 코드 블록을 포함하는 주요 코드 블록 군집 중 적어도 하나를 출력하도록 훈련된다. 또한, 수학 문제 코드 제공 모델 상기 수학 문제의 지문과 상기 훈련 데이터 세트에 포함된 학습 대상 수학 문제 데이터 및 훈련 데이터 세트에 포함된 주석 중 적어도 하나 이상을 비교하여 지문 유사도를 산출하고, 지문 유사도를 기초로, 훈련 데이터 세트에 포함된 학습 대상 수학 문제 데이터 또는 훈련 데이터 세트에 포함된 주석과 대응되는 코드 블록 군집을 선정하고, 그리고, 코드 블록 군집에 포함된 코드 블록들 중 기설정된 기준을 만족하는 코드 블록을 수학 문제에 대한 문제 코드 블록으로 출력하거나, 코드 블록 군집을 주요 코드 블록 군집으로 출력하도록 훈련될 수 있다.The code provision step (S2200) uses a math problem code provision model to select a problem code block for a math problem based on a fingerprint converted to an embedding vector and a cluster of main code blocks including a plurality of problem code blocks for a math problem. This is the step of acquiring at least one thing. Here, the math problem code provision model is designed to provide a specific math problem through learning of a training data set that includes preprocessed math problem data to be learned, code blocks needed to generate the math problem data to be learned, and annotation data for the code blocks. It is trained to receive a fingerprint as an input and output at least one of the main code block clusters including a problem code block for a math problem and a plurality of problem code blocks for a math problem. In addition, the fingerprint similarity is calculated by comparing the fingerprint of the mathematical problem in the mathematical problem code providing model with at least one of the learning target mathematical problem data included in the training data set and the annotations included in the training data set, and the fingerprint similarity is based on Select a code block cluster that corresponds to the learning target math problem data included in the training data set or annotations included in the training data set, and code that satisfies preset criteria among the code blocks included in the code block cluster. It can be trained to output blocks as problem code blocks for math problems, or to output clusters of code blocks as clusters of major code blocks.
문제 코드 블록은 수학 문제의 변수를 설정하는 변수 설정 코드 블록, 변수의 조건을 설정하는 변수 조건 코드 블록, 수학 문제의 정답과 오답의 조건을 설정하는 결과 조건 코드 블록 및 변수 설정 코드 블록 및 변수 조건 코드 블록을 통해 생성되는 변수를 기초로, 정답의 조건을 만족하는 하나의 정답과, 오답의 조건을 만족하는 하나 이상의 오답을 생성하는 결과 생성 코드 블록 중 적어도 하나 이상을 포함한다. 수학 문제 코드 제공 모델은, 학습 대상 수학 문제 데이터, 학습 대상 수학 문제 데이터를 생성하는데 필요한 코드 블록 및 코드 블록에 대한 주석 데이터를 전처리한 훈련 데이터 세트를 기초로, 특정 수학 문제의 지문으로부터 특정 수학 문제에 대한 문제 코드 블록 및 특정 수학 문제에 대한 복수의 문제 코드 블록을 포함하는 주요 코드 블록 군집 중 적어도 하나 이상을 출력하도록 훈련된 인공지능 모델이다. The problem code block includes the variable setting code block that sets the variables of the math problem, the variable condition code block that sets the conditions for the variables, the result condition code block that sets the conditions for the correct and incorrect answers in the math problem, and the variable setting code block and variable conditions. Based on the variables created through the code block, it includes at least one of a result generation code block that generates one correct answer that satisfies the conditions of the correct answer and one or more incorrect answers that satisfy the conditions of the incorrect answer. The math problem code provision model is based on a training data set that preprocesses the math problem data to be learned, the code blocks needed to generate the math problem data to be learned, and the annotation data for the code blocks, and is based on a training data set that preprocesses the math problem data to be learned, and the annotation data for the code blocks, from the fingerprint of the specific math problem. It is an artificial intelligence model trained to output at least one of the major code block clusters, including problem code blocks for and multiple problem code blocks for specific math problems.
수학 문제 생성 단계(S2300)는 주요 코드 블록 군집에 포함된 복수의 문제 코드 블록 중 선택된 특정 문제 코드 블록 및 문제 코드 블록 중 적어도 하나 이상을 토대로 상기 수학 문제를 생성하는 단계이다. 보다 상세하게는, 수학 문제 생성 단계(S2300)는 수학 문제 코드 제공 모델에 의해 주요 코드 블록 군집을 획득한 경우, 주요 코드 블록 군집에 포함된 복수의 문제 코드 블록들이 표시된 리스트를 생성하여 리스트 중 특정 문제 코드 블록에 대한 선택 입력을 획득하면, 특정 문제 코드 블록을 토대로 상기 수학 문제를 생성하고, 수학 문제 코드 제공 모델에 의해 문제 코드 블록을 획득한 경우, 문제 코드 블록을 토대로 수학 문제를 생성하는 단계이다. The math problem generation step (S2300) is a step of generating the math problem based on at least one of a specific problem code block and a problem code block selected among a plurality of problem code blocks included in the main code block cluster. More specifically, in the mathematical problem generation step (S2300), when a major code block cluster is obtained by a mathematical problem code provision model, a list displaying a plurality of problem code blocks included in the major code block cluster is generated and a specific problem code block from the list is generated. When a selection input for a problem code block is obtained, generating the math problem based on a specific problem code block, and when a problem code block is obtained by a math problem code provision model, generating a math problem based on the problem code block. am.
이상 지금까지 설명한 본 발명의 실시예들에 따른 수학 문제 코드 제공 모델 생성 방법 및 수학 문제 생성 방법은, 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. The method for generating a mathematical problem code providing model and the method for generating a mathematical problem according to the embodiments of the present invention described so far are also available in the form of a recording medium containing instructions executable by a computer, such as a program module executed by a computer. It can be implemented. Computer-readable media can be any available media that can be accessed by a computer and includes both volatile and non-volatile media, removable and non-removable media. Additionally, computer-readable media may include computer storage media. Computer storage media includes both volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules or other data.
본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 상술한 설명을 기초로 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해되어야만 한다. 본 발명의 범위는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다. 본원의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본원의 범위에 포함되는 것으로 해석되어야 한다.Those of ordinary skill in the technical field to which the present invention pertains will be able to understand that the present invention can be easily modified into other specific forms without changing the technical idea or essential features of the present invention based on the above description. Therefore, the embodiments described above should be understood in all respects as illustrative and not restrictive. The scope of the present invention is indicated by the patent claims described below, and all changes or modified forms derived from the meaning and scope of the claims and their equivalent concepts should be construed as being included in the scope of the present invention. The scope of the present application is indicated by the claims described below rather than the detailed description above, and all changes or modified forms derived from the meaning and scope of the claims and their equivalent concepts should be construed as being included in the scope of the present application.
발명의 실시를 위한 형태는 상술한 발명의 실시를 위한 최선의 형태와 같다. The form for carrying out the invention is the same as the best form for carrying out the invention described above.
본 발명은 다양한 수학 문제를 자동으로 생성하기 위한 기술로써, 교육 산업에 이용 가능하므로, 산업상 이용 가능성을 갖는다. The present invention is a technology for automatically generating various mathematical problems and can be used in the education industry, so it has industrial applicability.
[부호의 설명][Explanation of symbols]
100: 수학 문제 코드 제공 모델 생성 장치100: Model generation device providing mathematical problem code
110: 통신 모듈 120: 데이터베이스110: communication module 120: database
130: 프로세서 140: 메모리130: Processor 140: Memory
210: 학습 대상 수학 문제 데이터 220: 코드 블록210: Learning target math problem data 220: Code block
230: 주석230: Annotation
300: 훈련 데이터 세트300: Training data set
400: 인공지능 모델400: Artificial intelligence model
1000: 수학 문제 생성 장치1000: Mathematics problem generation device
1010: 통신 모듈 1020: 데이터베이스1010: Communication module 1020: Database
1030: 프로세서 1040: 메모리1030: Processor 1040: Memory
1100: 사용자 단말1100: User terminal
1200: 수학 문제에 대한 지문1200: Passage for math problems
1300: 수학 문제 코드 제공 모델1300: Math problem code provision model
1400: 문제 코드 블록1400: Problem code block

Claims (16)

  1. 각 단계가 프로세서에 의해 수행되는 방법으로서,How each step is performed by a processor, comprising:
    a) 학습 대상 수학 문제 데이터, 상기 학습 대상 수학 문제 데이터를 생성하는데 필요한 코드 블록 및 상기 코드 블록에 대한 주석 데이터를 임베딩 벡터로 변환하는 동작을 포함하는 전처리 과정을 수행하여 훈련 데이터 세트를 생성하는 단계; 및 a) generating a training data set by performing a preprocessing process including converting learning target math problem data, code blocks required to generate the learning target math problem data, and annotation data for the code blocks into an embedding vector. ; and
    b) 상기 훈련 데이터 세트의 학습을 통해, 특정 수학 문제의 지문을 입력 받아 상기 수학 문제에 대한 문제 코드 블록 및 상기 수학 문제에 대한 복수의 문제 코드 블록을 포함하는 주요 코드 블록 군집 중 적어도 하나를 출력하도록 훈련된 인공지능 모델을 생성하는 단계를 포함하는, 수학 문제 코드 제공 모델 생성 방법.b) Through learning of the training data set, a fingerprint of a specific mathematical problem is input and output at least one of a problem code block for the mathematical problem and a main code block cluster including a plurality of problem code blocks for the mathematical problem. A method of generating a model for providing a mathematical problem code, including the step of generating an artificial intelligence model trained to do so.
  2. 제1항에 있어서, According to paragraph 1,
    상기 문제 코드 블록은,The problem code block is,
    상기 수학 문제의 변수를 설정하는 변수 설정 코드 블록; a variable setting code block that sets variables of the math problem;
    상기 변수의 조건을 설정하는 변수 조건 코드 블록; a variable condition code block that sets conditions for the variable;
    상기 수학 문제의 정답과 오답의 조건을 설정하는 결과 조건 코드 블록; 및 a result condition code block that sets conditions for correct and incorrect answers to the math problem; and
    상기 변수 설정 코드 블록 및 상기 변수 조건 코드 블록에 의해 생성되는 변수를 이용하여, 상기 정답의 조건을 만족하는 하나의 정답과, 상기 오답의 조건을 만족하는 하나 이상의 오답을 생성하는 결과 생성 코드 블록 중 적어도 하나 이상의 블록을 포함하고, 그리고,Among the result generation code blocks that generate one correct answer that satisfies the conditions of the correct answer and one or more incorrect answers that satisfy the conditions of the incorrect answer, using the variables created by the variable setting code block and the variable condition code block. Contains at least one block, and
    상기 주석은, 상기 변수 설정 코드 블록, 상기 변수 조건 코드 블록, 상기 결과 조건 코드 블록 및 상기 결과 생성 코드 블록 중 적어도 하나 이상의 블록에 대한 설명을 포함하는 것인, 수학 문제 코드 제공 모델 생성 방법.The annotation includes a description of at least one block of the variable setting code block, the variable condition code block, the result condition code block, and the result generation code block.
  3. 제2항에 있어서, According to paragraph 2,
    상기 a) 단계는, In step a),
    a-1) 상기 훈련 데이터 세트에 포함된 특정 코드 블록과 상기 훈련 데이터 세트에 포함된 상기 특정 코드 블록과 상이한 코드 블록을 비교하여 코드 유사도를 산출하는 단계; a-1) calculating code similarity by comparing a specific code block included in the training data set with a code block different from the specific code block included in the training data set;
    a-2) 상기 코드 유사도를 기초로, 상기 특정 코드 블록과 상기 특정 코드 블록과 상이한 코드 블록을 군집화하여 코드 블록 군집을 생성하는 단계; 및 a-2) generating a code block cluster by clustering the specific code block and the code blocks different from the specific code block based on the code similarity; and
    a-3) 상기 코드 블록 군집을 상기 코드 블록 군집에 대응되는 상기 훈련 데이터 세트에 포함된 학습 대상 수학 문제 데이터 및 상기 훈련 데이터 세트에 포함된 주석과 매칭하는 단계를 포함하는, 수학 문제 코드 제공 모델 생성 방법.a-3) a mathematical problem code providing model comprising the step of matching the code block cluster with learning target mathematical problem data included in the training data set corresponding to the code block cluster and annotations included in the training data set. How to create it.
  4. 제3항에 있어서, According to paragraph 3,
    상기 코드 유사도는, The code similarity is,
    상기 특정 코드 블록에 포함된 변수 설정 코드 블록과 상기 특정 코드 블록과 상이한 코드 블록에 포함된 변수 설정 코드 블록을 비교하여 도출된 변수 설정 코드 유사도;Variable setting code similarity derived by comparing a variable setting code block included in the specific code block with a variable setting code block included in a code block different from the specific code block;
    상기 특정 코드 블록에 포함된 변수 조건 코드 블록과 상기 특정 코드 블록과 상이한 코드 블록에 포함된 변수 조건 코드 블록을 비교하여 도출된 변수 조건 코드 유사도;Variable condition code similarity derived by comparing a variable condition code block included in the specific code block with a variable condition code block included in a code block different from the specific code block;
    상기 특정 코드 블록에 포함된 결과 조건 코드 블록과 상기 특정 코드 블록과 상이한 코드 블록에 포함된 결과 조건 코드 블록을 비교하여 도출된 결과 조건 코드 유사도; 및 Result condition code similarity derived by comparing a result condition code block included in the specific code block with a result condition code block included in a code block different from the specific code block; and
    상기 특정 코드 블록에 포함된 정답 생성 코드 블록과 상기 특정 코드 블록과 상이한 코드 블록에 포함된 결과 생성 코드 블록을 비교하여 도출된 결과 생성 코드 유사도 중 적어도 하나 이상의 유사도를 포함하는 것인, 수학 문제 코드 제공 모델 생성 방법.A mathematical problem code that includes at least one similarity among result generation code similarities derived by comparing a correct answer generation code block included in the specific code block and a result generation code block included in a code block different from the specific code block. How to create a serving model.
  5. 제4항에 있어서, According to paragraph 4,
    상기 코드 블록 군집은, The code block cluster is,
    상기 변수 설정 코드 유사도를 기초로, 상기 특정 코드 블록에 포함된 변수 설정 코드 블록과 상기 특정 코드 블록과 상이한 코드 블록에 포함된 변수 설정 코드 블록을 군집화한 변수 설정 코드 군집;a variable setting code cluster clustering variable setting code blocks included in the specific code block and variable setting code blocks included in a code block different from the specific code block, based on the variable setting code similarity;
    상기 변수 조건 코드 유사도를 기초로, 상기 특정 코드 블록에 포함된 변수 조건 코드 블록과 상기 특정 코드 블록과 상이한 코드 블록에 포함된 변수 조건 코드 블록을 군집화한 변수 조건 코드 군집;a variable condition code cluster clustering variable condition code blocks included in the specific code block and variable condition code blocks included in a code block different from the specific code block, based on the variable condition code similarity;
    상기 결과 조건 코드 유사도를 기초로, 상기 특정 코드 블록에 포함된 결과 조건 코드 블록과 상기 특정 코드 블록과 상이한 코드 블록에 포함된 결과 조건 코드 블록을 군집화한 결과 조건 코드 군집; 및a result condition code cluster that clusters result condition code blocks included in the specific code block and result condition code blocks included in code blocks different from the specific code block, based on the result condition code similarity; and
    상기 결과 생성 코드 유사도를 기초로, 상기 특정 코드 블록에 포함된 결과 생성 코드 블록과 상기 특정 코드 블록과 상이한 코드 블록에 포함된 결과 생성 코드 블록을 군집화한 결과 생성 코드 군집 중 적어도 하나 이상의 군집을 포함하는 것인, 수학 문제 코드 제공 모델 생성 방법. Based on the similarity of the result generation code, it includes at least one cluster among the result generation code clusters obtained by clustering the result generation code block included in the specific code block and the result generation code block included in the code block different from the specific code block. That is, how to create a model that provides math problem code.
  6. 제5항에 있어서, According to clause 5,
    상기 인공지능 모델은, The artificial intelligence model is,
    상기 수학 문제의 지문과 상기 훈련 데이터 세트에 포함된 학습 대상 수학 문제 데이터 및 상기 훈련 데이터 세트에 포함된 주석 중 적어도 하나 이상을 비교하여 지문 유사도를 산출하고, Calculating fingerprint similarity by comparing the fingerprint of the math problem with at least one of the math problem data to be learned included in the training data set and annotations included in the training data set,
    상기 지문 유사도를 기초로, 상기 훈련 데이터 세트에 포함된 학습 대상 수학 문제 데이터 또는 상기 훈련 데이터 세트에 포함된 주석과 대응되는 코드 블록 군집을 선정하고, 그리고,Based on the fingerprint similarity, select a code block cluster corresponding to the learning target math problem data included in the training data set or the annotation included in the training data set, and
    상기 코드 블록 군집에 포함된 코드 블록들 중 기설정된 기준을 만족하는 코드 블록을 상기 수학 문제에 대한 문제 코드 블록으로 출력하거나, 상기 코드 블록 군집을 상기 주요 코드 블록 군집으로 출력하도록 훈련된 것인, 수학 문제 코드 제공 모델 생성 방법.Trained to output a code block that satisfies a preset standard among the code blocks included in the code block cluster as a problem code block for the math problem, or to output the code block cluster as the main code block cluster, Math problem code provided How to create a model.
  7. 적어도 하나의 프로세서; 및at least one processor; and
    상기 프로세서와 전기적으로 연결되고, 상기 프로세서에서 수행되는 수학문제 코드 제공 모델 생성 프로그램이 저장되는 메모리를 포함하고,It is electrically connected to the processor and includes a memory that stores a model generation program that provides mathematical problem codes performed by the processor,
    상기 메모리는, 상기 프로세서가, The memory, the processor,
    학습 대상 수학 문제 데이터, 상기 학습 대상 수학 문제 데이터를 생성하는데 필요한 코드 블록 및 상기 코드 블록에 대한 주석 데이터를 임베딩 벡터로 변환하는 동작을 포함하는 전처리 과정을 수행하여 훈련 데이터 세트를 생성하고, Generate a training data set by performing a preprocessing process including converting learning target math problem data, code blocks required to generate the learning target math problem data, and annotation data for the code blocks into an embedding vector,
    상기 훈련 데이터 세트의 학습을 통해, 특정 수학 문제의 지문을 입력 받아 상기 수학 문제에 대한 문제 코드 블록 및 상기 수학 문제에 대한 복수의 문제 코드 블록을 포함하는 주요 코드 블록 군집 중 적어도 하나를 출력하도록 훈련된 인공지능 모델을 생성하도록 야기하는 코드를 저장하는, 수학 문제 코드 제공 모델 생성 장치.Through learning of the training data set, a fingerprint of a specific math problem is input and trained to output at least one of a problem code block for the math problem and a main code block cluster including a plurality of problem code blocks for the math problem. A model generation device that provides mathematical problem codes, storing the code that causes it to generate an artificial intelligence model.
  8. 제7항에 있어서, In clause 7,
    상기 문제 코드 블록은,The problem code block is,
    상기 수학 문제의 변수를 설정하는 변수 설정 코드 블록; a variable setting code block that sets variables of the math problem;
    상기 변수의 조건을 설정하는 변수 조건 코드 블록; a variable condition code block that sets conditions for the variable;
    상기 수학 문제의 정답과 오답의 조건을 설정하는 결과 조건 코드 블록; 및 a result condition code block that sets conditions for correct and incorrect answers to the math problem; and
    상기 변수 설정 코드 블록 및 상기 변수 조건 코드 블록에 의해 생성되는 변수를 이용하여, 상기 정답의 조건을 만족하는 하나의 정답과, 상기 오답의 조건을 만족하는 하나 이상의 오답을 생성하는 결과 생성 코드 블록 중 적어도 하나 이상의 블록을 포함하고, 그리고,Among the result generation code blocks that generate one correct answer that satisfies the conditions of the correct answer and one or more incorrect answers that satisfy the conditions of the incorrect answer, using the variables created by the variable setting code block and the variable condition code block. Contains at least one block, and
    상기 주석은, 상기 변수 설정 코드 블록, 상기 변수 조건 코드 블록, 상기 결과 조건 코드 블록 및 상기 결과 생성 코드 블록 중 적어도 하나 이상의 블록에 대한 설명을 포함하는 것인, 수학 문제 코드 제공 모델 생성 장치.The annotation includes a description of at least one block of the variable setting code block, the variable condition code block, the result condition code block, and the result generation code block.
  9. 제8항에 있어서, According to clause 8,
    상기 메모리는 상기 프로세서로 하여금, The memory allows the processor to:
    상기 훈련 데이터 세트에 포함된 특정 코드 블록과 상기 훈련 데이터 세트에 포함된 상기 특정 코드 블록과 상이한 코드 블록을 비교하여 코드 유사도를 산출하고, Calculate code similarity by comparing a specific code block included in the training data set with a code block different from the specific code block included in the training data set,
    상기 코드 유사도를 기초로, 상기 특정 코드 블록과 상기 특정 코드 블록과 상이한 코드 블록을 군집화하여 코드 블록 군집을 생성하고, 그리고, Based on the code similarity, the specific code block and the code blocks different from the specific code block are clustered to create a code block cluster, and
    상기 코드 블록 군집을 상기 코드 블록 군집에 대응되는 상기 훈련 데이터 세트에 포함된 학습 대상 수학 문제 데이터 및 상기 훈련 데이터 세트에 포함된 주석과 매칭하도록 야기하는 코드를 저장하는, 수학 문제 코드 제공 모델 생성 장치.A mathematical problem code providing model generating device that stores a code that causes the code block cluster to match the learning target mathematical problem data included in the training data set corresponding to the code block cluster and annotations included in the training data set. .
  10. 제7항에 있어서, In clause 7,
    상기 인공지능 모델은, The artificial intelligence model is,
    상기 수학 문제의 지문과 상기 훈련 데이터 세트에 포함된 학습 대상 수학 문제 데이터 및 상기 훈련 데이터 세트에 포함된 주석 중 적어도 하나 이상을 비교하여 지문 유사도를 산출하고, Calculating fingerprint similarity by comparing the fingerprint of the math problem with at least one of the math problem data to be learned included in the training data set and annotations included in the training data set,
    상기 지문 유사도를 기초로, 상기 훈련 데이터 세트에 포함된 학습 대상 수학 문제 데이터 또는 상기 훈련 데이터 세트에 포함된 주석과 대응되는 코드 블록 군집을 선정하고, Based on the fingerprint similarity, select a code block cluster corresponding to the learning target math problem data included in the training data set or the annotation included in the training data set,
    상기 코드 블록 군집에 포함된 코드 블록 중 기설정된 기준을 만족하는 코드 블록을 상기 수학 문제에 대한 문제 코드 블록으로 출력하거나, 상기 코드 블록 군집을 상기 주요 코드 블록 군집으로 출력하도록 훈련된 것인, 수학 문제 코드 제공 모델 생성 장치.Mathematics, which is trained to output code blocks that satisfy preset criteria among code blocks included in the code block cluster as problem code blocks for the math problem, or to output the code block cluster as the main code block cluster. Problem code provision model generator.
  11. 각 단계가 프로세서에 의해 수행되는 방법으로서,How each step is performed by a processor, comprising:
    i) 수학 문제의 지문을 획득하고, 상기 지문을 임베딩 벡터로 변환하는 단계; i) obtaining a fingerprint of a math problem and converting the fingerprint into an embedding vector;
    ii) 전처리된 학습 대상 수학 문제 데이터, 상기 학습 대상 수학 문제 데이터를 생성하는데 필요한 코드 블록 및 상기 코드 블록에 대한 주석 데이터를 포함하는 훈련 데이터 세트의 학습을 통해, 특정 수학 문제의 지문을 입력 받아 상기 수학 문제에 대한 문제 코드 블록 및 상기 수학 문제에 대한 복수의 문제 코드 블록을 포함하는 주요 코드 블록 군집 중 적어도 하나를 출력하도록 훈련된 인공지능 모델을 이용하여, 임베딩 벡터로 변환된 상기 지문을 기초로 상기 수학 문제에 대한 문제 코드 블록 및 상기 수학 문제에 대한 복수의 문제 코드 블록을 포함하는 주요 코드 블록 군집 중 적어도 하나를 획득하는 단계; 및ii) Through learning of a training data set including preprocessed learning target math problem data, code blocks required to generate the learning target math problem data, and annotation data for the code blocks, a fingerprint of a specific math problem is input and Based on the fingerprint converted to an embedding vector using an artificial intelligence model trained to output at least one of a problem code block for a math problem and a cluster of major code blocks including a plurality of problem code blocks for the math problem. Obtaining at least one of a problem code block for the math problem and a main code block cluster including a plurality of problem code blocks for the math problem; and
    iii) 상기 ii) 단계에 따라 획득한 코드 블록을 이용하여 새로운 수학 문제를 생성하는 단계를 포함하는, 수학 문제 생성 방법.iii) A method of generating a mathematical problem, including the step of generating a new mathematical problem using the code block obtained in step ii) above.
  12. 제11항에 있어서, According to clause 11,
    상기 문제 코드 블록은,The problem code block is,
    상기 수학 문제의 변수를 설정하는 변수 설정 코드 블록; a variable setting code block that sets variables of the math problem;
    상기 변수의 조건을 설정하는 변수 조건 코드 블록; a variable condition code block that sets conditions for the variable;
    상기 수학 문제의 정답과 오답의 조건을 설정하는 결과 조건 코드 블록; 및 a result condition code block that sets conditions for correct and incorrect answers to the math problem; and
    상기 변수 설정 코드 블록 및 상기 변수 조건 코드 블록에 의해 생성되는 변수를 이용하여, 상기 정답의 조건을 만족하는 하나의 정답과, 상기 오답의 조건을 만족하는 하나 이상의 오답을 생성하는 결과 생성 코드 블록 중 적어도 하나 이상의 블록을 포함하고, 그리고,Among the result generation code blocks that generate one correct answer that satisfies the conditions of the correct answer and one or more incorrect answers that satisfy the conditions of the incorrect answer, using the variables created by the variable setting code block and the variable condition code block. Contains at least one block, and
    상기 주석은, 상기 변수 설정 코드 블록, 상기 변수 조건 코드 블록, 상기 결과 조건 코드 블록 및 상기 결과 생성 코드 블록 중 적어도 하나 이상의 블록에 대한 설명을 포함하는 것인, 수학 문제 생성 방법.The annotation includes a description of at least one block of the variable setting code block, the variable condition code block, the result condition code block, and the result generation code block.
  13. 제11항에 있어서, According to clause 11,
    상기 인공지능 모델은, The artificial intelligence model is,
    상기 수학 문제의 지문과 상기 훈련 데이터 세트에 포함된 학습 대상 수학 문제 데이터 및 상기 훈련 데이터 세트에 포함된 주석 중 적어도 하나 이상을 비교하여 지문 유사도를 산출하고, Calculating fingerprint similarity by comparing the fingerprint of the math problem with at least one of the math problem data to be learned included in the training data set and annotations included in the training data set,
    상기 지문 유사도를 기초로, 상기 훈련 데이터 세트에 포함된 학습 대상 수학 문제 데이터 또는 상기 훈련 데이터 세트에 포함된 주석과 대응되는 코드 블록 군집을 선정하고, 그리고,Based on the fingerprint similarity, select a code block cluster corresponding to the learning target math problem data included in the training data set or the annotation included in the training data set, and
    상기 코드 블록 군집에 포함된 코드 블록들 중 기설정된 기준을 만족하는 코드 블록을 상기 수학 문제에 대한 문제 코드 블록으로 출력하거나, 상기 코드 블록 군집을 상기 주요 코드 블록 군집으로 출력하도록 훈련된 것인, 수학 문제 생성 방법.Trained to output a code block that satisfies a preset standard among the code blocks included in the code block cluster as a problem code block for the math problem, or to output the code block cluster as the main code block cluster, How to create math problems.
  14. 적어도 하나의 프로세서; 및at least one processor; and
    상기 프로세서와 전기적으로 연결되고, 상기 프로세서에서 수행되는 수학문제 생성 프로그램이 저장되는 메모리를 포함하고, It is electrically connected to the processor and includes a memory that stores a math problem generation program executed by the processor,
    상기 메모리는, 상기 프로세서가, The memory, the processor,
    수학 문제에 대한 지문을 획득하고, 상기 지문을 임베딩 벡터로 변환하고, Obtaining a fingerprint for a math problem, converting the fingerprint into an embedding vector,
    전처리된 학습 대상 수학 문제 데이터, 상기 학습 대상 수학 문제 데이터를 생성하는데 필요한 코드 블록 및 상기 코드 블록에 대한 주석 데이터를 포함하는 훈련 데이터 세트의 학습을 통해, 특정 수학 문제의 지문을 입력 받아 상기 수학 문제에 대한 문제 코드 블록 및 상기 수학 문제에 대한 복수의 문제 코드 블록을 포함하는 주요 코드 블록 군집 중 적어도 하나를 출력하도록 훈련된 인공지능 모델을 이용하여, 임베딩 벡터로 변환된 상기 지문을 기초로 상기 수학 문제에 대한 문제 코드 블록 및 상기 수학 문제에 대한 복수의 문제 코드 블록을 포함하는 주요 코드 블록 군집 중 적어도 하나를 획득하고, 그리고, Through learning of a training data set including preprocessed math problem data to be learned, code blocks needed to generate the math problem data to be learned, and annotation data for the code blocks, a fingerprint of a specific math problem is input and the math problem is solved. The math problem based on the fingerprint converted to an embedding vector using an artificial intelligence model trained to output at least one of a major code block cluster including a problem code block for and a plurality of problem code blocks for the math problem. Obtain at least one of a cluster of major code blocks comprising a problem code block for a problem and a plurality of problem code blocks for the mathematical problem, and
    획득한 코드 블록을 이용하여 새로운 수학 문제를 생성하도록 야기하는 코드를 저장하는, 수학 문제 생성 장치.A mathematical problem generation device that stores code that causes new mathematical problems to be created using the obtained code blocks.
  15. 제14항에 있어서, According to clause 14,
    상기 문제 코드 블록은,The problem code block is,
    상기 수학 문제의 변수를 설정하는 변수 설정 코드 블록; a variable setting code block that sets variables of the math problem;
    상기 변수의 조건을 설정하는 변수 조건 코드 블록; a variable condition code block that sets conditions for the variable;
    상기 수학 문제의 정답과 오답의 조건을 설정하는 결과 조건 코드 블록; 및 a result condition code block that sets conditions for correct and incorrect answers to the math problem; and
    상기 변수 설정 코드 블록 및 상기 변수 조건 코드 블록에 의해 생성되는 변수를 이용하여, 상기 정답의 조건을 만족하는 하나의 정답과, 상기 오답의 조건을 만족하는 하나 이상의 오답을 생성하는 결과 생성 코드 블록 중 적어도 하나 이상의 블록을 포함하고, 그리고,Among the result generation code blocks that generate one correct answer that satisfies the conditions of the correct answer and one or more incorrect answers that satisfy the conditions of the incorrect answer, using the variables created by the variable setting code block and the variable condition code block. Contains at least one block, and
    상기 주석은, 상기 변수 설정 코드 블록, 상기 변수 조건 코드 블록, 상기 결과 조건 코드 블록 및 상기 결과 생성 코드 블록 중 적어도 하나 이상의 블록에 대한 설명을 포함하는 것인, 수학 문제 생성 장치.The annotation includes a description of at least one block of the variable setting code block, the variable condition code block, the result condition code block, and the result generation code block.
  16. 제14항에 있어서, According to clause 14,
    상기 인공지능 모델은, The artificial intelligence model is,
    상기 수학 문제의 지문과 상기 훈련 데이터 세트에 포함된 학습 대상 수학 문제 데이터 및 상기 훈련 데이터 세트에 포함된 주석 중 적어도 하나 이상을 비교하여 지문 유사도를 산출하고, Calculating fingerprint similarity by comparing the fingerprint of the math problem with at least one of the math problem data to be learned included in the training data set and annotations included in the training data set,
    상기 지문 유사도를 기초로, 상기 훈련 데이터 세트에 포함된 학습 대상 수학 문제 데이터 또는 상기 훈련 데이터 세트에 포함된 주석과 대응되는 코드 블록 군집을 선정하고, 그리고,Based on the fingerprint similarity, select a code block cluster corresponding to the learning target math problem data included in the training data set or the annotation included in the training data set, and
    상기 코드 블록 군집에 포함된 코드 블록들 중 기설정된 기준을 만족하는 코드 블록을 상기 수학 문제에 대한 문제 코드 블록으로 출력하거나, 상기 코드 블록 군집을 상기 주요 코드 블록 군집으로 출력하도록 훈련된 것인, 수학 문제 생성 장치.Trained to output a code block that satisfies a preset standard among the code blocks included in the code block cluster as a problem code block for the math problem, or to output the code block cluster as the main code block cluster, Math problem generation device.
PCT/KR2023/007317 2022-08-03 2023-05-26 Method of generating math problem code provision model based on artificial intelligence, and method and device for generating math problem by using same model WO2024029708A1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20220096633 2022-08-03
KR10-2022-0096633 2022-08-03
KR1020230066190A KR102645590B1 (en) 2022-08-03 2023-05-23 Method for generating model providing mathematical problem code based on artificial intelligence, and method and apparatus for generating mathematical problem using the model
KR10-2023-0066190 2023-05-23

Publications (1)

Publication Number Publication Date
WO2024029708A1 true WO2024029708A1 (en) 2024-02-08

Family

ID=89849156

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2023/007317 WO2024029708A1 (en) 2022-08-03 2023-05-26 Method of generating math problem code provision model based on artificial intelligence, and method and device for generating math problem by using same model

Country Status (1)

Country Link
WO (1) WO2024029708A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090017427A1 (en) * 2007-07-12 2009-01-15 Microsoft Corporation Intelligent Math Problem Generation
KR20110078073A (en) * 2009-12-30 2011-07-07 동국대학교 산학협력단 Method and apparatus for test question selection and achievement assessment
KR20120063442A (en) * 2010-12-07 2012-06-15 에스케이 텔레콤주식회사 Method for extracting semantic distance of mathematical sentence and classifying mathematical sentence by semantic distance, apparatus and computer-readable recording medium with program therefor
KR20170105969A (en) * 2016-03-11 2017-09-20 김병섭 Apparatus And Computer Program for Searching Similar Mathematical Problem
JP2021530066A (en) * 2018-09-26 2021-11-04 杭州大拿科技股▲ふん▼有限公司 Problem correction methods, devices, electronic devices and storage media for mental arithmetic problems

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090017427A1 (en) * 2007-07-12 2009-01-15 Microsoft Corporation Intelligent Math Problem Generation
KR20110078073A (en) * 2009-12-30 2011-07-07 동국대학교 산학협력단 Method and apparatus for test question selection and achievement assessment
KR20120063442A (en) * 2010-12-07 2012-06-15 에스케이 텔레콤주식회사 Method for extracting semantic distance of mathematical sentence and classifying mathematical sentence by semantic distance, apparatus and computer-readable recording medium with program therefor
KR20170105969A (en) * 2016-03-11 2017-09-20 김병섭 Apparatus And Computer Program for Searching Similar Mathematical Problem
JP2021530066A (en) * 2018-09-26 2021-11-04 杭州大拿科技股▲ふん▼有限公司 Problem correction methods, devices, electronic devices and storage media for mental arithmetic problems

Similar Documents

Publication Publication Date Title
WO2018151464A1 (en) Coding system and coding method using voice recognition
WO2022088671A1 (en) Automated question answering method and apparatus, device, and storage medium
WO2021132797A1 (en) Method for classifying emotions of speech in conversation by using semi-supervised learning-based word-by-word emotion embedding and long short-term memory model
EP3629253A1 (en) Method and apparatus for generating training data for vqa system, and medium
WO2023279692A1 (en) Question-and-answer platform-based data processing method and apparatus, and related device
WO2018212396A1 (en) Method, device and computer program for analyzing data
Mišić et al. Improving source code plagiarism detection: Lessons learned
WO2018212584A2 (en) Method and apparatus for classifying class, to which sentence belongs, using deep neural network
WO2022145829A1 (en) Learning content recommendation system for predicting user's probability of getting correct answer by using latent factor-based collaborative filtering, and operating method thereof
WO2024029708A1 (en) Method of generating math problem code provision model based on artificial intelligence, and method and device for generating math problem by using same model
WO2024054090A1 (en) Electronic device and system for controlling plurality of speakers in order to test auditory response speed and directionality
WO2024005413A1 (en) Artificial intelligence-based method and device for extracting information from electronic document
WO2014209051A1 (en) Method for posting answers of survey respondents to survey and survey service server that supports method therefor
WO2022270840A1 (en) Deep learning-based word recommendation system for predicting and improving foreign language learner's vocabulary ability
WO2022177372A1 (en) System for providing tutoring service by using artificial intelligence and method therefor
WO2023022406A1 (en) Learning ability evaluation method, learning ability evaluation device, and learning ability evaluation system
WO2022154376A1 (en) Apparatus and method for providing user's interior style analysis model on basis of sns text
WO2022235073A1 (en) Method for guiding reading and writing skill improvement, and device therefor
WO2022163996A1 (en) Device for predicting drug-target interaction by using self-attention-based deep neural network model, and method therefor
WO2022102966A1 (en) Learning question recommendation system for recommending questions that can be evaluated through unification of score probability distribution types, and operating method therefor
KR102645590B1 (en) Method for generating model providing mathematical problem code based on artificial intelligence, and method and apparatus for generating mathematical problem using the model
WO2017122872A1 (en) Device and method for generating information on electronic publication
WO2023042987A1 (en) Apparatus, system, and method for analyzing text meaning by using source code analysis, and method for providing chatbot question and answer service by using same
WO2024029946A1 (en) Method and device for providing customized mathematical concept through problem-solving image analysis
WO2023101235A1 (en) Method and system for operating platform providing personalized problem on basis of learner behavior information

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

Country of ref document: EP

Kind code of ref document: A1