CN116933106B - 基于无监督聚类的代码分块方法、存储介质和装置 - Google Patents
基于无监督聚类的代码分块方法、存储介质和装置 Download PDFInfo
- Publication number
- CN116933106B CN116933106B CN202310892391.1A CN202310892391A CN116933106B CN 116933106 B CN116933106 B CN 116933106B CN 202310892391 A CN202310892391 A CN 202310892391A CN 116933106 B CN116933106 B CN 116933106B
- Authority
- CN
- China
- Prior art keywords
- clustering
- code
- code blocking
- blocking
- neuron
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 59
- 230000000903 blocking effect Effects 0.000 title claims abstract description 50
- 238000004422 calculation algorithm Methods 0.000 claims description 41
- 210000002569 neuron Anatomy 0.000 claims description 41
- 239000013598 vector Substances 0.000 claims description 25
- 230000008569 process Effects 0.000 claims description 11
- 210000004205 output neuron Anatomy 0.000 claims description 9
- 238000012549 training Methods 0.000 claims description 9
- 230000009467 reduction Effects 0.000 claims description 5
- 238000012937 correction Methods 0.000 claims description 3
- 210000002364 input neuron Anatomy 0.000 claims description 3
- 238000004590 computer program Methods 0.000 claims description 2
- 238000013507 mapping Methods 0.000 claims 1
- 230000006870 function Effects 0.000 description 11
- 230000002860 competitive effect Effects 0.000 description 7
- 239000011159 matrix material Substances 0.000 description 7
- 238000009635 antibiotic susceptibility testing Methods 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000011423 initialization method Methods 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
- 238000012038 vulnerability analysis Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- 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
-
- 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
- G06N3/088—Non-supervised learning, e.g. competitive learning
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computational Linguistics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Evolutionary Biology (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于无监督聚类的代码分块方法、存储介质和装置,属于代码分块领域,所述方法首先将源代码抽象为抽象语法树,再将抽象语法树平铺得到的文本,使用文本训练词向量模型,得到抽象语法树中每个节点的词向量,接下来以词向量作为输入进行DBSCAN聚类,最后将DBSCAN聚类获得的聚类中心作为SOM算法竞争层神经元、聚类中心个数作为聚类个数即分块个数,由此实现代码分块。本发明还提供运行所述方法的装置和计算机可读存储介质,本发明方法能够实现小样本无监督聚类进而实现代码分块任务,其分块结果的稳定性和精确度也明显高于传统代码分块方法。
Description
技术领域
本发明属于代码分块领域,具体的涉及一种基于无监督聚类的代码分块方法、存储介质和装置。
背景技术
随着计算机技术的不断发展,编程语言也逐渐变的复杂,采用不同编程语言编写的程序数量正在以爆炸式的速度增长。当前编程语言种类繁多,大规模程序代码量巨大,导致代码的后期维护、改进、分析等代码处理方法面临巨大挑战。代码分块是将一段较长的代码拆分为更小的、逻辑独立的代码片段,从而达到将复杂代码分而治之的处理要求和目的。这种技术可以应用在代码漏洞分析、代码翻译、代码注释自动补齐、代码语义理解、代码质量检测等方面。
传统的代码分块方法,是按照关键字或者代码的结构进行分块,例如遇到for关键字,则将其划分为一个循环体。这种代码分块方法必须针对每一种编程语言的语法进行手动适配,若某些项目采用多种开发语言,某些开发语言未进行人工适配,则该语言无法完成分块,从而导致对项目代码进行分块时不稳定,进而影响后续的代码分析与处理功能。同样的,若某一种语言的关键字或代码结构发生变化(因语言版本升级等原因),则传统的根据关键字分块的方法准确度也会快速降低。采用自动化方法,从大量的已有代码中训练一个模型,实现代码的自动分块,是需要解决的一个问题。为了解决该问题,可以使用无监督聚类的方法,对代码的抽象语法树(AST,Abstract Syntax Tree)节点进行分类,从而达到代码分块的目的。
面对每种代码语言的字符与结构特征有限,现有的无监督聚类方法大多依赖于大规模的数据集训,对样本数量有很高的要求,而代码的抽象语法树节点个数,是典型的小样本数据集,导致传统的无监督聚类算法,例如自组织映射(Self-organizing Maps,SOM)算法,在应用于代码分块时,由于样本数量太少导致模型收敛速度慢或者无法收敛,进而导致代码分块稳定性和准确性较低。对SOM的初始权值赋值方法进行改进,以适应小样本无监督聚类学习,是一种可行的方案
发明内容
本发明要解决的技术问题在于提供一种基于无监督聚类的代码分块方法、存储介质和装置,所述方法实现小样本无监督聚类进而实现代码分块任务。它由具有噪声的基于密度的聚类方法(Density-Based Spatial Clustering of Applications withNoise,DBSCAN)聚类方法和SOM聚类方法组成。该算法分为两个阶段:首先使用DBSCAN聚类方法确定SOM算法的初始权值,代替原有的随机赋值方法,然后在第二阶段使用SOM作为无监督聚类方法完成聚类任务。该方法在代码分块任务上的运行时间、不稳定数据点率和内部误差方面都明显优于传统的SOM算法。
本发明是通过如下技术方案来实现的:
一种基于无监督聚类的代码分块方法,所述方法首先将提取源代码的抽象语法树,再将抽象语法树平铺得到的文本,使用文本训练词向量模型,得到抽象语法树中每个节点的词向量,用来表示每个节点的特征,接下来以词向量作为输入进行DBSCAN聚类,最后将DBSCAN聚类获得的聚类中心作为SOM算法竞争层神经元、聚类中心个数作为聚类个数即分块个数。
进一步,通过数据降维法将高维数据映射到竞争层初始化神经元权值,通过DBSCAN聚类算法确定出N×M个聚类中心,以此作为SOM算法初始权重值。
进一步,在SOM算法中,输入神经元与输出神经元直接相连,每个连接对应一个权重值;使用欧氏距离,计算每个输出神经元的输入向量和输入向量之间的距离;距离最小的输出神经元被宣布为获胜者;然后,使用邻域函数最小化神经元自身与其邻域之间的总距离。
进一步,聚类个数先初始化为与初始样本数目m相关的一个较大数值,将聚类个数初始化为然后结合DBSCAN聚类获得神经元权重值,通过SOM算法进行聚类,将N×M初始化为获胜过的神经元的个数;在SOM算法中,对/>通过化整处理进行修正。
进一步,将聚类后的抽象语法树节点与源代码进行对应,使用抽象语法树节点的分类表示代码的分块结果。
本发明还提供一种基于无监督聚类的代码分块装置,所述装置能够运行所述基于无监督聚类的代码分块方法。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序适用于由处理器加载并执行所述基于无监督聚类的代码分块方法。
本发明与现有技术相比的有益效果:本发明利用DBSCAN聚类结果初始化SOM聚类的方法,DBSCAN聚类结果代替SOM聚类中竞争层中神经元收敛过程,降低SOM聚类收敛所需的迭代次数,显著改善代码分块过程中小样本代码聚类时的收敛慢甚至不收敛问题,其分块结果的稳定性和精确度也明显高于传统代码分块方法。
附图说明
图1为随机初始化权重每迭代50次的竞争层神经元图;
图2为本发明方法每迭代50次的竞争层神经元图。
具体实施方式
下面通过实施例来对本发明的技术方案做进一步解释,但本发明的保护范围不受实施例任何形式上的限制。
实施例1:一种基于无监督聚类的代码分块方法,所述方法首先将源代码抽象为抽象语法树,再将抽象语法树平铺得到的文本,使用文本训练词向量模型,得到抽象语法树中每个节点的词向量,接下来以词向量作为输入进行DBSCAN聚类,最后将DBSCAN聚类获得的聚类中心作为SOM算法竞争层神经元、聚类中心个数作为聚类个数即分块个数,由此实现代码分块。具体步骤如下:
(1)提取源代码的抽象语法树:抽象语法树是程序源代码的抽象语法结构的树状表示,树上的每个节点都表示源代码中的一种结构。通过抽象语法树对程序源代码进行分析,是程序代码自动生成、代码转换、代码翻译的重要手段。对抽象语法树中的节点进行特征提取,是利用程序源代码抽象语法树进行后续代码处理的核心技术之一,基于抽象语法树的神经网络模型可以更好地表示源代码。
将代码抽象为抽象语法树,AST由三种类型的节点组成:1)占位符节点;2)应用编程接口(Application Programming Interface,API)节点;3)语法节点。占位符节点不是函数的实际组件,但它们将函数组件链接在一起以形成树。所有AST都有占位符节点,例如“params”表示其叶节点是函数参数,“stmnts”表示其叶是各种类型的语句。API节点是指函数返回值和函数参数的类型。它们也可以是变量声明和函数调用。语法节点是包含控制流元素和运算符的语法元素。运算符(例如“+”、“-”或“=”)将保持不变。
(2)将抽象语法树节点抽取出来平铺得到的文本,使用大量抽象语法树平铺文本训练词向量模型,得到抽象语法树中每个节点的词向量,这样就得到了最终的表示抽象语法树节点的特征向量。
以抽象语法树特征向量作为输入进行DBSCAN聚类;由于每种编程语言的抽象语法树节点个数与结构特征有限,现有的无监督聚类方法大多依赖于大规模的数据集训练,而在小样本数据条件下很难收敛,针对该问题,提出了一种基于DBSCAN聚类的SOM改进算法实现小样本无监督聚类进而实现词向量聚类。
DBSCAN聚类算法是最常用的聚类算法之一,其特点是不需要事先知道要形成的簇类的数量。DBSCAN聚类簇定义为密度相连的点的最大集合,能够把具有足够高密度的区域划分为簇,并可在噪声的空间数据库中发现任意形状的聚类,属于无监督学习。基于DBSCAN聚类的SOM算法是一个两阶段算法,它是SOM聚类和DBSCAN聚类中的中心初始化方法的结合。SOM方法的性能对随机分配的初始权重敏感。而且在大规模应用中,随机分配的初始值使它的速度非常慢。为了降低SOM的时间复杂度,本实施例提出用DBSCAN聚类代替随机过程来确定初始权值。在这种方法中,DBSCAN聚类中心被指定为SOM权重值;因此,SOM将需要更少的迭代。
DBSCAN聚类的基本思想是把具有足够高密度的区域划分为簇。通过DBSCAN聚类找到目标个数的簇及簇的中心点,设集合包含所有初始数据集A={x1,x2,...,xm}、聚类簇距离度量函数dmin以及聚类簇个数N×M;
其中,dist(x,z)为x和z的欧式距离。
DBSCAN聚类部分:
输入:包含n个对象的数据库,半径e,最少数目MinPts;
输出:所有生成的簇,达到密度要求。
①Repeat;
②从数据库中抽出一个未处理的点;
③if抽出的点是核心点THEN找出所有从该点密度相连的对象,形成一个簇;
④else抽出的点是边缘点(非核心对象),跳出本次循环,寻找下一个点;
⑤until所有的点都被处理。
(3)将DBSCAN聚类获得的聚类中心作为SOM算法竞争层神经元、聚类中心个数作为聚类个数即分块个数。SOM算法是一个初始值敏感的算法,因此初始值的确定十分重要。SOM算法使得输入的点与其竞争层神经元都建立关联,这些神经元对所有属性值都有权重值。在SOM算法中,输入神经元与输出神经元直接相连,每个连接对应一个权重值。在SOM初始化的过程中,每个神经元与一个和输入向量(xi=xi1,xi2,...,xin)具有相同维数(n)的随机权重向量(wi=wi1,wi2,...,win)相关联。使用欧氏距离,计算每个输出神经元的输入向量和输入向量之间的距离。距离最小的输出神经元被宣布为获胜者。然后,使用邻域函数最小化神经元自身与其邻域之间的总距离。
SOM算法作为一个初始值敏感的算法,除了输出层神经元初始权重的初始化,输出层神经元个数,即聚类个数的确定也对聚类结果有很大影响。
本实施例中,将聚类个数先初始化为与初始样本数目m相关的一个较大数值,由于初始样本数目作为训练数据一般数量较大,因此将聚类个数初始化为然后结合DBSCAN聚类获得神经元权重值,然后通过SOM算法进行聚类,在此过程中,由于初始化的神经元数目远大于正确的神经元数目,因此总存在失效的输出层神经元,即该神经元永不获胜。当SOM算法结束时,获胜过的神经元个数远小于初始的聚类个数值/>将N×M初始化为获胜过的神经元的个数。在SOM算法中,由于输出层是根据N×M的输出平面,因此还要对通过化整处理进行修正。
如果随机地对DBSCAN聚类初始化方法得到的权值进行定位,则正确的神经元不可能具有正确的权值,SOM算法也不一定成功,必须确定最合适的方法来定位这些初始权重值。即使得到了权重值,如果随机的输入也不可以。因此DBSCAN聚类得到结果,输入SOM,其顺序也非常重要,因为获胜神经元应该有最大的权重值。如果把小的权重值分给它,那DBSCAN聚类的结果将失效。这里使用数据降维法(Dimensionality Reduction Method,DRM)将DBSCAN聚类结果映射到SOM算法的二维竞争层,进而初始化神经元权值,由此,通过DBSCAN聚类算法确定出N×M个聚类中心,以此作为SOM算法初始权重值。
DRM通过利用数据做平移、旋转、翻转等操作,数据点的距离是不变的这一特性来对原始数据进行操作。它将原始空间中样本之间的欧式距离在低维空间得以保持。降维后,保持距离不变,即保持了样本的相对空间关系不变。DRM计算简单,保留了数据在原始空间的相对关系,有较好地可视化效果。
DRM部分:
输入:距离矩阵D∈R(向量空间),其元素distij,为样本xi到xj的距离;低维空间维数d=2;
①计算:
②计算矩阵B:
③对矩阵B做特征值分析;
④取2个最大特征值所构成的对角矩阵A,取对角矩阵相应的特征向量矩阵V;
输出:矩阵AV1/2∈R2m,每行是一个样本的低维坐标。
SOM算法部分:
初始化:按照上述DRM初始化SOM竞争层神经元初始权值;
①对输入向量X和权值W做归一化处理;
②
③计算输入数据与权值向量的欧几里得距离,距离最小的神经元赢得竞争;
④更新权值:对获胜的神经元拓扑邻域内的神经元进行更新,并对学习后的权值ω重新归一化;
ω(t+1)=ω(t)+η(t,n)*(x-ω(t)),
η(t,n)=η(t)*e-n;
其中,η(t,n):η为学习率是关于训练时间t和与获胜神经元的拓扑距离n的函数;
⑤更新学习速率η及拓扑邻域N,N随时间增大距离变小;
⑥判断是否收敛。如果学习率η<=ηmin或达到预设的迭代次数,结束算法。
(5)聚类中心个数作为聚类个数即代码分块个数,得到AST节点的分类后,即得到了代码的分块方法,最后将分类后的AST节点对应到源代码,由此实现代码分块。
聚类后,将获得N×M个聚类中心,即最后获得N×M个代码分块。但在实际代码分块应用中,实际分类个数很有可能小于聚类个数N×M。在聚类过程中,SOM算法会出现竞争层某神经元始终不获胜,成为死神经元的情况,聚类结束之后,需要对聚类结果进行修正,例如过滤死神经元;设定不同阈值,当两个聚类的聚类中心距离小于阈值,则合并聚类,通过设定不同阈值,对比分析最终聚类结果,确定合适的阈值达到最好的代码分块效果,例如,当N×M远大于实际聚类个数时,循环语句for和while很有可能被划分为两个分类,但类间距离远小于与其他语句结构分类的距离,因此我们可以通过设定不同阈值合并短距离分类,优化代码分块结果。
实施例2:在本实施例中,使用实施例1所述的方法对100组小样本代码样例进行聚类以实现代码分块,100组样样例在聚类过程中全部收敛并取得良好的聚类效果,分块结果较相较现有代码分块方法分类结果具有更高的稳定性和聚类速度,较好的改善了现有代码分块过程中小样本聚类所面临的难收敛甚至不收敛问题。
其中一个样本的实施过程如下:随机初始化权重,每迭代训练50次的竞争层神经元分布如图1所示,改进后初始化权重收敛过程如图2所示,总结:训练任务中,随机初始化权重的竞争层神经元前期对数据的分布表示效果很差,在迭代500次左右收敛;优化后权重的竞争层神经元前期也能较好表示数据分布,在迭代200-300次左右收敛,因此通过减少迭代次数减少获得收敛结果所需的样本数,改善小样本聚类所面临的难收敛甚至不收敛问题。
Claims (6)
1.一种基于无监督聚类的代码分块方法,其特征在于,所述方法首先将源代码抽象为抽象语法树,再将抽象语法树平铺得到的文本,使用文本训练词向量模型,得到抽象语法树中每个节点的词向量,接下来以词向量作为输入进行DBSCAN聚类,最后将DBSCAN聚类获得的聚类中心作为SOM算法竞争层神经元、聚类中心个数作为聚类个数即分块个数,具体为通过数据降维法将高维数据映射到竞争层初始化神经元权值,通过DBSCAN聚类算法确定出N×M个聚类中心,以此作为SOM算法初始权重值,由此实现代码分块。
2.根据权利要求1所述的一种基于无监督聚类的代码分块方法,其特征在于,在SOM算法中,输入神经元与输出神经元直接相连,每个连接对应一个权重值;使用欧氏距离,计算每个输出神经元的输入向量和输入向量之间的距离;距离最小的输出神经元被宣布为获胜者;然后,使用邻域函数最小化神经元自身与其邻域之间的总距离。
3.根据权利要求1所述的一种基于无监督聚类的代码分块方法,其特征在于,聚类个数先初始化为与初始样本数目m相关的一个较大数值,将聚类个数初始化为然后结合DBSCAN聚类获得神经元权重值,通过SOM算法进行聚类,将N×M初始化为获胜过的神经元的个数;在SOM算法中,对/>通过化整处理进行修正。
4.根据权利要求1所述的一种基于无监督聚类的代码分块方法,其特征在于,将聚类后的抽象语法树节点与源代码进行对应,使用抽象语法树节点的分类表示代码的分块结果,由此实现代码分块。
5.一种基于无监督聚类的代码分块装置,其特征在于,所述装置能够运行权利要求1-4任何一项所述基于无监督聚类的代码分块方法。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序适用于由处理器加载并执行权利要求1-4任何一项所述基于无监督聚类的代码分块方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310892391.1A CN116933106B (zh) | 2023-07-20 | 2023-07-20 | 基于无监督聚类的代码分块方法、存储介质和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310892391.1A CN116933106B (zh) | 2023-07-20 | 2023-07-20 | 基于无监督聚类的代码分块方法、存储介质和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116933106A CN116933106A (zh) | 2023-10-24 |
CN116933106B true CN116933106B (zh) | 2024-01-26 |
Family
ID=88378585
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310892391.1A Active CN116933106B (zh) | 2023-07-20 | 2023-07-20 | 基于无监督聚类的代码分块方法、存储介质和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116933106B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106383695A (zh) * | 2016-09-14 | 2017-02-08 | 中国科学技术大学苏州研究院 | 基于fpga的聚类算法的加速系统及其设计方法 |
CN111211994A (zh) * | 2019-11-28 | 2020-05-29 | 南京邮电大学 | 基于SOM与K-means融合算法的网络流量分类方法 |
CN115268867A (zh) * | 2022-07-26 | 2022-11-01 | 中国海洋大学 | 一种抽象语法树裁剪方法 |
CN116432125A (zh) * | 2023-06-01 | 2023-07-14 | 中南大学 | 基于哈希算法的代码分类方法 |
-
2023
- 2023-07-20 CN CN202310892391.1A patent/CN116933106B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106383695A (zh) * | 2016-09-14 | 2017-02-08 | 中国科学技术大学苏州研究院 | 基于fpga的聚类算法的加速系统及其设计方法 |
CN111211994A (zh) * | 2019-11-28 | 2020-05-29 | 南京邮电大学 | 基于SOM与K-means融合算法的网络流量分类方法 |
CN115268867A (zh) * | 2022-07-26 | 2022-11-01 | 中国海洋大学 | 一种抽象语法树裁剪方法 |
CN116432125A (zh) * | 2023-06-01 | 2023-07-14 | 中南大学 | 基于哈希算法的代码分类方法 |
Also Published As
Publication number | Publication date |
---|---|
CN116933106A (zh) | 2023-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113378632B (zh) | 一种基于伪标签优化的无监督域适应行人重识别方法 | |
CN113326731B (zh) | 一种基于动量网络指导的跨域行人重识别方法 | |
Qian et al. | Fast graph-based relaxed clustering for large data sets using minimal enclosing ball | |
CN114021799A (zh) | 风电场日前风电功率预测方法及系统 | |
CN112395393B (zh) | 一种基于多任务多示例的远程监督关系抽取方法 | |
CN112906770A (zh) | 一种基于跨模态融合的深度聚类方法及系统 | |
CN110033089B (zh) | 基于分布式估计算法的手写体数字图像识别深度神经网络参数优化方法及系统 | |
CN115578248B (zh) | 一种基于风格引导的泛化增强图像分类算法 | |
JP2020126604A (ja) | データモデルを構築する方法、装置、デバイス及び媒体 | |
CN112711652B (zh) | 术语标准化方法及装置 | |
CN111444956A (zh) | 低负载信息预测方法、装置、计算机系统及可读存储介质 | |
WO2021189830A1 (zh) | 样本数据优化方法、装置、设备及存储介质 | |
CN108280236A (zh) | 一种基于LargeVis的随机森林可视化数据分析方法 | |
CN112200293A (zh) | 基于cart-amv改进的随机森林算法 | |
Marghny et al. | An effective evolutionary clustering algorithm: Hepatitis C case study | |
CN114417095A (zh) | 一种数据集划分方法及装置 | |
Jeyakarthic et al. | Optimal bidirectional long short term memory based sentiment analysis with sarcasm detection and classification on twitter data | |
CN116933106B (zh) | 基于无监督聚类的代码分块方法、存储介质和装置 | |
CN111639680B (zh) | 一种基于专家反馈机制的身份识别方法 | |
CN115344693B (zh) | 一种基于传统算法和神经网络算法融合的聚类方法 | |
CN115544033B (zh) | 查重向量库更新、数据查重方法、装置、设备和介质 | |
Zheng | Improved K-means clustering algorithm based on dynamic clustering | |
CN106779090A (zh) | 一种基于自适应Dropout非负矩阵分解的特征学习模型 | |
Sarin et al. | Identification of fuzzy classifiers based on the mountain clustering and cuckoo search algorithms | |
CN109448791A (zh) | 用于基因表达分析的确定性k均值簇聚方法 |
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 |