伍依依,張入通,婁亞軍,徐士鐸,張 超
(北京機械工業(yè)自動化研究所有限公司,北京 100120)
近幾年,制造業(yè)在工業(yè)4.0時代的影響下正在蓬勃發(fā)展,相關的制造合同數(shù)量猛增,所以對合同的合理高效管理是十分有必要的。目前對制造合同比較普遍的管理方式是根據(jù)雙方簽訂的紙質合同,人工手動編寫設備生產進度管理的Excel表格,這樣不僅降低了合同的有效利用率,也會增加平時工作的繁瑣程度,手動編寫的過程中也很容易出現(xiàn)錯誤和紕漏,所以傳統(tǒng)的合同管理方式顯然無法滿足現(xiàn)狀。
現(xiàn)如今,計算機技術被廣泛運用在各個行業(yè),并且國家大力倡導互聯(lián)網(wǎng)+的概念,在工業(yè)生產管理上也有其非常重要的作用,隨著時代的發(fā)展,技術也會不斷地革新創(chuàng)新,人們對工業(yè)自動化越來越好的要求及各種種類繁多的工程合同的出現(xiàn),讓傳統(tǒng)的制造合同管理系統(tǒng)開始向網(wǎng)絡化和自動化方向發(fā)展。Python在這之中就有著很廣泛的應用,Python語言是一種解釋型高級程序語言,支持面向對象編程設計,對動態(tài)數(shù)據(jù)類型的處理非常方便,有不少實用性較強的應用工具,而且有很多第三方的數(shù)據(jù)庫已經被研發(fā)出來?;谝陨咸攸c,加上其語法簡單易懂,類庫豐富多樣,應用在快速開發(fā)活動中非常方便,在當下是一種被廣泛運用的腳本語言[1]。
本文主要通過分析一些供應商加工制造合同,利用Python對加工制造合同里的關鍵信息進行提取,然后再自動生成相應的生產進度管理表格,初步實現(xiàn)合同的自動化管理。
Python語言是一種解釋型高級程序語言,能夠面向對象編程設計,支持處理動態(tài)數(shù)據(jù)類型,已經研發(fā)出很多第三方的數(shù)據(jù)庫和不少實用性較強的應用工具。由于其語法簡潔、類庫豐富,適用于快速開發(fā)活動,已經成為當下較為流行的一種腳本語言[2]。
Python的最大的優(yōu)勢之一是其具有豐富并且功能全面的庫,能夠跨平臺使用并且具備很好的兼容性。模塊是在代碼量變得相當大之后,為了將需要重復使用的有組織的代碼段放在一起,這部分代碼可以附加到現(xiàn)有程序中,附加的過程叫導入。接下來對需要用到的一些模塊進行介紹。
1)docx模塊
Docx模塊是在Python用來處理word文檔的模塊,其處理方式是面向對象的。Docx模塊將word文檔中的段落,格式,文本等都看作對象,能夠編寫word文檔,也可以導入word文檔,對文檔中進行處理。
2)re模塊
正則表達式是一個Python庫,也是一種邏輯公式,主要用來對字符串進行操作。在Python中導入re模塊,就可以通過正則表達式對字符串進行匹配。這是一個很實用的庫,和文檔相關的很多操作都需要用到它。
正則表達式就是用事先定義好的一些特定字符、及這些特定字符的組合,組成一個“規(guī)則字符串”,這個“規(guī)則字符串”用來表達對字符串的一種過濾邏輯。對文檔中的關鍵信息進行提取就需要用到re模塊中的相關代碼。
3)Pandas模塊
Pandas模塊是Python用于數(shù)據(jù)導入及整理的模塊,經常被用來對數(shù)據(jù)挖掘中的前期數(shù)據(jù)進行處理。Pandas是基于NumPy的一種工具,該工具是為解決數(shù)據(jù)分析任務而創(chuàng)建的。Pandas納入了大量庫和一些標準的數(shù)據(jù)模型,提供了高效地操作大型數(shù)據(jù)集所需的工具。同時Pandas還提供了表格的處理方式,它能夠對Excel表格進行讀取,也能對表格中的數(shù)據(jù)進行處理,為了生成生產加工監(jiān)測系統(tǒng)的表格就需要用到這個功能。
要實現(xiàn)整個功能需要克服兩個難點,一是如何在整個合同中只提取自己想要的信息出來,這需要用到正則表達式的匹配功能;二是如何設計并自動生成相應的設備生產管理表格,然后將文檔中的信息填寫進去?;诖?,為了實現(xiàn)整個功能包括了這三個部分:
1)確定好要提取的關鍵信息并進行匹配
2)確定好表格的格式
3)將word文檔中的表格內容提取并匹配到生成的表格中
基于上訴,整個實現(xiàn)過程如圖1的程序流程圖所示,具體步驟如下:
圖1 程序流程圖
1)先導入相關的工程合同,對之前確定好的關鍵信息進行正則表達式匹配;
2)遍歷整個word文檔提取關鍵信息;
3)依據(jù)設備生產進度管理的需求和實際情況,設計表格并利用正則表達式進行匹配;
4)生成一個字典用來存儲表格內容,然后讀取合同文檔中的相關設備表格,將信息一一對應填入字典中,最后生成所需要的表格。
在vs code平臺上通過Python語言,實現(xiàn)對制造合同的關鍵信息提取,并生成設備生產進度管理的表格,其主要包括以下功能模塊。
利用docx庫中對文檔的編輯功能,將相應的合同路徑導入,作為輸入。相關的代碼如下:
合同導入后根據(jù)需要確定好相應的關鍵信息,利用正則表達式中的匹配規(guī)則進行匹配,遍歷整個合同,提取關鍵信息,利用append函數(shù)將其添加到新列表中,然后輸出。部分相關代碼如下所示:
#匹配要提取的關鍵信息
關鍵信息提取完成之后需要根據(jù)具體的實際需求設計并生成設備生產管理表格,為了實現(xiàn)這個功能,需要用到Pandas模塊,Pandas模塊是Python用于數(shù)據(jù)導入及整理的模塊。部分相關代碼如下所示:
#設計表頭
接下來根據(jù)對實驗結果的分析,檢驗程序是否具有實用性和可靠性。首先需要檢驗的是關鍵信息的提取功能是否能夠實現(xiàn),在一份合同中最重要的就是合同名稱,甲方和乙方的信息,簽約的時間地點等,所以先就這些關鍵信息進行一個提取。選擇《合同-西南鋁氣墊爐前后配套設備開收卷機(浙江通力)》,合同的部分具體信息如圖2所示。
圖2 合同信息1
導入此合同后運行,得到圖3的結果,可以看到,按照規(guī)定提取出來的關鍵信息,比如制造名稱,委托方和承制方等信息和word文檔里是完全匹配的,而且能夠根據(jù)需求做出相應的改變,保證了其準確性和靈活性。
圖3 信息提取結果
圖4合同信息2是這份合同中承制方和供貨方所負責的一些設備情況,通過表格可以看到有圖號,設備名稱,數(shù)量等信息。
圖4 合同信息2
在這份合同中委托方負責供貨,承制方負責制造,裝配,負責安裝,售后服務等。所以對生成的表格的要求不僅僅是能夠將word文檔中的信息提取出來,還需要添加表頭的內容,供承制方后期填寫,讓表格實現(xiàn)生產加工監(jiān)測的功能。觀察圖5,發(fā)現(xiàn)表格能夠滿足上訴提到的要求,通過程序將各個設備的信息調取出來,同時表頭部分還包含了設備的其他信息,供承制方更新設備之后的狀態(tài),讓表格的部分也根據(jù)實際的生產設備管理要求進行了自動匹配。
圖5 表格生成結果
本文針對目前工程項目中生產加工監(jiān)測中出現(xiàn)的繁瑣情況,希望能夠通過工程合同做一個連接,對合同的信息進行有選擇的提取和有效利用,減少加工監(jiān)測管理上面臨的不便。所以利用Python中的相關知識,設計這樣一個既能夠對工程合同進行信息提取又能夠生成對設備生產加工進度進行監(jiān)測的系統(tǒng),對未來的工程合同管理帶來非常大的便利,將自動化辦公的思想也沿用到生產加工中設備的管理上。這樣不僅可以節(jié)約人力成本和節(jié)省時間,也能夠減少紕漏,而且又能夠根據(jù)需求進行個性化的改變和設計,應用范圍廣,實用性強。