Python函数类型声明模型建立方法及装置、介质及设备制造方法及图纸

技术编号:30413818 阅读:20 留言:0更新日期:2021-10-24 16:15
本公开提供一种Python函数类型声明的模型建立方法及装置、一种Python函数类型的声明方法及装置、存储介质及电子设备;涉及神经网络技术领域。所述Python函数类型声明的模型建立方法包括:获取多个Python函数,提取所述Python函数的函数要素,其中,所述函数要素包括函数参数及函数返回值的名称、注释及类型;分解所述函数要素并进行向量化处理,得到所述函数参数及函数返回值的名称、注释及类型的向量表示;将所述函数参数及所述函数返回值的名称和注释作为特征数据,类型作为标注数据,并基于所述特征数据及所述标注数据的所述向量表示,利用神经网络训练得到所述Python函数类型声明的模型。本公开可以通过所建立的模型得到Python函数的参数及返回值的类型,生成函数签名。签名。签名。

【技术实现步骤摘要】
Python函数类型声明模型建立方法及装置、介质及设备


[0001]本公开涉及神经网络
,具体而言,涉及一种Python函数类型声明的模型建立方法、一种Python函数类型声明的模型建立装置、一种Python函数类型的声明方法、一种Python函数类型的声明装置、电子设备以及计算机可读存储介质。

技术介绍

[0002]作为目前互联网行业最为流行的编程语言之一,以动态性为显著特征的Python,由于其变量类型不需声明,在运行时可以任意改变,为开发者提供了很好的自由度。
[0003]然而,随着软件开发项目的规模越来越大,上述特性也给开发者带来了如下问题:为了确定某些函数的参数和返回值的类型,必须深入阅读函数内部代码。因此,动态类型反而带来了额外的开发成本。现有的确定Python函数的参数及返回值类型的方法存在依然需要人力去判断一些函数类型、影响开发效率等问题。
[0004]上述
技术介绍
部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。

技术实现思路

[0005]本公开实施例提供一种Python函数类型声明的模型建立方法及装置、一种Python函数类型的声明方法及装置、电子设备以及计算机可读存储介质,可以实现通过所建立的模型得到Python函数的参数及返回值的类型,生成函数签名,同时还可以减少运行时由于类型不符而引起的异常,提高代码健壮性。
[0006]根据本公开的第一方面,提供一种Python函数类型声明的模型建立方法,包括:
[0007]获取多个Python函数,提取所述Python函数的函数要素,其中,所述函数要素包括函数参数及函数返回值的名称、注释及类型;
[0008]分解所述函数要素并进行向量化处理,得到所述函数参数及函数返回值的名称、注释及类型的向量表示;
[0009]将所述函数参数及所述函数返回值的名称和注释作为特征数据,类型作为标注数据,并基于所述特征数据及所述标注数据的所述向量表示,利用神经网络训练得到所述Python函数类型声明的模型。
[0010]在本公开的一种示例性实施例中,所述获取多个Python函数,提取所述Python函数的函数要素,包括:
[0011]获取多个Python函数,将所述Python函数解析为抽象语法树,并基于所述抽象语法树提取出所述函数要素。
[0012]在本公开的一种示例性实施例中,所述函数要素还包括所述Python函数的函数名称及注释;
[0013]所述分解所述函数要素并进行向量化处理,包括:
[0014]分解各所述函数要素,以多元组的形式表示所述函数要素对应的所述Python函
数;
[0015]对所述多元组中的各所述函数要素进行向量化处理,得到所述函数参数及函数返回值的名称、注释及类型的向量表示。
[0016]在本公开的一种示例性实施例中,所述对所述多元组中的各所述函数要素进行向量化处理,得到所述函数参数及函数返回值的名称、注释及类型的向量表示,包括:
[0017]获取各所述函数要素的词嵌入表示;
[0018]基于各所述函数要素的所述词嵌入表示及词长度确定各所述函数对应所述向量表示。
[0019]在本公开的一种示例性实施例中,所述获取各所述函数要素的词嵌入表示,包括:
[0020]利用Word2vec模型获取所述函数要素的词嵌入。
[0021]在本公开的一种示例性实施例中所述基于所述特征数据及所述标注数据的所述向量表示,利用神经网络训练得到所述Python函数类型声明的模型,包括:
[0022]基于所述特征数据及所述标注数据的所述向量表示,利用双向长短期记忆网络训练得到所述Python函数类型声明的模型,其中,所述标注数据为独热向量。
[0023]根据本公开的第二方面,提供一种Python函数类型的声明方法,包括:
[0024]根据上述方法建立Python函数类型声明的模型;
[0025]获取Python函数,通过所述Python函数类型声明的模型对所述Python函数进行处理,得到所述Python函数的函数参数及函数返回值的类型并更新至所述Python函数。
[0026]在本公开的一种示例性实施例中,在所述获取Python函数之后,所述方法还包括:
[0027]提取所述Python函数的函数要素,分解所述函数要素并进行向量化处理,得到所述函数参数及函数返回值的名称、注释及类型的向量表示。
[0028]在本公开的一种示例性实施例中,所述通过所述Python函数类型声明的模型对所述输入Python函数进行处理,得到所述Python函数的函数参数及函数返回值的类型,包括:
[0029]将所述函数参数的所述向量表示输入所述Python函数类型声明的模型,得到所述Python函数的函数类型的概率向量;
[0030]依据所述概率向量得到对应的所述函数参数及函数返回值的类型。
[0031]根据本公开的第三方面,提供一种Python函数类型声明的模型建立装置,包括:
[0032]要素提取模块,用于获取多个Python函数,提取所述Python函数的函数要素,其中,所述函数要素包括函数参数及函数返回值的名称、注释及类型;
[0033]向量化模块,用于分解所述函数要素并进行向量化处理,得到所述函数参数及函数返回值的名称、注释及类型的向量表示;
[0034]模型建立模块,用于将所述函数参数及所述函数返回值的名称和注释作为特征数据,类型作为标注数据,并基于所述特征数据及所述标注数据的所述向量表示,利用神经网络训练得到所述Python函数类型声明的模型。
[0035]根据本公开的第四方面,提供一种Python函数类型的声明装置,包括:
[0036]模型建立模块,用于根据上述方法建立Python函数类型声明的模型;
[0037]类型声明模块,用于获取Python函数,通过所述Python函数类型声明的模型对所述Python函数进行处理,得到所述Python函数的函数参数及函数返回值的类型并更新至所述Python函数。
[0038]根据本公开的第五方面,提供一种电子设备,包括:
[0039]处理器;
[0040]存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述方法。
[0041]根据本公开的第六方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述方法。
[0042]本公开示例性实施例可以具有以下部分或全部有益效果:
[0043]在本公开示例实施方式所提供的Python函数类型声明的模型建立方法中,可以从互联网公开代码仓库中拉取符合条件的Python代码,并将其中的Python函数代码抽取出来。在获取到多个Python函数后本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种Python函数类型声明的模型建立方法,其特征在于,包括:获取多个Python函数,提取所述Python函数的函数要素,其中,所述函数要素包括函数参数及函数返回值的名称、注释及类型;分解所述函数要素并进行向量化处理,得到所述函数参数及函数返回值的名称、注释及类型的向量表示;将所述函数参数及所述函数返回值的名称和注释作为特征数据,类型作为标注数据,并基于所述特征数据及所述标注数据的所述向量表示,利用神经网络训练得到所述Python函数类型声明的模型。2.根据权利要求1所述的Python函数类型声明的模型建立方法,其特征在于,所述获取多个Python函数,提取所述Python函数的函数要素,包括:获取多个Python函数,将所述Python函数解析为抽象语法树,并基于所述抽象语法树提取出所述函数要素。3.根据权利要求1所述的Python函数类型声明的模型建立方法,其特征在于,所述函数要素还包括所述Python函数的函数名称及注释;所述分解所述函数要素并进行向量化处理,包括:分解各所述函数要素,以多元组的形式表示所述函数要素对应的所述Python函数;对所述多元组中的各所述函数要素进行向量化处理,得到所述函数参数及函数返回值的名称、注释及类型的向量表示。4.根据权利要求3所述的Python函数类型声明的模型建立方法,其特征在于,所述对所述多元组中的各所述函数要素进行向量化处理,得到所述函数参数及函数返回值的名称、注释及类型的向量表示,包括:获取各所述函数要素的词嵌入表示;基于各所述函数要素的所述词嵌入表示及词长度确定各所述函数对应所述向量表示。5.根据权利要求4所述的Python函数类型声明的模型建立方法,其特征在于,所述获取各所述函数要素的词嵌入表示,包括:利用Word2vec模型获取所述函数要素的词嵌入。6.根据权利要求1所述的Python函数类型声明的模型建立方法,其特征在于,所述基于所述特征数据及所述标注数据的所述向量表示,利用神经网络训练得到所述Python函数类型声明的模型,包括:基于所述特征数据及所述标注数据的所述向量表示,利用双向长短期记忆网络训练得到所述Python函数类型声明的模型,其中,所述标注数据为独热向量。7.一种Python函数类型的声明方法,其特征在于,包括:根据权利要求1-6任一项所述的方法建立Python函数类型声...

【专利技术属性】
技术研发人员:陈龙丁泉钦
申请(专利权)人:北京沃东天骏信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1