CN113296755A - 代码结构树库构建方法和信息推送方法 - Google Patents
代码结构树库构建方法和信息推送方法 Download PDFInfo
- Publication number
- CN113296755A CN113296755A CN202010513805.1A CN202010513805A CN113296755A CN 113296755 A CN113296755 A CN 113296755A CN 202010513805 A CN202010513805 A CN 202010513805A CN 113296755 A CN113296755 A CN 113296755A
- Authority
- CN
- China
- Prior art keywords
- code
- target
- preset
- structure tree
- code block
- 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 79
- 238000010276 construction Methods 0.000 title abstract description 15
- 238000012216 screening Methods 0.000 claims abstract description 22
- 238000004590 computer program Methods 0.000 claims description 8
- 238000000605 extraction Methods 0.000 claims description 8
- 238000001914 filtration Methods 0.000 claims description 5
- 230000006870 function Effects 0.000 description 25
- 230000008569 process Effects 0.000 description 15
- 238000012549 training Methods 0.000 description 13
- 238000004422 calculation algorithm Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000004931 aggregating effect Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000012417 linear regression Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000007637 random forest analysis Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012706 support-vector machine Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012795 verification Methods 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种代码结构树库构建方法和信息推送方法。该信息推送方法,包括:接收用户输入的目标代码信息;从预设代码结构树库中,筛选出与目标代码信息满足预设匹配条件的至少一个目标分支结构;预设代码结构树库中的一个代码结构树中的一个分支结构用于表征一个代码块的结构特征;基于目标代码信息,生成每个目标分支结构对应的目标代码块;推送满足预设条件的目标代码块。根据本发明实施例,可以提高代码编辑的效率。
Description
技术领域
本发明涉及信息推送领域,尤其涉及一种代码结构树库构建方法和信息推送方法。
背景技术
在当下,基于云服务的线上编辑器的产品已经不仅支持多种语言,还应用在数据处理,数据转换等多个场景。同时越来越多的人也越来越喜欢在线上编辑代码、发布、部署任务等整个流程操作,并以此更方便的对接各类云产品提供的服务。
随着线上编辑器使用的普及和需求的日益增加,如何提高代码编辑效率,成为急需解决的问题。
发明内容
本发明实施例提供一种代码结构树库构建方法、代码结构树库构建装置、信息推送方法、信息推送装置、计算设备和介质,能够解决代码编辑效率低下的问题。
根据本发明实施例的第一方面,提供一种代码结构树库构建方法,包括:
获取多个样本代码块;
提取多个样本代码块中每个样本代码块的结构特征;
对于每个所述样本代码块,基于样本代码块的结构特征,构建样本代码块对应的代码块结构树;
基于每个代码块结构树,确定预设代码结构树库。
根据本发明实施例的第二方面,提供一种信息推送方法,该方法包括:
接收用户输入的目标代码信息;
从预设代码结构树库中,筛选出与目标代码信息满足预设匹配条件的至少一个目标分支结构;预设代码结构树库中的一个代码结构树中的一个分支结构用于表征一个代码块的结构特征;
基于目标代码信息,生成每个目标分支结构对应的目标代码块;
推送满足预设条件的目标代码块。
根据本发明实施例的第三方面,提供一种代码结构树库构建装置,该装置包括:
代码块获取模块,用于获取多个样本代码块;
提取模块,用于提取多个样本代码块中每个样本代码块的结构特征;
构建模块,用于对于每个样本代码块,基于样本代码块的结构特征,构建样本代码块对应的代码块结构树;
确定模块,用于基于每个代码块结构树,确定预设代码结构树库。
根据本发明实施例的第四方面,提供一种信息推送装置,该装置包括:
接收模块,用于接收用户输入的目标代码信息;
筛选模块,用于从预设代码结构树库中,筛选出与目标代码信息满足预设匹配条件的至少一个目标分支结构;预设代码结构树库中的一个代码结构树中的一个分支结构用于表征一个代码块的结构特征;
生成模块,用于基于目标代码信息,生成每个目标分支结构对应的目标代码块;
推送模块,用于推送满足预设条件的目标代码块。
根据本发明实施例的第五方面,提供了一种计算设备,包括:处理器以及存储有计算机程序指令的存储器;
处理器执行计算机程序指令时实现如上述第一方面或第二方面提供的方法。
根据本发明实施例的第六方面,提供一种计算机存储介质,计算机存储介质上存储有计算机程序指令,计算机程序指令被处理器执行时实现如上述第一方面或第二方面提供的方法。
根据本发明实施例,通过预先每个样本代码块的结构特征,可以构建样本代码块对应的代码块结构树,然后基于每个代码块结构树,确定预设代码结构树库。通过利用预先建立的代码结构树库,从预设代码结构树库中,筛选出与目标代码信息满足预设匹配条件的至少一个目标分支结构,然后通过将用户输入的目标代码信息嵌入与目标代码信息满足预设匹配条件的每个目标分支结构,可以得到与用户需求相关的每个目标代码块,通过向用户推送满足预设条件的目标代码块,可以向用户推荐与其输入需求相关的代码块,减少了用户的代码输入操作,提高了代码编辑效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的信息推送系统的流程示意图;
图2为本发明一实施例提供的代码结构树库构建方法的流程示意图;
图3为本发明第一实施例提供的信息推送方法的流程示意图;
图4为本发明第二实施例提供的信息推送方法的流程示意图;
图5为本发明第三实施例提供的信息推送方法的流程示意图;
图6为本发明第四实施例提供的信息推送方法的流程示意图;
图7为本发明实施例提供的代码结构树库构建装置的结构示意图;
图8为本发明实施例提供的信息推送装置的结构示意图;
图9为本发明实施例提供的计算设备的结构示意图。
具体实施方式
下面将详细描述本发明的各个方面的特征和示例性实施例,为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细描述。应理解,此处所描述的具体实施例仅被配置为解释本发明,并不被配置为限定本发明。对于本领域技术人员来说,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明更好的理解。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
目前的代码编辑器也可以实现向用户推荐代码信息。目前的推荐方法有生成式的算法推荐或通过先验知识计算接下来方法、参数或关键词出现的概率进行推荐。基于生成式算法的推荐都是基于前一个或者多个字符生成推荐的内容,但是这样推荐的字符是有一定概率不符合编码规则的。并且实际上代码出现的组合是多样的,代码量也是巨大的而且代码规则也是繁琐的。基于概率的推荐往往是优先出高概率的字符,而有些不常用但又是用户需要的往往不能推荐。
也就是说,目前的推荐方法,无论是生成式的算法推荐还是基于概率推荐,都有可能存在推荐误差。而现实应用开发中,不可能了解每一种语言、函数方法和关键词的使用。这种可能存在错误的推荐带给用户更复杂的纠错步骤,降低了用户对代码的编辑效率。并且,目前的代码推荐方法向用户推荐的大多仅仅是方法名、参数或关键词等内容,推荐的内容比较简单,也会降低对代码的编辑效率。
基于上述技术问题,本发明实施例提供一种代码结构树库构建方法、代码结构树库构建装置、信息推送方法、信息推送装置、计算设备和介质,通过结合用户的目标代码信息,可以向用户推荐与其输入需求相关的代码块,减少了用户的代码输入操作,提高了代码编辑效率。
需要说明的是,代码块并不是一个关键词、一个参数或一个方法名称,代码块是由一段代码构成的功能单元,一个代码块可以单独运行。
图1示出本发明实施例提供的信息推送系统的架构示意图。如图1所示,该系统包括终端110和服务器120。
在本发明的实施例中,终端110可以是笔记本电脑、智能手机、平板电脑或个人计算机等电子设备。服务器120可以是一种高性能的电子计算器,可以响应于终端110发送的服务请求处理数据。终端110和服务器120之间可以通过网络进行通信。
用户可以通过终端110使用代码编辑器,并在代码编辑器上输入目标代码信息。终端110接收用户输入的目标代码信息,将该目标代码信息发送至服务器120。作为一个示例,目标代码信息为“select a,b from t”。
服务器120从预设代码结构树库中,筛选出与目标代码信息满足预设匹配条件的至少一个目标分支结构,并基于所述目标代码信息,生成每个所述目标分支结构对应的目标代码块;然后推送满足预设条件的目标代码块至终端110。终端110接收满足预设条件的目标代码块,并显示该目标代码块。
其中,预设代码结构树库中的一个代码结构树中的一个分支结构用于表征一个代码块的结构特征。即预设代码结构树库中包括至少一个代码结构树。对于每个代码结构树,该代码结构树包括至少一个分支结构。每个分支结构用于表征一个代码块的结构特征。
参见图1,假设与目标代码信息满足预设匹配条件的目标分支结构有2个,这两个目标分支结构为:“select*from*where*”和“select*from*where*Limit*”。通过结合用户输入的目标代码信息,可以得到“select*from*where*”对应的目标代码块为“select a,bfrom t where*”,以及得到“select*from*where*Limit*”对应的目标代码块为“select a,b from t where*Limit*”。
通过在终端110上显示目标代码块,方便用户直接选择需要的代码块,减少用户的输入代码的时间,提高了代码编辑效率。
在实施本申请实施例提供的信息推送方法时,需要使用预先构建的预设代码结构树库。因此,下面首先介绍下预设代码结构树库的建立的具体实现过程。图2是本申请实施例提供的代码结构树库构建方法的流程示意图。如图2所示,本申请实施例提供的代码结构树库构建方法包括S210~S240。
首先,S210,获取多个样本代码块。接着,S220,提取多个样本代码块中每个样本代码块的结构特征。然后,S230,对于每个样本代码块,基于样本代码块的结构特征,构建样本代码块对应的代码块结构树。再然后,S240,基于每个代码块结构树,确定预设代码结构树库。
在本申请的实施例中,通过利用每个样本代码块的结构特征,构建样本代码块的对应的代码块结构树,然后基于每个代码块结构树,确定预设代码结构树库,可以实现对代码块的搜索,从而实现对代码块的推送。
在本发明的一些实施例中,S210包括:获取多个样本代码语句;基于预设语句拆分规则,对每个样本代码语句进行语句拆分,得到多个样本代码块。
在本发明的实施例中,可以根据用户的真实输入数据来获取多个样本代码语句。其中,代码语句中包括至少一个代码块。
需要说明的是,在对样本代码语句进行拆分前,可以提取样本代码语句中的关键词,并将非关键词利用“*”代替。
作为一个示例,通过预先自定义的语句拆分规则,通过正则化的方式将样本代码语句拆分为最小结构形式,即代码块。其中,正则化的方式是指利用预设语句拆分规则对应的正则表达式对样本代码语句进行拆分。
在S220中,对拆分得到的每一个样本代码块提取特征结构。在一些实施例中,可以利用预先定义的许多特征提取函数,用于样本代码块的结构特征的提取。比如,特征提取函数可以包括关键词结构(select from Where等等)、重复出现的特征结构(*,**and*,casewhen*等)或由各种符号组成的结构特征(sum(*),LEFT(*,*))等等。
当获取每个样本代码块的结构特征之后,基于该样本代码块的结构特征,构建该样本代码块对应的代码块结构树。也就是说,代码块结构树用于表征一个代码块的结构特征。
例如,样本代码块为“select a from b”,则该样本代码块对应的代码块结构树可以为“select*from*”,这里是以链式的形式展示的结构树。
在一些实施例中,S240包括:基于预设合并规则,对所有的代码块结构树进行合并,得到预设代码结构树库中的每个代码结构树。
在本发明的一些实施例中,由于某些代码块结构树具有类似的结构特征,例如代码块结构树“select*from*”与代码块结构树“select*,*,*from*”具有类似的结构特征。因此可以将代码块结构树“select*from*”与代码块结构树“select*,*,*from*”进行合并,即将代码块结构树“select*,*,*from*”简化为代码块结构树“select*from*”。
在本发明的另一些实施例中,一个代码块结构树是另一个代码块结构树的延伸。例如,代码块结构树“select*from*where*”是代码块结构树“select*from*”的延伸。因此,可以将“select*from*where*”和“select*from*”合并至一个代码结构树中,将“select*from*where*”作为“select*from*”的下级延伸。
也就是说,一个代码结构树包括多个代码块结构树,即代码块结构树为代码结构树的一个分支结构。其中,代码结构树中的分支结构可以为根节点自身对应的代码块结构树,或者为代码结构树中的根节点到该结构树中除根节点之外的任意一个节点的路径所对应的代码块结构树。
作为一个示例,可以将代码块结构树“select*from*”作为一个新的代码结构树A的根节点,然后将“where*”作为该代码结构树A的二层节点以及将“Limit*”作为该代码结构树A的三层节点。其中,代码结构树A包括三个分支结构,即“select*from*”、“select*from*where*”和“select*from*where*Limit*”。其中,分支结构“select*from*”为根节点对应的代码块结构树;分支结构“select*from*where*”为根节点到二层节点的路径对应的代码块结构树;分支结构“select*from*where*Limit*”为根节点到三层节点的路径对应的代码块结构树。
通过对代码块结构树的合并,可以得到更加泛化的至少一个代码结构树,可以减少筛选目标分支结构的时间,进而提高信息推送的效率。
在本发明的实施例中,通过利用获取的用户真实输入的样本代码语句,使用预设语句拆分规则,将样本代码语句分割为了最小单位(即代码块),这大大降低结构树的数量,提升了推荐效率,并使得推荐的代码更加符合预期。
下面结合预设构建的代码结构树库对本申请实施例提供的信息推送方法进行详细介绍。图3示出本发明实施例提供的信息推送方法300的流程示意图。如图3所示,该方法包括S310~S340。
首先,S310,接收用户输入的目标代码信息;接着,S320,从预设代码结构树库中,筛选出与目标代码信息满足预设匹配条件的至少一个目标分支结构;预设代码结构树库中的一个代码结构树中的一个分支结构用于表征一个代码块的结构特征;然后,S330,基于目标代码信息,生成每个目标分支结构对应的目标代码块;再接着,S340,推送满足预设条件的目标代码块。
通过利用预先建立的代码结构树库,从预设代码结构树库中,筛选出与目标代码信息满足预设匹配条件的至少一个目标分支结构,然后通过将用户输入的目标代码信息嵌入与目标代码信息满足预设匹配条件的每个目标分支结构,可以得到与用户需求相关的每个目标代码块,通过向用户推送满足预设条件的目标代码块,可以向用户推荐与其输入需求相关的代码块,减少了用户的代码输入操作,提高了代码编辑效率。
下面对S310~S340中的每个步骤的具体实现方式进行详细介绍。
在S310中,目标代码信息可以从终端获取。其中,目标代码信息为一个代码块的至少部分信息。
在本发明的一些实施例中,S320包括S3201~S3203。S3201,提取目标代码信息的目标结构特征;S3202,基于目标结构特征,构建目标代码信息对应的目标特征结构树;S3203,从预设代码结构树库中,筛选出与目标特征结构树满足预设匹配条件的至少一个目标分支结构。
在本发明的一些实施例中,可以利用预设的特征提取函数,提取目标代码信息的目标结构特征。然后,利用目标代码信息的目标结构特征,可以构建目标代码信息对应的目标特征结构树。
例如,目标代码信息为“select a,b from t”,则目标特征结构树为“select*from*”。由于用户输入的目标代码信息可能只是一个代码块的一部分内容,因此,目标代码信息构建的不一定是代码块结构树,因此可以称为目标特征结构树,即用于表征目标代码信息的结构特征。
在本发明的一些实施例中,S3203包括:从目标代码信息的起始位置开始,依次提取目标代码信息的n个特征关键词;将n个特征关键词与预设代码结构树库中的每个代码结构树的至少一个索引进行匹配;将与n个特征关键词匹配的索引所对应的代码结构树,作为目标代码结构树;将目标代码结构树中与目标特征结构树满足预设匹配条件的分支结构,作为目标分支结构。n为正整数。
需要说明的是,预设代码结构树库中的每个代码结构树具有至少一个索引。通过提取代码结构树中的前N个关键词,以作为该代码结构树的N个特征索引,可以节约查找到目标代码结构树的时间,从而提高推荐效率。其中,N为大于1的正整数。
例如,对于上述示例中的代码结构树A,可以具有三级索引,这三级索引分别为:“select”,“select from”,“select from where”。这3个索引中的每个索引对应的都是同一棵代码结构树,即代码结构树A,既可以节约查询目标代码结构树的时间,也避免每次查询都是从根节点查询。
作为一个示例,从目标代码信息的起始位置开始,依次提取目标代码信息的n个特征关键词,也就是说提取目标代码信息的前n个特征关键词。例如,目标代码信息为“selecta,b from t”,则前2个特征关键词分别为“select”和“from”。
需要说明的是,由于代码块的特征关键词的顺序也代表了目标代码信息的一个结构特征,因此在利用目标代码信息的n个关键词与代码结构树中的索引进行匹配时,可以利用目标代码信息的第1个关键词~第i个关键词,作为一个整体去与代码结构树的索引匹配。其中,i大于等于1且小于等于n。
例如,可以用“select”和“select from”中的至少一个分别与每个代码结构树的至少一个索引进行匹配。由于代码结构树A的三级索引分别为:“select”,“select from”,“select from where”。由此可见,目标代码信息的n个特征关键词与代码结构树A的两个索引都匹配。因此可以将代码结构树A作为目标代码结构树。
然后,将代码结构树A中的每个分支结构与目标特征结构树进行匹配,并将代码结构树A中与目标特征结构树满足预设匹配条件的分支结构,作为目标分支结构。
作为一个示例,预设匹配条件可以为分支结构与目标特征结构树具有部分相同的结构特征。
在上述示例中,目标特征结构树为“select*from*”,代码结构树A包括三个分支结构,即“select*from*”、“select*from*where*”和“select*from*where*Limit*”。则代码结构树A的三个分支结构均与目标特征结构树匹配,即均为目标分支结构。
在本发明的实施例中,通过对代码结构树设置至少一个索引,可以增加搜索目标代码结构树的效率。
在S330中,将用户输入的目标代码信息嵌入到每个目标分支结构中,即实现不替换用户已输入内容的基础上,实现向用户推荐目标代码块。
在上述示例中,与目标特征结构树匹配的具有3个目标分支结构,分别为:“select*from*”、“select*from*where*”和“select*from*where*Limit*”。通过结合用户输入的目标代码信息,可以将用户已经输入的“select a,b from t”嵌入到每个目标分支结构中,生成每个目标分支结构对应的目标代码块。
在本发明的一些实施例中,为了提高用户的代码编辑效率,对于目标代码块中用户未输入的部分,可以做输入提示,以进一步提高代码编辑效率。具体地,S330包括:对于每个目标分支结构,执行步骤A~步骤C。步骤A,提取目标分支结构中的特征关键词;步骤B,对于目标分支结构中的特征关键词,将特征关键词以及与特征关键词相邻的m个特征关键词,输入预先训练的类型特征确定模型,得到特征关键词后相邻的类型特征信息;m为正整数;步骤C,基于目标代码信息和特征关键词后相邻的类型特征信息,生成目标分支结构对应的目标代码块。
需要说明的是,通过有监督的训练可以得到类型特征确定模块。下面简单介绍下类型特征确定模块的训练过程。
首先,获取训练样本集。
其中,训练样本集中的每个训练样本包括样本特征关键词以及与样本特征关键词相邻的m个特征关键词。需要说明的是,与样本特征关键词相邻的m个特征关键词包括与样本特征关键词左相邻的m个特征关键词以及与样本特征关键词右相邻的m个特征关键词。由于样本特征关键词后相邻的类型特征信息与该关键词左右相邻的特征关键词有着密切的关系,所以在训练样本中需要包括与样本特征关键词相邻的m个特征关键词。
然后,将每个训练样本输入待训练类型特征确定模型,得到每个样本特征关键词对应的后相邻预测类型特征信息。
接着,每个样本特征关键词对应的后相邻预测类型特征信息和每个样本特征关键词对应的后相邻类型特征信息标签,调整待训练类型特征确定模型的参数。
再接着判断是否满足预设训练条件,若不满足,继续利用训练样本集对调整后的类型特征确定模型进行迭代训练,直至满足预设训练条件,得到训练后的类型特征确定模型。
在本说明书的一个实施例中,预设训练条件包括迭代次数达到预设次数阈值。
在本说明书的另一个实施例中,预设训练条件包括待训练类型特征确定模型的损失函数值与上一次迭代过程中确定的损失函数值之间的差值不超过预设差值阈值。也就是说待训练类型特征确定模型的损失函数值与上一次迭代过程中计算的损失函数值较为接近,则可以认为训练出的类型特征确定模型的性能已相对较好。
在本说明书的一个或多个实施例中,类型特征确定模型为以下模型中的任意一种模型:线性回归模型、随机森林模型、支持向量机回归模型、神经网络回归模型以及梯度提升迭代决策树回归模型。
作为一个示例,select后相邻的大多是字段类型特征,where后相邻的大多是条件判断类型特征。
在本发明的实施例中,只需要提取目标分支结构中用户输入的目标代码信息中的最后一个特征关键词以及用户未输入的特征关键词。即只需要确定目标分支结构中用户未输入的特征关键词后的类型特征信息以及用户输入的最后一个特征关键词后相邻的类型特征信息。
例如,对于目标分支结构“select*from*”,由于select后面,用户已经输入a,b,因此将不再对该特征关键词的类型特征信息进行确定。由于“from”后面仅输入一个“t”,因此可以对“from”后相邻的类型特征信息进行确定。
假设m=1,则将from以及与from前相邻的特征关键词select输入预先训练的类型特征确定模型,可以得到from后相邻的类型特征信息为表格类型特征。
相类似地,利用预先训练的类型特征确定模型,可以确定目标分支结构“select*from*where*”和“select*from*where*Limit*”中,where后相邻的类型特征信息为条件判断类型特征,Limit后相邻的类型特征信息为常量类型特征。
则,select*from*对应的代码块可以为“select a,b from tab1”;“select*from*where*”对应的目标代码块可以为“select a,b from tab1 where condition1”,“select*from*where*Limit*”对应的目标代码块可以为“select a,b from tab1 wherecondition1 Limit constant1”。
其中,tab1用于提示from后相邻的类型特征信息为表格类型特征;用户condition1用于提示用户where后相邻的类型特征信息为条件判断类型特征,constant1用于提示用户Limit后相邻的类型特征信息为常量类型特征。
通过在用户未输入部分的特征关键词后显示提示信息,该提示信息用户提示该特征关键词后相邻的类型特征信息,从而可以使用户快速输入相应的代码,提高了代码编辑效率。
在S340中,预设条件包括目标代码块对应的目标分支结构的使用频率大于预设使用频率阈值。
需要说明的是,在构建预设代码结构树库时,可以统计代码结构树中的每个分支结构在获取的多个样本代码语句中出现的频率,作为该分支结构的使用频率。
通过向用户推送满足预设条件的目标代码块,则可以将使用频率较高的代码块推荐给用户,提高推荐的准确性。
在本发明的一些实施例中,本发明实施例提供的信息推送方法也可以在终端上执行,因此,在S340之后,本发明实施例提供的信息推送方法还包括S350,显示满足预设条件的目标代码块。
通过将满足预设条件的目标代码块显示给用户,可以使用户自主选择需要的代码块,减少用户的输入代码的时间,从而提高代码编辑的效率。
在本发明的一些事实中,S350包括:按照每个满足预设条件的目标代码块对应的目标分支结构的使用频率从高到低的顺序,依次显示每个满足预设条件的目标代码块。
在本发明的实施例中,通过按照目标分支结构的使用频率从高到低的顺序显示目标代码块,则可以将使用频率最高的目标代码块优先推荐给用户,进一步减少了用户的操作时间,提高了代码编辑的效率。
参见图4,对于预设代码结构树库的构建是一个离线过程。通过从代码库中获取多个样本代码语句。然后提取样本代码语句中的关键词(key word),然后将非关键词利用“*”代替,即图5中的离线处理中的代码预处理功能。继续参见图4,接着基于预设的语句拆分规则对非关键词替换后的样本代码语句拆分,得到多个样本代码块,即对样本代码语句进行最小结构的拆分,即图5中的离线处理中的结构拆分功能。
继续参见图4,再接着,提取每个样本代码块的特征结构,即图5中的离线处理中的结构提取功能。基于该特征结构,构建每个样本代码块对应的代码块结构树,即图5中的离线处理中的结构树构建功能。然后对每个代码块结构树进行聚合,得到代码结构树库。
需要说明的是,在图5中离线处理过程中还包括自定义模块,该模块用于支持用户自定义推荐的目标代码块的内容,以适应每个用户的代码风格。也就是说,用户可以在自定义模块中自定义代码块推荐规则。
参见图4,通过利用离线学习得到的预设代码结构树库,以及结合用户输入的目标代码信息,可以实时进行在线预测,并将预测的代码块推荐给用户。
继续参见图4,当用户使用代码编辑器时,用户在代码编辑器中输入目标代码信息。然后解析目标代码信息的特征关键词,即提取目标代码信息的目标结构特征(即图5中智能预测部分的输入解析功能),并基于目标结构特征,构建目标代码信息对应的目标特征结构树。然后从预设代码结构树库中,筛选出与目标特征结构树满足预设匹配条件的至少一个目标分支结构,即匹配的至少一个目标分支结构。
然后按照目标分支结构的使用频率从高到低的顺序,依次显示每个目标分支结构对应的目标代码块,以使用户根据需求选择想要使用的目标代码块(即图5中的智能预测中的实时推荐功能)。
本发明实施例提供的信息推送方法,是基于实际的可运行的代码(即样本代码语句)做的智能推荐,本身不会生成新的代码,因此可以降低推荐误差。并且,本发明实施例还结合了用户输入的目标代码信息,即结合用户的需求进行了个性化地推荐。
参见图5,智能预测功能中包括一个开关校验功能,该开关校验是指在代码编辑器中可以设置智能预测是否开启的一个开关。若校验到用户未开启智能预测的开关,则不对用户进行代码块推荐。智能预测功能中的规则校验功能是指校验自定义模板中用户是否自定义了代码块推荐规则。若用户自定了代码块推荐规则,则优先按照用户自定义的代码块推荐规则进行推荐。若用户未自定义,按照S310~S340中的方法进行代码块推送。
继续参见图5,在底层配置功能中包括语言开关、算法模型、过滤规则和定时加载功能。其中,语言开关是指用户可以选择不同的编程语言。
本发明实施例可以为不同的编程语言建立相对应的预设代码结构树库,从而可以实现对不同的编程语言进行代码块推荐。
算法模型指的是预先训练的类型特征确定模型,用于确定特征关键词后相邻的类型特征信息。过滤规则即是指用户自定义的代码块推荐规则。
定时加载功能是指可以定时对更新的代码结构树库进行加载,即更新代码结构树库。随着样本代码语句的更新,可以对代码结构树库进行更新。
在应用层面,本发明实施例提供的推送信息方法更结合实际,通过设置开关校验、规则校验和过滤规则,可以在不做发布变更的情况下实时干预推荐结构。并且在推送信息方法实施过程中,可以动态加载类型特征确定模型,以及定时更新代码结构树库,并且对用户没有干扰。
需要进一步说明的是,参见图6,对于图5中的智能预测功能,可以实现用户自定义推荐和算法推荐的结合,以更适应用户的个性化需求。
每个用户具有自己的代码风格,因此用户可以预先自定义离线的代码块推荐模板。作为一个示例,离线代码块推荐模板可以包括代码信息与推荐代码块的对应关系。当用户输入一个代码信息之后,可以从该对应关系中找出用户自定义的与该代码信息对应的推荐代码块,并将该推荐代码块推送给用户,以使用户可以按照自己的需求使用推荐的代码块。
用户设置的代码块推荐模板可以进行实时更新,因此离线代码块推荐模块是可以动态生效的,以使用户可以随时根据自己的需求设置该模板。并且,对于任何语言的代码编辑器,都可以设置用户自定义推荐功能,以使用户在使用不同的语言进行代码编辑时,均可以按照自己的需求进行编辑代码。
除了设置用户可以自定义推荐的功能,对于用户输入的其自定义之外的代码信息,则可以按照本申请实施例提供的信息推送算法进行推荐。在使用信息推送算法进行代码块的推荐之前,需要先离线构建代码结构树库,以用于代码块的推荐。随着样本代码语句的更新,可以对代码结构树库进行更新。当出现更新后的代码结构树库,可以去加载更新后的代码结构树库以用于代码块的推送,也就是说,代码结构树库是动态生效的。并且,在进行代码块推荐之前还需要预先训练的类型特征确定模型,用于确定特征关键词后相邻的类型特征信息。
在应用层面,可以设置代码风格、过滤规则和开关校验等功能实现应用层面的共享,可以在不做发布变更的情况下实时干预推荐结构。
图7示出本发明实施例提供的代码结构树库构建装置的结构示意图。如图7所示,代码结构树库构建装置700包括:
代码块获取模块710,用于获取多个样本代码块。
提取模块720,用于提取所述多个样本代码块中每个样本代码块的结构特征。
构建模块730,用于对于每个所述样本代码块,基于所述样本代码块的结构特征,构建所述样本代码块对应的代码块结构树。
确定模块740,用于基于每个所述代码块结构树,确定所述预设代码结构树库。
在本申请的实施例中,通过利用每个样本代码块的结构特征,构建样本代码块的对应的代码块结构树,然后基于每个代码块结构树,确定预设代码结构树库,可以实现对代码块的搜索,从而实现对代码块的推送。
在本发明的一些实施例中,代码块获取模块710用于:
获取多个样本代码语句;
基于预设语句拆分规则,对每个样本代码语句进行语句拆分,得到多个样本代码块。
在本发明的一些实施例中,确定模块740用于:
基于预设合并规则,对所有的代码块结构树进行合并,得到预设代码结构树库中的每个代码结构树。
根据本发明实施例的代码结构树库构建装置700的其他细节与以上结合图2描述的根据本说明书实施例的代码结构树库构建方法类似,在此不再赘述。
图8示出本发明实施例提供的信息推送装置的结构示意图。如图8所示,信息推送装置800包括:
接收模块810,用于接收用户输入的目标代码信息。
筛选模块820,用于从预设代码结构树库中,筛选出与目标代码信息满足预设匹配条件的至少一个目标分支结构。预设代码结构树库中的一个代码结构树中的一个分支结构用于表征一个代码块的结构特征。
生成模块830,用于基于目标代码信息,生成每个目标分支结构对应的目标代码块。
推送模块840,用于推送满足预设条件的目标代码块。
通过利用预先建立的代码结构树库,从预设代码结构树库中,筛选出与目标代码信息满足预设匹配条件的至少一个目标分支结构,然后通过将用户输入的目标代码信息嵌入与目标代码信息满足预设匹配条件的每个目标分支结构,可以得到与用户需求相关的每个目标代码块,通过向用户推送满足预设条件的目标代码块,可以向用户推荐与其输入需求相关的代码块,减少了用户的代码输入操作,提高了代码编辑效率。
在本发明的一些实施例中,筛选模块820包括:
提取单元,用于提取目标代码信息的目标结构特征。
构建单元,用于基于目标结构特征,构建目标代码信息对应的目标特征结构树。
筛选单元,用于从预设代码结构树库中,筛选出与目标特征结构树满足预设匹配条件的至少一个目标分支结构。
在本发明的一些实施例中,筛选单元用于:
从目标代码信息的起始位置开始,依次提取目标代码信息的n个特征关键词;n为正整数;
将n个特征关键词与预设代码结构树库中的每个代码结构树的至少一个索引进行匹配;
将与n个特征关键词匹配的索引所对应的代码结构树,作为目标代码结构树;
将目标代码结构树中与目标特征结构树满足预设匹配条件的分支结构,作为目标分支结构。
在本发明的一些实施例中,预设条件包括目标代码块对应的目标分支结构的使用频率大于预设使用频率阈值。
在本发明的一些实施例中,信息推送装置800还包括:
显示模块,用于显示满足预设条件的目标代码块。
在本发明的一些实施例中,显示模块用于:
按照每个满足预设条件的目标代码块对应的目标分支结构的使用频率从高到低的顺序,依次显示每个满足预设条件的目标代码块。
在本发明的一些实施例中,生成模块830用于:
对于每个目标分支结构,执行以下步骤:
提取目标分支结构中的特征关键词;
对于目标分支结构中的特征关键词,将特征关键词以及与特征关键词相邻的m个特征关键词,输入预先训练的类型特征确定模型,得到特征关键词后相邻的类型特征信息;m为正整数;
基于目标代码信息和特征关键词后相邻的类型特征信息,生成目标分支结构对应的目标代码块。
根据本发明实施例的信息推送装置800的其他细节与以上结合图3至图6描述的根据本说明书实施例的信息推送方法类似,在此不再赘述。
结合图2和图8描述的根据本发明实施例的代码结构树库构建方法、代码结构树库构建装置、信息推送方法和信息推送装置可以由计算设备来实现。图9是示出根据发明实施例的计算设备的硬件结构900示意图。
如图9所示,计算设备900包括输入设备901、输入接口902、处理器903、存储器904、输出接口905、以及输出设备906。其中,输入接口902、处理器903、存储器904、以及输出接口905通过总线910相互连接,输入设备901和输出设备906分别通过输入接口902和输出接口905与总线910连接,进而与计算设备900的其他组件连接。
其中,处理器903可以包括:中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processing Unit,NPU)、张量处理器(Tensor Processing Unit,TPU)、现场可编程门阵列(Field Programmable Gate Array,FPGA)芯片或者人工智能(ArtificialIntelligence,AI)芯片等类型的处理器,该附图仅为示例性说明,并不局限于文中列举的类型的处理器。
具体地,输入设备901接收来自外部的输入信息,并通过输入接口902将输入信息传送到处理器903;处理器903基于存储器904中存储的计算机可执行指令对输入信息进行处理以生成输出信息,将输出信息临时或者永久地存储在存储器904中,然后通过输出接口905将输出信息传送到输出设备906;输出设备906将输出信息输出到计算设备900的外部供用户使用。
也就是说,图9所示的计算设备也可以被实现为包括:存储有计算机可执行指令的存储器;以及处理器,该处理器在执行计算机可执行指令时可以实现结合图2至图8描述的代码结构树库构建方法、代码结构树库构建装置、信息推送方法和信息推送装置。
本发明实施例还提供一种计算机存储介质,该计算机存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现本发明实施例提供的信息推送方法。
以上的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
还需要说明的是,本发明中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本发明不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
以上,仅为本发明的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。
Claims (14)
1.一种代码结构树库构建方法,其中,所述方法包括:
获取多个样本代码块;
提取所述多个样本代码块中每个样本代码块的结构特征;
对于每个所述样本代码块,基于所述样本代码块的结构特征,构建所述样本代码块对应的代码块结构树;
基于每个所述代码块结构树,确定所述预设代码结构树库。
2.根据权利要求1所述的方法,其中,所述获取多个样本代码块,包括:
获取多个样本代码语句;
基于预设语句拆分规则,对每个所述样本代码语句进行语句拆分,得到所述多个样本代码块。
3.根据权利要求1所述的方法,其中,所述基于每个所述代码块结构树,确定所述预设代码结构树库,包括:
基于预设合并规则,对所有的代码块结构树进行合并,得到所述预设代码结构树库中的每个代码结构树。
4.一种信息推送方法,其中,所述方法包括:
接收用户输入的目标代码信息;
从预设代码结构树库中,筛选出与所述目标代码信息满足预设匹配条件的至少一个目标分支结构;所述预设代码结构树库中的一个代码结构树中的一个分支结构用于表征一个代码块的结构特征;
基于所述目标代码信息,生成每个所述目标分支结构对应的目标代码块;
推送满足预设条件的所述目标代码块。
5.根据权利要求4所述的方法,其中,所述从预设代码结构树库中,筛选出与所述目标代码信息满足预设匹配条件的至少一个目标分支结构,包括:
提取所述目标代码信息的目标结构特征;
基于所述目标结构特征,构建所述目标代码信息对应的目标特征结构树;
从所述预设代码结构树库中,筛选出与所述目标特征结构树满足所述预设匹配条件的至少一个目标分支结构。
6.根据权利要求5所述的方法,其中,所述从所述预设代码结构树库中,筛选出与所述目标特征结构树满足所述预设匹配条件的至少一个目标分支结构,包括:
从所述目标代码信息的起始位置开始,依次提取所述目标代码信息的n个特征关键词;n为正整数;
将所述n个特征关键词与所述预设代码结构树库中的每个代码结构树的至少一个索引进行匹配;
将与所述n个特征关键词匹配的索引所对应的代码结构树,作为目标代码结构树;
将所述目标代码结构树中与所述目标特征结构树满足所述预设匹配条件的分支结构,作为所述目标分支结构。
7.根据权利要求4所述的方法,其中,所述预设条件包括所述目标代码块对应的目标分支结构的使用频率大于预设使用频率阈值。
8.根据权利要求4所述的方法,其中,所述推送满足预设条件的所述目标代码块之后,所述方法还包括:
显示满足预设条件的所述目标代码块。
9.根据权利要求8所述的方法,其中,所述显示满足所述预设条件的所述目标代码块,包括:
按照每个满足所述预设条件的所述目标代码块对应的目标分支结构的使用频率从高到低的顺序,依次显示每个满足所述预设条件的所述目标代码块。
10.根据权利要求4所述的方法,其中,所述基于所述目标代码信息,生成每个所述目标分支结构对应的目标代码块,包括:
对于每个所述目标分支结构,执行以下步骤:
提取所述目标分支结构中的特征关键词;
对于所述目标分支结构中的特征关键词,将所述特征关键词以及与所述特征关键词相邻的m个特征关键词,输入预先训练的类型特征确定模型,得到所述特征关键词后相邻的类型特征信息;m为正整数;
基于所述目标代码信息和所述特征关键词后相邻的类型特征信息,生成所述目标分支结构对应的目标代码块。
11.一种代码结构树库构建装置,其中,所述装置包括:
代码块获取模块,用于获取多个样本代码块;
提取模块,用于提取所述多个样本代码块中每个样本代码块的结构特征;
构建模块,用于对于每个所述样本代码块,基于所述样本代码块的结构特征,构建所述样本代码块对应的代码块结构树;
确定模块,用于基于每个所述代码块结构树,确定所述预设代码结构树库。
12.一种信息推送装置,其中,所述装置包括:
接收模块,用于接收用户输入的目标代码信息;
筛选模块,用于从预设代码结构树库中,筛选出与所述目标代码信息满足预设匹配条件的至少一个目标分支结构;所述预设代码结构树库中的一个代码结构树中的一个分支结构用于表征一个代码块的结构特征;
生成模块,用于基于所述目标代码信息,生成每个所述目标分支结构对应的目标代码块;
推送模块,用于推送满足预设条件的所述目标代码块。
13.一种计算设备,其中,所述计算设备包括:处理器以及存储有计算机程序指令的存储器;
所述处理器执行所述计算机程序指令时实现如权利要求1-10任意一项所述的方法。
14.一种计算机存储介质,其中,所述计算机存储介质上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现如权利要求1-10任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010513805.1A CN113296755A (zh) | 2020-06-08 | 2020-06-08 | 代码结构树库构建方法和信息推送方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010513805.1A CN113296755A (zh) | 2020-06-08 | 2020-06-08 | 代码结构树库构建方法和信息推送方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113296755A true CN113296755A (zh) | 2021-08-24 |
Family
ID=77318115
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010513805.1A Pending CN113296755A (zh) | 2020-06-08 | 2020-06-08 | 代码结构树库构建方法和信息推送方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113296755A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115562679A (zh) * | 2022-12-05 | 2023-01-03 | 广州市保伦电子有限公司 | 一种基于Java语言的自动生成代码的方法及服务器 |
CN116820488A (zh) * | 2023-05-31 | 2023-09-29 | 五矿国际信托有限公司 | 一种DevOps体系下研发部署过程联动的方法 |
CN116893805A (zh) * | 2023-07-31 | 2023-10-17 | 红石阳光(北京)科技股份有限公司 | 一种满足定制化需求的代码生成方法 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1855052A (zh) * | 2005-04-25 | 2006-11-01 | 罗迪平 | 一种从树型结构数据和一组代码片断结构体生成目标源代码的方法 |
CN102999318A (zh) * | 2011-09-08 | 2013-03-27 | 国际商业机器公司 | 辅助编程的方法及装置 |
CN103135976A (zh) * | 2011-11-30 | 2013-06-05 | 阿里巴巴集团控股有限公司 | 代码自动生成方法及装置 |
CN104199831A (zh) * | 2014-07-31 | 2014-12-10 | 深圳市腾讯计算机系统有限公司 | 信息处理方法及装置 |
US20170168784A1 (en) * | 2014-05-22 | 2017-06-15 | Soo-Jin Hwang | Method and device for visually implementing software code |
CN107239264A (zh) * | 2016-03-28 | 2017-10-10 | 阿里巴巴集团控股有限公司 | 代码提示信息的生成方法及装置 |
CN108021391A (zh) * | 2017-12-04 | 2018-05-11 | 泰康保险集团股份有限公司 | 一种程序代码中调用关系的获取方法、装置及设备 |
CN109947399A (zh) * | 2019-01-25 | 2019-06-28 | 深圳壹账通智能科技有限公司 | 代码结构生成方法、装置、计算机装置及可读存储介质 |
CN110187885A (zh) * | 2019-06-10 | 2019-08-30 | 合肥本源量子计算科技有限责任公司 | 一种量子程序编译的中间代码生成方法及装置 |
CN110502227A (zh) * | 2019-08-28 | 2019-11-26 | 网易(杭州)网络有限公司 | 代码补全的方法及装置、存储介质、电子设备 |
CN110688121A (zh) * | 2019-08-22 | 2020-01-14 | 深圳壹账通智能科技有限公司 | 代码补全方法、装置、计算机装置及存储介质 |
-
2020
- 2020-06-08 CN CN202010513805.1A patent/CN113296755A/zh active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1855052A (zh) * | 2005-04-25 | 2006-11-01 | 罗迪平 | 一种从树型结构数据和一组代码片断结构体生成目标源代码的方法 |
CN102999318A (zh) * | 2011-09-08 | 2013-03-27 | 国际商业机器公司 | 辅助编程的方法及装置 |
CN103135976A (zh) * | 2011-11-30 | 2013-06-05 | 阿里巴巴集团控股有限公司 | 代码自动生成方法及装置 |
US20170168784A1 (en) * | 2014-05-22 | 2017-06-15 | Soo-Jin Hwang | Method and device for visually implementing software code |
CN104199831A (zh) * | 2014-07-31 | 2014-12-10 | 深圳市腾讯计算机系统有限公司 | 信息处理方法及装置 |
CN107239264A (zh) * | 2016-03-28 | 2017-10-10 | 阿里巴巴集团控股有限公司 | 代码提示信息的生成方法及装置 |
CN108021391A (zh) * | 2017-12-04 | 2018-05-11 | 泰康保险集团股份有限公司 | 一种程序代码中调用关系的获取方法、装置及设备 |
CN109947399A (zh) * | 2019-01-25 | 2019-06-28 | 深圳壹账通智能科技有限公司 | 代码结构生成方法、装置、计算机装置及可读存储介质 |
CN110187885A (zh) * | 2019-06-10 | 2019-08-30 | 合肥本源量子计算科技有限责任公司 | 一种量子程序编译的中间代码生成方法及装置 |
CN110688121A (zh) * | 2019-08-22 | 2020-01-14 | 深圳壹账通智能科技有限公司 | 代码补全方法、装置、计算机装置及存储介质 |
CN110502227A (zh) * | 2019-08-28 | 2019-11-26 | 网易(杭州)网络有限公司 | 代码补全的方法及装置、存储介质、电子设备 |
Non-Patent Citations (2)
Title |
---|
RITU CHATURVEDI等: "Concept Extraction: A Modular Approach to Extraction of Source Code Concepts", 《2018 IEEE INTERNATIONAL CONFERENCE ON INTERNET OF THINGS (ITHINGS) AND IEEE GREEN COMPUTING AND COMMUNICATIONS (GREENCOM) AND IEEE CYBER, PHYSICAL AND SOCIAL COMPUTING (CPSCOM) AND IEEE SMART DATA (SMARTDATA)》, 3 June 2019 (2019-06-03) * |
胡星等: "基于深度学习的程序生成与补全技术研究进展", 《软件学报》, vol. 30, no. 5, 31 May 2019 (2019-05-31) * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115562679A (zh) * | 2022-12-05 | 2023-01-03 | 广州市保伦电子有限公司 | 一种基于Java语言的自动生成代码的方法及服务器 |
CN116820488A (zh) * | 2023-05-31 | 2023-09-29 | 五矿国际信托有限公司 | 一种DevOps体系下研发部署过程联动的方法 |
CN116820488B (zh) * | 2023-05-31 | 2024-02-13 | 五矿国际信托有限公司 | 一种DevOps体系下研发部署过程联动的方法 |
CN116893805A (zh) * | 2023-07-31 | 2023-10-17 | 红石阳光(北京)科技股份有限公司 | 一种满足定制化需求的代码生成方法 |
CN116893805B (zh) * | 2023-07-31 | 2024-03-15 | 红石阳光(北京)科技股份有限公司 | 一种满足定制化需求的代码生成方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11526809B2 (en) | Primary key-foreign key relationship determination through machine learning | |
CA1232359A (en) | Probabilistic learning element | |
CN113296755A (zh) | 代码结构树库构建方法和信息推送方法 | |
CN113158685B (zh) | 文本的语义预测方法、装置、计算机设备和存储介质 | |
CN111985229A (zh) | 一种序列标注方法、装置及计算机设备 | |
CN112085565A (zh) | 基于深度学习的信息推荐方法、装置、设备及存储介质 | |
CN112528634A (zh) | 文本纠错模型训练、识别方法、装置、设备及存储介质 | |
CN113011529B (zh) | 文本分类模型的训练方法、装置、设备及可读存储介质 | |
EP3665593A2 (en) | Inclusion dependency determination in a large database for establishing primary key-foreign key relationships | |
CN112256886A (zh) | 图谱中的概率计算方法、装置、计算机设备及存储介质 | |
US20210349696A1 (en) | Predicting code editor | |
US11790170B2 (en) | Converting unstructured technical reports to structured technical reports using machine learning | |
CN117591547B (zh) | 数据库的查询方法、装置、终端设备以及存储介质 | |
CN111324344A (zh) | 代码语句的生成方法、装置、设备及可读存储介质 | |
CN116795341A (zh) | 生成带有预测占位符的代码段的机器学习的模型来优化软件开发 | |
CN116361546A (zh) | 搜索请求的处理方法、装置、电子设备和存储介质 | |
JPWO2011016281A1 (ja) | ベイジアンネットワーク構造学習のための情報処理装置及びプログラム | |
CN112541357B (zh) | 实体识别方法、装置及智能设备 | |
CN115345687A (zh) | 一种跨网站商品对齐方法及装置 | |
CN118333132B (zh) | 情感识别模型训练方法、情感识别方法及相关设备 | |
US20230350647A1 (en) | Programming Aiding Apparatus and Programming Aiding Method | |
CN116631402A (zh) | 一种业务查询方法、装置、电子设备及存储介质 | |
CN116911390A (zh) | 时间序列分析方法、装置、设备及计算机程序产品 | |
WO2024065028A1 (en) | Application of an ai-based model to a preprocessed data set | |
CN115130588A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40058604 Country of ref document: HK |