CN108304166A - 一种人工智能程序员根据公式描述书写源程序的方法 - Google Patents
一种人工智能程序员根据公式描述书写源程序的方法 Download PDFInfo
- Publication number
- CN108304166A CN108304166A CN201810049755.9A CN201810049755A CN108304166A CN 108304166 A CN108304166 A CN 108304166A CN 201810049755 A CN201810049755 A CN 201810049755A CN 108304166 A CN108304166 A CN 108304166A
- Authority
- CN
- China
- Prior art keywords
- formula
- artificial intelligence
- write
- algorithm
- source code
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提出了一种人工智能程序员根据公式描述书写源程序的方法。该方法主要包括:根据用户输入的数学表达式或者待解析数学方程,依此实现数学公式的变量识别,运算公式识别,计算顺序的确认工作;针对微积分,微分方程,超越方程等复杂运算,作出计算流程的决策过程,具体到解算算法确认,解算流程确认,解算每个步骤使用的计算公式确认;建立人工智能程序员的知识库和方法库,根据上述过程决策出的计算所需算法,流程,变量,在库中搜索对应书写方法和所需知识,实现公式对应源代码的智能书写。
Description
技术领域
本发明涉及源代码生成,特别是涉及一种人工智能程序员根据公式描述书写源程序的方法。
背景技术
自然语言编程是代码自动生成的一种,旨在使用人们日常交流的语言进行编程,免去了学习某种语言的负担。但是自然语言编程工具更像是一种特殊的编译器,将自然语言对应翻译为程序代码,工作量并没有减轻多少。
目前使用较多的自然语言代码生成为基于模板的的代码生成技术,基于模板的代码生成通常面向某一特定范围和平台的小型的系统或程序进行自动生成。将已有的程序提炼为静态模板,用户使用模板引擎以“模板填空”的方式生成目标代码。虽然基于模板的代码生成技术成熟、效率高、错误率低,但是其灵活度小,具有很大的局限性。
因此,针对于上述现有技术的不足,提供出一种利用人工智能程序员,通过模仿人类书写代码的思维方式,根据公式描述书据图写源程序的方法尤为重要。
发明内容
本发明的目的在于:基于数学公式的源代码书写技术解决上述模板的局限性带来的问题,使用推理程序,模仿人类书写代码的思维模式和方法,增加了代码生成的灵活性,提高了代码生成的效率。
为了实现上述目的,本发明的具体技术方案如下:
一种人工智能程序员根据公式描述书写源程序的方法,包括以下步骤:
步骤一:建立推理所需知识库和方法库;
步骤二:针对带求解的复杂公式,例如超越方程,在知识库中匹配求解算法,确认算法流程及其各步骤相关公式;
步骤三:依据知识库与方法库识别算法流程中各步骤相关公式的变量及其类型,识别公式的运算类型,将关键信息转为树形结构存储;
步骤四:对二叉树形结构进行预处理;
步骤五:运算流程识别过程;
步骤六:根据算法流程与公式处理结果智能书写源代码。
优选的,所述知识库与方法库包括:
知识库存放变量类型识别,运算源代码书写规则,流程源代码书写规则等相关知识或既定事实;
方法库存放处理复杂方程算法选择与流程确定的决策方法,预处理方法以及从公式中提取变量值和变量类型的方法。
优选的,所述认算法流程及其各步骤相关公式具体包括:
在方法库中匹配最合适的解算方法,将难以直接运算得到结果的复杂方程转化为按步骤执行的算法描述形式,并确定各个步骤中涉及到的公式;
优选的,所述将关键信息转为树形结构存储的具体步骤包括:
将算法各个步骤中OMML格式的数学表达式通过去除无效项,解决符号粘连,变量类型识别,树形结构转化为二叉树型结构过程,将数学表达式转化为计算机方便识别的列表形式存储。
优选的,所述对二叉树形结构进行预处理的具体步骤包括:
依据知识库中变量运算的相关知识,对二叉树形结构中每一此运算的结果变量类型进行判断以便后续的源代码书写工作;
优选的,所述运算流程识别具体步骤包括:
通过关键词提取,识别出算法各步骤之间的运算流程,包含顺序运算,条件判断过程,循环过程;
优选的,所述根据算法流程与公式处理结果智能书写源代码的具体步骤包括:
根据知识库中的源代码书写规则,依次完成头文件引用书写,函数声明书写,变量定义书写,程序主体部分书写过程;
优选的,所述方法还包括以下模块:
知识库与方法库,用于存放源代码书写所需必要知识与方法;
算法推理模块,用于将复杂方程或运算转化为按步骤执行的算法描述的形式;
公式识别模块,用于将OMML格式的数学表达式转化为二叉树型存储结构;
预处理模块:推理出二叉树型存储结构中的每一步运算结果变量类型;
源代码书写模块,用于书写最终的算法源代码。
综上所述,本发明的有益效果如下:
方法库和知识库类似于人类的只是存储,是人工智能程序员书写程序的依据。通过丰富方法库和知识库,其理解并书写源程序的能力会不断增强,起到自学习自完善的效果。用户无需具备专业编程知识,只需要提供公式,人工智能程序员就可以根据自身储备的知识库和方法库完成源代码的书写。
根据公式人工智能程序员可以自己根据知识储备推理出解算的最佳算法。公式书写形式对于计算机晦涩难懂,人工智能成员将通过将公式转化为二叉树结构描述的形式就可以将公式转化为计算机普遍认识的形式,方便了后续识别过程。
人工智能程序员通过运算流程识别自动匹配当前共识的求解算法,无需用户另行提供,方便用户使用。最终根据自身对公式的理解结果自动生成源代码,大幅提升了编程效率。
因此,本发明提供的人工智能程序员根据公式描述书写源程序的方法自动化程度高、节省工作量,工作效率高,具有较好的应用前景。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明流程步骤图;
图2为本发明人工智能程序员根据公式描述书写源程序的二叉树型结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明公开了一种人工智能程序员根据公式描述书写源程序的方法,其具体流程如下:
步骤一:建立知识库与方法库
首先声明,知识库与方法库的建立基于swi-prolog语言,知识库中存放prolog描述形式的事实与规则,主要包含变量事实,运算书写规则,流程书写规则等;方法库存放复杂方程算法选择与流程确定的决策方法,预处理方法和从公式中提取变量值和变量类型的方法。
变量事实主要用于辅助人工智能程序员识别变量类型,规定scarla为标量,vector为矢量,quater为四元数,matrix为矩阵,若要对变量X进行类型描述,prolog形式依此为:scarla(X),vector(X),quarter(X),matrix(X)。
运算与流程书写规则以及方法库存放复杂方程算法选择,流程确定的决策,从公式中提取变量值和变量类型,预处理等方法需要借助prolog的规则描述实现,将分别在步骤六,五,二,三,四中详述。
步骤二:依据方法库将复杂公式转化为数学描述
以求解积分运算为例,用户在word文档中根据其自带公式输入插件输入以上公式。在word中该公式会以OMML的格式存储。首先识别运算类型,继而在方法库中匹配应对该种运算的方法。
以上述积分为例,从该公式的OMML片段中可以获取到如下信息:运算类型为积分运算,上限为0,下限为10。积分对象为x。具体求解积分这一类型的算法已经提前录入到方法库中,将积分上下限和积分对象等关键信息提交给方法库,其自行生成对求解当前积分运算的算法描述。
针对其他类型运算可以此类推,不断丰富方法库以应对多种运算。
步骤三:将OMML数学表达式转化为二叉树型存储结构
根据步骤二中转化出的算法文件,需要获取其中公式并将其转化为计算机方便识别的二叉树型结构。
公式获取方法为逐行遍历txt文件,当匹配到形如A=B形式的文本,即标为公式。
OMML格式包含大量冗余项,且存在字符粘连等问题,二叉树型结构如图2所示,最底层为参与运算变量,向上的节点为运算类型,这种格式存储变量较为方便,因此需要转换过程,需要完成无效项剔除,正则表达式匹配拆分与解决字符粘连,变量属性标定,二叉树型结构建立等过程。
Word XML文档中数学表达式的冗余信息主要有三类,第一类是以Pr结尾;第二类节点名中包含bookmark,第三类是<m:r>标签。程序首先递归遍历m:oMath的所有子节点,并用正则表达式匹配符合\w*Pr\b以及\w*bookmark\w*条件的节点名,将这些节点删除;然后递归遍历所有<m:r>节点,调用UselessDeleter类中的DelOuter方法将嵌套在表达式块外的<m:r>标签去除。
字符粘连的类型和对应的拆分方法为:
①等号粘连型
表现形式:等号加左侧变量(x=)、等号加左右表达式(x=a、x=a+b等)、等号加右侧表达式(=a、=a+、=ab、=-a+b等)。
正则表达式:\w{0,1}=\S*与!^=$
具体处理方法:匹配后,在“=”的同级节点前后各添加一个节点,将“=”左右的字符分别添加到前后两个节点中并删除粘连的节点。
②加法粘连类型
表现形式1:加号左侧无字符(+a、+a-b等)
正则表达式:^\+\w
具体处理方法:匹配后,在“+”的同级节点后添加一个节点,将“+”右侧的字符添加到这个节点中并删除粘连的节点。
表现形式2:加号左侧有字符(a+、a+b-c等)
正则表达式:\w\+
具体处理方法:匹配后,在“+”的同级节点前后各添加一个节点,将“+”左右的字符分别添加到前后两个节点中并删除粘连的节点。
③减法粘连类型
处理方法与加法完全相同,只是表现形式和正则表达式中的“+”变为了“-”。为了降低正则表达式的耦合才没有将加法和减法的匹配规则写在一起。
④乘法粘连类型
表现形式:数乘或混合积的粘连(3ab、2a→等)
正则表达式:\b\w\w+\b与!^(sin|cos|tan|csc|cot|sec|log|ln|\d+)$
具体处理方法:匹配的对象是字符连乘但不包括三角函数、指对数符号和连续数字的情况。匹配后,建立两个同级节点,并将第一个字符放到第一个节点中,后面的字符放到第二个节点中,并删除粘连的节点。
对变量类型的识别是这样进行的:遍历所有<m:t>节点,用正则表达式匹配其中的内文。如果是大写的单一字母,则为矩阵,在该节点前添加一个属性名为“Type”,属性值为“m”的属性;否则如果该节点由<m:acc>嵌套,则为矢量,在该节点前添加一个属性名为“Type”,属性值为“v”的属性;对于其他<m:t>节点,视其为标量,在节点前添加一个属性名为“Type”,属性值为“s”的属性。
为了将OMML格式的数学表达式树转换为前缀二叉树,发明人提出了“降级建树”变换——对数学运算进行识别并根据该运算的优先级在根节点级别下逐次降级建立数学表达式前缀二叉树。
发明人针对每个具体的运算设计了相应的处理算法,作出如下详细说明:
1.加法类型的处理示例和减法的特殊情况
由于等号、加法和减法的OMML形式类似,都是操作符与操作数同级,处理方法比较相近。
以加法为例,降级建树的操作应为:在加号所在的级别建立一个<Plus>节点,并建立两个二叉树分支,分别命名为t1、t2。将加号前后的字符分别存储到t1和t2节点中,更新NodePosi为Plus节点。
应注意,减法的处理存在特殊情况,t2下的所有子节点如果有“+”、“-”号,均应做变号处理,即将“+”变为“-”,“-”变为“+”。
2.括号类型的递归降级建树
括号和矢量符号的类型类似,都是以一个节点将内部的字符节点包含起来(括号以<m:d>节点,矢量符号以<m:acc>节点)。处理这两种情形时,应使用DelOuter方法将套在外面的节点去掉。由于括号内一般有其他运算,应在去掉括号后内部数学表达式所在的级别上使用BuildTree方法递归建树。
3.乘法类型
对于矢量的叉乘和点乘运算,类似加法类型处理;
当该级别内节点数多于一个,并且由flag==0标明这些节点中不再有加减法运算,且不存在叉乘和点乘时,可以判断该级别的各节点间为数乘运算。建立一<Multiply>节点和t1、t2两个子节点,乘法级别的第一个节点存入t1,其余存入t2,更新NodePosi为Multiply节点。
4.除法
除法运算的结构有别于其他运算,在OMML中是以<m:f>及包含的两个子节点<m:num>(分子)和<m:den>(分母)组成的。在处理时将分子和分母分别存入建立的<Divide>节点下的t1、t2子节点中,更新NodePosi为Divide节点。
5.上标
三角函数、乘方、开方和指对数运算可以分为一类。它们的共同特点是可以理解为单操作数运算。如前文所述,为了处理的方便,已经为这些运算规定了双操数的表示形式。这一特点还带来了OMML上的共同点,就是都包含一个辅助描述运算类型的节点,如<m:sup>表示上标,<m:rad>表示开方的次数等。在对这些运算降级建树时,要解析这些标签并将里面的内容转换为一个操作数。自等号开始,递归进行“降级建树”,就可以还原完整的数学公式语义信息。
至此完成OMMl格式向二叉树型结构的转换工作。
步骤四:依照知识库进行二叉树存储结构预处理
转换后的二叉树型基本运算结构如表1所示:
表1软件支持的运算类型和列表形式示例
运算类型 | 目标列表形式示例 |
标量加法 | [+,s,a,s,b] |
标量减法 | [-,s,a,s,b] |
标量乘法 | [*,s,a,s,b] |
标量除法 | [/,s,a,s,b] |
乘方/指数运算 | [^,s,a,s,b] |
开(平/n次)方运算 | [sqrt,s,2,s,a]/[sqrt,s,n,s,a] |
对数运算(以ln为例) | [log,s,e,s,a] |
正三角函数运算(以sin为例) | [trigo,s,sin,s,a] |
反三角函数(以arcsin为例) | [trigo,s,asin,s,a] |
矢量加法 | [+,v,a,v,b] |
矢量减法 | [-,v,a,v,b] |
矢量点乘 | [·,v,a,v,b] |
矢量叉乘 | [*,v,a,v,b] |
混合积 | [*,s,a,v,b] |
矩阵加法 | [+,m,a,m,b,i,j,k] |
矩阵减法 | [-,m,a,m,i,j] |
矩阵乘法 | [*,m,a,m,b,i,j] |
二叉树型存储结构为prolog链表形式,第一个元素位运算符,之后依次是第一位运算变量类型及数值,第二位运算变量类型及数值;其中矩阵运算中i,j为第一个运算矩阵的行列信息,j,k为第二个矩阵的运算信息;对于数学表达式中的变量,步骤三可完成变量识别的工作,由于数学表达式复杂,例如:[s,u]=[-,s,0,[*,[/,[*,s,4,s,ps],s,3],[*,[^,s,r,s,3],[/,s,g,s,f]]]],运算须分步完成,对于中间结果需要进行变量类型推理的预处理。
方法库变量类型推理的预处理过程遵循如下步骤:
1分解运算直至找到表1中的基本运算形式,
2若是标量运算,结果仍为标量,
3若是三角函数运算,结果为标量,
4若是矢量点乘,结果为标量,
5若是矢量除点乘外其余运算,结果为标量,
6若是标量与矢量运算,结果为矢量,
7若是矩阵运算,结果为矩阵,
8向上一级递归继续判别.
经预处理,上式可变为:
[s,u]=[-,s,0,s,[*,[/,s,[*,s,4,s,ps],s,3],[*,s,[^,s,r,s,3],s,[/,s,g,s,f]]]]
该式与处理之前相比,完成了每个分运算的运算结果变量类型识别,便于后续源代码书写模块的识别与处理。
步骤五:运算流程识别;
人工智能程序员可以识别的运算流程分为顺序,条件,循环三类;条件结构分为switch,if两类,关键词分别为switch,if;循环结构分为:while-do,do-while两类,关键词分别为while-do,do-while;无关键词说明,即为顺序结构;
步骤二会将复杂公式转化为如下所示的格式的文件供书写模块参考。步骤三、四会将其中的公式转化为上述的二叉树形式供书写模块识别。
当书写模块读取到对应的关键字即可识别当前的算法流程,并书写出对应的源代码,完成源代码书写前的所有准备工作。
步骤六:依照方法库完成对源代码的书写。
方法库中的源代码书写步骤如下:
1、书写头文件,
2、书写主函数名,
3、变量声明,
4、书写主函数体.
其中书写头文件和书写主函数名为书写固定代码片段;变量声明和书写主函数体做详细介绍。
变量声明过程之前,浏览txt算法文件,根据步骤三中的公式识别方法筛选出所有公式,针对某一公式,按照步骤四中与处理的相同方法依此找到公式中的各变量及其对应类型和中间变量及其类型。对于标量,统一为其分配double型,对于矢量为其统一分配double[3]型,对于矩阵,根据其行列信息m,n为其分配double[m][n]。
主函数体源代码书写依靠知识库中的运算书写规则和流程书写规则。人工智能程序员按行浏览上述步骤形成的txt算法文件,寻找流程关键词。当读取到switch,if,do,while时进入关键词所对应的流程结构中,否则默认为顺序结构。进入对应流程并书写相应流程源代码后,需要根据公式依靠运算书写规则书写对应运算部分源代码,其规则如下:
1.分析该公式是否是表1中可一次完成运算,如果是,将运算中的变量写入不可再分解的序列并进入下一步,如果不是将公式中的变量提取出来并继续进行第1步(递归)。
2.根据不可再分解序列中参与运算的变量的信息,将公式分成如下类型:
1)两个变量都为不可再分解
2)首个变量不可再分解,第二个变量为链表可继续分解
3)首个变量为链表形式可继续分解,第二个变量不可再分解
4)两个变量都为链表形式,可继续分解
5)单一变量运算中变量不可再分解
6)单一变量运算中变量为链表形式可继续分解
3.对上述规则2中的不同类型进行不同处理,对于第一种类型,直接按照对应源代码格式还原出公式;对于第2)、3)、4)种类型,对不可分解部分继续执行步骤2,直到递归至第一种类型,按照对应源代码格式还原出公式。
特别的,若源代码内部不存在矩阵和矢量运算,例如C语言,需要手动提前编写适合矩阵和矢量运算的函数,人工智能程序员只需调用该函数即可。
至此人工智能程序员完成所有源代码书写工作。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (8)
1.一种人工智能程序员根据公式描述书写源程序的方法,其特征在于,所述方法包括以下步骤:
步骤一:建立推理所需知识库和方法库;
步骤二:针对带求解的复杂公式,在知识库中匹配求解算法,确认算法流程及其各步骤相关公式;
步骤三:依据知识库与方法库识别算法流程中各步骤相关公式的变量及其类型,识别公式的运算类型,将关键信息转为树形结构存储;
步骤四:对树形结构进行预处理;
步骤五:运算流程识别过程;
步骤六:根据算法流程与公式处理结果智能书写源代码。
2.根据权利要求1所述的人工智能程序员根据公式描述书写源程序的方法,其特征在于,所述步骤一中的知识库与方法库包括:
所述知识库存放变量类型识别,运算源代码书写规则,流程源代码书写规则相关知识或既定事实;
所述方法库存放处理复杂方程算法选择与流程确定的决策方法,预处理方法,以及从公式中提取变量值和变量类型的方法。
3.根据权利要求1所述的人工智能程序员根据公式描述书写源程序的方法,其特征在于,所述步骤二具体包括:
在方法库中匹配最合适的解算方法,将难以直接运算得到结果的复杂方程转化为按步骤执行的算法描述形式,并确定各个步骤中涉及到的公式。
4.根据权利要求1所述的人工智能程序员根据公式描述书写源程序的方法,其特征在于,所述步骤三具体包括:
将算法各个步骤中OMML格式的数学表达式通过去除无效项,解决符号粘连,变量类型识别,树形结构转化为二叉树型结构过程,将数学表达式转化为计算机方便识别的列表形式存储。
5.根据权利要求1所述的人工智能程序员根据公式描述书写源程序的方法,其特征在于,所述步骤四具体包括:
依据知识库中变量运算的相关知识,对二叉树形结构中每一此运算的结果变量类型进行判断以便后续的源代码书写工作。
6.根据权利要求1所述的人工智能程序员根据公式描述书写源程序的方法,其特征在于,所述步骤五具体包括:
通过关键词提取,识别出算法各步骤之间的运算流程,包含顺序运算,条件判断过程,循环过程。
7.根据权利要求1所述的人工智能程序员根据公式描述书写源程序的方法,其特征在于,所述步骤六具体包括:
根据知识库中的源代码书写规则,依次完成头文件引用书写,函数声明书写,变量定义书写,程序主体部分书写过程。
8.根据权利要求1所述的人工智能程序员根据公式描述书写源程序的方法,其特征在于,所述方法包括以下模块:
知识库与方法库,用于存放源代码书写所需必要知识与方法;
算法推理模块,用于将复杂方程或运算转化为按步骤执行的算法描述的形式;
公式识别模块,用于将OMML格式的数学表达式转化为二叉树型存储结构;
预处理模块:推理出二叉树型存储结构中的每一步运算结果变量类型;
源代码书写模块,用于书写最终的算法源代码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810049755.9A CN108304166A (zh) | 2018-01-18 | 2018-01-18 | 一种人工智能程序员根据公式描述书写源程序的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810049755.9A CN108304166A (zh) | 2018-01-18 | 2018-01-18 | 一种人工智能程序员根据公式描述书写源程序的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108304166A true CN108304166A (zh) | 2018-07-20 |
Family
ID=62865561
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810049755.9A Pending CN108304166A (zh) | 2018-01-18 | 2018-01-18 | 一种人工智能程序员根据公式描述书写源程序的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108304166A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109194381A (zh) * | 2018-09-11 | 2019-01-11 | 北京航空航天大学 | 数字卫星星间及星地组网无线传输代码人工智能书写方法 |
CN109947401A (zh) * | 2019-03-15 | 2019-06-28 | 第四范式(北京)技术有限公司 | 由计算机执行规则处理的方法及装置 |
CN110704742A (zh) * | 2019-09-30 | 2020-01-17 | 北京三快在线科技有限公司 | 一种特征提取方法及装置 |
CN111309302A (zh) * | 2020-02-06 | 2020-06-19 | 杭州电子科技大学 | 一种基于LaTeX的四则运算与三角函数混合运算公式转换Verilog代码的方法 |
CN112083909A (zh) * | 2020-08-07 | 2020-12-15 | 清华大学 | 工程结构设计标准公式识别及计算程序自动生成方法 |
CN112905166A (zh) * | 2021-03-04 | 2021-06-04 | 青岛海科创新科技有限公司 | 人工智能编程系统、计算机设备、计算机可读存储介质 |
CN113703726A (zh) * | 2021-08-26 | 2021-11-26 | 北京航空航天大学 | 一种数字飞行器源代码构造决策知识提取归零迭代方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1421004A (zh) * | 1999-10-14 | 2003-05-28 | 目标储油层公司 | 利用符号语言翻译器产生软件代码的方法和系统 |
CN101329731A (zh) * | 2008-06-06 | 2008-12-24 | 南开大学 | 图像中数学公式的自动识别方法 |
CN103250149A (zh) * | 2010-12-07 | 2013-08-14 | Sk电信有限公司 | 用于从数学语句提取语义距离并且按照语义距离对数学语句分类的方法、用于该方法的装置和计算机可读记录介质 |
CN107301164A (zh) * | 2016-04-14 | 2017-10-27 | 科大讯飞股份有限公司 | 数学公式的语义解析方法及装置 |
-
2018
- 2018-01-18 CN CN201810049755.9A patent/CN108304166A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1421004A (zh) * | 1999-10-14 | 2003-05-28 | 目标储油层公司 | 利用符号语言翻译器产生软件代码的方法和系统 |
CN101329731A (zh) * | 2008-06-06 | 2008-12-24 | 南开大学 | 图像中数学公式的自动识别方法 |
CN103250149A (zh) * | 2010-12-07 | 2013-08-14 | Sk电信有限公司 | 用于从数学语句提取语义距离并且按照语义距离对数学语句分类的方法、用于该方法的装置和计算机可读记录介质 |
CN107301164A (zh) * | 2016-04-14 | 2017-10-27 | 科大讯飞股份有限公司 | 数学公式的语义解析方法及装置 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109194381A (zh) * | 2018-09-11 | 2019-01-11 | 北京航空航天大学 | 数字卫星星间及星地组网无线传输代码人工智能书写方法 |
CN109947401A (zh) * | 2019-03-15 | 2019-06-28 | 第四范式(北京)技术有限公司 | 由计算机执行规则处理的方法及装置 |
CN110704742A (zh) * | 2019-09-30 | 2020-01-17 | 北京三快在线科技有限公司 | 一种特征提取方法及装置 |
CN110704742B (zh) * | 2019-09-30 | 2021-04-27 | 北京三快在线科技有限公司 | 一种特征提取方法及装置 |
CN111309302A (zh) * | 2020-02-06 | 2020-06-19 | 杭州电子科技大学 | 一种基于LaTeX的四则运算与三角函数混合运算公式转换Verilog代码的方法 |
CN111309302B (zh) * | 2020-02-06 | 2023-04-18 | 杭州电子科技大学 | 一种基于LaTeX的四则运算与三角函数混合运算公式转换Verilog代码的方法 |
CN112083909A (zh) * | 2020-08-07 | 2020-12-15 | 清华大学 | 工程结构设计标准公式识别及计算程序自动生成方法 |
CN112083909B (zh) * | 2020-08-07 | 2022-01-28 | 清华大学 | 工程结构设计标准公式识别及计算程序自动生成方法 |
CN112905166A (zh) * | 2021-03-04 | 2021-06-04 | 青岛海科创新科技有限公司 | 人工智能编程系统、计算机设备、计算机可读存储介质 |
CN112905166B (zh) * | 2021-03-04 | 2024-04-05 | 青岛海科智汇信息科技有限公司 | 人工智能编程系统、计算机设备、计算机可读存储介质 |
CN113703726A (zh) * | 2021-08-26 | 2021-11-26 | 北京航空航天大学 | 一种数字飞行器源代码构造决策知识提取归零迭代方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108304166A (zh) | 一种人工智能程序员根据公式描述书写源程序的方法 | |
Kowalski | A proof procedure using connection graphs | |
Rav | Why do we prove theorems? | |
Knight | Unification: A multidisciplinary survey | |
Sowa | Ontology, metadata, and semiotics | |
Davie | Introduction to Functional Programming Systems Using Haskell | |
Meeraus | An algebraic approach to modeling | |
CN111581990B (zh) | 跨境交易撮合匹配方法及装置 | |
Pfeffer | The design and implementation of IBAL: A general-purpose probabilistic language | |
CN102243649A (zh) | 本体半自动信息抽取处理装置 | |
CN111339269A (zh) | 模板自动生成的知识图谱问答训练及应用服务系统 | |
EP3864564A1 (en) | System for searching natural language documents | |
JPH0816620A (ja) | データ分類装置/方法、データ分類木生成装置/方法、派生語抽出装置/方法、シソーラス構築装置/方法、データ処理システム | |
CN114153994A (zh) | 医保信息问答方法及装置 | |
Marco et al. | On some contributions of the cognitive sciences and epistemology to a theory of classification | |
Quishpi et al. | Extracting decision models from textual descriptions of processes | |
CN111309852A (zh) | 生成可视化决策树(集)模型的方法、系统、装置及存储介质 | |
CN117194682B (zh) | 构建基于电网相关文件的知识图谱的方法、装置及介质 | |
Hassan | Designing a flexible system for automatic detection of categorical student sentiment polarity using machine learning | |
De Campos et al. | Partial abductive inference in Bayesian belief networks-an evolutionary computation approach by using problem-specific genetic operators | |
Kowalski | Directions for logic programming | |
Sekiuchi et al. | DODDLE: A domain ontology rapid development environment | |
CN112949410B (zh) | 人工智能理科文字题解题方法、装置、设备及存储介质 | |
De Lucia et al. | Identifying similar pages in web applications using a competitive clustering algorithm | |
Wolff | Computing and information compression: a reply |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180720 |