CN110347570B - Analysis method for code automatic generation tool in IDE environment - Google Patents

Analysis method for code automatic generation tool in IDE environment Download PDF

Info

Publication number
CN110347570B
CN110347570B CN201910588474.5A CN201910588474A CN110347570B CN 110347570 B CN110347570 B CN 110347570B CN 201910588474 A CN201910588474 A CN 201910588474A CN 110347570 B CN110347570 B CN 110347570B
Authority
CN
China
Prior art keywords
code
executing
row
generation
judging whether
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910588474.5A
Other languages
Chinese (zh)
Other versions
CN110347570A (en
Inventor
姜瑛
张晓江
王志军
李凌宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kunming University of Science and Technology
Original Assignee
Kunming University of Science and Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kunming University of Science and Technology filed Critical Kunming University of Science and Technology
Priority to CN201910588474.5A priority Critical patent/CN110347570B/en
Publication of CN110347570A publication Critical patent/CN110347570A/en
Application granted granted Critical
Publication of CN110347570B publication Critical patent/CN110347570B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3452Performance evaluation by statistical analysis

Abstract

The invention discloses a method for analyzing an automatic code generation tool in an IDE environment, which comprises the following steps: step1, acquiring programmer behavior data; step2, automatically generating code data and acquiring; step3, preprocessing the data automatically generated by behaviors and codes; step4, automatically generating a code and analyzing the process. The method provided by the invention can effectively monitor and record development behaviors of programmers, codes recommended by an automatic code generation tool in the coding process and related information; the method can analyze the influence degree of different automatic code generation tools on software development in the actual development process.

Description

Analysis method for code automatic generation tool in IDE environment
Technical Field
The invention relates to an analysis method for an automatic code generation tool in an IDE environment, and belongs to the field of cloud fault detection.
Background
With the continuous improvement and improvement of the automatic code generation method, some automatic code generation tools are gradually shaped, including aiXCoder, Kite, IntelliJ IDEA, and the like.
The aiXcode is trained by combining with the strictly screened massive field source codes, so that the encoding mode and rule hidden in the massive codes can be fully learned and mastered and used for generating and complementing the codes. The aiXcoder can also quickly learn the programming habit of a programmer and record the program mode, API calling sequence and the like commonly used by the programmer, thereby automatically assisting the programmer to complete the work to the maximum extent in the development process. At present, the AiXcoder is integrated in IntelliJ IDEA and Pycharm in a plug-in mode.
Kite is a tool for providing real-time code fragments for Python programmers, and can display an example document of a library and terminal commands used by the programmers when writing codes, and even can automatically detect and solve simple errors and requirements of the programmers. The Kite runs in parallel with the existing editor and terminal of the programmer, and the editor supported by the Kite at present comprises Sublime Text, Emacs, Vim, Pycharm and Atom, and provides an open source plug-in for the programmer, so that the programmer can conveniently apply the Kite to improve the programming efficiency under the condition of continuously using the compiler familiar to the programmer.
The IntelliJ IDEA code automatic generation tool is a self-contained code intelligent completion tool in an IntelliJ IDEA integrated development environment. IntelliJ IDEA provides a number of ways of code completion: basic code completion, intelligent code completion, secondary intelligent code completion, code statement completion and the like.
These tools have been applied in software development, but there is a lack of analysis of such tools in conjunction with actual development. When using an automatic code generation tool, a programmer usually pays more attention to the quality of automatic code generation and the size of automatic code generation scale, the correctness of generated code, and how much development efficiency is improved for the programmer in actual development. Therefore, analysis for code automatic generation tools is an urgent problem to be solved.
Disclosure of Invention
The invention provides an analysis method of an automatic code generation tool in an IDE environment, which is beneficial to analyzing the function of the automatic code generation tool in actual development.
The technical scheme of the invention is as follows: a method for analyzing an automatic code generation tool in an IDE environment comprises the following specific steps:
step1, programmer behavior data acquisition: obtaining programmer behavior data by monitoring the key operation of a programmer in an IDE environment; wherein the programmer behavior data comprises programmer input keys, and the programmer selects and generates code behavior marks;
step2, automatic generation code data acquisition: judging whether to trigger automatic code generation according to the programmer behavior data, and acquiring a generated code, a code source, a generated code and the number of keys for selecting the generated code selected by the programmer;
step3, preprocessing of automatically generated data of behaviors and codes: traversing the data acquired in Step2, classifying codes generated by different code automatic generation tools, and storing a preprocessing result into a generated code classification result matrix;
step4, analyzing the automatic code generation process: and analyzing the generated code classification result matrixes acquired at the Step2 and the Step3 for multiple times, and counting corresponding performances of different tools in the automatic code generation process.
The Step1 is concretely as follows:
step1.1, initializing Project as a current Project, Editor as a current Editor, keyboard keys KeyStroke as null, programmer inputting keys ProgrammerInput as null, programmer selecting and generating code behavior mark SelectAction as False, and executing Step1.2;
step1.2, judging whether the current project and the editor are not equal to null, if so, executing Step1.3, and if not, finishing;
step1.3, initializing an Execute method for processing an editor event in an IDE environment, and executing Step1.4;
step1.4, judging whether the current key value obtained by Execute is null: if so, executing Step2, otherwise, executing Step 1.5;
step1.5, assigning the obtained current key value to KeyStroke, and executing step 1.6;
step1.6, judging whether the KeyStroke contains a code automatic generation selection key, if so, executing Step1.7, otherwise, executing Step1.8; wherein, the code automatically generates selection keys of Enter and Tab;
step1.7, setting the selected code generation behavior marker SelectAction of the programmer to True, and executing Step1.4;
step1.8, assigns the programmer input button ProgrammerInput to KeyStorkes, and executes Step1.4.
The Step2 is concretely as follows:
step2.1, initialization: generating a Code list GeneratedCodeList [ ] ═ null, triggering a Code to automatically generate a key Input ═ null, generating a Code selected by a programmer to generate a Code [ ] ═ null, i ═ 0, Code from [ ] ═ null, generating a Code [ ] ═ null, selecting a key number SelectCount ═ 1 used for generating the Code, and executing Step2.2;
step2.2, determine whether programmer input key programelanput in Step1 is non-null: if yes, executing Step2.3, otherwise, ending;
step2.3, obtaining all generated code lists in the current code recommendation list, assigning the generated code lists to a GeneratedCodeList [ ], and executing Step2.4;
step2.4, judging whether the ith generated code list GeneratedCodeList [ i ] is not empty, if so, executing Step2.5, otherwise, executing Step 3;
step2.5, obtaining Code source data from the ith row generation Code list GeneratedCodeList [ i ] and assigning the Code source data to CodeFrom [ i ], obtaining and assigning a generation Code to Code [ i ], and executing Step2.6;
step2.6, judging whether the SelectAction is True, if so, executing Step2.8, otherwise, executing Step2.7;
step2.7, i + +, execute Step2.4;
step2.8, the trigger Code automatic generation key Input is assigned to programerniput, the generation Code SelectedCode selected by the programmer is Code [ i ], the key number SelectCount used for generating the Code is i, the generation Code action flag selectcontact is False, and step2.7 is executed.
The Step3 is concretely as follows:
step3.1, initializing code source mark codemark [ ] { }, indicating that a code source mark is generated, and executing step 3.2; wherein: generating a code classification result matrix CodeClassify [ ] is empty, j is 0, p is 0, k is 0, y is p +4, and automatically generating the number of times of code genereCount;
step3.2, judging whether k is less than the automatic generation times of the code: if so, executing Step3.3, otherwise, executing Step 4;
step3.3, judging whether j is less than or equal to the number of Codefrom [ ]: if yes, executing Step3.4, otherwise executing Step3.11;
step3.4, judging whether the code source CodeFrom [ j ] contains CodeMarked [ p ], if so, executing Step3.5, otherwise, executing 3.8;
step3.5, marking the source of the generated Code [ j ] as CodeMarked [ p ], storing the Code [ j ] into the Code classic [ ] [ ] row k +1, line y +1, and executing Step3.6;
step3.6, judging whether the key number SelectCount used by the selected code is equal to j, if so, executing Step3.7, otherwise, executing Step3.8;
step3.7, storing CodeMarked [ p ] into CodeCalssify [ ] [ ] kth row 3, and executing Step3.8;
step3.8, p + +, execute Step3.9;
step3.9, judging whether p is less than the number of code source marks in the codeMarked [ ], if so, executing step3.4, otherwise, executing step 3.10;
step3.10, j + +, p ═ 0, setp3.3 is performed;
the automatic generation key Input of the trigger codes in Step3.11 and Step2 is stored in the 1 st row of the k +1 row of CodeClassify [ ] [ ] ] the 2 nd row of the k +1 row, the generation code SelectCount selected by the programmer is stored in the 4 th row of the k +1 row of the CodeClassify [ ] [ ] ], and Step3.12 is executed;
step3.12, k + +, run Step3.2.
The Step4 is concretely as follows:
step4.1, initializing an average number of correct recommendation item completion keys array SelectNum [ ] ═ null, an average recommendation list length array CodeListSize [ ] ═ null, a correct recommendation number of times array coretcodenum [ ] ═ null, generating a total code occupation space array CodeSize [ ] ═ null, automatically generating a number of times array singlelinenum [ ] ═ null for a single-line code, automatically generating a number of times array multilineinum [ ] ═ null, initializing f ═ 0, u ═ 0, v ═ u +4, and executing step4.2;
step4.2, judging whether f is less than the number of rows of the matrix CodeClassify [ ] [ ], if so, executing Step4.3, otherwise, executing Step4.13;
step4.3, judging whether u is less than the number of the code source marks codeMarked [ ], if so, executing Step4.4, otherwise executing Step4.12;
step4.4, acquiring the number of code strips in the (f + 1) th row and the (v + 1) th column in the CodeClassify [ ] [ ], accumulating the code strips into CodeListSize [ u ], storing code data in the (f + 1) th row and the (v + 1) th column in the CodeClassify [ ] [ ] into the CodeSize [ u ], and executing Step4.5;
step4.5, judging whether the source information of the 3 rd column code of the f +1 th row in the CodeClassify [ ] [ ] is equal to CodeMarked [ u ], if so, executing Step4.6, otherwise, executing Step4.11;
step4.6, CorretCodeNum [ u ] + +, obtains the number of keys used by the 4 th column selection generation code at the f +1 th line in CodecClassify, and adds the number of keys into SelectNum [ u ] cumulatively to execute Step4.7;
step4.7, determine if the generated code selected by programmer at row f +1, column 2 in CodeClassify [ ] [ ] is a single line code: if yes, executing Step4.8, otherwise executing Step4.9; wherein, the single line code means that the generated code is the whole line code;
step4.8, adding 1 to the single-line code automatic generation times of the u code source, SingleLineNum [ u ] + +, and executing Step4.11;
step4.9, judging whether the generated code selected by the programmer at the (f + 1) th row and the 2 nd column in the CodeClassify [ ] [ ], if so, executing Step4.10, otherwise, executing Step4.11; wherein, the multi-line code means that the number of generated code lines is more than 1;
step4.10, adding 1 to the automatic generation times of the multi-line code of the u-th code source, performing Step4.11 by using MultiLineNum [ u ] + +;
step4.11, u + +, Perform Step4.3;
step4.12, f + +, u ═ 0, step4.2 is performed;
step4.13, judging whether u is less than the number of the code source marks codeMarked [ ], if so, executing Step4.14, otherwise, ending;
step4.14, calculating the average number of completed bonds of correct recommendation items by using SelectNum [ u ], and updating the value in SelectNum [ u ]; wherein SelectNum [ u ] ═ SelectNum [ u ]/CorretCodeNum [ u ]; calculating an average recommended list length using CodeListSize [ u ], and updating a value in CodeListSize [ u ]; wherein CodelitsSize [ u ]/GenerateCount; and reassigning the CodeSize [ u ] according to the actual occupied space size of the CodeSize [ u ], and executing Step4.15.
The invention has the beneficial effects that:
(1) the method provided by the invention can effectively monitor and record development behaviors of programmers, codes recommended by an automatic code generation tool in the coding process and related information;
(2) the method can analyze the influence degree of different automatic code generation tools on software development in the actual development process.
Drawings
FIG. 1 is a general flow chart of the present invention;
FIG. 2 is a flowchart of Step 1;
FIG. 3 is a flowchart of Step 2;
FIG. 4 is a flowchart of Step 3;
fig. 5 is a flowchart of Step4.
Detailed Description
Example 1: as shown in fig. 1-5, a method for analyzing an automatic code generation tool in an IDE environment includes the following specific steps:
step1, programmer behavior data acquisition: obtaining programmer behavior data by monitoring the key operation of a programmer in an IDE environment; wherein the programmer behavior data comprises programmer input keys, and the programmer selects and generates code behavior marks;
step2, automatic generation code data acquisition: judging whether to trigger automatic code generation according to the programmer behavior data, and acquiring a generated code, a code source, a generated code and the number of keys for selecting the generated code selected by the programmer;
step3, preprocessing of automatically generated data of behaviors and codes: traversing the data acquired in Step2, classifying codes generated by different code automatic generation tools, and storing a preprocessing result into a generated code classification result matrix;
step4, analyzing the automatic code generation process: and analyzing the generated code classification result matrixes acquired at the Step2 and the Step3 for multiple times, and counting corresponding performances of different tools in the automatic code generation process.
Further, the specific steps of the method can be set as follows (as described in the following with specific experimental data):
step1, monitoring programmer behavior data;
step1.1, initializing Project to be a table 1, namely a Project 'Demo1' in the development environment parameters, Editor to be an Editor 'IntelliJ IDEA' in the table 1, developing environment parameters, keyboard keys KeyStroke to be null, programmer inputting the current key programelanput to be null, programmer selecting a code generation behavior mark SelectAction to be False, and executing Step1.2;
table 1 development environment parameters
Properties Value of
Item Demo1
Editing device IntelliJ IDEA
Step1.2, judging whether the current Project and the Editor are empty, if Project is 'Demo1', and if Editor is 'IntelliJIDEA', executing step1.3 if the current Project and the Editor are not empty;
step1.3, initializing an Execute method for processing an editor event in an IDE environment, and executing Step1.4;
step1.4, the programmer inputs a key "d" in the editor, the current key value obtained through Execute is "d", whether the value obtained through Execute is empty is judged, and Step1.5 is executed;
step1.5, assigning the current key value d to KeyStroke, and executing step1.6 when the KeyStroke is d;
step1.6, judging whether the KeyStroke includes an Enter code, a Tab code and other codes to automatically generate a selection key, wherein the KeyStroke is equal to'd', and executing step 1.8;
step1.8, assigning values to input keys of a programmer, and executing step1.4 by programerniput which is KeyStorkes;
step1.4, judging whether the key value obtained by Execute is empty, and executing Step1.5 if the current key value obtained by Execute is Enter;
step1.5, assigning the current key value to KeyStorkes, wherein the KeyStorkes is Enter, and executing step 1.6;
step1.6, judging whether the KeyStorkes comprises code selection keys such as Enter, Tab and the like, executing step1.7 if the KeyStorkes is equal to Enter;
step1.7, setting a code behavior mark selected and generated by a programmer to True, and setting selectection action to True; performing Step1.4;
step1.4, judging whether the key value obtained by Execute is null, if so, executing Step2.
Step2, automatically generating code data and acquiring;
step2.1, initializing a generated Code list generated codelist [ ] ═ null, triggering a Code automatic generation key Input ═ null, selecting a generated Code selected by a programmer as null, i ═ 0 Code source CodeFrom [ ] ═ null, generating a Code [ ] ═ null, selecting a key number SelectCount used for generating the Code as-1, and executing step2.2;
step2.2, judging whether the programmer input key at Step1 is non-null, and executing Step2.3 if the programmer input key is d;
step2.3, obtaining all generated code lists in the current code recommendation list, assigning the generated code lists to a GeneratedCodeList [ ], and executing Step2.4; at this time, GeneratedCodeList is shown in Table 2;
table 2 generation code list generated codelist
Serial number Data of
0 itemText='def',typeText='aiXcoder'
1 itemText='del',typeText='aiXcoder'
2 itemText='def',typeText='kite'
3 itemText='del',typeText='IDEA'
4 itemText='and',typeText='IDEA'
5 itemText='lambda',typeText='IDEA'
Step2.4, judge whether GeneratedCodeList [ i ] is not empty, GeneratedCodeList [ i ] = ' itemText ═ def ', typeText ═ aiXcoder ', execute step2.5;
step2.5, obtaining Code source data from the ith row generation Code list generated codelist [ i ] and assigning the Code source data to CodeFrom [ i ], obtaining a generation Code and assigning the generation Code to Code [ i ], where i is 0, CodeFrom [0] ═ aiXcoder ', and Code [0] ═ def', and executing step2.6;
step2.6, judging whether the SelectAction is true, and executing Step2.7 according to the input key d to know that the SelectAction is False under the condition of the data;
step2.7, i + +, i ═ 1, step2.4 is performed;
step2.4, judge whether GeneratedCodeList [ i ] is empty, GeneratedCodeList [1], ' itemText ═ del ', typeText ═ aiXcoder ', execute step2.5;
step2.5, obtaining Code source data from the ith row generation Code generated codelist [ i ] and assigning the Code source data to CodeFrom [ i ], obtaining a generation Code and assigning the generation Code to Code [ i ], wherein i is 1, CodeFrom [1] 'aiXcoder', and Code [1] 'del', and executing step2.6;
step2.6, judging whether the SelectAction is True, knowing that the SelectAction is True under the condition of the data according to an input key Enter, and executing Step2.8;
step2.8, assigning the trigger Code automatic generation key Input to programerniput, selecting the generation Code SelectedCode ═ Code [ i ], selecting the key number SelectCount ═ i used by the programmer, selecting the generation Code action mark Selection ═ False, Input ═ d, SelectedCode ═ del', SelectCount ═ 1, Selection ═ False, and executing step2.7;
step2.7, i + +, i ═ 2, step2.4 is performed;
step2.4, judge whether GeneratedCodeList [ i ] is not empty, GeneratedCodeList [2] = ' itemText ═ def ', typeText ═ kit ', execute step2.5;
step2.5, obtaining Code source data from the ith row generation Code generated codelist [ i ] and assigning the Code source data to CodeFrom [ i ], obtaining a generation Code and assigning the generation Code to Code [ i ], i being 2, CodeFrom [2] ═ kit ', Code [2] ═ def', and executing step2.6;
step2.6, judging whether the SelectAction is true, if so, executing Step2.7;
step2.7, i + +, i ═ 3, step2.4 is performed;
step2.4, judge whether generated codelist [ i ] is not empty, generated codelist [3] = ' itemText ═ del ', typeText ═ IDEA ', execute step2.5;
step2.5, obtaining Code source data from the ith row generation Code generated codelist [ i ] and assigning the Code source data to CodeFrom [ i ], obtaining a generation Code and assigning the generation Code to Code [ i ], wherein i is 3, CodeFrom [3] 'aiXcoder', and Code [3] 'del', and executing step2.6;
step2.6, judging whether the SelectAction is true, if so, executing Step2.7;
step2.7, i + +, i ═ 4, step2.4 is performed;
step2.4, judge whether generated codelist [ i ] is not empty, generated codelist [4] = ' itemText ═ and ', typeText ═ IDEA ', execute step2.5;
step2.5, obtaining Code source data from the ith row generation Code generated codelist [ i ] and assigning the Code source data to CodeFrom [ i ], obtaining a generation Code and assigning the generation Code to Code [ i ], i being 4, CodeFrom [4] 'IDEA', Code [4] 'and', and executing step2.6;
step2.6, judging whether the SelectAction is true, if so, executing Step2.7;
step2.7, i + +, i ═ 5, step2.4 is performed;
step2.4, judge whether generated codelist [ i ] is not empty, generated codelist [5] = ' itemText ═ lambda ', typeText ═ IDEA ', execute step2.5;
step2.5, obtaining Code source data from the ith row generation Code generated codelist [ i ] and assigning the Code source data to CodeFrom [ i ], obtaining a generation Code and assigning the generation Code to Code [ i ], wherein i is 5, CodeFrom [5] ═ IDEA ', and Code [5] ═ lambda', and executing step2.6;
step2.6, judging whether the SelectAction is true, if so, executing Step2.7;
step2.7, i + +, i ═ 6, step2.4 is performed;
step2.4, judging whether the generated codelist [ i ] is not empty, and executing Step3 if the generated codelist [6] is null;
step3, preprocessing the data automatically generated by behaviors and codes;
step3.1, initializing code source flags as table 3-flag fields of different tools in the selected code automatic generation tool, that is, codemark [ E ] { 'aixcoder', 'bite', 'IDEA' }, generating code classification result matrix CodeClassify [ M ] [ N ] is empty, j is 0, p is 0, k is 0, y is p +4, 1 code automatic generation record can be obtained by executing Step2 1 time, that is, code automatic generation time GenerateCount is 1; performing Step3.2;
TABLE 3 selected code auto-generation tool
Automatic code generation tool Tag field
AiXcoder aiXcoder
Kite kite
IDEA IDEA
Step3.2, judging whether k is less than the code automatic generation frequency GenerateCount, wherein k is less than 1, and executing Step3.3;
step3.3, judging whether j is less than or equal to the number of CodeFrom, and executing Step3.4 when 0< 5;
step3.4, determining whether CodeFrom [ j ] includes codemark [ p ], j being 0, p being 0, CodeFrom [0] = 'aiXcoder', codemark [0] = 'aiXcoder', performing step3.5;
step3.5, marking the source of the generated Code [ j ] as CodeMarked [ p ], and storing the Code [ j ] into the Code Classify line k +1 and column y + 1. The Code [0] source is labeled CodeMarked [0], and Code [0] is stored in CodeClassify, line 1, column 5. Step3.6 is performed.
Step3.6, judging whether the key number SelectCount used by the selection code is equal to j, and executing step3.8 when 1 is equal to 0;
step3.8, p + +, p ═ 1, step3.9 is performed;
step3.9, judging whether p is less than the number of the code source marks, wherein 1 is less than 3, and executing step 3.4;
step3.4, determining whether CodeFrom [ j ] contains codemark [ p ], j being 0, p being 1, CodeFrom [0] 'aiXcoder', codemark [1] 'kite', executing step3.8;
step3.8, p + +, p ═ 2, step3.9 is performed;
step3.9, judging whether p is less than the code source mark number E, wherein 2 is less than 3, and executing step 3.4;
step3.4, determining whether CodeFrom [ j ] includes codemark [ p ], j being 0, p being 2, CodeFrom [0] 'aiXcoder', codemark [2] 'ideea', performing step3.8;
step3.8, p + +, p ═ 3, step3.9 is performed;
step3.9, judging whether p is less than the code source mark number E, 3<3, and executing step 3.10;
step3.10, j + +, j ═ 1, p ═ 0, setpp 3.3 is performed;
step3.3, judging whether j is less than or equal to the number of CodeFrom, and executing Step3.4 if 1 & lt-5;
step3.4, determining whether CodeFrom [ j ] includes codemark [ p ], j being 1, p being 0, CodeFrom [1], 'aiXcoder', codemark [0], 'aiXcoder', performing step3.5;
step3.5, mark the source of the generated Code [ j ] as CodeMarked [ p ], and store the Code [1] in the Code Classify line k +1, column y + 1. The source of Code [1] is labeled CodeMarked [0], and Code [1] is stored in CodeClassify, line 1, column 5. Step3.6 is performed.
Step3.6, judging whether the key number SelectCount used by the selection code is equal to j, and executing step3.7 if 1 is equal to 1;
step3.7, storing CodeMarked [ p ] into the CodeCalssify line k +1 line 3, marking the selection code source as CodeMarked [0] ═ aiXcoder', storing the aiXcoder into the CodeCalssify line 1 line 3, and executing Step3.8;
step3.8, p + +, p ═ 1, step3.9 is performed;
step3.9, judging whether p is less than the code source mark number E, and executing step3.4 if 1 is less than 3;
step3.4, determining whether CodeFrom [ j ] contains codemark [ p ], j being 1, p being 1, CodeFrom [1], 'aiXcoder', codemark [1], 'kite', and performing step3.8;
step3.8, p + +, p ═ 2, step3.9 is performed;
step3.9, judging whether p is less than the code source mark number E, wherein 2 is less than 3, and executing step 3.4;
step3.4, determining whether CodeFrom [ j ] includes codemark [ p ], j being 1, p being 2, CodeFrom [1], 'aiXcoder', codemark [2], 'IDEA', and performing step3.8;
step3.8, p + +, p ═ 3, step3.9 is performed;
step3.9, judging whether p is less than the code source mark number E, 3<3, and executing step 3.10;
step3.10, j + +, j ═ 2, p ═ 0, setpp 3.3 is performed;
step3.3, judging whether j is less than or equal to the number of CodeFrom, and executing Step3.4 when 2< to 5;
step3.4, determining whether CodeFrom [ j ] contains codemark [ p ], j being 2, p being 0, CodeFrom [2] 'kit', codemark [0] 'aiXcoder', performing step3.8;
step3.8, p + +, p ═ 1, step3.9 is performed;
step3.9, judging whether p is less than the code source mark number E, and executing step3.4 if 1 is less than 3;
step3.4, determining whether CodeFrom [ j ] contains CodeMarked [ p ], j being 2, p being 1, CodeFrom [2] 'kite', CodeMarked [1] 'kite', performing step3.5;
step3.5, marking the source of the generated Code [ j ] as CodeMarked [ p ], and storing the Code [ j ] into the Code Classify line k +1 and column y + 1. j 2, p1, y p +4, Code [2] source is labeled codemark [1], and Code [2] is stored in codeclassfy, line 1, column 6. Step3.6 is performed.
Step3.6, judging whether the key number SelectCount used by the selection code is equal to j, and executing step3.8 if 1 is equal to 2;
step3.8, p + +, p ═ 2, step3.9 is performed;
step3.9, judging whether p is less than the code source mark number E, wherein 2 is less than 3, and executing step 3.4;
step3.4, determining whether CodeFrom [ j ] contains CodeMarked [ p ], j being 2, p being 2, CodeFrom [2] 'kite', CodeMarked [2] 'IDEA', performing step3.8;
step3.8, p + +, p ═ 3, step3.9 is performed;
step3.9, judging whether p is less than the code source mark number E, 3<3, and executing step 3.10;
step3.10, j + +, j ═ 3, p ═ 0, setpp 3.3 is performed;
step3.3, judging whether j is less than or equal to the number of CodeFrom, and executing Step3.4 if 3< 5;
step3.4, determining whether CodeFrom [ j ] includes codemark [ p ], j being 3, p being 0, CodeFrom [3] 'IDEA', codemark [0] 'aiXcoder', performing step3.8;
step3.8, p + +, p ═ 1, step3.9 is performed;
step3.9, judging whether p is less than the code source mark number E, and executing step3.4 if 1 is less than 3;
step3.4, determining whether CodeFrom [ j ] contains codemark [ p ], j being 3, p being 1, CodeFrom [3] 'IDEA', codemark [1] 'kite', performing step3.8;
step3.8, p + +, p ═ 2, step3.9 is performed;
step3.9, judging whether p is less than the code source mark number E, wherein 2 is less than 3, and executing step 3.4;
step3.4, determining whether CodeFrom [ j ] includes codemark [ p ], j being 3, p being 2, CodeFrom [3] 'IDEA', codemark [2] 'IDEA', and performing step3.5;
step3.5, marking the source of the generated Code [ j ] as CodeMarked [ p ], and storing the Code in the k +1 line, the y +1 line of the CodeClassify. j-3, p-2, y-p +4, Code [3] source is labeled codemark [2], and the Code is stored in codeclassfy, line 1, column 7. Step3.6 is performed.
Step3.6, judging whether the key number SelectCount used by the selection code is equal to j, and executing step3.8 if 1 is equal to 3;
step3.8, p + +, p ═ 3, step3.9 is performed;
step3.9, judging whether p is less than the code source mark number E, 3<3, and executing step 3.10;
step3.10, j + +, j ═ 4, p ═ 0, setpp 3.3 is performed;
step3.3, judging whether j is less than or equal to the number of CodeFrom, and executing Step3.4 if 4<5 >;
step3.4, determining whether CodeFrom [ j ] includes codemark [ p ], j being 4, p being 0, CodeFrom [4] 'IDEA', codemark [0] 'aiXcoder', performing step3.8;
step3.8, p + +, p ═ 1, step3.9 is performed;
step3.9, judging whether p is less than the code source mark number E, and executing step3.4 if 1 is less than 3;
step3.4, determining whether CodeFrom [ j ] includes codemark [ p ], j being 4, p being 1, CodeFrom [3] 'IDEA', codemark [1] 'kite', performing step3.8;
step3.8, p + +, p ═ 2, step3.9 is performed;
step3.9, judging whether p is less than the code source mark number E, wherein 2 is less than 3, and executing step 3.4;
step3.4, determining whether CodeFrom [ j ] includes codemark [ p ], j being 4, p being 2, CodeFrom [4] 'IDEA', codemark [2] 'IDEA', and performing step3.5;
step3.5, marking the source of the generated Code [ j ] as CodeMarked [ p ], and storing the Code in the k +1 line, the y +1 line of the CodeClassify. j-4, p-2, y-p +4, Code [4] source is labeled codemark [2], and the Code is stored in codeclassic line 1, column 7. Step3.6 is performed.
Step3.6, judging whether the key number SelectCount used by the selection code is equal to j, and executing step3.8 if 1 is equal to 4;
step3.8, p + +, p ═ 3, step3.9 is performed;
step3.9, judging whether p is less than the code source mark number E, 3<3, and executing step 3.10;
step3.10, j + +, j ═ 5, p ═ 0, setpp 3.3 is performed;
step3.3, judging whether j is less than or equal to the number of CodeFrom, and executing Step3.4 if 5< 5 >;
step3.4, determining whether CodeFrom [ j ] includes codemark [ p ], j being 5, p being 0, CodeFrom [5] 'IDEA', codemark [0] 'aixcoder', performing step3.8;
step3.8, p + +, p ═ 1, step3.9 is performed;
step3.9, judging whether p is less than the code source mark number E, and executing step3.4 if 1 is less than 3;
step3.4, determining whether CodeFrom [ j ] includes codemark [ p ], j being 5, p being 1, CodeFrom [5] 'IDEA', codemark [1] 'kite', performing step3.8;
step3.8, p + +, p ═ 2, step3.9 is performed;
step3.9, judging whether p is less than the code source mark number E, wherein 2 is less than 3, and executing step 3.4;
step3.4, determining whether CodeFrom [ j ] includes codemark [ p ], j being 5, p being 2, CodeFrom [5] 'IDEA', codemark [2] 'IDEA', and performing step3.5;
step3.5, marking the source of the generated Code [ j ] as CodeMarked [ p ], and storing the Code in the k +1 line, the y +1 line of the CodeClassify. j-5, p-2, y-p +4, Code [5] source is labeled codemark [2], and the Code is stored in codeclassic line 1, column 7. Step3.6 is performed.
Step3.6, judging whether the number of keys used for selecting the code SelectCount is equal to j, and executing step3.8 if 1 is equal to 5;
step3.8, p + +, p ═ 3, step3.9 is performed;
step3.9, judging whether p is less than the code source mark number E, 3<3, and executing step 3.10;
step3.10, j + +, j ═ 6, p ═ 0, setpp 3.3 is performed;
step3.3, judging whether j is less than or equal to the number of CodeFrom, and executing Step3.11 if j is less than or equal to 6< ═ 5;
step3.11, automatically generating a key Input by a trigger code and storing the key Input into the 1 st column of the k +1 th line of the CodeClassification, storing a generation code SelectdCode selected by a programmer into the 2 nd column of the k +1 th line of the CodeClassification, selecting a key number SelectCount used by the generation code and storing the key number SelectCount into the 4 th column of the k +1 th line of the CodeClassification, wherein the Input is'd', and k is 0; selecting a dCode and selecting a count 1, wherein the triggering code automatically generates a key d and stores the key d in a CodeClassify line 1, a column 2, a CodeClassify line 1, a column 4 and a key number 1 for selecting a code to be generated, and Step3.12 is executed;
step3.12, k + +, k ═ 1, step3.2 is performed;
step3.2, judge whether k is less than code automatic generation number GenerateCount, 1<1, execute Step4.
Step4, analyzing the automatic code generation process;
step4.1, initializing an average number of correct recommendation item completion keys array SelectNum [ ] ═ null, an average recommendation list length array CodeListSize [ ] ═ null, a correct recommendation number of times array coretcodenum [ ] ═ null, generating a total code occupation space array CodeSize [ ] ═ null, automatically generating a number of times array singlelinenum [ ] ═ null for a single-line code, automatically generating a number of times array multilineinum [ ] ═ null, initializing f ═ 0, u ═ 0, v ═ u +4, and executing step4.2;
step4.2, judging whether f is less than the row number of the matrix CodeClassify, and executing Step4.3 when 0< 1; by executing Step3 5 times, CodeClassify obtains data, where the header is down and the data with id ═ 1 row in table 4 represents the result of Step2 in this embodiment;
table 4 generation code list GeneratedCodeList data
Figure BDA0002115278490000131
Figure BDA0002115278490000141
Step4.3, judging whether u is less than the number of codemark of the code source characteristic marks, wherein u is 0, the number of codemark is 3, and 0 is less than 3, so that step4.4 is executed;
step4.4, obtaining the code number in the v +1 th column of the f +1 th row in the codeclassiffy [ ] [ ], accumulating the code number into CodeListSize [ u ], storing the code data in the v +1 th row in the codeclassiffy [ ] [ ] into CodeSize [ u ], where f is 0, u is 0, v is 4, obtaining the code number 2 (namely def and del) in the 5 th column of the 1 st row in the codeclassiffy, CodeListSize [0] +2, storing the code data in the 5 th column of the 1 st row in the codeclassiffy into CodeSize [0], where CodeSize [0] + [ def ], 'step, step 4.5' is executed;
step4.5, determining whether the source information of the 3 rd column code in the f +1 th row in the codeclassicfy is equal to codemark [ u ], f is 0, u is 0, the source information of the 3 rd column code in the 1 st row in the codeclassicfy is "aiXcoder", the codemark [ u ] is 'aiXcoder', and the 'aiXcoder' is "aiXcoder", and executing step4.6;
step4.6, coretcodenum [ u ] + +, obtaining the number of keys used by the 4 th column selection generation code in the f +1 th row in codeclassfy, and adding the number of keys into SelectNum [ u ], wherein f is 0, u is 0, the number of keys used by the 4 th column selection generation code in the 1 st row in codeclassfy is 1, SelectNum [0] = SelectNum [0] +1, coretcodenum [0] +, and executing step4.7;
step4.7, judging whether the generated code selected by the programmer at the f +1 th row and the 2 nd column in the codeclassfy is a single-row code (the single-row code means that the generated code is the whole-row code), wherein f is 0, the generated code selected by the programmer at the 1 st row and the 2 nd column in the codeclassfy is 'del', which is generated by a single keyword and is not automatically generated by the single-row code, and therefore, step4.9 is executed;
step4.9, judging whether the generated code selected by the programmer at the f +1 th row and the 2 nd column in the codeclassfy is a multi-row code (the multi-row code means that the number of generated code rows is more than 1), wherein f is 0, the generated code selected by the programmer at the 1 st row and the 2 nd column in the codeclassfy is 'del', the 'del' is generated as a single keyword, and the code is not automatically generated for the multi-row code, so that step4.11 is executed;
step4.11, u + +, u ═ 1, step4.3 is performed;
step4.3, judging whether u is less than the number of codemark of the code source characteristic marks, wherein u is 1, the number of codemark is 3, and 1 is less than 3, so that step4.4 is executed;
step4.4, obtaining the number of code bars in the (f + 1) th row and the (v + 1) th column in codeclassfy, accumulating the code bars into CodeListSize [ u ], storing the code data in the (f + 1) th row and the (v + 1) th column in codeclassfy into CodeSize [ u ], wherein f is 0, u is 1, v is 5, obtaining the number of code bars in the (1) th row and the 6 th column in codeclassfy, 1, 4, storing the code data in the (1) th row and the 6 th column in codeclassfy into CodeSize [1], 1, and 1, CodeSize [1] + def'. Performing Step4.5;
step4.5, determine whether the source information of the 3 rd column code in line f +1 of CodeClassify is equal to codemark [ u ], f is 0, u is 1, the source information of the 3 rd column code in line 1 of CodeClassify is "aiXcoder", codemark [1] 'kit', "aiXcoder! Since "kite", step4.11 is executed;
step4.11, u + +, u ═ 2, step4.3 is performed;
step4.3, judging whether u is less than the number of codemark of the code source characteristic marks, wherein u is 2, the number of codemark is 3, and 2 is less than 3, so that step4.4 is executed;
step4.4, obtaining the number of code bars in the (f + 1) th row and the (v + 1) th column in codeclassfy, accumulating the code bars into CodeListSize [ u ], storing the code data in the (f + 1) th row and the (v + 1) th column in codeclassfy into CodeSize [ u ], wherein f is 0, u is 2, v is 6, obtaining the number of code bars in the (1) th row and the (7) th column in codeclassfy 2, and storing the code data in the (1) th row and the (7) th column in codeclassfy into CodeListSize [2] +2, and storing the code data in the (1) th row and the (7) th column in codeclassfy into CodeSize [2], wherein CodeSize [2] + 'and lambda'. Performing Step4.5;
step4.5, determine whether the source information of the 3 rd column code in line f +1 of CodeClassify is equal to codemark [ u ], f is 0, u is 2, the source information of the 3 rd column code in line 1 of CodeClassify is "aiXcoder", codemark [1] 'IDEA', "aiXcoder! "IDEA", so step4.11 is performed;
step4.11, u + +, u ═ 3, step4.3 is performed;
step4.3, judging whether u is less than the number of codemark of the code source characteristic marks, wherein u is 3, the number of codemark is 3, and 3 is less than 3, so that step4.12 is executed;
step4.12, f + +, f ═ 1, u ═ 0, step4.2 is performed;
step4.2, judging whether f is less than the row number of the matrix CodeClassify, and executing Step4.3 when 0< 5;
step4.3, judging whether u is less than the number of codemark of the code source characteristic marks, wherein u is 0, the number of codemark is 3, and 0 is less than 3, so that step4.4 is executed;
step4.4, obtaining the number of code bars in the (f + 1) th row and the (v + 1) th column in codeclassfy, accumulating the code bars into CodeListSize [ u ], storing the code data in the (f + 1) th row and the (v + 1) th column in codeclassfy into CodeSize [ u ], wherein f is 1, u is 0, v is 4, obtaining the number of code bars in the (2) th row and the 5 th column in codeclassfy 2, wherein CodeListSize [0] - [ CodeListSize [0] +2, storing the code data in the (2) th row and the 5 th column in codeclassfy into CodeSize [0] + 'instanceof'. Performing Step4.5;
step4.5, determine whether the source information of the 3 rd column code in line f +1 of CodeClassify is equal to codemark [ u ], f is 1, u is 0, the source information of the 3 rd column code in line 2 of CodeClassify is "kit", codemark [0] is ' aiXcoder ', "aiXcoder '! Since "kite", step4.11 is executed;
step4.11, u + +, u ═ 1, step4.3 is performed;
step4.3, judging whether u is less than the number of codemark of the code source characteristic marks, wherein u is 1, the number of codemark is 3, and 1 is less than 3, so that step4.4 is executed;
step4.4, obtaining the number of code bars in the (f + 1) th row and the (v + 1) th column in codeclassfy, accumulating the code bars into CodeListSize [ u ], storing the code data in the (f + 1) th row and the (v + 1) th column in codeclassfy into CodeSize [ u ], wherein f is 1, u is 1, v is 5, obtaining the number of code bars in the (2) th row and the 6 th column in codeclassfy 1, CodeListsize [1] - [ CodeListSize [1] +2, storing the code data in the (2) th row and the 6 th column in codeclassfy into codeSize [1] + [ of ], [1] + [ codeSize [1] + [ of ] + [ embodiment ]. Performing Step4.5;
step4.5, determining whether the source information of the 3 rd column code in the f +1 th row in the CodeClassify is equal to codemark [ u ], f is 1, u is 1, the source information of the 3 rd column code in the 2 nd row in the CodeClassify is "kit", codemark [1] is "kit", and "kit" is executed step4.6;
step4.6, coretcodenum [ u ] + +, obtaining the number of keys used by the 4 th column selection generation code in the f +1 th row in codeclassfy, and adding the number of keys into SelectNum [ u ], wherein f is 1, u is 1, the number of keys used by the 1 st row 3 column selection generation code in codeclassfy is 2, SelectNum [1] = SelectNum [1] +1, coretcodenum [1] +, and performing step4.7;
step4.7, judging whether the generated code selected by the programmer at the f +1 th row and the 2 nd column in the CodecClassify is a single-row code (the single-row code means that the generated code is a whole-row code), wherein f is 1, the generated code selected by the programmer at the 2 nd row and the 2 nd column in the CodecClassify is 'import', the 'import' is generated as a single keyword, and the single-row code is not automatically generated, so that step4.9 is executed;
step4.9, judging whether the generated code selected by the programmer at the f +1 th row and the 2 nd column in the Codeclassyf is a multi-row code (the number of the multi-row code is more than 1), wherein f is 1, the generated code selected by the programmer at the 2 nd row and the 2 nd column in the Codeclassyf is generated as an import and is a single key, and the import is not automatically generated for the multi-row code, so that step4.11 is executed;
step4.11, u + +, u ═ 2, step4.3 is performed;
step4.3, judging whether u is less than the number of codemark of the code source characteristic marks, wherein u is 2, the number of codemark is 3, and 2 is less than 3, so that step4.4 is executed;
step4.4, obtaining the number of code bars in the (f + 1) th row and the (v + 1) th column in codeclassfy, accumulating the code bars into CodeListSize [ u ], storing the code data in the (f + 1) th row and the (v + 1) th column in codeclassfy into CodeSize [ u ], wherein f is 1, u is 2, v is 6, obtaining the number of code bars in the (2) th row and the 7 th column in codeclassfy 2, and storing the code data in the (2) th row and the 7 th column in codeclassfy into CodeListSize [2] +2, and storing the code data in the (2) th row and the 7 th column in CodeListSize [2] + 'iter, itere'. Performing Step4.5;
step4.5, determine whether the source information of the 3 rd column code at line f +1 in CodeClassify is equal to codemark [ u ], where f is 1 and u is 2, the source information of the 3 rd column code at line 2 in CodeClassify is "kit", codemark [0] is 'IDEA', "IDEA '], and" IDEA'! Since "kite", step4.11 is executed;
step4.11, u + +, u ═ 3, step4.3 is performed;
step4.3, judging whether u is less than the number of codemark of the code source characteristic marks, wherein u is 3, the number of codemark is 3, and 3 is less than 3, so that step4.12 is executed;
step4.12, f + +, f ═ 2, u ═ 0, step4.2 is performed;
step4.2, judging whether f is less than the row number of the matrix CodeClassify, and executing Step4.3 when 2< 5;
step4.3, judging whether u is less than the number of codemark of the code source characteristic marks, wherein u is 0, the number of codemark is 3, and 0 is less than 3, so that step4.4 is executed;
step4.4, obtaining the number of code bars in the (f + 1) th row and the (v + 1) th column in codeclassfy, accumulating the code bars into CodeListSize [ u ], storing the code data in the (f + 1) th row and the (v + 1) th column in codeclassfy into CodeSize [ u ], wherein f is 2, u is 0, v is 4, obtaining the number of code bars in the (3) rd row and the (5) th column in codeclassfy, 1, CodeListSize [0] - +1, storing the code data in the (3) rd row and the (5) th column in codeclassfy into CodeSize [0], and storing the code data in the (0) rd row and the (5) th column in codeclassfy into coder _ rate. Performing Step4.5;
step4.5, determining whether the source information of the code at the f +1 st row and 3 rd column in the codeclassfy is equal to codemark [ u ], f is 2, u is 0, the source information of the code at the 2 nd row and 3 rd column in the codeclassfy is "aiXcoder", codemark [0] 'aiXcoder', and "aiXcoder", so step4.6 is executed;
step4.6, coretcodenum [ u ] + +, obtaining the number of keys used by the 4 th column selection generation code in the f +1 th row in codeclassfy, and adding the number of keys into SelectNum [ u ], wherein f is 2, u is 0, the number of keys used by the 4 th column selection generation code in the 3 rd row in codeclassfy is 1, SelectNum [0] = SelectNum [0] +1, coretcodenum [0] +, and executing step4.7;
step4.7, determining whether the generated code selected by the programmer at row f +1 and column 2 in codeclassfy is a single-line code (the single-line code means that the generated code is an entire line code), f is 2, and the generated code selected by the programmer at row 3 and column 2 in codeclassfy is "learning _ rate" which is a single-line code, so step4.8 is executed;
step4.8, adding 1 to the single-line code automatic generation times of the u code source, SingleLineNum [0] + +, and executing Step4.11;
step4.11, u + +, u ═ 1, step4.3 is performed;
step4.3, judging whether u is less than the number of codemark of the code source characteristic marks, wherein u is 1, the number of codemark is 3, and 1 is less than 3, so that step4.4 is executed;
step4.4, acquiring the number of code bars in the (f + 1) th row and the (v + 1) th column in the codeclassfy, accumulating the code bars into CodeListSize [ u ], storing code data in the (f + 1) th row and the (v + 1) th column in the codeclassfy into CodeListSize [ u ], wherein f is 2, u is 1, and v is 5, acquiring the number of code bars in the 3 rd row and the 6 th column in the codeclassfy, wherein CodeListSize [1] ' CodeListSize [1] +7, storing code data in the 3 rd row and the 6 th column in the codeclassfy into CodeSize [1], wherein CodeSize [1] ' searching _ rate, logs, loss _ len, list, steps, logging ', and executing the process 4.5;
step4.5, determine whether the source information of the 3 rd column code in line f +1 of CodeClassify is equal to codemark [ u ], f is 2, u is 1, the source information of the 3 rd column code in line 3 of CodeClassify is "aiXcoder", codemark [1] 'kit', "aiXcoder! Kit ", so step4.11 is executed;
step4.11, u + +, u ═ 2 performs step4.3;
step4.3, judging whether u is less than the number of codemark of the code source characteristic marks, wherein u is 2, the number of codemark is 3, and 2 is less than 3, so that step4.4 is executed;
step4.4, acquiring the number of code bars in the (f + 1) th row and the (v + 1) th column in the CodeClassify, accumulating the code bars into CodeListSize [ u ], storing the code data in the (f + 1) th row and the (v + 1) th column in the CodeClassify into CodeListSize [ u ], wherein f is 2, u is 2, v is 6, acquiring the number of code bars in the 3 rd row and the 7 th column in the CodeClassify 9, CodeListSize [2] = CodeListSize [2] +9, storing the code data in the 3 rd row and the 7 th column in the CodeClassify into CodeListSize [2], storing CodeListSize [2] +' searching _ rate, len, license, step, locals, loading, unloading _ 5.5;
step4.5, determine whether the source information of the 3 rd column code in line f +1 of CodeClassify is equal to codemark [ u ], f is 2, u is 2, the source information of the 3 rd column code in line 3 of CodeClassify is "aiXcoder", codemark [1] 'IDEA', "aiXcoder! "IDEA", so step4.11 is performed;
step4.11, u + +, u ═ 3, step4.3 is performed;
step4.3, judging whether u is less than the number of codeMarked code source characteristic marks, wherein u is 3, the number of codeMarked is 3, 3! <3, so step4.12 is performed;
step4.12, f + +, f ═ 3, u ═ 0, step4.2 is performed;
step4.2, judging whether f is less than the row number of the matrix CodeClassify, and executing Step4.3 when 3< 5;
step4.3, judging whether u is less than the number of codemark of the code source characteristic marks, wherein u is 0, the number of codemark is 3, and 0 is less than 3, so that step4.4 is executed;
step4.4, acquiring the number of code bars in the (f + 1) th row and the (v + 1) th column in the codeclassfy, accumulating the code bars into CodeListSize [ u ], storing code data in the (f + 1) th row and the (v + 1) th column in the codeclassfy into the CodeListSize [ u ], wherein f is 3, u is 0, v is 4, acquiring the number of code bars in the (4) th row and the (5) th column in the codeclassfy, wherein the CodeListSize [0] = CodeListSize [0] +1, storing code data in the (4) th row and the (5) th column in the codeclassfy into the CodeSize [0], wherein the CodeSize [0] +/-is performed by step 4.5;
step4.5, determining whether the source information of the 3 rd column code in the f +1 th row in CodeClassify is equal to codemark [ u ], f is 3, u is 0, the source information of the 3 rd column code in the 4 th row in CodeClassify is "aiXcoder", codemark [0] is 'aiXcoder', and 'aiXcoder' is 'aiXcoder', so step4.6 is executed;
step4.6, coretcodenum [ u ] + +, obtaining the number of keys used by the 4 th column selection generation code in the f +1 th row in codeclassfy, and adding the keys into SelectNum [ u ] cumulatively, wherein f is 3, u is 0, the number of keys used by the 4 th column selection generation code in the 4 th row in codeclassfy is 2, SelectNum [0] = SelectNum [0] +2, coretcodenum [0] +, and performing step4.7;
step4.7, determining whether the generated code selected by the programmer at the 2 nd column in the f +1 th line in the codeclassfy is a single-line code (the single-line code means that the generated code is an entire-line code), wherein f is 3, and the generated code selected by the programmer at the 2 nd column in the 4 th line in the codeclassfy is "adjuster ═ tf.train.gradientdestmistimerizer ()", and is automatically generated for the single-line code, so that step4.8 is executed;
step4.8, adding 1 to the single-line code automatic generation times of the u code source, SingleLineNum [0] + +, and executing Step4.11;
step4.11, u + +, u ═ 1, step4.3 is performed;
step4.3, judging whether u is less than the number of codemark of the code source characteristic marks, wherein u is 1, the number of codemark is 3, and 1 is less than 3, so that step4.4 is executed;
step4.4, acquiring the number of code bars in the (f + 1) th row and the (v + 1) th column in the codeclassicfy, accumulating the code bars into CodeListSize [ u ], storing the code data in the (f + 1) th row and the (v + 1) th column in the codeclassicfy into the CodeListSize [ u ], wherein f is 3, u is 1, and v is 5, acquiring the number of code bars in the (4) th row and the (6) th column in the codeclassicfy, wherein CodeListSize [1 ]' is CodeListSize [1] +1, storing the code data in the (4) th row and the (6) th column in the codeclassicfy into the CodeSize [1], and performing step4.5;
step4.5, determine whether the source information of the 3 rd column code in line f +1 of CodeClassify is equal to codemark [ u ], f is 3, u is 1, the source information of the 3 rd column code in line 4 of CodeClassify is "aiXcoder", codemark [1] 'kit', "aiXcoder! Since "kite", step4.11 is executed;
step4.11, u + +, u ═ 2, step4.3 is performed;
step4.3, judging whether u is less than the number of codemark of the code source characteristic marks, wherein u is 2, the number of codemark is 3, and 2 is less than 3, so that step4.4 is executed;
step4.4, acquiring the number of code bars in the (f + 1) th row and the (v + 1) th column in the codeclassfy, accumulating the code bars into CodeListSize [ u ], storing code data in the (f + 1) th row and the (v + 1) th column in the codeclassfy into the CodeListSize [ u ], wherein f is 3, u is 2, and v is 6, acquiring the number of code bars in the (4) th row and the (7) th column in the codeclassfy 2, and storing the code data in the (4) th row and the (7) th column in the codeclassfy into the CodeListSize [2] +2, and executing step 4.5;
step4.5, determine whether the source information of the 3 rd column code in line f +1 of CodeClassify is equal to codemark [ u ], f is 3, u is 2, the source information of the 3 rd column code in line 4 of CodeClassify is "aiXcoder", codemark [2] ' IDEA ', "IDEA ' ]! Since "kite", step4.11 is executed;
step4.11, u + +, u ═ 3, step4.3 is performed;
step4.3, judging whether u is less than the number of codeMarked code source characteristic marks, wherein u is 3, the number of codeMarked is 3, 3! <3, so step4.12 is performed;
step4.12, f + +, f ═ 4, u ═ 0, step4.2 is performed;
step4.2, judging whether f is less than the row number of the matrix CodeClassify, and executing Step4.3 if 4 is less than 5;
step4.3, judging whether u is less than the number of codemark of the code source characteristic marks, wherein u is 0, the number of codemark is 3, and 0 is less than 3, so that step4.4 is executed;
step4.4, acquiring the number of code bars in the (f + 1) th row and the (v + 1) th column in the codeclassicfy, accumulating the code bars into CodeListSize [ u ], storing the code data in the (f + 1) th row and the (v + 1) th column in the codeclassicfy into the CodeListSize [ u ], wherein f is 4, u is 0, v is 4, acquiring the number of code bars in the 5 th row and the 5 th column in the codeclassicfy, wherein CodeListSize [0] = CodeListSize [0] +1, storing the code data in the 5 th row and the 5 th column in the codeclassicfy into the CodeSize [0] +, and executing step4.5;
step4.5, determining whether the source information of the 3 rd column code in the f +1 th row in codeclassfy is equal to codemark [ u ], f is 4, u is 0, the source information of the 3 rd column code in the 5 th row in codeclassfy is "aiXcoder", codemark [0] is 'aiXcoder', and 'aiXcoder' is 'aiXcoder', so step4.6 is executed;
step4.6, coretcodenum [ u ] + +, obtaining the number of keys used by the 3 rd column selection generation code in the f +1 th row in codeclassfy, and adding the number of keys into SelectNum [ u ], wherein f is 4, u is 0, the number of keys used by the 3 rd column selection generation code in the 4 th row in codeclassfy is 1, SelectNum [0] = SelectNum [0] +1, coretcodenum [0] +, and executing step4.7;
step4.7, judging whether the generated code selected by the programmer at the f +1 th row and the 2 nd column in the CodeClassify is a single-row code (the single-row code means that the generated code is a whole-row code), wherein f is 4, the generated code selected by the programmer at the 5 th row and the 2 nd column in the CodeClassify is ' feed _ fact { } ', and the feed _ fact { } ' is automatically generated for a plurality of rows of codes, so that step4.9 is executed;
step4.9, judging whether the generated code selected by the programmer at the f +1 th row and the 2 nd column in the codeclassfy is multi-row code (the multi-row code means that the number of generated code rows is more than 1), wherein f is 4, the generated code selected by the programmer at the 5 th row and the 2 nd column in the codeclassfy is 'feed _ fact { }', and the 'feed _ fact { }' is automatically generated for the multi-row code, so that step4.10 is executed;
step4.10, adding 1 to the automatic generation times of the multi-line code of the u code source, performing Step4.11 by using MultiLineNum [0] + +;
step4.11, u + +, u ═ 1, step4.3 is performed;
step4.3, judging whether u is less than the number of codemark of the code source characteristic marks, wherein u is 1, the number of codemark is 3, and 1 is less than 3, so that step4.4 is executed;
step4.4, acquiring the number of code bars in the (f + 1) th row and the (v + 1) th column in the codeclassicfy, accumulating the code bars into CodeListSize [ u ], storing code data in the (f + 1) th row and the (v + 1) th column in the codeclassicfy into the CodeListSize [ u ], wherein f is 4, u is 1, v is 5, acquiring the number of code bars in the (5) th row and the (6) th column in the codeclassicfy, wherein CodeListSize [1 ]' is CodeListSize [1] +1, storing code data in the (5) th row and the (6) th column in the codeclassicfy into the CodeSize [1] +, and executing step4.5;
step4.5, determining whether the source information of the f +1 th row and 3 rd column code in CodeClassify is equal to codemark [ u ], f is 4, u is 1, the source information of the 5 th row and 3 rd column code in CodeClassify is "aiXcoder",
codemark [1] ═ kite ', "aiXcoder'! Since "kite", step4.11 is executed;
step4.11, u + +, u ═ 2, step4.3 is performed;
step4.3, judging whether u is less than the number of codemark of the code source characteristic marks, wherein u is 2, the number of codemark is 3, and 2 is less than 3, so that step4.4 is executed;
step4.4, acquiring the number of code bars in the (f + 1) th row and the (v + 1) th column in the codeclassicfy, accumulating the code bars into CodeListSize [ u ], storing the code data in the (f + 1) th row and the (v + 1) th column in the codeclassicfy into the CodeListSize [ u ], wherein f is 4, u is 2, v is 6, acquiring the number of code bars in the (5) th row and the (7) th column in the codeclassicfy, wherein CodeListSize [2] = CodeListSize [2] +1, storing the code data in the (5) th row and the (7) th column in the codeclassicfy into the CodeSize [2] +, and executing step4.5;
step4.5, determining whether the source information of the f +1 th row and 3 rd column code in CodeClassify is equal to codemark [ u ], f is 4, u is 1, the source information of the 5 th row and 3 rd column code in CodeClassify is "aiXcoder",
codemark [1] ═ IDEA ', "aiXcoder'! "IDEA", so step4.11 is performed;
step4.11, u + +, u ═ 3, step4.3 is performed;
step4.3, judging whether u is less than the number of codeMarked code source characteristic marks, wherein u is 3, the number of codeMarked is 3, 3! <3, so step4.12 is performed;
step4.12, f + +, f ═ 5, u ═ 0, step4.2 is performed;
step4.2, determine if f is less than the number of rows in the CodeClassify matrix, 5! <5, perform step4.13;
step4.13, judging whether u is less than the number of codemark of the code source characteristic marks, wherein u is 0, the number of codemark is 3, and 0 is less than 3, so that step4.14 is executed;
step4.14, calculating the average number of completed bonds for the correct recommended item using SelectNum [ u ], and updating the value in SelectNum [ u ], where SelectNum [ u ] = SelectNum [ u ]/coretcodenum [ u ]; calculating an average recommended list length using CodeListSize [ u ], and updating a value in CodeListSize [ u ], wherein CodeListSize [ u ] = CodeListSize [ u ]/genetatecount; reassigning CodeSize [ u ] according to the actual occupied space size of CodeSize [ u ] (namely reassigning CodeSize [ u ], and assigning the occupied space size of the 5 th column data in the table 4 to CodeSize [0] when u is equal to 0); u is 0, GenerateCount is 5,
SelectNum[0]=SelectNum[0]/CorretCodeNum[0]=5/5=1,
performing step4.15 with codelisize [0 ]/GenerateCount;
step4.15, u + +, u ═ 1, step4.13 is performed;
step4.13, judging whether u is less than the number of codemark of the code source characteristic marks, wherein u is 1, the number of codemark is 3, and 1 is less than 3, so that step4.14 is executed;
step4.14, calculating the average number of completed bonds for the correct recommended item using SelectNum [ u ], and updating the value in SelectNum [ u ], where SelectNum [ u ] = SelectNum [ u ]/coretcodenum [ u ]; calculating an average recommended list length using CodeListSize [ u ], and updating a value in CodeListSize [ u ], wherein CodeListSize [ u ] = CodeListSize [ u ]/genetatecount; reassigning CodeSize [ u ] according to the actual occupied space size of CodeSize [ u ]; u 1, GenerateCount 5,
SelectNum[1]=SelectNum[1]/CorretCodeNum[1],
performing step4.15 with codelisize [1 ]/GenerateCount;
step4.15, u + +, u ═ 2, step4.13 is performed;
step4.13, judging whether u is less than the number of codemark of the code source characteristic marks, wherein u is 2, the number of codemark is 3, and 2 is less than 3, so that step4.14 is executed;
step4.14, calculating the average number of completed bonds for the correct recommended item using SelectNum [ u ], and updating the value in SelectNum [ u ], where SelectNum [ u ] = SelectNum [ u ]/coretcodenum [ u ]; calculating an average recommended list length using CodeListSize [ u ], and updating a value in CodeListSize [ u ], wherein CodeListSize [ u ] = CodeListSize [ u ]/genetatecount; reassigning CodeSize [ u ] according to the actual occupied space size of CodeSize [ u ]; u is 2, GenerateCount is 5, SelectNum [2]/CorretCodeNum [2],
performing step4.15 with codelisize [2] = codessize [2 ]/GenerateCount;
step4.15, u + +, u ═ 3, step4.13 is performed;
step4.13, judging whether u is less than the number of codeMarked code source characteristic marks, wherein u is 3, the number of codeMarked is 3, 3! And 3, ending.
While the present invention has been described in detail with reference to the embodiments shown in the drawings, the present invention is not limited to the embodiments, and various changes can be made without departing from the spirit of the present invention within the knowledge of those skilled in the art.

Claims (4)

1. An analysis method for code automatic generation tools in IDE environment is characterized in that: the method comprises the following specific steps:
step1, programmer behavior data acquisition: obtaining programmer behavior data by monitoring the key operation of a programmer in an IDE environment; wherein the programmer behavior data comprises programmer input keys, and the programmer selects and generates code behavior marks;
step2, automatic generation code data acquisition: judging whether to trigger automatic code generation according to the programmer behavior data, and acquiring a generated code selected by the programmer, a code source and the number of keys for selecting the generated code;
step3, preprocessing of automatically generated data of behaviors and codes: traversing the data acquired in Step2, classifying codes generated by different code automatic generation tools, and storing a preprocessing result into a generated code classification result matrix;
step4, analyzing the automatic code generation process: analyzing generated code classification result matrixes obtained at Step2 and Step3 for multiple times, and counting corresponding performances of different tools in the automatic code generation process, wherein the corresponding performances comprise the average number of finishing keys of correct recommendation items of the automatic code generation tool, the average recommendation list length, the correct recommendation times, the total code generation occupied space, the automatic single-row code generation times and the automatic multi-row code generation times;
the Step1 is concretely as follows:
step1.1, initializing Project as a current Project, Editor as a current Editor, keyboard keys KeyStroke as null, programmer inputting keys ProgrammerInput as null, programmer selecting and generating code behavior mark SelectAction as False, and executing Step1.2;
step1.2, judging whether the current project and the editor are not equal to null, if so, executing Step1.3, and if not, finishing;
step1.3, initializing an Execute method for processing an editor event in an IDE environment, and executing Step1.4;
step1.4, judging whether the current key value obtained by Execute is null: if so, executing Step2, otherwise, executing Step 1.5;
step1.5, assigning the obtained current key value to KeyStroke, and executing step 1.6;
step1.6, judging whether the KeyStroke contains a code automatic generation selection key, if so, executing Step1.7, otherwise, executing Step1.8; wherein, the code automatically generates selection keys of Enter and Tab;
step1.7, setting the selected code generation behavior marker SelectAction of the programmer to True, and executing Step1.4;
step1.8, assigns the programmer input button ProgrammerInput to KeyStorkes, and executes Step1.4.
2. The analysis method for code auto-generation tool in IDE environment according to claim 1, wherein: the Step2 is concretely as follows:
step2.1, initialization: generating a Code list GeneratedCodeList [ ] = null, triggering the Code to automatically generate a key Input = null, selecting a generation Code selected by a programmer from [ ] = null, i =0, selecting a Code source from [ ] = null, generating the Code [ ] = null, selecting a key number SelectCount = -1 used for generating the Code, and executing Step2.2;
step2.2, determine whether programmer input key programelanput in Step1 is non-null: if yes, executing Step2.3, otherwise, ending;
step2.3, obtaining all generated code lists in the current code recommendation list, assigning the generated code lists to a GeneratedCodeList [ ], and executing Step2.4;
step2.4, judging whether the ith generated code list GeneratedCodeList [ i ] is not empty, if so, executing Step2.5, otherwise, executing Step 3;
step2.5, obtaining Code source data from the ith row generation Code list GeneratedCodeList [ i ] and assigning the Code source data to CodeFrom [ i ], obtaining and assigning a generation Code to Code [ i ], and executing Step2.6;
step2.6, judging whether the SelectAction is True, if so, executing Step2.8, otherwise, executing Step2.7;
step2.7, i + +, execute Step2.4;
step2.8, assigning the trigger Code automatic generation key Input to programerniput, selecting the generation Code SelectedCode = Code [ i ] selected by the programmer, selecting the key number SelectCount = i for generating the Code, selecting the generation Code action mark selectcontact = False, and executing step2.7.
3. The analysis method for code auto-generation tool in IDE environment according to claim 2, wherein: the Step3 is concretely as follows:
step3.1, initializing code source mark CodeMarked [ ] = { }, and executing step 3.2; wherein: generating a code classification result matrix CodeClassify [ ] [ ] is empty, j =0, p =0, k =0, y = p +4, and the code automatic generation number GenerateCount;
step3.2, judging whether k is less than the automatic generation times of the code: if so, executing Step3.3, otherwise, executing Step 4;
step3.3, judging whether j is less than or equal to the number of Codefrom [ ]: if yes, executing Step3.4, otherwise executing Step3.11;
step3.4, judging whether the code source CodeFrom [ j ] contains CodeMarked [ p ], if so, executing Step3.5, otherwise, executing 3.8;
step3.5, marking the source of the generated Code [ j ] as CodeMarked [ p ], storing the Code [ j ] into the Code classic [ ] [ ] row k +1, line y +1, and executing Step3.6;
step3.6, judging whether the key number SelectCount used by the selected code is equal to j, if so, executing Step3.7, otherwise, executing Step3.8;
step3.7, storing CodeMarked [ p ] into CodeCalssify [ ] [ ] kth row 3, and executing Step3.8;
step3.8, p + +, execute Step3.9;
step3.9, judging whether p is less than the number of code source marks in the codeMarked [ ], if so, executing step3.4, otherwise, executing step 3.10;
step3.10, j + +, p =0, setp3.3 is performed;
the automatic generation key Input of the trigger codes in Step3.11 and Step2 is stored in the 1 st row of the k +1 row of CodeClassify [ ] [ ] ] the 2 nd row of the k +1 row, the generation code SelectCount selected by the programmer is stored in the 4 th row of the k +1 row of the CodeClassify [ ] [ ] ], and Step3.12 is executed;
step3.12, k + +, run Step3.2.
4. The analysis method of the automatic code generation tool in the IDE environment according to claim 3, wherein: the Step4 is concretely as follows:
step4.1, initializing a correct recommendation item average completion key number array SelectNum [ ] = null, an average recommendation list length array CodeListSize [ ] = null, a correct recommendation number array coretcodenum [ ] = null, generating a total code occupation space array CodeSize [ ] = null, automatically generating a number array singlelinenum [ ] = null for a single-line code, automatically generating a number array MultiLineNum [ ] = null for a multi-line code, initializing f =0, u =0, v = u +4, and executing step 4.2;
step4.2, judging whether f is less than the number of rows of the matrix CodeClassify [ ] [ ], if so, executing Step4.3, otherwise, executing Step4.13;
step4.3, judging whether u is less than the number of the code source marks codeMarked [ ], if so, executing Step4.4, otherwise executing Step4.12;
step4.4, acquiring the number of code strips in the (f + 1) th row and the (v + 1) th column in the CodeClassify [ ] [ ], accumulating the code strips into CodeListSize [ u ], storing code data in the (f + 1) th row and the (v + 1) th column in the CodeClassify [ ] [ ] into the CodeSize [ u ], and executing Step4.5;
step4.5, judging whether the source information of the 3 rd column code of the f +1 th row in the CodeClassify [ ] [ ] is equal to CodeMarked [ u ], if so, executing Step4.6, otherwise, executing Step4.11;
step4.6, CorretCodeNum [ u ] + +, obtains the number of keys used by the 4 th column selection generation code at the f +1 th line in CodecClassify, and adds the number of keys into SelectNum [ u ] cumulatively to execute Step4.7;
step4.7, determine if the generated code selected by programmer at row f +1, column 2 in CodeClassify [ ] [ ] is a single line code: if yes, executing Step4.8, otherwise executing Step4.9; wherein, the single line code means that the generated code is the whole line code;
step4.8, adding 1 to the single-line code automatic generation times of the u code source, SingleLineNum [ u ] + +, and executing Step4.11;
step4.9, judging whether the generated code selected by the programmer at the (f + 1) th row and the 2 nd column in the CodeClassify [ ] [ ], if so, executing Step4.10, otherwise, executing Step4.11; wherein, the multi-line code means that the number of generated code lines is more than 1;
step4.10, adding 1 to the automatic generation times of the multi-line code of the u-th code source, performing Step4.11 by using MultiLineNum [ u ] + +;
step4.11, u + +, Perform Step4.3;
step4.12, f + +, u =0, execute step4.2;
step4.13, judging whether u is less than the number of the code source marks codeMarked [ ], if so, executing Step4.14, otherwise, ending;
step4.14, calculating the average number of completed bonds of correct recommendation items by using SelectNum [ u ], and updating the value in SelectNum [ u ]; wherein SelectNum [ u ] = SelectNum [ u ]/CorretCodeNum [ u ]; calculating an average recommended list length using CodeListSize [ u ], and updating a value in CodeListSize [ u ]; wherein CodelitsSize [ u ] = CodelitsSize [ u ]/GenerateCount; reassigning CodeSize [ u ] according to the actual occupied space size of CodeSize [ u ], and executing Step4.15;
step4.15, u + +, and Step4.13.
CN201910588474.5A 2019-07-02 2019-07-02 Analysis method for code automatic generation tool in IDE environment Active CN110347570B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910588474.5A CN110347570B (en) 2019-07-02 2019-07-02 Analysis method for code automatic generation tool in IDE environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910588474.5A CN110347570B (en) 2019-07-02 2019-07-02 Analysis method for code automatic generation tool in IDE environment

Publications (2)

Publication Number Publication Date
CN110347570A CN110347570A (en) 2019-10-18
CN110347570B true CN110347570B (en) 2021-08-10

Family

ID=68177970

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910588474.5A Active CN110347570B (en) 2019-07-02 2019-07-02 Analysis method for code automatic generation tool in IDE environment

Country Status (1)

Country Link
CN (1) CN110347570B (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110928930B (en) * 2020-02-10 2020-06-02 北京东方通科技股份有限公司 Software development behavior monitoring system
US11132181B1 (en) 2020-07-30 2021-09-28 International Business Machines Corporation Computer enhanced and automatic computer-generated integrated development environment reconfiguration
CN113721977A (en) * 2021-08-18 2021-11-30 昆明理工大学 Method and device for processing programming data

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9275232B2 (en) * 2014-05-13 2016-03-01 Wipro Limited Systems and methods for evaluating a source code scanner
CN105683924A (en) * 2013-06-06 2016-06-15 微软技术许可有限责任公司 Debugging native code by transitioning from execution in native mode to execution in interpreted mode
CN109101417A (en) * 2018-07-09 2018-12-28 无锡天脉聚源传媒科技有限公司 A kind of automation software testing robot and its implementation

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8839218B2 (en) * 2007-06-04 2014-09-16 International Business Machines Corporation Diagnosing alias violations in memory access commands in source code
CN102214099B (en) * 2011-06-16 2013-07-03 浙江大学 Automatic run-time environment (RTE) code generating method for automobile system architecture (AUTOSAR)
US20140372988A1 (en) * 2013-06-14 2014-12-18 Microsoft Corporation Using a Static Analysis for Configuring a Follow-On Dynamic Analysis for the Evaluation of Program Code
CN105653245A (en) * 2014-11-13 2016-06-08 朗新科技股份有限公司 Code automatic generation system, device and method
US10915430B2 (en) * 2017-07-17 2021-02-09 Red Hat Israel, Ltd. Source code test consolidation
CN109445771B (en) * 2018-10-25 2021-06-15 北京和普威视科技股份有限公司 Automatic generation tool and method for network layer module codes under CS framework

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105683924A (en) * 2013-06-06 2016-06-15 微软技术许可有限责任公司 Debugging native code by transitioning from execution in native mode to execution in interpreted mode
US9275232B2 (en) * 2014-05-13 2016-03-01 Wipro Limited Systems and methods for evaluating a source code scanner
CN109101417A (en) * 2018-07-09 2018-12-28 无锡天脉聚源传媒科技有限公司 A kind of automation software testing robot and its implementation

Also Published As

Publication number Publication date
CN110347570A (en) 2019-10-18

Similar Documents

Publication Publication Date Title
CN110347570B (en) Analysis method for code automatic generation tool in IDE environment
CN105929690B (en) A kind of Flexible Workshop Robust Scheduling method based on decomposition multi-objective Evolutionary Algorithm
CN110096503B (en) Analysis method and system for white vehicle body three-coordinate measuring point data
CN111045670B (en) Method and device for identifying multiplexing relationship between binary code and source code
KR102409101B1 (en) System and method for estimating a missing value
CN111860981A (en) Enterprise national industry category prediction method and system based on LSTM deep learning
CN110162972B (en) UAF vulnerability detection method based on statement joint coding deep neural network
CN111858358A (en) Binary code-oriented guiding type fuzzy test method
CN106919576A (en) Using the method and device of two grades of classes keywords database search for application now
CN109633748B (en) Seismic attribute optimization method based on improved genetic algorithm
CN110543869A (en) Ball screw service life prediction method and device, computer equipment and storage medium
CN108228232B (en) Automatic repairing method for circulation problem in program
CN111105041B (en) Machine learning method and device for intelligent data collision
CN115186776B (en) Method, device and storage medium for classifying ruby producing areas
CN109639283B (en) Workpiece coding method based on decision tree
CN115579060A (en) Gene locus detection method, device, equipment and medium
CN113505283B (en) Screening method and system for test data
CN115829925A (en) Appearance defect detection method and device, computer equipment and storage medium
US20090175520A1 (en) Method and apparatus for matching of bracketed patterns in test strings
CN115712834A (en) Alarm false alarm detection method, device, equipment and storage medium
CN112199376B (en) Standard knowledge base management method and system based on cluster analysis
Cebeci et al. Comparison of Chi-square based algorithms for discretization of continuous chicken egg quality traits
CN111898807B (en) Tobacco leaf yield prediction method based on whole genome selection and application
CN107783942A (en) A kind of anomaly detection method and device
CN115617790A (en) Data warehouse creation method, electronic device and storage medium

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant