CN112328232A - 一种代码提示方法及相关装置 - Google Patents
一种代码提示方法及相关装置 Download PDFInfo
- Publication number
- CN112328232A CN112328232A CN202011352829.XA CN202011352829A CN112328232A CN 112328232 A CN112328232 A CN 112328232A CN 202011352829 A CN202011352829 A CN 202011352829A CN 112328232 A CN112328232 A CN 112328232A
- Authority
- CN
- China
- Prior art keywords
- code
- prompt
- contents
- user
- syntax tree
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000003062 neural network model Methods 0.000 claims abstract description 47
- 238000012216 screening Methods 0.000 claims abstract description 21
- 238000004590 computer program Methods 0.000 claims description 11
- 238000012163 sequencing technique Methods 0.000 claims description 6
- 238000012549 training Methods 0.000 claims description 6
- 230000000694 effects Effects 0.000 abstract description 4
- 230000009286 beneficial effect Effects 0.000 abstract description 3
- 230000006870 function Effects 0.000 description 20
- 238000010801 machine learning Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 101001072091 Homo sapiens ProSAAS Proteins 0.000 description 1
- 102100036366 ProSAAS Human genes 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/33—Intelligent editors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种代码提示方法,包括:分析用户已写入的代码文档对象得到相应的抽象语法树;根据抽象语法树得到代码提示集合;以代码文档对象及代码提示集合作为已训练完成的神经网络模型的输入,通过神经网络模型预测用户即将写入的代码的类型,并根据预测结果对代码提示集合中的提示内容进行筛选,保留预测结果对应的提示内容;将筛选后代码提示集合中剩余的提示内容发送到代码编辑器,以当用户新写入代码时代码编辑器提示代码提示集合中剩余的提示内容。该方法能够针对性的进行代码提示,有助于提高代码编写效率。本申请还公开了一种代码提示装置、设备及计算机可读存储介质,均具有上述技术效果。
Description
技术领域
本申请涉及编程技术领域,特别涉及一种代码提示方法;还涉及一种代码提示装置、设备以及计算机可读存储介质。
背景技术
在互联网时代,诸多行业尤其时IT行业的发展与程序员的编码工作息息相关。在编码过程中进行代码提示无疑有助于代码编写效率的提升。目前主要存在如下两种代码提示方案,一种是本地设备分析本地文本并进行代码提示;另一种是搭建语言服务器,由语言服务器分析文本并将提示发送给编辑器进行代码提示。然而无论是上述哪种方式,均存在提示内容针对性差的问题,例如,当输入字母a时,编辑器会提示所有与字母a相关的变量、函数、对象等等类型的内容,且各种类型的优先级固定。由此导致程序员无法快速高效找到其所需要的内容,会极大的影响代码编写效率。
有鉴于此,如何针对性的进行代码提示,以提高代码编写效率已成为本领域技术人员亟待解决的技术问题。
发明内容
本申请的目的是提供一种代码提示方法,能够针对性的进行代码提示,有助于提高代码编写效率。本申请的另一个目的是提供一种代码提示装置、设备以及计算机可读存储介质,均具有上述技术效果。
为解决上述技术问题,本申请提供了一种代码提示方法,包括:
分析用户已写入的代码文档对象得到相应的抽象语法树;
根据所述抽象语法树得到代码提示集合;
以所述代码文档对象及所述代码提示集合作为已训练完成的神经网络模型的输入,通过所述神经网络模型预测用户即将写入的代码的类型,并根据预测结果对所述代码提示集合中的提示内容进行筛选,保留所述预测结果对应的提示内容;
将筛选后所述代码提示集合中剩余的提示内容发送到代码编辑器,以当用户新写入代码时所述代码编辑器提示所述代码提示集合中剩余的提示内容。
可选的,还包括:
通过所述神经网络模型依据与用户即将写入的代码的相似度高低对筛选后所述代码提示集合中剩余的提示内容进行排序,并将排序结果发送到所述代码编辑器,以当用户新写入代码时所述代码编辑器依照所述排序结果依次提示所述代码提示集合中剩余的提示内容;其中,相似度最高的提示内容提示最靠前。
可选的,所述分析代码文档对象得到相应的抽象语法树,包括:
通过Antlr4解析工具分析所述代码文档对象得到相应的抽象语法树。
可选的,所述分析用户已写入的代码文档对象得到相应的抽象语法树,以及根据所述抽象语法树得到代码提示集合由第一服务器实现;通过所述神经网络模型预测用户即将写入的代码的类型,并根据预测结果对所述代码提示集合中的提示内容进行筛选,保留所述预测结果对应的提示内容,以及将筛选后所述代码提示集合中剩余的提示内容发送到代码编辑器由第二服务器实现。
可选的,还包括:
利用开源代码对所述神经网络模型进行训练。
为解决上述技术问题,本申请还提供了一种代码提示装置,包括:
语法树确定模块,用于分析用户已写入的代码文档对象得到相应的抽象语法树;
提示集合确定模块,用于根据所述抽象语法树得到代码提示集合;
筛选模块,用于以所述代码文档对象及所述代码提示集合输入作为训练完成的神经网络模型的输入,通过所述神经网络模型预测用户即将写入的代码的类型,并根据预测结果对所述代码提示集合中的提示内容进行筛选,保留所述预测结果对应的提示内容;
发送模块,用于将筛选后所述代码提示集合中剩余的提示内容发送到代码编辑器,以当用户新写入代码时所述代码编辑器提示所述代码提示集合中剩余的提示内容。
可选的,还包括:
排序模块,用于通过所述神经网络模型依据与用户即将写入的代码的相似度高低对筛选后所述代码提示集合中剩余的提示内容进行排序,并将排序结果发送到所述代码编辑器,以当用户新写入代码时所述代码编辑器依照所述排序结果依次提示所述代码提示集合中剩余的提示内容;其中,相似度最高的提示内容提示最靠前。
可选的,所述语法树确定模块具体用于通过Antlr4解析工具分析所述代码文档对象得到相应的抽象语法树。
为解决上述技术问题,本申请还提供了一种代码提示设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上所述的代码提示方法的步骤。
为解决上述技术问题,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的代码提示方法的步骤。
本申请所提供的代码提示方法,包括:分析用户已写入的代码文档对象得到相应的抽象语法树;根据所述抽象语法树得到代码提示集合;以所述代码文档对象及所述代码提示集合作为已训练完成的神经网络模型的输入,通过所述神经网络模型预测用户即将写入的代码的类型,并根据预测结果对所述代码提示集合中的提示内容进行筛选,保留所述预测结果对应的提示内容;将筛选后所述代码提示集合中剩余的提示内容发送到代码编辑器,以当用户新写入代码时所述代码编辑器提示所述代码提示集合中剩余的提示内容。
可见,本申请所提供的代码提示方法,利用神经网络模型依据已写入的代码预测接下来可能要写入的代码的类型,从而当程序员新写入代码时,提示与此新写入代码最相关的内容,对于与新写入代码相关性较低的内容则不进行提示,由此实现代码的针对性提示,利于程序员从所提示内容中快速找到所需内容,从而提高代码的编写效率。
本申请所提供的代码提示装置、设备以及计算机可读存储介质均具有上述技术效果。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例所提供的一种代码提示方法的流程示意图;
图2为本申请实施例所提供的一种代码提示装置的示意图;
图3为本申请实施例所提供的一种代码提示设备的示意图。
具体实施方式
本申请的核心是提供一种代码提示方法,能够针对性的进行代码提示,有助于提高代码编写效率。本申请的另一个核心是提供一种代码提示装置、设备以及计算机可读存储介质,均具有上述技术效果。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参考图1,图1为本申请实施例所提供的一种代码提示方法的流程示意图,参考图1所示,该方法包括:
S101:分析用户已写入的代码文档对象得到相应的抽象语法树;
具体的,用户在代码编写器侧编写代码的过程中,代码编写器将用户当前已写入的代码文档对象发送至服务器。服务器接收代码文档对象后对所接收的代码文档对象进行分析,得到此代码文档对象对应的抽象语法树。
其中,在一种具体的实施方式中,分析用户已写入的代码文档对象得到相应的抽象语法树的方式可以为:通过Antlr4解析工具分析代码文档对象得到相应的抽象语法树。具体而言,获取各类编程语言的文法和语法文档,并根据所获取的文法和语法文档编写Antlr4解析工具所使用的g4格式的解析文件,利用解析文件扫描代码文档对象得到语法树,进而使用Antlr4解析工具的API中的遍历方法遍历语法树,进一步得到抽象语法树。
S102:根据抽象语法树得到代码提示集合;
具体的,在分析用户已写入的代码文档对象得到相应的抽象语法树的基础上,进一步根据抽象语法树得到代码提示集合。例如,根据抽象语法树得到包含变量、函数、注释、无意义单词、html标签等的代码提示集合。
S103:以代码文档对象及代码提示集合作为已训练完成的神经网络模型的输入,通过神经网络模型预测用户即将写入的代码的类型,并根据预测结果对代码提示集合中的提示内容进行筛选,保留预测结果对应的提示内容;
具体的,在利用开源代码对所述神经网络模型进行训练,如利用github、gitee作为数据库对神经网络模型进行训练,得到能够分析出代码中变量、函数、对象等,以及变量、函数等在文档中所处位置,且能够根据已写入代码推断出即将可能要写什么类型的代码的神经网络模型的基础上,以用户已写入的代码文档对象以及所得代码提示集合作为已训练完成的神经网络模型的输入,通过此神经网络模型预测用户即将要写入的代码的可能类型,并根据预测结果对代码提示集合中的提示内容进行筛选,保留预测结果对应的提示内容,而去掉其他的提示内容。
例如,代码提示集合包括的提示内容有变量、函数、注释以及html标签,通过神经网络模型预测用户即将要写入的代码的可能类型包括变量与函数,那么对包含变量、函数、注释以及html标签的代码提示集合进行筛选,保留变量与函数,而去掉注释与html标签。
S104:将筛选后代码提示集合中剩余的提示内容发送到代码编辑器,以当用户新写入代码时代码编辑器提示代码提示集合中剩余的提示内容。
具体的,对代码提示集合中的提示内容进行筛选后,服务器将剩余的提示内容发送到代码编辑器,当接下来用户新写入代码时,代码编辑器提示其所接收的代码提示集合中剩余的提示内容,此时所提示的提示内容更接近用户所需,更具有针对性。
例如,通过神经网络模型预测用户即将要写入的代码的可能类型包括变量与函数,那么对包含变量、函数、注释以及html标签的代码提示集合进行筛选,保留变量与函数,而去掉注释与html标签后,接下来当用户写入字母a时,代码编辑器提示与字母a相关的变量以及函数,而不再提示注释、html标签等。显然,较之传统的当用户写入字母a时,代码编辑器提示与字母a相关的变量、函数、注释、html标签等等的技术方案,本申请进行代码提示更具针对性,更利于用户快速找到所需内容,从而提高代码编写效率。
为了进一步提高代码编写效率,在上述实施例的基础上,作为一种优选的实施方式,还包括:通过神经网络模型依据与用户即将写入的代码的相似度高低对筛选后代码提示集合中剩余的提示内容进行排序,并将排序结果发送到代码编辑器,以当用户新写入代码时代码编辑器依照排序结果依次提示代码提示集合中剩余的提示内容;其中,相似度最高的提示内容提示最靠前。
具体而言,本实施例在筛选代码提示集合中的提示内容的同时,还通过神经网络模型依据与用户即将写入的代码的相似度高低对筛选后代码提示集合中剩余的提示内容进行排序,与用户即将写入的代码的相似度越高,排序越靠前,进行代码提示时所在提示位置越靠前。
例如,筛选后代码提示集合中剩余的提示内容包括变量与函数,且预测用户即将写入的代码为变量可能性大于为函数的可能性,因此变量排序靠前,而函数排序靠后。当用户接下来新写入字母a时,代码编辑器将与字母a相关的变量靠前显示,将与字母a相关的函数靠后显示。当以列表的形式显示时,与字母a相关的变量显示在列表的上边,将与字母a相关的函数显示在列表的下边。
此外,在上述实施例的基础上,作为一种优选的实施方式,分析用户已写入的代码文档对象得到相应的抽象语法树,以及根据抽象语法树得到代码提示集合由第一服务器实现;通过神经网络模型预测用户即将写入的代码的类型,并根据预测结果对代码提示集合中的提示内容进行筛选,保留预测结果对应的提示内容,以及将筛选后代码提示集合中剩余的提示内容发送到代码编辑器由第二服务器实现。
本实施例中,代码提示由代码编辑器与两个服务器共同完成。具体而言,部署一台基于语言服务器协议(LSP),用来解析代码的服务器即第一服务器,和一台搭载神经网络模型的机器学习服务器即第二服务器,将2台服务器连接。由于服务器和客户端的代码编辑器或IDE是分开的,代码编辑器或IDE在本地,服务器可以部署在任何地方即云端,只要电脑有网络,就能随时随地使用本申请所提供方法。同时即使更换了电脑等客户端,也可以立刻接入本申请所提供的方法,能够做到无缝切换,不会影响代码编写效率,可以解决因为重装系统,更换电脑等带来的需要重新安装环境的繁琐问题。同时由于服务器部署,也可以作为SAAS服务提供出去,只要有浏览器,就可以使用本发明的方法为代码开发带来方便。
用户编写的代码文档对象通过开源的语言服务器协议同时发送到语言服务器与机器学习服务器。语言服务器分析代码文档对象得到相应的抽象语法树,并根据抽象语法树得到代码提示集合。进一步,语言服务器将所得代码提示集合发送到机器学习服务器,机器学习服务器中已经训练完成的神经网络模型将代码文档对象以及代码提示集合作为输入,预测用户即将写入的代码的类型,并根据预测结果对代码提示集合中的提示内容进行筛选,保留预测结果对应的提示内容,最后将筛选后代码提示集合中剩余的提示内容发送到代码编辑器。其中,神经网络模型的损失函数可使用交叉熵损失函数,以尽量保证不会丢掉任何可能的结果。
综上所述,本申请所提供的代码提示方法,包括:分析用户已写入的代码文档对象得到相应的抽象语法树;根据所述抽象语法树得到代码提示集合;以所述代码文档对象及所述代码提示集合作为已训练完成的神经网络模型的输入,通过所述神经网络模型预测用户即将写入的代码的类型,并根据预测结果对所述代码提示集合中的提示内容进行筛选,保留所述预测结果对应的提示内容;将筛选后所述代码提示集合中剩余的提示内容发送到代码编辑器,以当用户新写入代码时所述代码编辑器提示所述代码提示集合中剩余的提示内容。该方法,利用神经网络模型依据已写入的代码预测接下来可能要写入的代码的类型,从而当程序员新写入代码时,提示与此新写入代码最相关的内容,对于与新写入代码相关性较低的内容则不进行提示,由此实现代码的针对性提示,利于程序员从所提示内容中快速找到所需内容,从而提高代码的编写效率。
本申请还提供了一种代码提示装置,下文描述的该装置可以与上文描述的方法相互对应参照。请参考图2,图2为本申请实施例所提供的一种代码提示装置的示意图,结合图2所示,该装置包括:
语法树确定模块10,用于分析用户已写入的代码文档对象得到相应的抽象语法树;
提示集合确定模块20,用于根据所述抽象语法树得到代码提示集合;
筛选模块30,用于以所述代码文档对象及所述代码提示集合输入作为训练完成的神经网络模型的输入,通过所述神经网络模型预测用户即将写入的代码的类型,并根据预测结果对所述代码提示集合中的提示内容进行筛选,保留所述预测结果对应的提示内容;
发送模块40,用于将筛选后所述代码提示集合中剩余的提示内容发送到代码编辑器,以当用户新写入代码时所述代码编辑器提示所述代码提示集合中剩余的提示内容。
在上述实施例的基础上,可选的,还包括:
排序模块,用于通过所述神经网络模型依据与用户即将写入的代码的相似度高低对筛选后所述代码提示集合中剩余的提示内容进行排序,并将排序结果发送到所述代码编辑器,以当用户新写入代码时所述代码编辑器依照所述排序结果依次提示所述代码提示集合中剩余的提示内容;其中,相似度最高的提示内容提示最靠前。
在上述实施例的基础上,可选的,所述语法树确定模块10具体用于通过Antlr4解析工具分析所述代码文档对象得到相应的抽象语法树。
在上述实施例的基础上,可选的,还包括:
训练模块,用于利用开源代码对所述神经网络模型进行训练。
本申请还提供了一种代码提示设备,参考图3所示,该设备包括存储器1和处理器2。
存储器1,用于存储计算机程序;
处理器2,用于执行计算机程序实现如下的步骤:
分析用户已写入的代码文档对象得到相应的抽象语法树;根据所述抽象语法树得到代码提示集合;以所述代码文档对象及所述代码提示集合作为已训练完成的神经网络模型的输入,通过所述神经网络模型预测用户即将写入的代码的类型,并根据预测结果对所述代码提示集合中的提示内容进行筛选,保留所述预测结果对应的提示内容;将筛选后所述代码提示集合中剩余的提示内容发送到代码编辑器,以当用户新写入代码时所述代码编辑器提示所述代码提示集合中剩余的提示内容。
对于本申请所提供的设备的介绍请参照上述方法实施例,本申请在此不做赘述。
本申请还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现如下的步骤:
分析用户已写入的代码文档对象得到相应的抽象语法树;根据所述抽象语法树得到代码提示集合;以所述代码文档对象及所述代码提示集合作为已训练完成的神经网络模型的输入,通过所述神经网络模型预测用户即将写入的代码的类型,并根据预测结果对所述代码提示集合中的提示内容进行筛选,保留所述预测结果对应的提示内容;将筛选后所述代码提示集合中剩余的提示内容发送到代码编辑器,以当用户新写入代码时所述代码编辑器提示所述代码提示集合中剩余的提示内容。
该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
对于本申请所提供的计算机可读存储介质的介绍请参照上述方法实施例,本申请在此不做赘述。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置、设备以及计算机可读存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经依据功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的代码提示方法、装置、设备以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围。
Claims (10)
1.一种代码提示方法,其特征在于,包括:
分析用户已写入的代码文档对象得到相应的抽象语法树;
根据所述抽象语法树得到代码提示集合;
以所述代码文档对象及所述代码提示集合作为已训练完成的神经网络模型的输入,通过所述神经网络模型预测用户即将写入的代码的类型,并根据预测结果对所述代码提示集合中的提示内容进行筛选,保留所述预测结果对应的提示内容;
将筛选后所述代码提示集合中剩余的提示内容发送到代码编辑器,以当用户新写入代码时,所述代码编辑器提示所述代码提示集合中剩余的提示内容。
2.根据权利要求1所述的代码提示方法,其特征在于,还包括:
通过所述神经网络模型,依据与用户即将写入的代码的相似度高低,对筛选后所述代码提示集合中剩余的提示内容进行排序,并将排序结果发送到所述代码编辑器,以当用户新写入代码时,所述代码编辑器依照所述排序结果依次提示所述代码提示集合中剩余的提示内容;其中,相似度最高的提示内容提示最靠前。
3.根据权利要求1所述的代码提示方法,其特征在于,所述分析代码文档对象得到相应的抽象语法树,包括:
通过Antlr4解析工具分析所述代码文档对象得到相应的抽象语法树。
4.根据权利要求1至3任一项所述的代码提示方法,其特征在于,所述分析用户已写入的代码文档对象得到相应的抽象语法树,以及根据所述抽象语法树得到代码提示集合由第一服务器实现;通过所述神经网络模型预测用户即将写入的代码的类型,并根据预测结果对所述代码提示集合中的提示内容进行筛选,保留所述预测结果对应的提示内容,以及将筛选后所述代码提示集合中剩余的提示内容发送到代码编辑器由第二服务器实现。
5.根据权利要求4所述的代码提示方法,其特征在于,还包括:
利用开源代码对所述神经网络模型进行训练。
6.一种代码提示装置,其特征在于,包括:
语法树确定模块,用于分析用户已写入的代码文档对象得到相应的抽象语法树;
提示集合确定模块,用于根据所述抽象语法树得到代码提示集合;
筛选模块,用于以所述代码文档对象及所述代码提示集合输入作为训练完成的神经网络模型的输入,通过所述神经网络模型预测用户即将写入的代码的类型,并根据预测结果对所述代码提示集合中的提示内容进行筛选,保留所述预测结果对应的提示内容;
发送模块,用于将筛选后所述代码提示集合中剩余的提示内容发送到代码编辑器,以当用户新写入代码时,所述代码编辑器提示所述代码提示集合中剩余的提示内容。
7.根据权利要求6所述的代码提示装置,其特征在于,还包括:
排序模块,用于通过所述神经网络模型,依据与用户即将写入的代码的相似度高低,对筛选后所述代码提示集合中剩余的提示内容进行排序,并将排序结果发送到所述代码编辑器,以当用户新写入代码时,所述代码编辑器依照所述排序结果依次提示所述代码提示集合中剩余的提示内容;其中,相似度最高的提示内容提示最靠前。
8.根据权利要求6所述的代码提示装置,其特征在于,所述语法树确定模块具体用于通过Antlr4解析工具分析所述代码文档对象得到相应的抽象语法树。
9.一种代码提示设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至5任一项所述的代码提示方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的代码提示方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011352829.XA CN112328232A (zh) | 2020-11-26 | 2020-11-26 | 一种代码提示方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011352829.XA CN112328232A (zh) | 2020-11-26 | 2020-11-26 | 一种代码提示方法及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112328232A true CN112328232A (zh) | 2021-02-05 |
Family
ID=74309083
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011352829.XA Pending CN112328232A (zh) | 2020-11-26 | 2020-11-26 | 一种代码提示方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112328232A (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102880468A (zh) * | 2012-09-12 | 2013-01-16 | 浙江大学 | 一种用于ecu程序开发的代码智能提示方法及其系统 |
CN108563433A (zh) * | 2018-03-20 | 2018-09-21 | 北京大学 | 一种基于lstm自动补全代码的装置 |
CN108717470A (zh) * | 2018-06-14 | 2018-10-30 | 南京航空航天大学 | 一种具有高准确度的代码片段推荐方法 |
CN110502227A (zh) * | 2019-08-28 | 2019-11-26 | 网易(杭州)网络有限公司 | 代码补全的方法及装置、存储介质、电子设备 |
CN110569030A (zh) * | 2018-06-06 | 2019-12-13 | 富士通株式会社 | 代码推荐方法及装置 |
US20200104102A1 (en) * | 2018-09-27 | 2020-04-02 | Microsoft Technology Licensing, Llc | Automated content editor |
US20200249918A1 (en) * | 2019-02-02 | 2020-08-06 | Microsoft Technology Licensing, Llc. | Deep learning enhanced code completion system |
CN111723192A (zh) * | 2020-06-19 | 2020-09-29 | 南开大学 | 代码推荐方法和装置 |
-
2020
- 2020-11-26 CN CN202011352829.XA patent/CN112328232A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102880468A (zh) * | 2012-09-12 | 2013-01-16 | 浙江大学 | 一种用于ecu程序开发的代码智能提示方法及其系统 |
CN108563433A (zh) * | 2018-03-20 | 2018-09-21 | 北京大学 | 一种基于lstm自动补全代码的装置 |
CN110569030A (zh) * | 2018-06-06 | 2019-12-13 | 富士通株式会社 | 代码推荐方法及装置 |
CN108717470A (zh) * | 2018-06-14 | 2018-10-30 | 南京航空航天大学 | 一种具有高准确度的代码片段推荐方法 |
US20200104102A1 (en) * | 2018-09-27 | 2020-04-02 | Microsoft Technology Licensing, Llc | Automated content editor |
US20200249918A1 (en) * | 2019-02-02 | 2020-08-06 | Microsoft Technology Licensing, Llc. | Deep learning enhanced code completion system |
CN110502227A (zh) * | 2019-08-28 | 2019-11-26 | 网易(杭州)网络有限公司 | 代码补全的方法及装置、存储介质、电子设备 |
CN111723192A (zh) * | 2020-06-19 | 2020-09-29 | 南开大学 | 代码推荐方法和装置 |
Non-Patent Citations (2)
Title |
---|
袁梦霆,谢婧: "基于机器学习的类型推理方法综述", 《广州大学学报( 自然科学版)》, vol. 18, no. 3, 30 June 2019 (2019-06-30), pages 1 - 8 * |
陈志刚等: "《多层客户/服务计算模型及实现技术》", 长沙:湖南科学技术出版社, pages: 164 - 166 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109343857B (zh) | 线上部署机器学习模型的方法、设备和存储介质 | |
US20160357519A1 (en) | Natural Language Engine for Coding and Debugging | |
EP3564812B1 (en) | Method and system for automated creation of graphical user interfaces | |
CN109086215B (zh) | 一种嵌入式软件单元测试用例生成方法及系统 | |
CN110673854A (zh) | Sas语言编译方法、装置、设备及可读存储介质 | |
CN110381101B (zh) | Api网关控制系统、控制方法、设备和介质 | |
CN111736840A (zh) | 小程序应用的编译方法、运行方法、存储介质及电子设备 | |
US9672197B2 (en) | Universal rebranding engine | |
CN109471622A (zh) | 一种程序编辑方法和装置 | |
CN109828859B (zh) | 移动终端内存分析方法、装置、存储介质及电子设备 | |
CN114138244A (zh) | 模型类文件自动生成方法、装置、存储介质及电子设备 | |
JP2010134643A (ja) | テストケースの選択方法及び選択システム | |
CN113377431A (zh) | 一种代码处理方法、装置、设备及介质 | |
Strüber et al. | Scalability of Model Transformations: Position Paper and Benchmark Set. | |
CN112506778A (zh) | Web用户界面自动化测试方法、装置、设备和存储介质 | |
KR102546424B1 (ko) | 학습용 데이터 생성 장치, 소스 코드 오류 분석 장치 및 방법 | |
JP7409197B2 (ja) | ソフトウェアプログラムにおける静的分析違反の修復パターンの精緻化 | |
WO2021257156A1 (en) | Systems and methods for identification of repetitive language in document using linguistic analysis and correction thereof | |
CN112328232A (zh) | 一种代码提示方法及相关装置 | |
CN113742211A (zh) | 一种测试方法、Appium客户端及计算机存储介质 | |
CN111775572A (zh) | 一种标签打印机内容的替换方法及相关装置 | |
CN112699279B (zh) | 组件自动化处理方法、装置、设备和存储介质 | |
CN110727428B (zh) | 一种转换业务逻辑层代码的方法、装置和电子设备 | |
CN114625658A (zh) | App稳定性测试方法、装置、设备和计算机可读存储介质 | |
CN109597638B (zh) | 基于实时计算引擎解决数据处理、设备联动的方法及装置 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210205 |