一种内嵌式机器学习系统的软件体系结构设计方法与流程

文档序号:17317239发布日期:2019-04-05 21:20阅读:147来源:国知局
一种内嵌式机器学习系统的软件体系结构设计方法与流程

本发明属于计算机技术领域,涉及内嵌式软件体系结构设计方法,具体涉及一种内嵌式机器学习系统的软件体系结构设计方法。



背景技术:

传统的软件设计方法将重点放在数据结构和算法的选择上,随着软件系统的规模越来越大,软件系统的结构越来越复杂,以及软件开发环境与应用环境的多样化,一个大规模的软件系统必须多人合作开发,整个系统的结构与交互说明也愈加重要。同时,随着机器学习相关技术的快速发展和普及,人们所遇到的越来越多的问题和任务都可以借用机器学习技术加以解决,在原本的系统中,一些功能的实现需要使用机器学习的算法。但是,机器学习作为一个新兴有活力却具备一定的入门门槛的学科,很多进行系统开发的软件开发人员对机器学习技术的了解和运用依然较为有限,这个时候就需要将系统中有关机器学习算法的部分交给机器学习研究人员进行开发,开发完成后再将其整合进完整的系统中。在实际的开发过程中,双方需要共同设计一个便捷有效的软件体系结构来进行合作开发,最终完成一个内嵌机器学习系统的软件成品。

当前机器学习领域有着极为广泛的应用,如自然语言处理、数据挖掘、计算机视觉、医学诊断等,不同的应用场景需要各种不同的机器学习系统,而不同的机器学习系统也有不同的算法核心、运行模式以及软件体系结构。目前学术界公认的观点是:没有一个通用的机器学习模型可以解决所有类型的机器学习任务。因此对于不同细分领域下的机器学习系统需要设计与之相适应的软件体系结构。在当今社会,企业级的信息管理系统需求量极高,高校会需要学生管理系统、财务管理系统等,私人会需要员工管理系统,电信服务商会需要用户服务管理系统。这些信息管理系统虽然多有不同,但是它们都有处理文本信息的需求,而处理文本信息对应的机器学习细分领域则主要为自然语言处理。针对这种内嵌式的机器学习系统设计一个合理高效的软件体系结构是一个非常重要的课题。此外,由于企业级信息管理系统中的数据具有极高的商业价值,受到法律保护,而且数据量随着企业的经营变的非常巨大,但是大部分的企业都没有能力自己组建成熟稳定机器学习系统研发人员小组,因此企业的选择大多是将软件外包开发。这其中引发了两个实际的问题,一是信息管理系统开发人员与机器学习系统研发人员使用的编程语言不同,无法做到无缝内嵌;二是自然语言处理需要大量的训练数据,企业的数据由于种种原因无法提供给机器学习系统研发人员足够的训练数据。

因此,若要开发一个运用机器学习相关技术的企业级信息管理系统,对于其中内嵌的机器学习系统,必须解决上述的三个问题,方能使该信息管理系统正确稳定高效的运行。



技术实现要素:

本发明的目的在于克服现有技术存在的问题,提供一种内嵌式机器学习系统的软件体系结构设计方法,通过设计并实现一个多模块的软件体系结构,实现一个企业级信息管理系统中进行文本处理的自然语言处理机器学习系统。

为实现上述技术目的,达到上述技术效果,本发明通过以下技术方案实现:

一种内嵌式机器学习系统的软件体系结构设计方法,该方法在软件开发时,将整体的软件结构分为主调模块、算法i/o模块、算法接口模块、训练数据模块、模型配置模块、机器学习模块和可视化界面模块,其中:

主调模块为文本信息管理系统,该系统功能为管理文本信息,对于其中内嵌的机器学习系统,主调模块提供文本名与文本内容,并使用机器学习系统生成的结果进行文本信息管理的进一步操作,在主调模块中,其绝大部分的功能与内嵌的机器学习系统无关,可以和机器学习系统并行独立工作,与机器学习系统相关的工作仅为提供文本信息并启动机器学习系统,以及获取机器学习系统最终反馈的数据类;

算法i/o模块,实现主调模块使用机器学习系统时所进行的输入以及机器学习系统工作完成后对结果的获取和使用;

算法接口模块,实现机器学习系统具体分类识别、信息抽取以及配置文件管理功能的调用;

训练数据模块是机器学习算法所用的语料库的抽象,该机器学习算法所用的语料库为文本语料库,训练需要大量的文本语料,由于存储设备容量、拷贝速度、语料库的私有性等原因,机器学习算法研究人员不能获取到完整足量的语料库,因此,本发明中的体系结构将训练数据抽象成一个单独的模块,研发人员使用全体语料库的一个子集进行编写和测试,机器学习系统编写完成并内嵌到文本信息管理系统中后再将训练数据模块中的语料库子集更新成全体语料库;

模型配置模块,实现机器学习系统中生成的数据模型与配置文件的管理,管理形式为添加、删除、替换、导入与导出;

机器学习模块,实现具体的机器学习算法,算法的输入由算法i/o模块提供,算法使用的训练数据由训练数据模块提供,算法使用的相关用户配置文件由模型配置模块提供,算法的模型输出结果被模型配置模块获取,算法的分类抽取结果被算法i/o模块获取;

可视化界面模块,实现可视化的机器学习系统模型训练、配置管理以及样例测试。

进一步的,所述主调模块为文本信息管理系统,该系统管理文本信息,对于其中内嵌的机器学习系统,主调模块提供文本名与文本内容,并使用机器学习系统生成的结果进行文本信息管理的进一步操作,主调模块中和机器学习系统并行独立工作,所述主调模块为机器学习系统提供文本信息并启动机器学习系统、以及获取机器学习系统最终反馈的数据类。

进一步的,所述算法i/o模块为机器学习系统启动后的第一步工作,算法i/o模块获取主调模块提供的文件信息,将其处理为格式化数据并写入机器学习算法的输入接口,当机器学习算法完成后,结果写在机器学习算法的输出接口中,算法i/o模块读取机器学习算法输出接口中的格式化数据,并将其解析为实现约定的不同的数据对象序列,将数据对象序列反馈给主调模块。

进一步的,所述算法接口模块为调用机器学习系统中具体提供的多种方法,并定义相关数据类,算法接口模块中将调用机器学习系统抽象为一个对象,提供初始化对象、更换模型配置、执行分类抽取三个方法的接口,以便于实现主调模块中对机器学习系统调用逻辑的灵活需求。

进一步的,所述训练数据模块是机器学习算法所用的语料库的单独的抽象,该机器学习算法所用的语料库为文本语料库,采用全体语料库的一个子集进行编写和测试,机器学习系统编写完成并内嵌到文本信息管理系统中后再将训练数据模块中的语料库子集更新成全体语料库。

进一步的,所述模型配置模块提供对机器学习算法所需要用到和生成的模型配置文件的管理功能,所述模型配置模块管理的数据包含机器学习系统的文本分类模型与用户字典文件,模型配置模块管理方式为提供两种类型的接口,其一为面向算法接口模块的接口,其二为面向可视化界面模块的接口,提供的两种方式对文本分类模型与用户字典文件进行增删、修改、查看、生成四类操作。

进一步的,所述机器学习模块为该机器学习系统核心算法模块,该机器学习系统对文本信息进行分类和抽取关键信息,机器学习模块包括训练模型与分类抽取,机器学习模块面向算法接口模块仅提供分类抽取功能,机器学习模块运行所需的模型配置文件由算法接口模块中的模型配置管理功能独立完成,机器学习模块面向可视化界面模块提供训练模型功能与分类抽取功能,算法接口模块所使用的模型配置文件均由可视化界面模块调用机器学习模块的训练模型功能生成,而分类抽取功能则是允许用户在可视化界面模块对模型效果与抽取结果进行测试,得到直观的效果展示。

进一步的,所述可视化界面模块是内嵌式机器学习系统的可视化界面,非外层主调模块中信息管理系统的可视化界面,所述可视化界面模块提供配置文件的管理、机器学习模型的生成与测试、以及系统使用说明,编写的机器学习算法中的模型仅由全体语料库的子集生成,待机器学习系统开发完全并内嵌到文本信息管理系统中后,能够获取全体语料库的用户使用可视化界面模块独立生成完备的配置模型文件,将生成的完备配置模型文件由算法接口模块导入内嵌式机器学习系统中进行使用,以避免开发人员因故无法获取完整的巨量文本训练库所导致的机器学习系统效果不可预知性问题。

进一步的,将企业级的信息管理系统作为主系统,将内嵌式机器学习系统作为子系统,将主系统最终交付并拥有完整语料库的完全支配权的人作为系统用户,该方法的实现步骤如下:

步骤1.主系统开发人员与子系统开发人员进行商议和协定,其内容包括:

1)主系统使用的开发语言和子系统使用的开发语言;

2)子系统要完成的实际任务和输入输出;

3)主系统给子系统输入数据时的输入格式以及主系统调用子系统的调用方式;

4)子系统反馈给主系统的结果对象序列中该对象所属类的详细设计与属性的值和类型;

步骤2.主系统和子系统并行开发,主系统开发人员在需要用到子系统的返回结果时直接构造一个虚假的结果对象序列,以不影响主系统的逻辑和其它对应功能的测试为宜,子系统开发人员对照整体的软件结构分别编写主调模块、算法i/o模块、算法接口模块、训练数据模块、模型配置模块、机器学习模块和可视化界面模块的子系统,其中机器学习算法用到的训练数据集为系统用户提供的部分数据集;

步骤3.子系统编写完成后交付给主系统开发人员,主系统开发人员将子系统内嵌部署到主系统中,按照约定的调用方式替换步骤2中主系统开发人员直接构造的虚假结果对象序列;

步骤4.主系统初步开发完成后主系统开发人员进行实地部署测试时在系统用户处使用子系统中的可视化界面与系统用户的完整数据集进行模型训练,选择效果优异的模型配置文件并更新到主系统中,由于子系统提供了将外部模型配置文件导入系统中的方法,因此部署时的操作不会对主系统造成任何影响,待主系统开发完成并交付系统用户后,该内嵌式机器学习系统开发周期完成。

本发明的有益效果是:

(1)本发明提供一种成熟稳定的内嵌式机器学习系统的体系结构框架,应用此框架编写实现的机器学习系统可以很好的内嵌到信息管理系统中稳定工作,更重要的是,在本发明提供的软件体系结构下,信息管理系统与机器学习系统耦合度低,而各模块内部的内聚性高,在编码过程中二者可并行开发、独立调试;在发布过程中便捷易行,发布的软件兼容性好;在运行过程中二者独立工作,内部的问题不会影响到对方,提高了系统的稳定性。

(2)本发明提供的内嵌式机器学习系统的软件体系结构支持多语言并行开发,机器学习系统与信息管理系统仅通过文本数据相互关联,内嵌的机器学习系统对于信息管理系统仅为一个黑盒子,其中的实现方式与代码语言对于信息管理系统是未知的。

(3)本发明提供的内嵌式机器学习系统的软件体系结构针对训练数据进行了特别的抽象和处理,应用此框架就可以在少量的训练数据集上编写机器学习系统,编写完成后可进行延迟训练调试和获取实际高效的模型。

(4)本发明的应用范围较广,不限定开发程序时所使用的编程语言,而其应用环境为企业级信息管理系统进行文本信息处理的机器学习系统,该机器学习系统市场需求量大,代表性强,特征明显,本发明提供的软件体系结构在具体实现上十分灵活,可以很好的解决该应用环境下所遇到的主要问题。

附图说明

图1是本发明中内嵌式机器学习系统软件体系结构框架图;

图2是本发明中内嵌式机器学习系统软件体系结构内部数据流通情况图;

图3是本发明中各模块功能调用详情图。

具体实施方式

下面将参考附图并结合实施例,来详细说明本发明。

图1是本发明提出的一种内嵌式机器学习系统软件体系结构框架图。本发明中提出的软件体系结构共分为七个模块,分别为主调模块、算法i/o模块、算法接口模块、模型配置模块、机器学习模块、训练数据模块和可视化界面模块。其中主调模块、算法i/o模块以及算法接口模块负责的均为机器学习算法的准备工作,注重软件体系结构的调用逻辑,不解决实际文本处理的需求。而机器学习模块与模型配置模块为该机器学习系统的核心,其中机器学习模块为算法核心,模型配置模块为模型核心。可视化界面模块提供可视化界面利用机器学习系统的核心进行模型训练与效果测试,以获得合适的系统模型,而机器学习过程中需要的训练数据集由训练数据模块提供。最终内嵌入信息管理系统与其并发运行的机器学习系统仅留存主调模块、算法i/o模块、算法接口模块、模型配置模块、机器学习模块五个模块。

图2是本发明提出的一种内嵌式机器学习系统软件体系结构的内部数据流通情况。在本发明提出的软件体系结构中,各模块间的数据交互主要通过字符串或文本文件的形式进行。首先主调模块启动机器学习系统,将文本内容与文件名传递给算法i/o模块,算法i/o模块将输入的数据写入机器学习算法指定入口的文本文件input.txt中,然后调用算法接口模块中的方法执行机器学习算法的分类抽取。机器学习算法进行分类抽取需要输入文本信息与模型配置,文本信息从input.txt文件中读取,模型配置默认使用系统当前存储的模型文件与配置文件。如若需要更换系统当前存储的模型配置文件,可以事先调用算法接口模块中的方法将外部的模型配置文件导入到当前系统中。机器学习算法执行完成后将结果写入result.txt文件中,由算法接口文件获取分类抽取结果字符串,再由算法i/o模块进行字符串的解析,按照需求将结果解析为一个结果对象序列,该序列返回给主调模块进行进一步的使用和操作。在更换模型配置文件时需要通过算法接口模块导入外部的模型配置文件,该文件由可视化界面模块中用户进行相关点击操作获取并导出,可视化界面调用机器学习模块进行测试时获取其结果展示字符串以便用户查看当前模型配置下机器学习算法的实际工作效果。

图3是本发明提出的一种内嵌式机器学习系统软件体系结构中各模块功能调用详情。本发明将对机器学习系统的调用抽象成一个类,通过该类的实例化对象管理数据资源,完成文本信息的处理。该类共有六个接口函数,分别是负责初始化并接收主调模块提供的文本信息的初始化函数,负责写输入文件input.txt的writeinput函数,负责读取结果文件result.txt的readresult函数,负责调用机器学习算法的excute函数,负责将结果字符串解析成结果对象序列的analysis函数以及负责更改系统中模型配置文件的changeconfig函数。用户在可视化界面上进行模型训练与效果测试时通过可视化界面提供的诸多按钮和输入框进行推动,每个按钮对应单独的动作。可视化界面模块中通过管理语料库动作函数对语料库进行查看和管理,通过训练模型动作函数调用机器学习模块生成新的模型文件,通过分类抽取动作函数调用机器学习模块实现对当前模型效果的测试,通过导入导出模型动作函数完成对系统当前模型配置文件的打包导出和将其他时刻导出的系统模型配置文件导入到当前系统。

基于本发明中提出的七模块软件体系结构的内嵌式机器学习系统实现步骤如下所述。其中将本发明适用的企业级的信息管理系统简称为主系统,将本发明提出的内嵌式自然语言处理机器学习系统简称为子系统,将主系统最终交付并拥有完整语料库的完全支配权的人简称为系统用户,通过这三个简称明确并简化下述步骤说明。

步骤1.主系统开发人员与子系统开发人员进行商议和协定,其内容包括:

1)主系统使用的开发语言和子系统使用的开发语言;

2)子系统要完成的实际任务和输入输出;

3)主系统给子系统输入数据时的输入格式以及主系统调用子系统的调用方式;

4)子系统反馈给主系统的结果对象序列中该对象所属类的详细设计与属性的值和类型。

步骤2.主系统和子系统并行开发。主系统开发人员在需要用到子系统的返回结果时直接构造一个虚假的结果对象序列,不影响主系统的逻辑和其它功能的测试。子系统开发人员对照本发明中提出的软件体系结构分别编写这七个模块的子系统,其中机器学习算法用到的训练数据集为系统用户提供的部分数据集。

步骤3.子系统编写完成后交付给主系统开发人员,主系统开发人员将子系统内嵌部署到主系统中,按照约定的调用方式替换步骤2中主系统开发人员直接构造的虚假结果对象序列。

步骤4.主系统初步开发完成后主系统开发人员进行实地部署测试时在系统用户处使用子系统中的可视化界面与系统用户的完整数据集进行模型训练,选择效果优异的模型配置文件并更新到主系统中。由于子系统提供了将外部模型配置文件导入系统中的方法,因此部署时的操作不会对主系统造成任何影响。等到主系统开发完成并交付系统用户后,该内嵌式机器学习系统开发周期完成。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1