亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Python的高校電子文檔管理系統(tǒng)①

        2021-04-23 13:00:02
        計算機系統(tǒng)應用 2021年4期
        關鍵詞:文檔方法模型

        黃 昇

        (上海旅游高等??茖W校 設備處,上海 201418)

        隨著高校信息化建設的高速發(fā)展,越來越多的電子文檔出現(xiàn)在日常的工作中,PDF 作為電子文檔歸檔的首選格式,在文件格式的保存完整性方面和平臺兼容性方面有顯著的優(yōu)勢[1].本電子文檔歸檔管理系統(tǒng)的研發(fā)主旨是將采購管理平臺的文檔管理與檔案歸檔管理過程合并成一個整體,解決電子文檔流轉(zhuǎn)過程中信息化管理缺失的情況,同時提出一種對電子文檔元數(shù)據(jù)自動提取來代替?zhèn)鹘y(tǒng)的手工提取元數(shù)據(jù),并且建立索引庫,為大數(shù)據(jù)分析奠定了基礎,同時為學校今后的工作決策提供依據(jù).

        國內(nèi)對元數(shù)據(jù)提取的相關探索起步較晚,主要研究方向也集中在基于正則表達式和基于規(guī)則的元數(shù)據(jù)提取的相關研究[2–6].2001年賀亞鋒首次將元數(shù)據(jù)提取的相關研究帶入到中國[7],主要對兩種常用的基于網(wǎng)站的元數(shù)據(jù)的自動生成進行了介紹,并對ROADS 元數(shù)據(jù)編輯器和MeatWeb 元數(shù)據(jù)生成器做的使用和原理進行了深入的闡釋[8,9].

        2004年,王守芳等提出了如何從HTML 文件中提取元數(shù)據(jù)的方案.該方案主要是基于規(guī)則模板,通過對HTML文檔進行分詞,配合使用歸約算法實現(xiàn)元數(shù)據(jù)的自動提取[10].該方法雖然對元數(shù)據(jù)提取的準確性卻并不太高,但基本可以實現(xiàn)HTML 文檔元數(shù)據(jù)的自動提取.

        2007年,于江德等首次將條件隨機場應用在中文論文的元數(shù)據(jù)提取上,該方法主要通過利用論文中換行符、回車符等標志性符號對論文內(nèi)容進行分割,然后應用條件隨機場對分割內(nèi)容進行元數(shù)據(jù)抽取[11,12].該方法對于學術論文的論文頭中的元數(shù)據(jù)的提取具有比較高的準確度,可以高達90%,但是該方法也局限于論文的頭部進行元數(shù)據(jù)的提取操作.

        2017年,杜秋霞等為了地名文化遺產(chǎn)的保護將隱馬爾可夫模型應用在提取文獻中的地名元數(shù)據(jù)上[13].該方法主要通過對電子文檔的地名關鍵詞的標注,然后對文本進行分割,進而對元數(shù)據(jù)進行提取.該方法可以對文獻中的地名進行比較細粒度的抽取,相比傳統(tǒng)地名提取的準確度明顯提升,但該方法卻無法對消失的地名準確的進行抽取.

        通過閱讀相關的文獻,研究對比目前流行提取PDF元數(shù)據(jù)的各種方式,結(jié)合實際需求提出一種最適合本課題的提取方法.通過對Flask 框架的學習,以模型驅(qū)動工程的思想設計實現(xiàn)一款基于Python的能夠自動、高效、準確地提取PDF中元數(shù)據(jù)的電子文檔歸檔管理系統(tǒng).

        1 系統(tǒng)需求分析

        目前線下歸檔流程仍舊是文檔在各部門之間通過復印和填寫文檔屬性表格資料的方式傳遞.職能部門為執(zhí)行科研項目建立文檔庫,將其他各類格式的電子文檔和實體文檔轉(zhuǎn)換或掃描成PDF 格式保存,同時在項目執(zhí)行過程中不斷更新該文檔庫,項目完成后發(fā)起歸檔任務將數(shù)據(jù)遷移至檔案部門審核,然后根據(jù)項目分類存入對應的檔案系統(tǒng)中[14–16].期間需要經(jīng)歷很多繁瑣的流程,而且還有諸多弊端:(1)項目龐大,涉及的供應商有多家,文檔的完整性無法保證;(2)項目執(zhí)行過程只有職能部門參與其中,對歸檔工作沒有一個過程把控的機制,檔案部門只是在歸檔任務發(fā)起才參與進來;(3)歸檔任務通常集中在年末,會積壓大量的資料,這就勢必在文檔流轉(zhuǎn)審核過程中產(chǎn)生錯誤和審核不嚴格的情況.

        因此,需要將歸檔管理功能一并納入一站式采購平臺且做進一步的完善.(1)增加文檔數(shù)據(jù)導入功能,保證項目執(zhí)行期間文檔實時保存;(2)增加監(jiān)督審核機制,保證上傳電子文檔的準確性,避免項目后期返工的情況;(3)增加電子文檔元數(shù)據(jù)提取功能,解決目前針對海量數(shù)據(jù)缺乏大數(shù)據(jù)分析的情況.這樣電子文檔管理和歸檔管理就涵蓋了整個文檔生命周期,如圖1所示.

        圖1 文檔生命周期

        2 系統(tǒng)概要設計

        2.1 系統(tǒng)基本思想

        (1)系統(tǒng)以形成高校一體化的信息高度集成為基準,設計標準數(shù)據(jù)接口防止信息“孤島”的產(chǎn)生,做到新系統(tǒng)與一站式采購管理平臺的無縫結(jié)合[17–19].

        (2)出于對安全性的考慮,系統(tǒng)對數(shù)據(jù)庫管理要采取必要的定期自動數(shù)據(jù)備份、防災預案和數(shù)據(jù)恢復等措施;在數(shù)據(jù)傳輸方面要充分利用校園數(shù)據(jù)交互中心的標準接口,確保系統(tǒng)數(shù)據(jù)的安全性、可靠性和一致性[20];對所有用戶的權限必須要有有效的管控機制(如:歸檔角色、審批權限).

        (3)設計階段充分考慮后期需求的變化,系統(tǒng)后臺配置應具備靈活性,例如需要增加新的文檔屬性項時只要通過系統(tǒng)后臺配置即可,無需修改系統(tǒng)程序和數(shù)據(jù)結(jié)構(gòu).

        2.2 系統(tǒng)功能設計

        根據(jù)需求分析和設計思路可以得到系統(tǒng)的用例圖,如圖2所示,將本系統(tǒng)分為項目文檔整理、檢索與統(tǒng)計、移交接收管理和系統(tǒng)管理4個功能區(qū).

        圖2 歸檔系統(tǒng)用例圖

        (1)“項目文檔整理”包含6 項子功能:文檔導入(自動導入、人工錄入、本地導入),文檔補充,項目信息補錄,刪除文檔,文檔格式轉(zhuǎn)換,文檔元數(shù)據(jù)提取.

        (2)“檢索與統(tǒng)計”包含4 項子功能:歸檔任務進度查詢,電子文檔查詢,數(shù)據(jù)統(tǒng)計,報表管理(包含模板管理).

        (3)“移交接收管理”包含3 項子功能:預審,資料移交審核,歸檔內(nèi)容審核.

        (4)“系統(tǒng)管理”包含3 項子功能:用戶和權限配置,文件擴展屬性管理,各類標準接口配置.

        2.3 數(shù)據(jù)庫設計

        在大數(shù)據(jù)背景下,要求應用系統(tǒng)具有高性能、弱事務的特性,因此數(shù)據(jù)結(jié)構(gòu)需要以橫向擴展的方式進行分布式存儲,數(shù)據(jù)模式多元化,數(shù)據(jù)相對獨立存在.通過功能業(yè)務分析電子文檔歸檔系統(tǒng)并非事務性系統(tǒng),為了使本系統(tǒng)在擴展性、并發(fā)處理和讀/寫方面更有優(yōu)勢,而且需要考慮到系統(tǒng)后期的升級與功能擴展,摒棄使用傳統(tǒng)關系數(shù)據(jù)庫,采用MongoDB 半結(jié)構(gòu)化的非關系型數(shù)據(jù)庫,它有著分布式的存儲架構(gòu),這樣數(shù)據(jù)之間分散存儲更容易擴展,數(shù)據(jù)庫不需要事先定義數(shù)據(jù)字段,可以隨時自定義寫入數(shù)據(jù)的格式.NoSQL 來處理大量多元化數(shù)據(jù)存儲運算與高并發(fā)訪問有更顯著的效果[21–23].數(shù)據(jù)庫采用1 主節(jié)點+1 副節(jié)點+1 仲裁節(jié)點的基本架構(gòu),以減輕數(shù)據(jù)服務器的訪問壓力,同時提升容災能力,如圖3所示.

        圖3 數(shù)據(jù)庫存儲架構(gòu)

        3 系統(tǒng)對象模型的建立

        3.1 業(yè)務邏輯分析

        通過對實際業(yè)務進行系統(tǒng)建模更有利于把握系統(tǒng)的整體格局,在更高的抽象水平上考慮系統(tǒng)的設計,而不是程序編碼,這樣可以降低前期出錯率,縮短系統(tǒng)實現(xiàn)的周期[24,25].由于篇幅有限僅以文檔遷移導入為例,其包括的主要功能:文檔鎖定,項目移交接收,文檔信息補充,本地導入,具體業(yè)務邏輯如表1所示.

        表1 文檔遷移導入主要業(yè)務邏輯

        3.2 類定義與類間關系

        根據(jù)模型驅(qū)動工程的思想方法,首先建立系統(tǒng)的對象模型,接著通過對象模型建立系統(tǒng)類集,并對每個類都定義屬性和操作方法,如表2所示.

        (1)ModelManager 屬于EJB 類,封裝的組件為前臺與服務端的交互提供數(shù)據(jù)訪問接口.

        (2)公共類(ConDefiner),它主要封裝了基本查詢、第三方插件調(diào)用和翻頁等方法,前臺只需要實例化這個類就能繼承并使用.

        (3)對象抽象類:將實體類AmObject 類作為系統(tǒng)Model 類的基類,Model 類就是把數(shù)據(jù)庫的字段映射為各類中各個對象的屬性,為模型操作類提供數(shù)據(jù)來源.

        (4)數(shù)據(jù)操作抽象類:將AmObjectDAO 類作為數(shù)據(jù)操作類的基類,除了從父類AmObject 繼承的一些通用對象數(shù)據(jù)操作,還自定義特殊的數(shù)據(jù)對象操作方法.如圖4所示.

        3.3 數(shù)據(jù)操作類的邏輯實現(xiàn)

        利用UML 序列圖能描述對象間的交互和消息傳遞順序的特性,完成系統(tǒng)核心功能模塊對象間的輸入輸出.以文檔遷移導入、文檔數(shù)據(jù)補充、本地導入和移交接收的邏輯實現(xiàn)為例.

        表2 整個系統(tǒng)的類定義集合(類集)

        文檔遷移導入設計思路:根據(jù)前臺應用操作通過EJB 類調(diào)用文件模型操作類的具體方法,數(shù)據(jù)庫返回對應的項目列表.對項目列表內(nèi)的項目文件進行鎖定操作,調(diào)取文件模型操作類的Lock()方法.前臺應用根據(jù)界面操作選擇鎖定后的項目,調(diào)取文件模型操作類的Move()遷移方法,對項目列表內(nèi)的對象遷移至歸檔任務庫,如果遷移未成功的文件仍保存在項目資料庫,文檔遷移導入模塊序列圖如圖5所示.

        數(shù)據(jù)補錄的設計思想:前臺應用通過EJB 層調(diào)取文件模型操作類的ReInput()方法,同時利用對象模型類顯示對應的操作界面,并寫入到數(shù)據(jù)庫.本地導入的設計思想:前臺應用通過EJB 層調(diào)取文件模型操作類的LocalImport()方法,本地導入數(shù)據(jù)直接寫入歸檔任務庫.移交接收的設計思想:前臺應用通過EJB 層驗證用戶身份權限,同時調(diào)取歸檔任務操作類的Check()方法,如果操作成功則返回審批意見信息并寫入歸檔任務庫,等待后續(xù)的歸檔完成操作,否則返回駁回信息并告知原因.

        最后通過使用UML 建模工具IBM Rational Architect繪制系統(tǒng)主要功能模塊的時序圖和類圖,有助于完成后續(xù)系統(tǒng)框架設計和編碼工作.

        圖4 模型數(shù)據(jù)操作類中各類間的繼承關系

        圖5 文檔遷移導入時序圖

        4 系統(tǒng)核心功能實現(xiàn)

        4.1 系統(tǒng)框架設計

        目前基于Python的Web 開發(fā)的框架有很多,例如:Flask、Django和Web2Py 等.Django 如同Java的EJB (Enterprise+JavaBeans+JavaEE 服務器端組件模型)多被用于大型網(wǎng)站的開發(fā),而且所有資源每次都要全部加載,造成一定資源的浪費.對于大多數(shù)的小型網(wǎng)站的開發(fā),Web2Py的管理接口沒有權限,沒有內(nèi)建的單元測試,不方便系統(tǒng)的調(diào)試.Flask的優(yōu)點是保持代碼簡潔且具有很強的擴展性和兼容性,通過框架后臺的自由配置,可以使歸檔管理系統(tǒng)支持表單驗證、權限判斷、數(shù)據(jù)庫操作等基本功能,更符合本系統(tǒng)的實際需求[26,27].

        本系統(tǒng)項目歸檔操作,元數(shù)據(jù)提取和審核管理作為核心功能模塊,數(shù)據(jù)傳輸/轉(zhuǎn)換接口則作為與一站式采購管理平臺及其他信息系統(tǒng)間聯(lián)系的橋梁,如圖6所示.利用Flask 框架的核心庫Werkzeug的Cookies和Session 組件解決多個用戶快速響應客戶端推送過來的訪問請求,提高用戶訪問速度.同時,系統(tǒng)構(gòu)建HTML頁面和數(shù)據(jù)綁定模式,使用knockout.js (一個基于MVVM模式的JavaScript 庫),通過將UI和基礎JavaScript 模型綁定,做到模型和UI 同步更新.通過調(diào)用Jinja2 提高系統(tǒng)安全,將變量名中含HTML 自動轉(zhuǎn)義,但如果是安全的變量名則利用safe 過濾器標記為安全,這樣能夠很好控制外部的腳本攻擊,而且也避免全部轉(zhuǎn)義所帶來的資源占用.

        圖6 歸檔系統(tǒng)架構(gòu)圖

        4.2 元數(shù)據(jù)提取模塊設計實現(xiàn)

        對PDF 文檔進行數(shù)據(jù)提取的方法有很多,比如使用OCR 文字識別軟件對PDF 文檔中的關鍵信息進行提取[28],利用Adobe Acrobat 所提供的接口編寫Plug-in程序?qū)崿F(xiàn)對PDF 元數(shù)據(jù)提取[29],或者Adobe Acrobat X Pro 自帶的工具對頁面文本進行識別提取[30].但這些方法對PDF 文檔的操作太過于繁瑣,后續(xù)還要人工對所提取的元數(shù)據(jù)做進一步處理,故只適用于處理少量文檔的情況,對于體量龐大的歸檔文件元數(shù)據(jù)提取則不合適.目前比較流行的做法是采取調(diào)用已有的PDF 類庫對大量文檔進行批量操作,基于Java 類庫比較常用的兩種操作是iText和PDFBox.

        iText是sourceforge的一個開源項目,通過iText 不僅可以生成PDF 或rtf的文檔,也可以將XML、HTML 文件轉(zhuǎn)化為PDF 文件[31],但iText在提取元數(shù)據(jù)時只能先將PDF 轉(zhuǎn)換為純文本后進行文本提取,這樣PDF 元數(shù)據(jù)的提取不準確.而且itextpdf 類本身并不支持中文,需要借助第三方jar (iTextAsian.jar)來實現(xiàn),有部分版本升級后還需要更改中文包的名稱和存放路徑才能正常使用.

        Apache PDFBox是支持操作PDF的開源工具庫[32–35].PDFBox 庫提供一個特殊的對象,該方法涉及Lucence的搜索引擎庫,LucencePDFDocument.getDocument()方法將指定PDF 文檔,提取其內(nèi)容(包含作者信息和關鍵詞等元數(shù)據(jù))并創(chuàng)建一個Lucence 文檔對象,這樣添加到Lucence 索引中的這些元數(shù)據(jù)方便進行跟蹤,但由于Lucence 創(chuàng)建的索引只支持文本索引,而且創(chuàng)建全文索引也消耗大量資源.

        PyPDF2是基于Python 開發(fā)的函數(shù)庫,它提供對PDF 進行提取元數(shù)據(jù)和圖片、拆分或合并等基本操作,同時還能編寫腳本完成對PDF 文檔的批量操作,PyPDF2 包可在任何Python 平臺上運行,而且不依賴于其他外部庫的配合.它可以完全在StringIO 對象而不是文件流上工作,允許在內(nèi)存中進行PDF 操作提高執(zhí)行效率,而且新版本PyPDF4 功能更趨于完善,相對比較前兩種PDF 元數(shù)據(jù)提取的方式,此方法更符合本系統(tǒng)的要求,綜上所述,因此決定使用基于 Python的PyPDF2 來解決PDF 元數(shù)據(jù)提取的功能.

        首先,通過pig install pycharm PyPDF2 安裝此模塊“PyPDF2”.然后導入模塊“import PyPDF2”和“import sys”,通過定義一個變量,將PDF 文件路徑賦值給變量.調(diào)用open()用“rb”二進制方式讀取文件,讀取的內(nèi)容傳給PyPDF2.PdfFileReader(),初始化一個PdfFileReader對象.利用PdfFileReader 對象的getDocumentInfo()方法得到PDF 文件元數(shù)據(jù),接著利用for 語句遍歷字典的鍵值對.此時docInfo的實例包含了大部分信息,可以使用這些屬性從文檔中獲取所需的其余元數(shù)據(jù),將這些數(shù)據(jù)存放至數(shù)據(jù)庫以備將來使用.嘗試導入單個PDF文檔驗證程序的可行性和元數(shù)據(jù)提取準確度,結(jié)果如圖7所示.最后,添加OptionParser 方法使腳本只解析我指定的文件元數(shù)據(jù),同時完善代碼將提取到的元數(shù)據(jù)按一定的格式顯示,部分代碼如下所示:

        def main():

        parser=optparse.OptionParser('usage %prog + -F')

        parser.add_option('-F',dest='filename',type='string',help='specify PDF file name')(options,args)=parser.parse_args()

        fileName=options.filename

        if fileName==None:

        print(parser.usage)

        exit(0)

        else:

        printMeta(fileName)

        if __name__=='__main__':

        main()

        本應用通過校園身份統(tǒng)一認證系統(tǒng)驗證才可登錄如圖8所示,登錄后根據(jù)用戶權限顯示不同的首頁界面,如圖9所示為具有文檔審核權限的用戶.

        圖7 提取PDF 元數(shù)據(jù)

        圖8 登陸頁面

        圖9 檔案審批用戶首頁

        5 結(jié)束語

        針對目前學校電子文檔管理和歸檔管理的現(xiàn)狀,以及整個電子文件生命周期的深入分析,提出了對現(xiàn)有一站式采購管理平臺進一步完善的設計方案.本系統(tǒng)遵循模型驅(qū)動工程的研發(fā)過程,從需求分析、系統(tǒng)設計、系統(tǒng)建模和核心功能邏輯設計本文做了詳細介紹.此方案為全校提供了一個功能完整,數(shù)據(jù)安全,高效,順暢的一體化歸檔平臺,為解決學校歸檔業(yè)務全部流程信息化的最終目的打下了基礎.

        下一階段研究方向,對系統(tǒng)的幾個方面進行改進:(1)提高PDF 元數(shù)據(jù)提取技術的精準度,目前的元數(shù)據(jù)的提取不夠全面,不利于資源搜索的效率,需要進一步優(yōu)化相關算法.(2)文檔轉(zhuǎn)換要增加OFD 格式,OFD 標準是我國2016年自主研發(fā)的版式文件格式,現(xiàn)在還在大力推廣中,今后很有可能替代PDF 成為我國電子文檔歸檔標準格式.(3)進一步提升本系統(tǒng)響應時間、吞吐率、并發(fā)用戶數(shù)等方面的性能.

        猜你喜歡
        文檔方法模型
        一半模型
        有人一聲不吭向你扔了個文檔
        重要模型『一線三等角』
        重尾非線性自回歸模型自加權M-估計的漸近分布
        基于RI碼計算的Word復制文檔鑒別
        可能是方法不對
        3D打印中的模型分割與打包
        用對方法才能瘦
        Coco薇(2016年2期)2016-03-22 02:42:52
        Persistence of the reproductive toxicity of chlorpiryphos-ethyl in male Wistar rat
        四大方法 教你不再“坐以待病”!
        Coco薇(2015年1期)2015-08-13 02:47:34
        2021国产精品国产精华| 性色国产成人久久久精品二区三区| 五月婷婷六月丁香久久综合| 亚洲高清乱码午夜电影网| 久久久久久人妻一区二区三区| 2021年最新久久久视精品爱| 蜜臀一区二区av天堂| 亚洲tv精品一区二区三区| 亚洲一区 日韩精品 中文字幕| 一级午夜视频| 色青青女同性恋视频日本熟女| 在线观看日本一区二区三区四区| 少妇高潮喷水久久久影院| 香蕉视频一级| 亚洲av一区二区三区网站| 欧美成人a视频免费专区| 日本午夜理论一区二区在线观看| 色偷偷888欧美精品久久久| 成人一区二区免费视频| 国产精品福利久久香蕉中文| 麻豆视频av在线观看| 中国午夜伦理片| 极品粉嫩嫩模大尺度无码| 日韩av在线不卡一区二区三区| 一区二区三区午夜视频在线 | 久久午夜一区二区三区| 国产69精品久久久久9999apgf| 国产精品高潮呻吟av久久4虎| 韩国主播av福利一区二区| 国产激情一区二区三区成人 | 人妖另类综合视频网站| 高清国产亚洲精品自在久久| 熟妇人妻无码中文字幕老熟妇| 精品推荐国产精品店| 国产成人福利av一区二区三区| 日本高清不卡二区三区| 四虎国产成人永久精品免费| a在线观看免费网站大全| 国产精品自拍首页在线观看| 亚洲综合自拍偷拍一区| 高清破外女出血av毛片|