一种从自然语言中提取逻辑流程生成代码的方法和系统与流程

专利2022-06-29  63

本发明涉及对自然语言中的逻辑流程进行建模的方法,且特别是有关于一种对自然语言中的逻辑流程进行建模用于软件代码自动生成系统。
背景技术
::自然语言是人类沟通交流的工具,广泛用于传递人类的感受、思想、指令等。其中一部分用途就是描述人类生产活动时的逻辑流程。计算机语言是人类发明来专门实施生产逻辑流程的工具,当前还必须由人工理解生产活动的逻辑流程后写成计算机语言代码(如c、java、python语言等)。有鉴于此,以下将提出几个示例实施例的解决方案。技术实现要素:本发明提供一种根据自然语言中的逻辑流程描述自动生成计算机高级语言代码的流程代码自动生成系统以及生成方法。本发明的一种流程代码自动生成系统(以下简称代码生成系统、生成系统)适用于自然语言描述的逻辑流程。代码生成系统包括代码自动生成模块(以下简称代码生成模块、生成模块)、描述输入装置以及处理器。代码生成模块根据自然语言中描述逻辑流程的特征,生成计算机语言的流程代码。代码生成模块为代码生成平台。输入装置用以接收描述数据。处理器耦接输入装置。处理器用以执行代码生成模块。当处理器执行代码生成模块时,处理器读取输入的描述数据,根据其中描述逻辑流程的特征,提取逻辑流程特征词(以下简称特征词),匹配逻辑流程特征词组(以下简称特征词组),对应逻辑流程模型(以下简称流程模型),产生计算机高级语言流程代码(以下简称软件代码、程序代码)。本发明的一种流程代码自动生成方法(以下简称代码生成方法、生成方法)适用于自然语言描述的逻辑流程。代码生成方法包括以下步骤:执行代码生成模块,读取输入的自然语言,提取其中的特征词,组成特征词组,对应流程模型,产生程序流程代码。基于上述,本发明的代码生成系统以及代码生成方法提取自然语言中的特征词,组成特征词组,对应流程模型,产生程序流程代码。因此,本发明的代码生成系统以及代码生成方法可有效节省编码的工作量。为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附附图作详细说明如下。附图说明图1图示本发明的一实施例的流程代码自动生成系统的示意图。图2图示本发明的一实施例的流程代码自动生成模块的示意图。图3图示本发明的一实施例的代码自动生成模块的流程模型图。图4图示本发明的一实施例的流程代码自动生成方法的流程图。具体实施例为了使本发明的内容可以被更容易理解,以下特举实施例做为本发明确实能够据以实施的示例。本实施例是以自然语言描述为输入,生成程序流程代码,例如python语言流程代码。另外,凡可能的地方,在附图及实施方式中使用相同标号的元件/构件/步骤,是代表相同或类似部件。图1图示本发明的一实施例的代码生成系统的示意图。在本实施例中,代码生成系统10包括电子装置100以及外部服务器200。代码生成系统10适用于自然语言描述的逻辑流程,并且具有代码生成的功能。电子装置100包括处理器110以及输入装置120,并且处理器110耦接输入装置120。外部服务器200包括流程代码生成模块210(以下简称自动生成模块、生成模块)。在本实施例中,电子装置100可进一步包括有线通讯接口(interface)或无线通讯接口。电子装置100以有线或无线的方式通讯连接至外部服务器200,以读取并且执行代码自动生成模块210。代码自动生成模块210是一种开放式的代码自动生成平台。在本实施例中,处理器110可由输入装置120接收使用者提供的描述数据。代码自动生成模块210包括逻辑流程特征词库。处理器110可读取生成模块210当中的特征词库,并且提取输入数据中的逻辑流程特征词,组成特征词组,对应流程模型,生成流程代码。在本实施例中,电子装置100可例如是个人电脑(personalcomputer,pc)、台式电脑(desktoppc)、笔记本电脑(notebookpc)、平板电脑(tabletpc)等诸如此类的电脑装置,本发明并不限于此。电子装置100设置有无线或有线的通讯模块,以使电子装置100利用通讯模块与外部服务器200进行通讯。举例来说,当使用者操作代码生成系统10时,使用者可操作电子装置100,利用输入装置120输入操作流程描述,以使电子装置100可执行储存在外部服务器200当中的流程代码生成模块210,以生成流程代码。在本实施例中,处理器110例如是中央处理单元(centralprocessingunit,cpu)、系统单芯片(systemonchip,soc)或是其他可编程的一般用途或特殊用途的微处理器(microprocessor)、数字信号处理器(digitalsignalprocessor,dsp)、可编程控制器、特定用途集成电路(applicationspecificintegratedcircuits,asic)、可编程逻辑装置(programmablelogicdevice,pld)、其他类似处理装置或这些装置的组合。在本实施例中,输入装置120可用以接收使用者输出的指令参数。输入装置120例如是键盘(keyboard)、语音接收器(voicereceiver)、麦克风(microphone)或这些装置的组合等。输入装置120可用以接收使用者提供的语音信息或指令参数等,本发明并不加以限制。在本实施例中,输入装置120可依据上述各种形式的输入方式来提供数据或参数至处理器110。在本实施例中,外部服务器200为云端系统。外部服务器200用以提供流程代码生成模块。在本实施例中,电子装置100可读取外部服务器200的生成模块210,并且直接在外部服务器200上执行生成模块210。在一个实施例中,电子装置100也可先将生成模块210下载至电子装置100的存储器中,再执行生成模块210,本发明并不加以限制。图2图示本发明的一实施例的生成模块的示意图。参考图1以及图2,流程代码自动生成模块210包括流程分析模块211(以下简称分析模块)。分析模块211包括特征词库212和流程模型库213,特征词库212包括特征词组214,特征词组214包括一个或多个特征词215。流程模型库213包括一个或多个流程模型216。这些特征词组可以是用于表示同样语意的不同形式,甚至不同自然语言,例如以下举例所述的多个特征词组都是用于表示同样语意的多个不同形式,但本发明并不限于此。而且,在分析模块211中的特征词组和流程模型的数量本发明并不加以限制。在本实施例中,输入装置120提供描述输入220,以使生成模块210将描述输入220输入分析模块211,以产生流程代码230。在本实施例中,描述输入220可包括多个特征词组。在本实施例中,当处理器110将描述输入220输入分析模块211,以产生流程代码230时,处理器110使用预先存储在分析模块211中的特征词,逐个找出输入描述220中的特征词,组合成特征词库212中的特征词组214,对应特征词组的流程模型216,生成流程代码230。举例来说,特征词库212有如下特征词和特征词组:特征词一:(如果|若|当)特征词二:[则就]特征词三:否则特征词四:直到二选特征词组:(如果|若|当)[则就]否则多选特征词组:(如果|若|当)[则就]{2,}(否则|其他)循环特征词组:当直到图3图示本发明的一实施例的流程模型库213中的流程模型216。如“是否流程模型”300,“多选特征模型”310,“循环特征模型”320。模型可以根据需要增加,本发明并不加以限制。分析模块把二选特征词组对应“是否流程模型”,多选特征词组对应“多选特征模型”,循环特征词组对应“循环特征模型”。代码生成模块执行时,先扫描输入描述,提取描述中的特征词,按特征词组组合特征词,然后把输入描述划分出流程路径,如选择特征词组,会把流程划分成“是”、“否”两个顺序路径;而循环特征词组则把流程划分成循环任务路径和跳出后路径。划分出流程路径后对照对应的流程模型,生成程序代码。例如,描述输入是:“若有id为2的主机,则查询它的信息,否则创建id为2的主机”。生成模块分析到句子中的“若”、“则”、“否则”,划分出“是”路径(“删除它”)和“否”路径(“创建id为2的主机”),对照选择流程模型,生成流程代码“if(有id为2的主机)then查询它的信息else创建id为2的主机”。再如,描述输入是“当温度低于100摄氏度时持续加热,直到温度达到100摄氏度”。生成模块扫描到“当”、“直到”,划分出循环任务和完成条件,对照循环流程模型,生成流程代码“do{持续加热;}while(温度低于100摄氏度)”。图4图示本发明的一实施例的代码生成方法的流程图。参考图1至图3,本实施例的代码生成方法可至少适用于图1以及图2的代码自动生成系统10。在步骤s410中,电子装置100执行生成模块210,并且读取生成模块210当中的分析模块211,其中分析模块211中的特征词库212包括多个特征词组214,特征词组对应相应的流程模型216。在步骤s420中,电子装置100经由输入装置120接收描述输入220。生成模块210扫描描述输入220,识别输入中的特征词,组合成特征词组,对应流程模型,以产生流程代码230。也就是说,本实施例的代码生成方法可直接将使用者输入的描述输入220快速且便利地产生流程代码230。因此,本实施例的代码生成方法可有效节省编写代码的工作量。此外,关于本实施例的代码自动生成系统10的相关装置特征以及技术内容可依据上述图1以及图2实施例的内容而取得足够的教导、建议以及实施说明,因此不再赘述。综上所述,本发明的代码自动生成系统以及代码生成方法可预先在外部服务器的平台上设置特征词组,当使用者通过电子装置与外部服务器进行通讯时,电子装置可直接读取使用者输入的输入描述,抽取特征词和特征词组,建立流程模型,以快速地产生流程代码。此外,由于本发明的生成模块设置在云端系统中,因此云端维护人员也可以直接更新或输入新的特征词组到生成模块,以让多个使用者可分别通过各自的电子装置来使用生成模块中的特征词组。也就是说,本发明的代码自动生成系统以及代码生成方法可有效节省编写代码的工作量,并且具有维护方便以及可即时更新的特性。虽然本发明已以实施例公开如上,然而其并非用以限定本发明,任何本领域普通技术人员,在不脱离本发明的精神和范围内,当可作些许的改动与润饰,因此本发明的保护范围当应当以所附的权利要求保护范围为准。【符号说明】10:流程代码自动生成系统100:电子装置110:处理器120:输入装置200:外部服务器210:流程代码自动生成模块211:流程分析模块212:特征词库213:流程模型库214:特征词组215:特征词216:流程模型220:输入描述230:程序代码300:是否流程模型310:多选流程模型320:循环流程模型s410、s420、s430:步骤。当前第1页1 2 3 当前第1页1 2 3 
技术特征:

1.一种代码自动生成系统,适用于自然语言,包括:

代码生成模块,具有流程特征词库和流程模型库,所述流程特征词库包括一个或多个流程特征词组,流程模型库包括一种或多种逻辑流程模型,其中所述代码生成模块为代码自动生成平台;

输入装置,用以接收描述数据;以及

处理器,耦接所述输入装置,并且用以执行所述代码生成模块,

其中当所述处理器执行所述代码生成模块时,所述处理器读取所述代码生成模块当中的所述流程特征词库,并且提取输入描述中的逻辑流程特征词,匹配流程特征词组,对应逻辑流程模型,产生程序流程代码。

2.如权利要求1所述的代码自动生成系统,其中所述流程特征词库,包括一个或多个流程特征词组,所述流程特征词组由一个或多个流程特征词构成,所述流程特征词是代表某种逻辑流程的自然语言描述词汇。

3.如权利要求1所述的代码自动生成系统,其中所述特流程模型库是由具体逻辑流程的流程路径组成的流程库。

4.其中当所述处理器将所述描述数据进行分析以生成代码时,所述处理器将所述特征词组逐一在输入的描述数据中对比查找,某特征词组的所有特征词都查找到后为匹配该特征词组成功,再对照该特征词组对应的流程模型,生成相应的流程代码。

5.如权利要求1所述的代码自动生成系统,还包括外部服务器,其中所述代码生成模块设置在所述外部服务器中,并且所述处理器通讯连接至所述外部服务器,以读取并执行所述生成模块。

6.一种代码自动生成方法,适用于自然语言,包括:

执行代码生成模块,并且读取所述代码生成模块当中的流程特征词库和流程模型库,并且所述代码生成模块是代码自动生成平台;

接收描述数据;以及

从所述描述数据中提取逻辑流程特征词,匹配流程特征词组,对照逻辑流程模型,产生程序流程代码。

7.如权利要求5所述的代码自动生成方法,还包括:

执行代码生成操作,并且所述代码生成操作包括:

接收描述数据;

从所述描述数据中提取逻辑流程特征词,匹配流程特征词组,对照逻辑流程模型,产生程序流程代码。

8.如权利要求5所述的代码自动生成方法,其中所述流程特征词库包括多个流程特征词组。

9.如权利要求5所述的代码自动生成方法,其中所述流程特征词组包括一个或多个描述逻辑流程的流程特征词,所述流程特征词是代表某种逻辑流程的自然语言描述词汇。

10.如权利要求5所述的代码自动生成方法,其中所述流程模型库是由具体逻辑流程的流程路径组成的流程库。

11.如权利要求5所述的代码自动生成方法,其中所述描述数据包括描述特定流程的自然语言,并且所述特定流程的描述数据包括一个或多个描述特定逻辑的流程特征词,其中将所述描述数据生成代码的步骤包括:

将所述特征词库中的特征词组的特征词逐一在描述数据中查找,若全部找到则匹配本特征词组,

根据所述特征词组,对应流程模型库,

根据流程模型库,生成流程代码。

12.如权利要求8所述的代码自动生成方法,其中所述代码生成模块设置在外部服务器中,并且执行所述代码生成模块的步骤包括:

通讯连接至所述外部服务器,以读取并执行所述代码生成模块。

技术总结
自然语言是人类沟通交流的工具,广泛用于传递人类的感受、思想、指令等。其中一部分用途就是描述人类生产活动时的逻辑流程。计算机语言是人类发明来专门实施生产逻辑流程的工具,当前还必须由人工理解生产活动的逻辑流程后写成计算机语言代码。本发明涉及对自然语言中的逻辑流程进行建模的方法,且特别是有关于一种对自然语言中的逻辑流程进行建模用于软件代码自动生成系统。代码自动生成系统包括代码自动生成模块、描述输入装置以及处理器。当处理器执行代码生成模块时,处理器读取输入的描述数据,根据其中描述逻辑流程的特征,提取逻辑流程特征词,匹配逻辑流程特征词组,对应逻辑流程模型,产生计算机高级语言流程代码。

技术研发人员:彭熹
受保护的技术使用者:彭熹
技术研发日:2020.02.16
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-29673.html

最新回复(0)