CN116648709A - 信息处理程序、信息处理方法和信息处理装置 - Google Patents

信息处理程序、信息处理方法和信息处理装置 Download PDF

Info

Publication number
CN116648709A
CN116648709A CN202180082034.8A CN202180082034A CN116648709A CN 116648709 A CN116648709 A CN 116648709A CN 202180082034 A CN202180082034 A CN 202180082034A CN 116648709 A CN116648709 A CN 116648709A
Authority
CN
China
Prior art keywords
vector
subroutine
program
information processing
analyzed
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
Application number
CN202180082034.8A
Other languages
English (en)
Inventor
片冈正弘
中野太智
百足勇人
尾上聪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of CN116648709A publication Critical patent/CN116648709A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/75Structural analysis for program understanding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Communication Control (AREA)

Abstract

信息处理装置基于定义了与程序对应的向量和分别与构成程序的多个子程序对应的向量的关系的学习数据,执行学习模型的学习。信息处理装置在受理到作为分析对象的程序的情况下,通过将作为分析对象的程序输入到学习模型,从而计算与作为分析对象的程序对应的多个子程序的向量。

Description

信息处理程序、信息处理方法和信息处理装置
技术领域
本发明涉及信息处理程序等。
背景技术
OSS(Open Source Software,开源软件)等的源程序由程序的专家制作并完成。另外,如果是程序的专家,则通过利用自身的专业知识,沿用OSS的一部分,通过与其他源程序组合,可以生成与客户机的要求对应的新的源程序。
另外,近年来,由于程序的专家的人数不足,因此通过对学生、入门者等进行讲课、程序实习,进行培养专家的努力。
现有技术文献
专利文献
专利文献1:日本特开2020-135135号公报
专利文献2:日本特开2019-101993号公报
专利文献3:日本特开2015-106347号公报
发明内容
发明所要解决的课题
如上所述,如果是程序的专家,则对源程序的结构进行分析,按照每个统一的功能分解为多个子程序,沿用并改造OSS的一部分,进行再合成,由此能够制作新的源程序。但是,学生、入门者的工程师难以通过同样的方法生成程序。
在1个侧面中,本发明的目的在于提供一种信息处理程序、信息处理方法和信息处理装置,其能够对源程序的结构进行分析,按每个功能进行分解,高效地沿用、改造、再合成。
用于解决课题的手段
在第1方案中,使计算机执行以下处理。计算机根据定义了与程序对应的向量和分别与构成程序的多个子程序对应的向量之间的关系的学习数据,执行学习模型的学习。计算机在受理到作为分析对象的程序的情况下,通过将作为分析对象的程序输入到学习模型,从而计算与作为分析对象的程序对应的多个子程序的向量。
发明效果
能够高效地沿用、再合成源程序。
附图说明
图1是用于说明本实施例1的信息处理装置的学习阶段的处理的一例的图。
图2是用于说明本实施例1的信息处理装置的分析阶段的处理的一例的图。
图3是表示本实施例1的信息处理装置的结构的功能框图。
图4是表示目标程序文件的数据结构的一例的图。
图5是表示编码文件的数据结构的一例的图。
图6是表示静态辞典信息的数据结构的一例的图。
图7是表示动态辞典信息的数据结构的一例的图。
图8是表示向量表的数据结构的一例的图。
图9A是表示子程序向量表的数据结构的一例的图。
图9B是表示目标程序向量表的数据结构的一例的图。
图9C是表示替代子程序向量表的数据结构的一例的图。
图9D是表示通用例程向量表的数据结构的一例的图。
图10是表示转置索引的数据结构的一例的图。
图11A是表示子程序转置索引的数据结构的一例的图。
图11B是表示目标程序转置索引的数据结构的一例的图。
图11C是表示替代子程序转置索引的数据结构的一例的图。
图11D是表示通用例程转置索引的数据结构的一例的图。
图12是表示本实施例1的信息处理装置的处理顺序的流程图(1)。
图13是表示本实施例1的信息处理装置的处理顺序的流程图(2)。
图14A是用于说明构成目标程序的子程序、子例程等的层级、粒度的图。
图14B是用于说明构成目标程序的各子程序的向量的关系的图。
图15是用于说明本实施例2的信息处理装置的学习阶段的处理的一例的图。
图16是用于说明本实施例2的信息处理装置的分析阶段的处理的图。
图17是表示本实施例2的信息处理装置的结构的功能框图。
图18是表示本实施例2的信息处理装置的处理顺序的流程图。
图19是表示实现与实施例的信息处理装置同样的功能的计算机的硬件结构的一例的图。
具体实施方式
下面将参照附图详细描述本申请中公开的信息处理程序、信息处理方法和信息处理装置的实施例。另外,本发明并不限定于该实施例。
实施例1
对本实施例1的信息处理装置的处理的一例进行说明。本实施例1的信息处理装置通过事前处理,执行计算OSS的程序的向量的处理、分别计算构成目标程序(以后,将分析或开发的对象程序称为目标程序。)的各子程序(替代子程序)的向量的处理。另外,构成目标程序的各子程序的区域由标签信息等预先指定。
图1是用于说明本实施例1的信息处理装置的学习阶段的处理的一例的图。如图1所示,信息处理装置使用学习数据65执行学习模型70的学习。学习模型70对应于CNN(Convolutional Neural Network,卷积神经网络)或RNN(Recurrent Neural Network,循环神经网络)等。
学习数据65定义目标程序的向量与构成目标程序的各子程序的向量之间的关系。例如,目标程序的向量对应于输入数据,多个子程序的向量成为正确值。
信息处理装置执行基于误差逆传播的学习,使得向学习模型70输入目标程序的向量时的输出接近各子程序的向量。信息处理装置根据学习数据65中包含的目标程序的向量与多个子程序的向量之间的关系,反复执行上述处理,从而调整学习模型70的参数(执行机器学习)。
图2是用于说明本实施例1的信息处理装置的分析阶段的处理的一例的图。信息处理装置在分析阶段中使用在学习阶段中学习到的学习模型70来执行以下处理。
当受理到指定了目标程序的分析查询80时,信息处理装置将分析查询80的目标程序转换成向量Vob80。信息处理装置通过将向量Vob80输入到学习模型70,计算与各子程序对应的多个向量(Vsb80-1,Vsb80-2,Vsb80-3,…Vsb80-n)。
信息处理装置比较存储在替代子程序向量表T1-3中的对应于各替代子程序的多个向量(Vos1-1,Vos1-2,Vos1-3,…Vos1-n)和对应于各子程序的多个向量(Vsb80-1,Vsb80-2,Vsb80-3,…Vsb80-n)之间的相似度,分析相似的子程序和替代子程序。信息处理装置将相似的子程序的向量与替代子程序的向量相对应地登记到管理表85中。
如上所述,本实施例1的信息处理装置根据定义了目标程序的向量与各子程序的向量之间的关系的学习数据65,执行学习模型70的学习。信息处理装置通过向学习完毕的学习模型70输入分析查询的向量,计算与分析查询的目标程序对应的各子程序的向量。通过使用从学习模型70输出的各子程序的向量,能够容易地执行检测与子程序相似的可替代的OSS等替代子程序。
此外,专家可以预先创建替代程序,并且入门者可以将自身创建的目标程序输入到信息处理装置中,从而指定可以被包含在入门者创建的目标程序中的子程序置换的的替代程序。
接着,说明本实施例1的信息处理装置的结构的一例。图3是表示本实施例1的信息处理装置的结构的功能框图。如图3所示,信息处理装置100包括通信部110、输入部120、显示部130、存储部140和控制部150。
通信部110通过有线或无线与外部装置等连接,在与外部装置等之间进行信息的收发。例如,通信部110通过NIC(Network Interface Card,网卡)等来实现。通信部110也可以与未图示的网络连接。
输入部120是向信息处理装置100输入各种信息的输入装置。输入部120对应于键盘、鼠标、触摸面板等。
显示部130是显示从控制部150输出的信息的显示装置。显示部130对应于液晶显示器、有机EL(Electro Luminescence,电致发光)显示器、触摸面板等。
存储部140包括目标程序文件50和编码文件51。存储部140具有静态辞典信息D1、动态辞典信息D2。存储部140具有向量表T1、转置索引In1、学习数据65、学习模型70、分析查询80、管理表85。
目标程序文件50是包含OSS等各种目标程序的文件。图4是表示目标程序文件的数据结构的一例的图。如图4所示,目标程序文件50将识别信息与目标程序相对应。识别信息是唯一地识别目标程序的信息。目标程序是以编程语言输入的表示计算机程序的字符串数据。各目标程序对应于OSS(Open Source Software)等的源代码。目标程序包括保留字、变量等。
另外,在目标程序文件50中登记的目标程序中,可区别地设定有构成目标程序的多个子程序的区域、替代子程序的区域、通用例程的区域。例如,子程序的区域、替代子程序的区域、通用例程的区域被附加标签。通用例程表示子程序和替代子程序之间共用的代码(字符串数据)。
在本实施例1中,区别记载了子程序和替代程序,但也可以不区别子程序和替代程序。
编码文件51是保存以保留字、变量等为单位进行编码的目标程序的文件。图5是表示编码文件的数据结构的一例的图。如图5所示,编码文件51将识别信息与压缩码序列相对应。识别信息是唯一地识别作为编码对象的目标程序的信息。压缩码序列表示以保留字、变量等为单位进行编码的目标程序。
静态辞典信息D1是定义与保留字对应的静态码的辞典信息。图6是表示静态辞典信息的数据结构的一例的图。如图6所示,该静态辞典信息D1将类别、保留字、静态码、向量对应起来。类别表示保留字的类别。例如,保留字的类别中包含控制语句、运算符、声明语句等。保留字表示与保留字对应的字符串。静态码是与该保留字对应的静态码。向量是分配给静态码的向量。静态辞典信息D1中包含的各静态码事先进行庞加莱嵌入,并被分配向量。
在静态辞典信息D1中,将声明语句与属性相对应。在变量之前的位置描述声明,并用于确定该变量的属性。
庞加莱嵌入例如使用非专利文献[Valentin Khrulkov1 et al.[HyperbolicImage Embeddings]Cornell University,2019April 3]等中记载的技术即可。在庞加莱嵌入中,根据嵌入到庞加莱空间中的位置来分配向量,并且具有越是相似的信息越嵌入到近的位置的特征。信息处理装置100将静态码预先嵌入庞加莱空间中,并计算针对静态码的向量。
动态辞典信息D2是保存未在静态辞典信息D1中定义的变量的动态码的辞典信息。图7是表示动态辞典信息的数据结构的一例的图。如图7所示,动态辞典信息143将动态码、变量、属性和向量对应起来。动态码是在动态编码时动态地分配给变量的码。预先确保多个唯一的动态码,每当从源代码检测出变量(未登记在动态辞典信息D2中的变量)时,从未分配的动态码中将任意一个动态码分配给变量。变量是从源代码检测的变量。属性表示附加到动态码的属性。
图7的向量是分配给动态码的向量。信息处理装置100基于附加到动态码的属性将各个动态码嵌入庞加莱空间中。信息处理装置将被赋予了相同属性的各动态码嵌入到庞加莱空间上的接近位置处,并对动态码赋予与位置对应的向量。由此,能够实现变量的向量的精度的提高。
向量表T1是保存子程序、目标程序、替代子程序、通用例程的各向量的表。图8是表示向量表的数据结构的一例的图。如图8所示,该向量表T1具有子程序向量表T1-1、目标程序向量表T1-2、替代子程序向量表T1-3、通用例程向量表T1-4。
子程序向量表T1-1是保存子程序的向量的表。图9A是表示子程序向量表的数据结构的一例的图。如图9A所示,子程序向量表T1-1将识别信息与向量相对应。识别信息是唯一地识别子程序的信息。向量是子程序的向量。子程序的向量成为对分配给构成子程序的保留字、变量等(保留字的静态码、变量的动态码)的向量进行累计的值。
目标程序向量表T1-2是保存目标程序的向量的表。图9B示出了目标程序向量表的数据结构的一例。如图9B所示,目标程序向量表T1-2将识别信息与向量相对应。识别信息是唯一地识别目标程序的信息。向量是目标程序的向量。目标程序的向量是构成目标程序的子程序(或替代子程序)的向量的累计的值。
替代子程序向量表T1-3是保存替代子程序的向量的表。图9C是表示替代子程序向量表的数据结构的一例的图。如图9C所示,替代子程序向量表T1-3将识别信息与向量相对应。识别信息是唯一地识别替代子程序的信息。向量是替代子程序的向量。替代子程序的向量是分配给构成替代子程序的保留字、变量等(保留字的静态码、变量的动态码)的向量的累计的值。
通用例程向量表T1-4是保存通用例程的向量的表。图9D是表示通用例程向量表的数据结构的一例的图。如图9D所示,通用例程向量表T1-4将识别信息与向量建立对应。识别信息是唯一地识别通用例程的信息。向量是通用例程的向量。通用例程的向量是通过对分配给构成通用例程的保留字、变量等(保留字的静态码、变量的动态码)的向量进行累计的值。
转置索引In1是保存子程序、目标程序、替代子程序、通用例程的各转置索引的表。图10是表示转置索引的数据结构的一例的图。如图10所示,该转置索引In1具有子程序转置索引In1-1、目标程序转置索引In1-2、替代子程序转置索引In1-3、通用例程转置索引In1-4。
子程序转置索引In1-1将构成子程序的代码序列的位置(编码文件51的位置)和子程序的向量对应起来。图11A是表示子程序转置索引的数据结构的一例的图。如图11A所示,子程序转置索引In1-1的横轴是与偏移对应的轴。子程序转置索引In1-1的纵轴是与子程序的向量对应的轴。子程序转置索引In1-1由[0]或[1]的位图表示,在初始状态下全部的位图被设定为[0]。
例如,设编码文件51的起始码的偏移为[0]。在从编码文件51的开头起第2个位置上包含向量[Vsb1-1]的子程序的代码序列的情况下,子程序转置索引In1-1的偏移[1]的列和向量[Vsb1-1]的行交叉的位置的位成为[1]。
目标程序转置索引In1-2将构成目标程序的代码序列的位置(编码文件51的位置)与目标程序的向量相对应。图11B是表示目标程序转置索引的数据结构的一例的图。如图11B所示,目标程序转置索引In1-2的横轴是与偏移对应的轴。目标程序转置索引In1-2的纵轴是与子程序的向量对应的轴。目标程序转置索引In1-2由[0]或[1]的位图表示,在初始状态下全部的位图被设定为[0]。
例如,设编码文件51的起始码的偏移为[0]。在编码文件51的从开头起第9个位置中包含向量[Vob1]的目标程序的代码序列的情况下,目标程序转置索引In1-2的偏移[8]的列和向量[Vob1]的行交叉的位置的位成为[1]。
替代子程序转置索引In1-3将构成替代子程序的代码序列的位置(编码文件51的位置)与替代子程序的向量相对应。图11C是表示替代子程序转置索引的数据结构的一例的图。如图11C所示,替代子程序转置索引In1-3的横轴是与偏移对应的轴。替代子程序转置索引In1-3的纵轴是与替代子程序的向量对应的轴。替代子程序转置索引In1-3由[0]或[1]的位图表示,在初始状态下全部的位图被设定为[0]。
例如,设编码文件51的起始码的偏移为[0]。当向量[Vos2-1]的替代子程序的代码序列被包括在从编码文件51的开头起的第9位置中时,在替代子程序转置索引In1-3的偏移[1]的列与向量[Vos2-1]的行交叉的位置处的位是[1]。
通用例程转置索引In1-4将构成通用例程的代码序列的位置(编码文件51的位置)与通用例程的向量对应起来。图11D是表示通用例程转置索引的数据结构的一例的图。如图11D所示,通用例程转置索引In1-4的横轴是与偏移对应的轴。通用例程转置索引In1-4的纵轴是与通用例程的向量对应的轴。通用例程转置索引In1-4由[0]或[1]的位图表示,在初始状态下全部的位图被设定为[0]。
例如,设编码文件51的起始码的偏移为[0]。在从编码文件51的开头起第8个位置包含向量[Vco1]的通用例程的代码序列的情况下,通用例程转置索引In1-4的偏移[1]的列与向量[Vco1]的行交叉的位置的位成为[1]。
回到图3的说明。学习数据65定义目标程序的向量与构成目标程序的多个子程序的向量之间的关系。学习数据65的数据结构与图1中说明的学习数据65的数据结构对应。
学习模型70是与CNN、RNN等对应的模型,设定参数。
在分析查询80中包含成为替代子程序的分析对象的目标程序的信息。
管理表85是将相似的子程序的向量和替代子程序的向量对应起来进行保存的表。管理表85的数据结构与图2中说明的管理表85的数据结构对应。
控制部150包括预处理部151、学习部152、计算部153和分析部154。控制部150例如通过CPU(Central Processing Unit,中央处理单元)或MPU(Micro Processing Unit,微处理单元)来实现。另外,控制部150例如也可以通过ASIC(Application SpecificIntegrated Circuit,专用集成电路)、FPGA(Field Programmable Gate Array,可编程门阵列)等集成电路来执行。
预处理部151通过执行下述各处理,计算子程序的向量、目标程序的向量等。
对预处理部151生成编码文件51的处理的一例进行说明。预处理部151从目标程序文件50获取目标程序,并执行词素分析,以将目标程序分割为多个保留字和变量。预处理部151对存储在目标程序文件50中的各个目标程序重复执行上述处理。
在分割目标程序之后,预处理部151将静态码和动态码分配给包括在分割结果中的保留字和变量。预处理部151对目标程序的保留字和静态辞典信息D1进行比较,指定与保留字对应的静态码,对保留字分配静态码。
预处理部151对目标程序的变量与动态辞典信息D2进行比较,判定在动态辞典信息D2中是否已经登记有相应的变量。在动态辞典信息D2中已经登记有相应的变量的情况下,预处理部151将所登记的动态码分配给变量。
在动态辞典信息D2中没有登记相应的变量的情况下,预处理部151将未分配的动态码分配给相应的变量。另外,在变量前存在声明语句的情况下,预处理部151根据静态辞典信息D1指定与声明语句对应的属性。例如,当变量前的声明语句的属性是[属性(1)]时,变量的属性是[属性(1)]。预处理部151将变量、分配给该变量的动态码以及所指定的属性相对应地登记在动态辞典信息D2中。
预处理部151通过对目标程序的分割结果中包括的保留字和变量重复执行上述处理来生成压缩码。预处理部151将目标程序的识别信息与压缩码序列相对应地登记在编码文件51中。
目标程序的压缩码序列包括子程序(或替代子程序)的压缩码序列和通用例程的压缩码序列。当对目标程序进行编码时(当分配静态码或动态码时),预处理部151可以基于在目标程序文件50中设定的标签信息来区分子程序(或替代子程序)的压缩码序列和通用例程的压缩码序列。
预处理部151通过事先对静态辞典信息D1的各静态码执行庞加莱嵌入,来计算各静态码的向量。
预处理部151对登记在动态辞典信息D2中的动态码执行庞加莱嵌入,计算各动态码的向量。在将动态码嵌入到庞加莱空间中时,预处理部151指定附加到动态码的属性,调整嵌入位置,使得被赋予了相同属性的动态码彼此被嵌入到庞加莱空间上的接近位置,并且将与该位置相对应的向量指定为动态码的向量。
预处理部151对子程序中包含的压缩码序列与静态辞典信息D1以及动态辞典信息D2进行比较,指定子程序中包含的静态码的向量以及动态码的向量。预处理部151通过累积子程序中包含的各向量,计算子程序的向量。
预处理部151将子程序的识别信息与子程序的向量相对应地登记到子程序向量表T1-1中。预处理部151可以使用在标签信息中设定的信息作为子程序的识别信息,也可以分配唯一的识别信息。前处理单元151基于编码文件51的子程序的偏移和子程序的向量,在子程序转置索引In1-1的相应位置登记[1]。
预处理部151将在替代子程序中包括的压缩码序列与静态辞典信息D1和动态辞典信息D2进行比较,指定在替代子程序中包括的静态码的向量和动态码的向量。预处理部151通过对在替代子程序中包括的各向量累计来计算替代子程序的向量。
预处理部151将替代子程序识别信息与替代子程序向量相对应,并将它们登记在替代子程序向量表T1-3中。预处理部151可以使用在标签信息中设定的信息作为替代子程序的识别信息,也可以分配唯一的识别信息。预处理部151基于编码文件51的替代子程序的偏移和替代子程序的向量,将[1]登记到替代子程序转置索引In1-3的相应位置。
预处理部151指定目标程序中包括的子程序(或替代子程序)的向量,并且通过对目标程序中包括的各个向量进行累计来计算目标程序的向量。
预处理部151在目标程序向量表T1-2中相对应地登记目标程序的识别信息和目标程序的向量。预处理部151基于编码文件51中的目标程序的偏移和目标程序的向量,将[1]登记在目标程序转置索引In1-2的相应位置处。
预处理部151对通用例程中包含的压缩码序列与静态辞典信息D1以及动态辞典信息D2进行比较,指定子程序中包含的静态码的向量以及动态码的向量。预处理部151通过对包括在通用例程中的向量进行累计来计算通用例程的向量。
预处理部151将通用例程的识别信息与通用例程的向量相对应地登记于通用例程向量表T1-4。预处理部151可以使用在标签信息中设定的信息作为通用例程的识别信息,也可以分配唯一的识别信息。预处理部151根据编码文件51的通用例程的偏移和通用例程的向量,在通用例程的转置索引In1-4的相应位置处登记[1]。
预处理部151通过对各目标程序、目标程序中包含的子程序(或者替代子程序),通用例程反复执行上述处理,生成向量表T1、转置索引In1。
另外,预处理部151还在学习数据65中登记目标程序的向量与目标程序中包括的多个子程序(或替代子程序)的程序之间的关系。
学习部152使用学习数据65执行学习模型70的学习。学习部152的处理对应于图1中说明的处理。学习部152从学习数据65获取目标程序的向量和与该目标程序的向量对应的各个子程序的向量的组。学习部152通过执行基于误差逆传播的学习来调整学习模型70的参数,使得将目标程序的向量输入到学习模型70时的学习模型70的输出的值接近各子程序的向量的值。
学习部152通过对学习数据65的目标程序的向量和各子程序(替代子程序)的向量的组反复执行上述处理,来执行学习模型70的学习。
当受理到分析查询80的指定时,计算部153使用学习的学习模型70来计算包含在分析查询80的目标程序中的各个子程序的向量。计算部153的处理对应于图2中说明的处理。计算部153可以从输入部120或经由通信部110从外部装置受理分析查询80。
计算部153对包括在分析查询80中的目标程序执行词素分析,从而将目标程序分割为多个保留字和变量。计算部153比较分割结果的保留字和静态词典信息D1,指定分配给保留字的静态码的向量。计算部153比较分割结果的变量和动态辞典信息D2,指定分配给变量的动态码的向量。计算部153通过对指定的各个向量进行累计来计算分析查询80中包括的目标程序的向量V80。
计算部153通过将向量V80输入到学习模型70,来计算与各子程序对应的多个向量。计算部153将计算出的各子程序的向量输出到分析部154。
在以下的说明中,将计算部153计算出的各子程序的向量分别表述为[计算向量]。
分析部154基于计算向量搜索具有与计算向量相似的向量的替代子程序的信息。分析部154根据搜索结果,将构成目标程序的各子程序的向量和相似的各替代子程序的向量(以下的相似向量)相对应地登记到管理表85中。
例如,分析部154分别对计算向量与替代子程序向量表T1-3中包含的各向量的距离进行计算,指定与计算向量之间的距离小于阈值的向量。作为替代子程序向量表T1-3中包含的向量,与计算向量之间的距离小于阈值的向量为[相似向量]。分析部154也可以将管理表85的信息输出到显示部130来进行显示。
另外,分析部154也可以将管理表85中包含的子程序和替代子程序输出到显示部130来进行显示。例如,分析部154执行以下处理以获得子程序和替代子程序。
分析部154基于子程序的向量和子程序转置索引In1-1,从编码文件51取得子程序的压缩码序列。分析部154根据静态辞典信息D1、动态辞典信息D2、对子程序的压缩码序列进行解码。
分析部154基于替代子程序的向量和替代子程序转置索引In1-3从编码文件51获取替代子程序的压缩码序列。分析部154根据静态辞典信息D1、动态辞典信息D2,对子程序的压缩码序列进行解码。
接着,说明本实施例1的信息处理装置100的处理步骤的一例。图12是表示本实施例1的信息处理装置的处理步骤的流程图(1)。如图12所示,信息处理装置100的预处理部151从目标程序文件50获取目标程序(步骤S101)。
预处理部151对目标程序执行词素分析,分解为多个保留字、变量(步骤S102)。预处理部151根据静态辞典信息D1,对目标程序的保留字分配静态码(步骤S103)。
预处理部151对变量分配动态码,将变量、动态码、属性的关系登记在动态辞典信息D2中(步骤S104)。预处理部151基于分配给动态码的属性来执行庞加莱嵌入(步骤S105)。
预处理部151指定目标程序的压缩码序列的静态码向量和动态码向量(步骤S106)。预处理部151通过累积压缩码序列的向量来计算子程序、替代子程序、通用例程和目标程序的向量(步骤S107)。
预处理部151生成向量表T1以及转置索引In1(步骤S108)。预处理部151生成学习数据65(步骤S109)。信息处理装置100的学习部152根据学习数据65,执行学习模型70的学习(步骤S110)。
图13是表示本实施例1的信息处理装置的处理步骤的流程图(2)。信息处理装置100的计算部153受理分析查询80(步骤S201)。计算部153对包括在分析查询80中的目标程序进行词素分析,并将目标程序分割为保留字和变量(步骤S202)。
计算部153根据静态辞典信息D1和动态辞典信息D2,计算目标程序的向量(步骤S203)。计算部153通过将目标程序的向量输入到学习完毕的学习模型70,来计算各子程序的向量(步骤S204)。
信息处理装置100的分析部154指定与各个子程序的向量相似的替代子程序的向量(步骤S205)。分析部154通过将相似的子程序的向量与替代子程序的向量对应起来,生成管理表85(步骤S206)。
接着,说明本实施例1的信息处理装置100的效果。信息处理装置100基于定义目标程序的向量和各个子程序的向量之间的关系的学习数据65来执行学习模型70的学习。信息处理装置100通过将分析查询的向量输入到学习的学习模型70来计算与分析查询的目标程序对应的各个子程序的向量。通过使用从学习模型70输出的各子程序的向量,能够容易地执行检测与子程序相似的可替代的替代子程序。
图14A是用于说明构成目标程序的子程序、子例程等的层级、粒度的图。目标程序(高次结构)是多个处理的连结而成的,由定义了各处理的功能的多个子程序(三次结构)构成。同样,子程序由多个子程序(二次结构)构成,子程序由多个行(一次结构)构成。进而,行由控制语句(命令)、运算符(+,-等)、声明语句(属性)、变量等构成,具有层级的结构和各自的粒度。
图14B是用于说明目标程序中包含的各子程序的向量的关系的图。在图14中,目标程序具有子程序A,B,C。子程序A具有代码(A1)~代码(An),将各代码的行向量设为Va1~Van。在实施例1中省略了说明,但行向量是对子程序的行中包含的压缩码序列的向量进行累计而得到的向量。子程序B具有代码(B1)~代码(Bn),将各代码的行向量设为Vb1~Vbn。子程序C具有代码(C1)~代码(Cn),将各代码的行向量设为Vc1~Vcn。
在本实施例1中,按照构成子程序的多个行的出现顺序,(分散)向量的转变是缓慢的,但假定在各子程序的边界相邻的末尾和开头的行中存在向量的不规则的背离。例如,行向量Van的值与行向量Vb1的值存在背离,行向量Vbn的值与行向量Vc1的值存在背离。通过着眼于该向量的转变,能够分割构成目标程序的多个子程序。
实施例2
图15是用于说明本实施例2的信息处理装置的学习阶段的处理的一例的图。如图15所示,信息处理装置使用学习数据90执行学习模型91的学习。学习模型91对应于CNN、RNN等。
学习数据90定义目标程序中包含的子程序的向量与通用例程的向量之间的关系。例如,子程序的向量对应于输入数据,多个通用例程的向量为正确值。
信息处理装置以将子程序的向量输入到学习模型91时的输出接近各通用例程的向量的方式执行基于误差逆传播的学习。信息处理装置基于学习数据90中包含的子程序的向量与通用例程的向量之间的关系,反复执行上述处理,从而调整学习模型91的参数(执行机器学习)。
图16是用于说明本实施例2的信息处理装置的分析阶段的处理的图。实施例2的信息处理装置也可以与实施例1的信息处理装置100同样地对学习模型70进行学习。另外,信息处理装置如图15中说明的那样,学习与学习模型70不同的学习模型91。实施例1的学习模型70在输入了分析查询(目标程序)80的向量的情况下,输出各子程序的向量。学习模型91在输入了分析查询(子程序)92的向量的情况下,输出通用例程的向量。通用例程是在子程序和替代子程序之间共用的代码(字符串数据)。
当受理到指定子程序的分析查询92时,信息处理装置使用静态辞典信息D1和动态辞典信息D2将分析查询92的子程序转换成向量Vsb92-1。信息处理装置通过将子程序的向量Vsb92-1输入到学习模型91,来计算与通用例程对应的向量Vco92-1。
这里,信息处理装置将子程序向量Vsb92-1与包括在替代子程序向量表T1-3中的多个替代子程序向量进行比较。替代子程序向量表T1-3对应于实施例1中说明的替代子程序向量表T1-3。
信息处理装置关于子程序向量Vsb92-1识别相似的替代子程序向量。例如,与子程序向量Vsb92-1相似的替代子程序向量被称为Vos92-1。于是,可知在向量Vsb92-1的子程序和向量Vos92-1的替代子程序中共用的通用例程的向量成为从学习模型91输出的向量Vco92-1。另外,从替代子程序的向量Vos92-1中减去公共结构的向量Vco92-1的结果是不同例程的向量(变更例程的向量)。
信息处理装置将通用例程的向量与变更例程的向量的关系登记于管理表93。信息处理装置通过对各子程序的向量反复执行上述处理,生成管理表93。
如上所述,根据实施例2的信息处理装置将分析查询92的向量输入到学习的学习模型91,并计算与分析查询的子程序相对应的每个通用例程的向量。此外,通过从与子程序相似的替代子程序的向量中减去通用例程的向量,来计算在相似子程序和替代子程序之间不同的变更例程的向量。由此,能够计算子程序和与该子程序相似的替代子程序的通用例程以及变更例程。
接着,说明本实施例2的信息处理装置的结构的一例。图17是表示本实施例2的信息处理装置的结构的功能框图。如图17所示,信息处理装置200包括通信部210、输入部220、显示部230、存储部240和控制部250。
关于通信部210、输入部220、显示部230的说明与在实施例1中说明的关于通信部110、输入部120、显示部130的说明相同。
存储部240包括目标程序文件50和编码文件51。存储部140具有静态辞典信息D1、动态辞典信息D2。存储部140包括向量表T1、转置索引In1、学习数据90、学习模型91、分析查询92和管理表93。存储部240例如通过RAM、闪存等半导体存储元件,或者硬盘、光盘等存储装置来实现。
有关目标程序文件50、编码文件51的说明与实施例1中说明的内容相同。关于静态辞典信息D1、动态辞典信息D2的说明与在实施例1中说明的内容相同。关于向量表T1、转置索引In1的说明与在实施例1中说明的内容相同。关于学习数据90的说明与图15中说明的内容相同。对学习模型91和分析查询92的说明与图16中描述的相同。
管理表93如在图16中说明的那样,将通用例程的向量与变更例程的向量相对应地保存。通用例程的向量和变更例程的向量相加得到的向量成为替代子程序的向量。
回到图17的说明。控制部250包括预处理部251、学习部252、计算部253和分析部254。控制部250例如通过CPU或MPU来实现。另外,控制部250例如也可以通过ASIC、FPGA等集成电路来执行。
关于预处理部251的说明与实施例1中说明的关于预处理部151的处理的说明相同。通过预处理部251生成编码文件51、动态辞典信息D2、向量表T1、转置索引In1。预处理部251可以从外部装置获取学习数据90,也可以由预处理部251生成。
例如,预处理部251从目标程序文件50获取目标程序,并且基于目标程序中设置的标签信息来指定目标程序中包括的子程序和子程序中包括的通用例程。预处理部251与实施例1的预处理部151同样地,计算子程序的向量和通用例程的向量,将子程序的向量和通用例程的向量相对应地登记在管理表93中。
学习部252使用学习数据90执行学习模型91的学习。学习部252的处理对应于图16中说明的处理。学习部252从学习数据90获取子程序的向量和对应于子程序的向量的通用例程的向量的组。学习部252通过执行基于误差逆传播的学习来调整学习模型91的参数,使得将子程序的向量输入到学习模型91时的学习模型91的输出的值接近通用例程的向量的值。
当受理到分析查询92的指定时,计算部253通过执行词素分析将分析查询92中包括的子程序92分割成多个保留字和变量。计算部253根据分割结果、静态辞典D1、动态辞典D2,指定与各保留字、变量对应的向量,对所指定的向量进行累计,由此计算分析查询92的向量。此外,计算部253也可以从子程序向量表T1-1的子程序中指定与分析查询92中包含的子程序对应的子程序,并将所指定的子程序的向量用作分析查询92的向量。
计算部253通过将分析查询92的向量输入到学习模型91来计算通用例程的向量。计算部253将所计算的通用例程的向量输出到分析部254。在以下的说明中,将计算部253计算出的通用例程的向量表述为[通用例程向量]。
分析部254基于分析查询92的子程序的向量、通用例程向量和替代向量表T1-3生成管理表93。以下,对分析部254的处理的一例进行说明。
分析部254分别计算子程序的向量与包含在替代子向量表T1-3中的各个向量之间的距离,指定与子程序的向量之间的距离小于阈值的向量。作为包含在替代子程序向量表T1-3中的向量,将与子程序的向量之间的距离小于阈值的向量表述为[相似向量]。
分析部254通过从相似向量中减去通用例程向量来计算变更例程的向量,确定通用例程向量与变更例程的向量的对应关系。分析部254将通用例程向量和变更例程的向量登记于管理表93。分析部245通过反复执行上述处理,生成管理表93。分析部245可以将管理表93输出到显示部230进行显示,也可以发送到与网络连接的外部装置。
接着,说明本实施例2的信息处理装置200的处理步骤的一例。图18是表示本实施例2的信息处理装置的处理步骤的流程图。信息处理装置200的计算部253受理分析查询92(步骤S301)。
计算部253将分析查询92的子程序转换为向量(步骤S302)。计算部253通过将子程序的向量输入到学习的学习模型91来计算通用例程的向量(步骤S303)。
信息处理装置100的分析部254基于子程序的向量与替代子程序向量表T1-3的各向量之间的距离,指定相似向量(步骤S304)。
分析部254通过从相似向量中减去通用例程的向量,来计算变更例程的向量(步骤S305)。分析部254将通用例程的向量与变更例程的向量的关系登记到管理表93中(步骤S306)。分析部254输出管理表93的信息(步骤S307)。
接着,说明本实施例2的信息处理装置200的效果。信息处理装置200将分析查询92的向量输入到学习的学习模型91,并且计算与分析查询的子程序相对应的各个通用例程的向量。此外,信息处理装置200通过从与子程序相似的替代子程序的向量中减去通用例程的向量来计算在相似子程序和替代子程序之间不同的变更例程的向量。由此,能够计算子程序和与该子程序相似的替代子程序的通用例程以及变更例程。
接着,说明实现与上述实施例所示的信息处理装置200(100)同样的功能的计算机的硬件结构的一例。图19是表示实现与实施例的信息处理装置同样的功能的计算机的硬件结构的一例的图。
如图19所示,计算机300具有执行各种运算处理的CPU301、受理来自用户的数据输入的输入装置302、显示器303。计算机300还包括经由有线或无线网络与外部装置等交换数据的通信装置304以及接口装置305。另外,计算机300具有暂时存储各种信息的RAM306和硬盘装置307。而且,各装置301-307与总线308连接。
硬盘装置307具有预处理程序307a、学习程序307b、计算程序307c、分析程序307d。另外,CPU301读出各程序307a~307d并加载到RAM306中。
预处理程序307a用作预处理进程306a。学习程序307b用作学习进程306b。计算程序307c用作计算进程306c。分析程序307d用作分析进程306d。
预处理进程306a的处理对应于预处理部151、251的处理。学习进程306b的处理对应于学习部152、252的处理。计算进程306c的处理对应于计算部153、253的处理。分析进程306d的处理对应于分析部154、254的处理。
另外,对于各程序307a~307d,不一定从最初就存储在硬盘装置307中。例如,在插入计算机300的软盘(FD)、CD-ROM、DVD、光磁盘、IC卡等的[可携带的物理介质]中存储各程序。然后,计算机300也可以读出并执行各程序307a~307d。
符号说明
100,200信息处理装置
110,210通信部
120,220输入部
130,230显示部
140,240存储部
150,250控制部
151,251预处理部
152,252学习部
153,253计算部
154,254分析部

Claims (15)

1.一种信息处理程序,其特征在于,使计算机执行如下处理:
根据定义了与程序对应的向量和与构成上述程序的多个子程序分别对应的向量之间的关系的学习数据,执行学习模型的学习,
在受理到作为分析对象的程序的情况下,将上述作为分析对象的程序输入到上述学习模型中,计算与上述作为分析对象的程序对应的多个子程序的向量。
2.根据权利要求1所述的信息处理程序,其特征在于,该信息处理程序还使计算机执行如下处理:
根据通过上述计算的处理计算出的多个子程序的向量与成为替代候选的多个替代子程序的向量的相似度,对可与构成上述作为分析对象的程序的子程序相替代的替代子程序进行分析。
3.根据权利要求1所述的信息处理程序,其特征在于,
上述分析对象的程序由组合了多个保留字、变量的信息来表示,该信息处理程序还使计算机执行如下处理:通过累计分配给上述多个保留字、变量的向量来计算上述作为分析对象的程序的向量。
4.一种信息处理程序,其特征在于,其执行如下处理:
根据定义了构成程序的多个子程序的向量与通用例程的向量之间的关系的学习数据,执行学习模型的学习,其中,该通用例程表示子程序的例程和替代子程序的例程中通用的例程,
在受理到分析对象的子程序的情况下,通过将上述分析对象的子程序的向量输入到上述学习模型中,计算与上述分析对象的子程序对应的通用例程的向量。
5.根据权利要求4所述的信息处理程序,其特征在于,该信息处理程序还使计算机执行如下处理:
基于上述子程序的向量与成为替代候选的多个替代子程序的向量之间的相似度,搜索与上述子程序的向量相似的替代子程序的向量,基于搜索到的替代子程序的向量、上述计算出的通用例程的向量,计算变更例程的向量,该变更例程表示上述子程序的例程与搜索到的替代子程序的例程之间不同的部分的例程。
6.一种信息处理方法,由计算机执行,该信息处理方法的特征在于,执行如下处理:
根据定义了与程序对应的向量和与构成上述程序的多个子程序分别对应的向量之间的关系的学习数据,执行学习模型的学习,
在受理到作为分析对象的程序的情况下,将上述作为分析对象的程序输入到上述学习模型中,计算与上述作为分析对象的程序对应的多个子程序的向量。
7.根据权利要求6所述的信息处理方法,其特征在于,该信息处理方法还使计算机执行如下处理:
根据通过上述计算的处理计算出的多个子程序的向量与成为替代候选的多个替代子程序的向量的相似度,对可与构成上述作为分析对象的程序的子程序相替代的替代子程序进行分析。
8.根据权利要求6所述的信息处理方法,其特征在于,
上述作为分析对象的程序由组合了多个保留字、变量的信息来表示,该信息处理方法还使计算机执行如下处理:通过累计分配给上述多个保留字、变量的向量来计算上述作为分析对象的程序的向量。
9.一种信息处理方法,由计算机执行,该信息处理方法的特征在于,执行如下处理:
根据定义了构成程序的多个子程序的向量与通用例程的向量之间的关系的学习数据,执行学习模型的学习,其中,该通用例程表示子程序的例程和替代子程序的例程中通用的例程,
在受理到分析对象的子程序的情况下,通过将上述分析对象的子程序的向量输入到上述学习模型中,计算与上述分析对象的子程序对应的通用例程的向量。
10.根据权利要求9所述的信息处理方法,其特征在于,该信息处理方法还使计算机执行如下处理:
基于上述子程序的向量与成为替代候选的多个替代子程序的向量之间的相似度,搜索与上述子程序的向量相似的替代子程序的向量,基于搜索到的替代子程序的向量、上述计算出的通用例程的向量,计算变更例程的向量,该变更例程表示上述子程序的例程与搜索到的替代子程序的例程之间不同的部分的例程。
11.一种信息处理装置,其特征在于,具有:
学习部,其根据定义了与程序对应的向量和与构成上述程序的多个子程序分别对应的向量之间的关系的学习数据,执行学习模型的学习;及
计算部,在受理到作为分析对象的程序的情况下,该计算部将上述作为分析对象的程序输入到上述学习模型中,计算与上述作为分析对象的程序对应的多个子程序的向量。
12.根据权利要求11所述的信息处理装置,其特征在于,该信息处理装置还具有分析部,该分析部根据通过上述计算部计算出的多个子程序的向量与成为替代候选的多个替代子程序的向量的相似度,对可与构成上述作为分析对象的程序的子程序相替代的替代子程序进行分析。
13.根据权利要求11所述的信息处理装置,其特征在于,上述作为分析对象的程序由组合了多个保留字、变量的信息来表示,上述计算部还执行如下的处理:通过累计分配给上述多个保留字、变量的向量来计算上述作为分析对象的程序的向量。
14.一种信息处理装置,其特征在于,具有:
学习部,其根据定义了构成程序的多个子程序的向量与通用例程的向量之间的关系的学习数据,执行学习模型的学习,其中,该通用例程表示子程序的例程和替代子程序的例程中通用的例程;及
计算部,在受理到分析对象的子程序的情况下,该计算部通过将上述分析对象的子程序的向量输入到上述学习模型中,计算与上述分析对象的子程序对应的通用例程的向量。
15.根据权利要求14所述的信息处理装置,其特征在于,该信息处理装置还具有分析部,该分析部基于上述子程序的向量与成为替代候选的多个替代子程序的向量之间的相似度,搜索与上述子程序的向量相似的替代子程序的向量,基于搜索到的替代子程序的向量、上述计算出的通用例程的向量,计算变更例程的向量,该变更例程表示上述子程序的例程与搜索到的替代子程序的例程之间不同的部分的代码。
CN202180082034.8A 2021-01-08 2021-01-08 信息处理程序、信息处理方法和信息处理装置 Pending CN116648709A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/000449 WO2022149252A1 (ja) 2021-01-08 2021-01-08 情報処理プログラム、情報処理方法および情報処理装置

Publications (1)

Publication Number Publication Date
CN116648709A true CN116648709A (zh) 2023-08-25

Family

ID=82357833

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180082034.8A Pending CN116648709A (zh) 2021-01-08 2021-01-08 信息处理程序、信息处理方法和信息处理装置

Country Status (6)

Country Link
US (1) US20230297891A1 (zh)
EP (1) EP4276606A1 (zh)
JP (1) JPWO2022149252A1 (zh)
CN (1) CN116648709A (zh)
AU (1) AU2021417923A1 (zh)
WO (1) WO2022149252A1 (zh)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6185379B2 (ja) 2013-12-02 2017-08-23 株式会社Nttドコモ レコメンド装置およびレコメンド方法
JP7024364B2 (ja) 2017-12-07 2022-02-24 富士通株式会社 特定プログラム、特定方法および情報処理装置
JP7297458B2 (ja) 2019-02-14 2023-06-26 株式会社日立製作所 対話コンテンツ作成支援方法
US11003444B2 (en) * 2019-06-28 2021-05-11 Intel Corporation Methods and apparatus for recommending computer program updates utilizing a trained model

Also Published As

Publication number Publication date
WO2022149252A1 (ja) 2022-07-14
EP4276606A1 (en) 2023-11-15
JPWO2022149252A1 (zh) 2022-07-14
US20230297891A1 (en) 2023-09-21
AU2021417923A1 (en) 2023-06-22

Similar Documents

Publication Publication Date Title
Warnow Computational phylogenetics: an introduction to designing methods for phylogeny estimation
JP7169389B2 (ja) 文書タイトルツリーの構築方法、装置、電子設備、記憶媒体、及びプログラム
CN113591457B (zh) 文本纠错方法、装置、设备及存储介质
D’Ulizia et al. A survey of grammatical inference methods for natural language learning
US20230244704A1 (en) Sequenced data processing method and device, and text processing method and device
CN112860919B (zh) 基于生成模型的数据标注方法、装置、设备及存储介质
CN107608951B (zh) 报表生成方法和系统
CN111326251B (zh) 一种问诊问题输出方法、装置以及电子设备
CN109614620B (zh) 一种基于HowNet的图模型词义消歧方法和系统
CN111656453A (zh) 用于信息提取的层次实体识别和语义建模框架
JP2018142188A (ja) 解析プログラム、解析方法および解析装置
Chen et al. Generative API usage code recommendation with parameter concretization
CN116719520A (zh) 代码生成方法及装置
CN116861269A (zh) 工程领域的多源异构数据融合及分析方法
CN113779185A (zh) 一种自然语言模型的生成方法和计算机设备
KR20230054167A (ko) 기계학습모델의 생성 방법 및 그 장치
CN109615072A (zh) 一种对抗神经网络的集成方法及计算机设备
JP2022141191A (ja) 機械学習プログラム、機械学習方法および翻訳装置
CN116648709A (zh) 信息处理程序、信息处理方法和信息处理装置
US20230244987A1 (en) Accelerated data labeling with automated data profiling for training machine learning predictive models
CN113486169B (zh) 基于bert模型的同义语句生成方法、装置、设备及存储介质
CN115204155A (zh) 一种配置异常检测方法、装置、计算机设备和存储介质
CN114897183A (zh) 问题数据处理方法、深度学习模型的训练方法和装置
US11416246B2 (en) Information processing apparatus, analysis system, analysis method, and non-transitory computer readable medium storing analysis program
CN113191527A (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