CN110750297A - 一种基于程序分析和文本分析的Python代码参考信息生成方法 - Google Patents
一种基于程序分析和文本分析的Python代码参考信息生成方法 Download PDFInfo
- Publication number
- CN110750297A CN110750297A CN201910970630.4A CN201910970630A CN110750297A CN 110750297 A CN110750297 A CN 110750297A CN 201910970630 A CN201910970630 A CN 201910970630A CN 110750297 A CN110750297 A CN 110750297A
- Authority
- CN
- China
- Prior art keywords
- function
- reference information
- class
- function call
- type
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 238000004458 analytical method Methods 0.000 title claims abstract description 36
- 230000006870 function Effects 0.000 claims abstract description 240
- 238000013507 mapping Methods 0.000 claims abstract description 26
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 18
- 238000001914 filtration Methods 0.000 claims abstract description 16
- 230000003068 static effect Effects 0.000 claims abstract description 11
- 238000005516 engineering process Methods 0.000 claims abstract description 9
- 238000012549 training Methods 0.000 claims description 12
- 238000013145 classification model Methods 0.000 claims description 7
- 239000013598 vector Substances 0.000 claims description 7
- 239000011159 matrix material Substances 0.000 claims description 4
- 238000003058 natural language processing Methods 0.000 claims description 3
- 230000001419 dependent effect Effects 0.000 claims description 2
- 238000007781 pre-processing Methods 0.000 claims description 2
- 238000009795 derivation Methods 0.000 abstract description 11
- 238000011161 development Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000000007 visual 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/70—Software maintenance or management
- G06F8/75—Structural analysis for program understanding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/73—Program documentation
Abstract
本发明为一种基于程序分析和文本分析的Python代码参考信息生成方法:首先,对Python代码中的函数调用场景进行分类并提取项目中函数定义和注释作为函数的参考信息;其次,对于函数调用场景中函数来源(模块Module,类Class)可以确定的情况,使用静态分析工具生成函数调用图,建立函数调用和函数参考信息的一一映射关系;然后,考虑同名函数的情况,为了确定调用函数的Class实例的类型,使用基于文本分析技术的类型推导,给出推导的类型并根据类型建立函数调用和函数参考信息的一一映射关系;接着,针对类型无法推导的情况,基于协同过滤算法,为Class实例的函数调用推荐同名函数中对应的函数参考信息。
Description
技术领域
本发明属于计算机技术领域。尤其是软件技术领域。本发明提出了一种基于程序分析和文本分析来对Python代码,尤其是函数生成参考信息(定义、注释等)的方法,能够有效地针对当前代码编辑器和IDE无法识别处理的代码内容生成对应的参考信息,同时对同名函数的参考信息进行有效地区分。
背景技术
随着互联网技术的高速发展以及软件产业日新月异的变化,面向Web应用、机器学习以及数据分析的软件需求越来越多。作为一种典型的动态编程语言,Python具有在运行时可以改变变量类型和程序结构的特性,其语法简练、使用灵活、编写快捷且具有庞大的类库支持,非常适用于开发业务性强、需求多变以及体积较小的软件系统,已然成为最广泛使用的编程语言之一。Python丰富的类库可以帮助开发人员进行快速开发。
然而,Python开发过程中的常见问题是:开发者难以从庞杂的外部类库中找到自己所需的函数;或者对于某个不熟悉的类库,在编写代码时开发者需要快速了解其属性和函数以保证正确使用。尽管开发人员可以查看类库的官方文档以及使用搜索引擎来解决问题,但前者需花费较大的精力定位自己所需的内容,后者可能会存在误导信息。这些情况都大大增加了开发成本,是Python软件开发者所面临的主要挑战。
针对这些问题的一个有效解决方案是在软件集成开发环境(IDE)中提供显示代码参考信息的功能。这种提示功能应当通过对于开发人员正在编写的代码的分析,准确地显示代码中数据的类型、函数的定义及注释,帮助开发人员更好地理解类库中的属性和函数,从而提高开发的效率和准确性。
但由于Python的动态特性,目前的代码编辑器(如VSCode等)以及IDE(如Pycharm等)并不能对代码中所有的内容(类、方法和函数等)生成代码参考信息。因此,本发明的主要目标是研究一种能准确生成Python代码的,尤其是函数的参考信息的方法,着重提升同名函数参考信息的生成精度,弥补当前IDE代码提示功能的不足,有效地帮助开发者理解代码,更好地完成开发任务。
发明内容
本发明的主要工作是提出一种基于程序分析和文本分析有效对Python代码中函数生成参考信息并对同名函数的参考信息进行有效区分的方法。首先,本发明关注的是Python代码中的函数调用和函数参考信息的关联,对Python代码中的函数调用场景进行分类并提取函数定义和注释作为函数的参考信息。其次,对于函数调用场景中函数的来源(模块Module,类Class)可以确定的情况,使用静态分析工具生成函数调用图,建立函数调用和函数参考信息的一一映射。然后,考虑同名函数的情况,为了确定调用函数的Class实例的类型,使用基于文本分析技术的类型推导,给出推导的类型并根据类型建立函数调用和函数参考信息的一一映射。最后,针对类型无法推导的情况,基于协同过滤算法,为Class实例的函数调用推荐同名函数中对应的函数参考信息。针对以上问题,本发明的工作和贡献如下:
1.函数调用场景分类和函数参考信息的提取。本发明将Python的函数调用场景分为,Class实例的函数调用、非Class实例的函数调用、同一个Class内部函数之间的调用和Python内置函数调用四大类。针对需要生成代码参考信息的项目,分析项目自身以及其依赖库和Python标准库,提取出所有函数的定义和注释作为函数调用时的参考信息。对项目分析的同时,记录所有的函数调用,每一条函数调用的完整信息为<序号,路径,Class名,函数调用的类别,是否存在同名的函数调用,参考信息>。
2.基于静态分析的函数调用图建立函数调用和函数参考信息的映射。对于函数的来源(模块Module,类Class)可以确定的情况,使用静态分析的方法。利用已有的构建Python函数调用图的工具(Pycallgraph,Pyan等),得到函数调用关系,建立函数调用和函数参考信息的映射。可用于处理非Class实例的函数调用、同一个Class内部函数之间的调用和Python内置函数调用的场景。
3.基于文本分析的类型推导建立函数调用和函数参考信息的映射。由于Python的动态特性,Class实例的函数调用可能无法确定变量(Class实例)的类型,进而对于存在同名函数的情况,无法建立函数调用与函数参考信息的一一映射(仅靠函数名匹配可能会有一对多的映射)。因此我们希望通过基于文本分析的类型推导方法来得到变量的类型,进而建立函数调用和函数参考信息的映射。本发明使用数十个Python项目作为训练集,提取训练集项目中的所有变量名和可以观察到的变量类型,并使用传统的类型推导方法建立变量到其已推导出的类型的映射字典,通过对变量名的预处理得到token序列和基于LDA主题模型的聚类,为每个变量提取特征,包括聚类id,token序列中的名词数、动词数以及变量名和类型名之间的文本相似度。变量的特征向量和对应的类型标签值组成一组实例数据,将所有的实例数据输入到SVM中进行训练得到最终的模型M(t)。分类模型M(t)可以预测任意给定的一个变量x是否可能属于类型t,及其相应的概率值p。
4.基于协同过滤来区分同名函数的参考信息,为Class实例的函数调用推荐同名函数中对应的函数参考信息。由于命名惯例的不确定性,单独利用3中的模型来预测变量类型有时不能奏效。本发明基于协同过滤算法,将同名函数所属的Class以及当前函数调用属于的未知Class实例视为用户(User),将这些Class的属性、方法以及各个同名函数的参考信息视为商品(Item),构建用户评分数据矩阵。与一般的基于协同过滤的算法不同,本发明的算法是对于上下文范围敏感的,这里的上下文范围是指当前函数调用的上下文范围。根据三种不同的上下文范围:与当前函数调用位于同一个函数、类、文件,提取上下文范围中所有Class的属性和方法,得到三个用户评分数据矩阵。通过计算用户(Class和未知Class实例)之间的相似度,得到不同上下文范围情况下与未知Class实例最相似的Class,来给当前未知Class实例的函数调用推荐同名函数中对应的函数参考信息。通过人工审查同名函数的参考信息,以及通过执行动态测试确定函数调用处的Class实例的实际类型可以发现,对于3中类型推导不能奏效的情况,本发明提出的推荐方法可以为同名函数推荐对应的函数参考信息。
附图说明
图1为本发明基于文本分析的类型推导示意图
图2为本发明基于协同过滤的算法流程示意图
图3为本发明基于程序分析和文本分析的Python代码参考信息生成示意图
具体实施方式
本发明具体包括以下步骤:
1)首先针对需要生成代码参考信息的项目,分析项目自身以及其依赖库和Python标准库,提取出所有函数的定义和注释作为函数调用时的参考信息来源。
2)对项目进行分析时,记录所有的函数调用,分为Class实例的函数调用、非Class实例的函数调用、同一个Class内部函数之间的调用和Python内置函数调用四大类。针对每处函数调用生成一条信息。
3)使用基于静态分析的函数调用图生成技术,对于非Class实例的函数调用,同一个Class内部函数之间的调用以及Python内置函数调用的场景,建立函数调用和函数参考信息的映射。
4)使用基于文本分析的自然语言处理技术,提取变量名中的自然语言特性作为特征向量,为类型域中每个类型训练出一个分类模型,进而为Class实例推导类型,建立Class实例的函数调用和函数参考信息的映射。
5)使用基于协同过滤的算法,使用具有与该函数同名的方法的Class的属性、函数调用信息,以及使用上下文中Class实例的属性、函数调用信息来为Class实例的函数调用推荐同名函数中对应的函数参考信息,以此作为函数调用和函数参考信息的映射。
6)根据步骤3)、4)和5)中得到的函数调用和函数参考信息的映射,结合步骤1)中的函数参考信息来源,可以在函数调用处生成函数参考信息。
步骤1)中提取函数参考信息的流程如下:对于需要生成代码参考信息的项目,对项目内所有的源代码文件(.py文件),提取函数定义的内容(包括函数名和参数列表),通过AST解析提取函数的文档字符串(docstring)作为函数参考信息中的注释,docstring是Python独有的注释方式,是包,模块,类或函数里的第一个语句,惯例是使用三重双引号″″″。若AST解析失败则使用正则匹配提取docstring。将函数定义和注释整合作为函数的参考信息。对于项目的所有依赖库,Python标准库的处理按照同样的方法进行。
步骤2)对项目分析的同时,记录所有的函数调用,分为Class实例的函数调用、非Class实例的函数调用、同一个Class内部函数之间的调用和Python内置函数调用四大类。每一条函数调用的完整信息为<序号,路径,Class名,函数调用的类别,是否存在同名的函数调用,参考信息>。
步骤3)基于静态分析的函数调用图生成技术,使用Pycallgraph工具对项目进行分析得到函数调用关系。对于步骤2)中,非Class实例的函数调用、同一个Class内部函数之间的调用和Python内置函数调用的场景,可以根据静态分析得到的函数调用关系建立函数调用和函数参考信息的映射。
Pycallgraph是一个Python调用图的可视化分析工具。它使用一个名为sys.set_trace()的Python调试函数,该调试函数在代码每次进入或离开函数时都会进行回调。这样,Python调用图就可以跟踪每个被调用函数的名称,以及哪个函数被调用,每个函数使用的时间,调用次数等。Pycallgraph不仅可以生成GraphViz的DOT文件还可以生成JSON文件,通过对Output类进行子类化,创建自定义输出。本发明基于Pycallgraph工具生成JSON文件建立函数调用和函数参考信息的映射。
步骤4)为了处理Class实例的函数调用场景中无法确定Class实例的类型的情况,使用基于文本分析的自然语言处理技术,进行类型推导。参照图1是本发明基于文本分析的类型推导示意图,使用数十个Python项目的程序作为训练集,提取训练集项目中的所有变量名和可以观察到的变量类型,并使用传统的类型推导方法建立变量到其已推导出的类型的映射字典。通过对变量名的预处理,去除变量名尾部数字,通过“_”和驼峰式命名规则对变量名进行切分得到token,并对每个token的字母小写处理,得到一个变量名token序列。对训练集中所有的变量名token序列使用LDA主题模型进行聚类,聚类算法最终会生成一个分类,能识别给定的一个变量名所属的聚类id。为每个变量x抽取特征向量,其形式为<id,N_noun,N_verb,sim(x,t)>。其中,id是由(4)中得到的变量名所属的聚类id,N_noun和N_verb分别表示变量名token序列中的名词和动词的个数,sim(x,t)表示变量名和类型名之间的文本相似度。每个分类模型的训练过程都是一个标准的监督学习过程。其中,每一组实例数据由特征向量和对应的标签值组成。对于变量x而言,如果它已被推导出的类型集中包含类型t,则标签值为1,否则为0。将所有的实例记录输入到SVM中进行训练便能得到最终的模型M(t)。分类模型M(t)可以预测任意给定的一个变量x是否可能属于类型t,及其相应的概率值p。
步骤5)基于协同过滤来区分同名函数的参考信息,为Class实例的函数调用推荐同名函数中对应的函数参考信息。由于命名惯例的不确定性,单独利用步骤4)中的模型来预测变量类型有时不能奏效。本发明基于协同过滤算法,将同名函数所属的Class以及当前函数调用属于的未知Class实例视为用户(User),将这些Class的属性、方法以及各个同名函数的参考信息视为商品(Item),构建用户评分数据矩阵。参照图2是本发明基于协同过滤的算法流程示意图,与一般的基于协同过滤的算法不同,本发明的算法是对于上下文范围敏感的,这里的上下文范围是指当前函数调用的上下文范围。根据三种不同的上下文范围:与当前函数调用位于同一个函数、类、文件,提取上下文范围中所有Class的属性和方法,得到三个用户评分数据矩阵。通过计算用户(Class和未知Class实例)之间的相似度,相似度计算公式是:
Sim(Ci,Cj)=α1*Simfunc(Ui,Uj)+α2*Simclass(Ui,Uj)+α3*Simfile(Ui,Uj)
其中α1,α2,α3分别为不同上下文范围下相似度的权重,α1+α2+α3=1.Simfunc(Ui,Uj),Simclass(Ui,Uj),Simfile(Ui,Uj)分别为函数、类、文件三种上下文范围情况下的用户评分矩阵中的用户相似度,根据余弦相似度公式分别计算:
综合考虑不同上下文范围情况下与未知Class实例相似的Class集合,来给当前未知Class实例的函数调用推荐同名函数中对应的函数参考信息。
步骤6)参照图3是本发明基于程序分析和文本分析的Python代码参考信息生成示意图。根据步骤3)、4)和5)中得到的函数调用和函数参考信息的映射,结合步骤1)中的函数参考信息来源,可以在函数调用处生成函数参考信息。
Claims (6)
1.一种基于程序分析和文本分析的Python代码参考信息生成方法,其特征是对项目以及其依赖库和Python标准库,提取出所有函数的定义和注释作为函数调用时的参考信息;接着,对项目使用静态分析工具生成函数调用图,建立函数调用和函数参考信息的映射;接着,基于文本分析的方法,为Class实例推导类型,根据类型确定函数调用和函数参考信息的映射;最后,基于协同过滤算法,为Class实例的函数调用推荐同名函数中对应的函数参考信息。
2.根据权利要求1所描述的一种基于程序分析和文本分析的Python代码参考信息生成方法,其特征包括以下几个步骤:
1)对项目以及其依赖库和Python标准库,提取出所有函数的定义和注释等信息作为函数调用时的参考信息来源;
2)基于静态分析的函数调用图生成技术,对于非Class实例的函数调用,同一个Class内部函数之间的调用以及Python内置函数调用的场景,建立函数调用和函数参考信息的映射;
3)基于文本分析的自然语言处理技术,提取变量名中的自然语言特性作为特征向量,为类型域中每个类型训练出一个分类模型,进而为Class实例推导类型,建立Class实例的函数调用和函数参考信息的映射;
4)基于协同过滤的算法,使用具有与该函数同名的方法的Class的属性、函数调用信息,以及使用上下文中Class实例的属性、函数调用信息来为Class实例的函数调用推荐同名函数中对应的函数参考信息。
3.根据权利要求2所述的基于程序分析和文本分析的Python代码参考信息生成方法,其特征是步骤1)中,针对需要生成代码参考信息的项目,分析项目自身以及其依赖库和Python标准库,提取出所有函数的定义和注释作为函数调用时的参考信息;
在分析项目的同时,记录所有的函数调用,分为Class实例的函数调用、非Class实例的函数调用、同一个Class内部函数之间的调用和Python内置函数调用四大类,其中每一条函数调用的完整信息为<序号,路径,Class名,函数调用的类别,是否存在同名的函数调用,参考信息>。
4.根据权利要求2所述的基于程序分析和文本分析的Python代码参考信息生成方法,其特征是步骤2)中,基于静态分析的函数调用图生成技术,使用Pycallgraph工具对项目进行分析得到函数调用关系;对于步骤1)中,非Class实例的函数调用、同一个Class内部函数之间的调用和Python内置函数调用的场景,根据静态分析得到的函数调用关系建立函数调用和函数参考信息的映射。
5.根据权利要求2所述的基于程序分析和文本分析的Python代码参考信息生成方法,其特征是步骤3)中,基于文本分析的自然语言处理技术,提取变量名中的自然语言特性作为特征向量,为类型域中每个类型训练出一个分类模型,进而为Class实例推导类型,建立Class实例的函数调用和函数参考信息的映射;
本发明提取训练集项目中的所有变量名和可以观察到的变量类型,并使用传统的类型推导方法建立变量到其已推导出的类型的映射字典,通过对变量名的预处理得到token序列和基于LDA主题模型的聚类,为每个变量提取特征,包括聚类id,token序列中的名词数、动词数以及变量名和类型名之间的文本相似度;变量的特征向量和对应的类型标签值组成一组实例数据,将所有的实例数据输入到SVM中进行训练得到最终的模型M(t);分类模型M(t)可以预测任意给定的一个变量x是否可能属于类型t及其相应的概率值p。
6.根据权利要求2所述的基于程序分析和文本分析的Python代码参考信息生成方法,其特征是步骤4)中,基于协同过滤的算法,使用具有与该函数同名的方法的Class的属性、函数调用信息以及使用上下文中Class实例的属性、函数调用信息来为Class实例的函数调用推荐同名函数中对应的函数参考信息;
本发明基于协同过滤算法,将同名函数所属的Class以及当前函数调用属于的未知Class实例视为用户(User),将这些Class的属性、方法以及各个同名函数的参考信息视为商品(Item),构建用户-商品评分数据矩阵;与一般的基于协同过滤的算法不同,本发明的算法是对于上下文范围敏感的,这里的上下文范围是指当前函数调用的上下文范围;根据三种不同的上下文范围,即与当前函数调用位于同一个函数、类或者文件,提取上下文范围中所有Class的属性和方法,得到三个用户-商品评分数据矩阵;通过计算用户(Class和未知Class实例)之间的相似度,得到不同上下文范围情况下与未知Class实例最相似的Class,来给当前未知Class实例的函数调用推荐同名函数中对应的函数参考信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910970630.4A CN110750297B (zh) | 2019-10-11 | 2019-10-11 | 一种基于程序分析和文本分析的Python代码参考信息生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910970630.4A CN110750297B (zh) | 2019-10-11 | 2019-10-11 | 一种基于程序分析和文本分析的Python代码参考信息生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110750297A true CN110750297A (zh) | 2020-02-04 |
CN110750297B CN110750297B (zh) | 2021-08-20 |
Family
ID=69278118
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910970630.4A Active CN110750297B (zh) | 2019-10-11 | 2019-10-11 | 一种基于程序分析和文本分析的Python代码参考信息生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110750297B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111858322A (zh) * | 2020-07-10 | 2020-10-30 | 中国科学技术大学 | 一种Python语言特征自动识别系统和方法 |
CN112433754A (zh) * | 2021-01-13 | 2021-03-02 | 南京大学 | 一种基于程序分析的Java函数注释自动生成方法 |
CN113535136A (zh) * | 2020-04-14 | 2021-10-22 | 北京沃东天骏信息技术有限公司 | Python函数类型声明模型建立方法及装置、介质及设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103336760A (zh) * | 2013-07-11 | 2013-10-02 | 北京信息科技大学 | 一种基于逆向工程自动生成软件文档的方法及装置 |
US20150095923A1 (en) * | 2013-09-30 | 2015-04-02 | MuleSoft, Inc. | Api notebook tool |
CN105677311A (zh) * | 2014-11-21 | 2016-06-15 | 卓望数码技术(深圳)有限公司 | 一种函数调用关系的识别方法及装置 |
CN105739981A (zh) * | 2016-01-28 | 2016-07-06 | 厦门飞信网络科技有限公司 | 一种代码补全实现方法、装置和计算设备 |
US20180129544A1 (en) * | 2016-11-10 | 2018-05-10 | International Business Machines Corporation | Suggesting Application Programming Interfaces Based on Feature and Context Analysis |
CN109783079A (zh) * | 2018-12-21 | 2019-05-21 | 南京航空航天大学 | 一种基于程序分析和循环神经网络的代码注释生成方法 |
CN110018820A (zh) * | 2019-04-08 | 2019-07-16 | 浙江大学滨海产业技术研究院 | 一种基于深度强化学习的Graph2Seq自动生成Java代码注释的方法 |
CN110297657A (zh) * | 2019-06-11 | 2019-10-01 | 东南大学 | 一种基于层次上下文的api推荐方法 |
-
2019
- 2019-10-11 CN CN201910970630.4A patent/CN110750297B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103336760A (zh) * | 2013-07-11 | 2013-10-02 | 北京信息科技大学 | 一种基于逆向工程自动生成软件文档的方法及装置 |
US20150095923A1 (en) * | 2013-09-30 | 2015-04-02 | MuleSoft, Inc. | Api notebook tool |
CN105677311A (zh) * | 2014-11-21 | 2016-06-15 | 卓望数码技术(深圳)有限公司 | 一种函数调用关系的识别方法及装置 |
CN105739981A (zh) * | 2016-01-28 | 2016-07-06 | 厦门飞信网络科技有限公司 | 一种代码补全实现方法、装置和计算设备 |
US20180129544A1 (en) * | 2016-11-10 | 2018-05-10 | International Business Machines Corporation | Suggesting Application Programming Interfaces Based on Feature and Context Analysis |
CN109783079A (zh) * | 2018-12-21 | 2019-05-21 | 南京航空航天大学 | 一种基于程序分析和循环神经网络的代码注释生成方法 |
CN110018820A (zh) * | 2019-04-08 | 2019-07-16 | 浙江大学滨海产业技术研究院 | 一种基于深度强化学习的Graph2Seq自动生成Java代码注释的方法 |
CN110297657A (zh) * | 2019-06-11 | 2019-10-01 | 东南大学 | 一种基于层次上下文的api推荐方法 |
Non-Patent Citations (3)
Title |
---|
何欣程 等: "使用程序分析和特征识别方法过滤网页广告", 《小型微型计算机系统》 * |
徐兆佳 等: "Python程序缺陷的自动检测与定位技术", 《中国博士学位论文全文数据库 信息科技辑》 * |
缪小川 等: "使用敏感路径识别方法分析安卓应用安全性", 《软件学报》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113535136A (zh) * | 2020-04-14 | 2021-10-22 | 北京沃东天骏信息技术有限公司 | Python函数类型声明模型建立方法及装置、介质及设备 |
CN111858322A (zh) * | 2020-07-10 | 2020-10-30 | 中国科学技术大学 | 一种Python语言特征自动识别系统和方法 |
CN111858322B (zh) * | 2020-07-10 | 2022-01-11 | 中国科学技术大学 | 一种Python语言特征自动识别系统和方法 |
CN112433754A (zh) * | 2021-01-13 | 2021-03-02 | 南京大学 | 一种基于程序分析的Java函数注释自动生成方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110750297B (zh) | 2021-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11899800B2 (en) | Open source vulnerability prediction with machine learning ensemble | |
CN110245496B (zh) | 一种源代码漏洞检测方法及检测器和其训练方法及系统 | |
Buratti et al. | Exploring software naturalness through neural language models | |
CN107908635B (zh) | 建立文本分类模型以及文本分类的方法、装置 | |
Fang et al. | Word-of-mouth understanding: Entity-centric multimodal aspect-opinion mining in social media | |
KR102310487B1 (ko) | 속성 단위 리뷰 분석 장치 및 방법 | |
CN110750297B (zh) | 一种基于程序分析和文本分析的Python代码参考信息生成方法 | |
CN108170468B (zh) | 一种自动检测注释和代码一致性的方法及其系统 | |
US10699112B1 (en) | Identification of key segments in document images | |
US20220197611A1 (en) | Intent-based machine programming | |
Rohini et al. | Domain based sentiment analysis in regional Language-Kannada using machine learning algorithm | |
CN111666766A (zh) | 数据处理方法、装置和设备 | |
US9558462B2 (en) | Identifying and amalgamating conditional actions in business processes | |
CN112632226A (zh) | 基于法律知识图谱的语义搜索方法、装置和电子设备 | |
CN112287071A (zh) | 一种文本关系提取方法、装置及电子设备 | |
CN116406459A (zh) | 一种代码处理方法、装置、设备及介质 | |
Shreda et al. | Identifying non-functional requirements from unconstrained documents using natural language processing and machine learning approaches | |
Stoica et al. | The impact of data challenges on intent detection and slot filling for the home assistant scenario | |
CN101727451A (zh) | 信息提取方法和装置 | |
Sun et al. | A scenario model aggregation approach for mobile app requirements evolution based on user comments | |
CN115309995A (zh) | 一种基于需求文本的科技资源推送方法和装置 | |
Salman | Test Case Generation from Specifications Using Natural Language Processing | |
CN113900956A (zh) | 测试用例的生成方法、装置、计算机设备及存储介质 | |
Tang et al. | Interpretability rules: Jointly bootstrapping a neural relation extractorwith an explanation decoder | |
CN114547231A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |