[发明专利]将特征计算脚本转换成底层程序代码的方法和设备有效
申请号: | 201910782987.X | 申请日: | 2019-08-23 |
公开(公告)号: | CN110489128B | 公开(公告)日: | 2023-08-29 |
发明(设计)人: | 肖羽;陈靓 | 申请(专利权)人: | 第四范式(北京)技术有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 北京铭硕知识产权代理有限公司 11286 | 代理人: | 董钢;韩明星 |
地址: | 100085 北京市海淀区上*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 特征 计算 脚本 转换 底层 程序代码 方法 设备 | ||
公开了一种将特征计算脚本转换成底层程序代码的方法和设备,其中,所述方法包括:解析特征计算脚本以生成至少一个声明组;基于所述至少一个声明组生成多个声明块,其中,每个声明块中的语句执行异常不影响同级声明块中的语句执行;基于所述多个声明块生成底层程序代码。根据本公开,可提高被转换成的底层程序代码的执行成功率。
技术领域
本公开总体说来涉及机器学习领域,更具体地讲,涉及一种将特征计算脚本转换成底层程序代码的方法和设备。
背景技术
在机器学习过程中,在进行训练之前,需要实现基于原始数据获得特征的过程。这样的过程可被称为特征工程,特征工程是机器学习过程的重要组成部分。
存在各种各样的机器学习框架,这些机器学习框架中的多数机器学习框架专注于机器学习的训练以进行建模,少数机器学习框架专注于特征工程,但是特征工程的功能并不完善。
现有的特征工程框架中,需要将用户编写的上层的特征计算脚本转换为底层程序代码,再执行该底层程序代码完成特征计算。当执行被转换成的底层程序代码的过程中,需要顺序执行底层程序代码中的语句,然而,在顺序执行的过程中有任意一条语句的执行发生异常时,执行就会停止,从而使得异常执行语句之后的所有语句都不会被执行,得不到相应的特征计算输出结果,特征计算效率低。
发明内容
本公开的示例性实施例在于提供一种将特征计算脚本转换成底层程序代码的方法,其中,通过容错机制使得转换成的通过语句表示的底层程序代码的执行成功率提高,相应的,特征计算脚本的执行成功率也提高。
根据本公开的示例性实施例,提供一种将特征计算脚本转换成底层程序代码的方法,其中,所述方法包括:解析特征计算脚本以生成至少一个声明组;基于所述至少一个声明组生成多个声明块,其中,每个声明块中的语句执行异常不影响同级声明块中的语句执行;基于所述多个声明块生成底层程序代码。
可选的,所述基于所述至少一个声明组生成多个声明块的步骤包括:对于所述至少一个声明组中的每个声明组,获取包含该声明组中的通过语句表示的声明的列表,根据所述列表中的语句的依赖关系构建有向无环图(DAG),其中,有向无环图中的节点表示变量,有向无环图中的有向边表示计算逻辑和计算逻辑的顺序;基于所述有向无环图构建声明块,其中,属于不同声明块的节点相互独立,属于不同声明块的计算逻辑相互独立,同一声明块之中的节点之间、计算逻辑之间和/或节点和计算逻辑之间存在依赖关系。
可选的,所述基于所述有向无环图构建声明块的步骤包括:从所述有向无环图中去除该有向无环图的根节点和与该根节点关联的边,并取得通过去除而产生的第一子图;从所述第一子图中能够构成有向无环图且节点数量大于或等于2的子图中去除根节点和与该根节点关联的边,并取得通过去除而产生的第二子图;重复执行从能够构成有向无环图且节点数量大于或等于2的子图中去除根节点和边的步骤,直到通过去除而产生的子图中每个子图的节点数量小于或等于2为止;基于通过去除而产生的子图,构建声明块,其中,同级声明块包括基于同一有向无环图在去除根节点之后的剩余部分构建的多个声明块。
可选的,所述基于所述有向无环图构建声明块的步骤还包括:根据有向无环图中的节点的有向边的方向确定节点是否为能够作为根节点,其中,与能够作为根节点的节点连接的有向边的方向指向除了该节点以外的节点,其中,当存在两个或更多个能够作为根节点的节点时,根据与节点对应的特征计算脚本的逻辑顺序,将所述两个或更多个节点中的一个确定为根节点。
可选的,所述基于所述多个声明块生成底层程序代码的步骤包括:每当根节点被去除时,根据与被去除的根节点对应的声明,生成代码;每当去除根节点后获得由单个节点组成或包括两个节点的子图时,根据与由单个节点组成的子图或包括两个节点的子图的对应声明,生成代码,其中,与先被去除的节点对应的代码的顺序排在与后被去除的节点对应代码之前,与先产生的子图对应的代码的顺序排在与后产生的子图对应的代码的之前,与同级声明块中的每个声明块对应的代码的顺序根据特征计算脚本的逻辑顺序而确定。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于第四范式(北京)技术有限公司,未经第四范式(北京)技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910782987.X/2.html,转载请声明来源钻瓜专利网。