面向工程合同的信息自动提取与管理系统研究

2021-02-24 10:13伍依依张入通娄亚军徐士铎
制造业自动化 2021年12期
关键词:表格文档关键

伍依依,张入通,娄亚军,徐士铎,张 超

(北京机械工业自动化研究所有限公司,北京 100120)

0 引言

近几年,制造业在工业4.0时代的影响下正在蓬勃发展,相关的制造合同数量猛增,所以对合同的合理高效管理是十分有必要的。目前对制造合同比较普遍的管理方式是根据双方签订的纸质合同,人工手动编写设备生产进度管理的Excel表格,这样不仅降低了合同的有效利用率,也会增加平时工作的繁琐程度,手动编写的过程中也很容易出现错误和纰漏,所以传统的合同管理方式显然无法满足现状。

现如今,计算机技术被广泛运用在各个行业,并且国家大力倡导互联网+的概念,在工业生产管理上也有其非常重要的作用,随着时代的发展,技术也会不断地革新创新,人们对工业自动化越来越好的要求及各种种类繁多的工程合同的出现,让传统的制造合同管理系统开始向网络化和自动化方向发展。Python在这之中就有着很广泛的应用,Python语言是一种解释型高级程序语言,支持面向对象编程设计,对动态数据类型的处理非常方便,有不少实用性较强的应用工具,而且有很多第三方的数据库已经被研发出来。基于以上特点,加上其语法简单易懂,类库丰富多样,应用在快速开发活动中非常方便,在当下是一种被广泛运用的脚本语言[1]。

本文主要通过分析一些供应商加工制造合同,利用Python对加工制造合同里的关键信息进行提取,然后再自动生成相应的生产进度管理表格,初步实现合同的自动化管理。

1 设计思路

1.1 Python的介绍

Python语言是一种解释型高级程序语言,能够面向对象编程设计,支持处理动态数据类型,已经研发出很多第三方的数据库和不少实用性较强的应用工具。由于其语法简洁、类库丰富,适用于快速开发活动,已经成为当下较为流行的一种脚本语言[2]。

1.2 常用模块介绍

Python的最大的优势之一是其具有丰富并且功能全面的库,能够跨平台使用并且具备很好的兼容性。模块是在代码量变得相当大之后,为了将需要重复使用的有组织的代码段放在一起,这部分代码可以附加到现有程序中,附加的过程叫导入。接下来对需要用到的一些模块进行介绍。

1)docx模块

Docx模块是在Python用来处理word文档的模块,其处理方式是面向对象的。Docx模块将word文档中的段落,格式,文本等都看作对象,能够编写word文档,也可以导入word文档,对文档中进行处理。

2)re模块

正则表达式是一个Python库,也是一种逻辑公式,主要用来对字符串进行操作。在Python中导入re模块,就可以通过正则表达式对字符串进行匹配。这是一个很实用的库,和文档相关的很多操作都需要用到它。

正则表达式就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。对文档中的关键信息进行提取就需要用到re模块中的相关代码。

3)Pandas模块

Pandas模块是Python用于数据导入及整理的模块,经常被用来对数据挖掘中的前期数据进行处理。Pandas是基于NumPy的一种工具,该工具是为解决数据分析任务而创建的。Pandas纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。同时Pandas还提供了表格的处理方式,它能够对Excel表格进行读取,也能对表格中的数据进行处理,为了生成生产加工监测系统的表格就需要用到这个功能。

1.3 程序流程图

要实现整个功能需要克服两个难点,一是如何在整个合同中只提取自己想要的信息出来,这需要用到正则表达式的匹配功能;二是如何设计并自动生成相应的设备生产管理表格,然后将文档中的信息填写进去。基于此,为了实现整个功能包括了这三个部分:

1)确定好要提取的关键信息并进行匹配

2)确定好表格的格式

3)将word文档中的表格内容提取并匹配到生成的表格中

基于上诉,整个实现过程如图1的程序流程图所示,具体步骤如下:

图1 程序流程图

1)先导入相关的工程合同,对之前确定好的关键信息进行正则表达式匹配;

2)遍历整个word文档提取关键信息;

3)依据设备生产进度管理的需求和实际情况,设计表格并利用正则表达式进行匹配;

4)生成一个字典用来存储表格内容,然后读取合同文档中的相关设备表格,将信息一一对应填入字典中,最后生成所需要的表格。

2 具体设计过程

在vs code平台上通过Python语言,实现对制造合同的关键信息提取,并生成设备生产进度管理的表格,其主要包括以下功能模块。

2.1 导入合同

利用docx库中对文档的编辑功能,将相应的合同路径导入,作为输入。相关的代码如下:

2.2 关键信息提取模块

合同导入后根据需要确定好相应的关键信息,利用正则表达式中的匹配规则进行匹配,遍历整个合同,提取关键信息,利用append函数将其添加到新列表中,然后输出。部分相关代码如下所示:

#匹配要提取的关键信息

2.3 表格设计和生成模块

关键信息提取完成之后需要根据具体的实际需求设计并生成设备生产管理表格,为了实现这个功能,需要用到Pandas模块,Pandas模块是Python用于数据导入及整理的模块。部分相关代码如下所示:

#设计表头

3 应用实例

接下来根据对实验结果的分析,检验程序是否具有实用性和可靠性。首先需要检验的是关键信息的提取功能是否能够实现,在一份合同中最重要的就是合同名称,甲方和乙方的信息,签约的时间地点等,所以先就这些关键信息进行一个提取。选择《合同-西南铝气垫炉前后配套设备开收卷机(浙江通力)》,合同的部分具体信息如图2所示。

图2 合同信息1

导入此合同后运行,得到图3的结果,可以看到,按照规定提取出来的关键信息,比如制造名称,委托方和承制方等信息和word文档里是完全匹配的,而且能够根据需求做出相应的改变,保证了其准确性和灵活性。

图3 信息提取结果

图4合同信息2是这份合同中承制方和供货方所负责的一些设备情况,通过表格可以看到有图号,设备名称,数量等信息。

图4 合同信息2

在这份合同中委托方负责供货,承制方负责制造,装配,负责安装,售后服务等。所以对生成的表格的要求不仅仅是能够将word文档中的信息提取出来,还需要添加表头的内容,供承制方后期填写,让表格实现生产加工监测的功能。观察图5,发现表格能够满足上诉提到的要求,通过程序将各个设备的信息调取出来,同时表头部分还包含了设备的其他信息,供承制方更新设备之后的状态,让表格的部分也根据实际的生产设备管理要求进行了自动匹配。

图5 表格生成结果

4 结语

本文针对目前工程项目中生产加工监测中出现的繁琐情况,希望能够通过工程合同做一个连接,对合同的信息进行有选择的提取和有效利用,减少加工监测管理上面临的不便。所以利用Python中的相关知识,设计这样一个既能够对工程合同进行信息提取又能够生成对设备生产加工进度进行监测的系统,对未来的工程合同管理带来非常大的便利,将自动化办公的思想也沿用到生产加工中设备的管理上。这样不仅可以节约人力成本和节省时间,也能够减少纰漏,而且又能够根据需求进行个性化的改变和设计,应用范围广,实用性强。

猜你喜欢
表格文档关键
《现代临床医学》来稿表格要求
硝酸甘油,用对是关键
浅谈Matlab与Word文档的应用接口
《现代临床医学》来稿表格要求
高考考好是关键
有人一声不吭向你扔了个文档
统计表格的要求
基于RI码计算的Word复制文档鉴别
Persistence of the reproductive toxicity of chlorpiryphos-ethyl in male Wistar rat
本刊表格的要求