前言:尋找寫作靈感?中文期刊網用心挑選的研究生學位論文的格式,希望能為您的閱讀和創作帶來靈感,歡迎大家閱讀并分享。
0引言
國內高校大量使用微軟公司的Word字處理軟件撰寫學位論文,學位論文有較嚴格的格式要求,人工檢測效率和準確性均較低,因此有必要設計一種學位論文格式自動檢測系統。安徽工業大學的陳國勝、何宗明老師早在2009年就提出了一種基于XML技術的Word文檔錄入及格式檢測系統設計方法,該方法通過Word文檔和XML文檔的相互轉換,設計了一個Word文檔錄入和格式檢測模型系統,但是該系統還有不完善的地方,例如需要改進文檔格式檢測機制,進一步實現Excel接口和XSTL轉化接口;東北電力大學的闞運奇老師在2012年提出一種基于VBA的方法,該方法需使用VBA技術操作宏,普通用戶難以使用;隋欣、張軍輝在2013年提出了一種基于.NET的文檔信息提取解析方式,該方法僅僅讀取到了文檔內部的文本、標題、目錄和表格信息,但對文檔的樣式信息提取并沒有涉及。雖然不少學者提出了各種操作文檔的想法,但是目前還沒有一種比較方便有效的系統供人們對大量相同格式要求的論文進行檢測。本文設計開發了一套基于OpenXML格式規范的研究生學位論文格式自動檢測系統,該系統利用自動化方法檢測docx格式論文文檔,可以提高用戶編輯學位論文的效率,減輕教師和學生的負擔。
1系統功能設計
本方法的系統架構圖如圖1所示,包括單元定位模塊、格式提取模塊、對比模塊三個模塊。單元定位模塊包括封面定位子模塊、獨創性聲明定位子模塊、標題定位子模塊等11個子模塊,功能為分別定位論文的各個特定部位,獲取對應的XML信息。格式提取模塊包括段落屬性提取子模塊和特殊格式屬性提取子模塊兩個子模塊。段落屬性提取子模塊的功能是提取待測論文每個部分共有的段落屬性,如每個段落的字體、字號、段間距。特殊格式屬性提取子模塊的功能是提取除段落屬性之外的其他格式,如參考文獻樣式提取、圖和表所在章節的標題名稱提取。對比模塊包括規則配置文件、規則對比子模塊、報告生成子模塊三個部分。規則配置文件的功能是存儲模板論文規定的規則,是檢測待測論文正確與否的標準。規則對比子模塊的功能是將待測論文的格式特征與規則配置文件配置的規則進行對比,判斷格式的正誤。報告生成子模塊的功能是獲取規則對比子模塊中檢測到的錯誤信息并寫入檢測報告中。
2單元定位模塊
由于本系統處理的是論文各個部分的格式,如何準確地定位各部分以及如何精準地切割就顯得至關重要。以下列出論文中幾個關鍵部分的定位算法。
2.1正文定位算法
首先尋找到全文的第一個帶編號的標題,標題后的第一個段落就是正文開始處;接著過濾中間封裝標題的<p>元素和封裝圖的<p>元素;最后定位正文結束部分,尋找正文結束后出現的第一個沒有編號的標題,以此為正文部分的結束定位標志。
2.2頁眉定位算法
<hdr>元素存儲了標題的文本信息以及樣式,OpenXML中根據文檔設置的各個節的頁眉屬性<sect-Pr>如首頁不同、奇偶頁不同生成相應的頁眉。方法如下:首先遍歷<p>元素,判斷其中是否包含<sectPr>子元素;若包含<sectPr>子元素,找出<sectPr>元素的所有頁眉引用<headerReference>子元素,接著找出<sectPr>元素的所有頁腳引用<footerReference>子元素,利用頁眉引用、頁腳引用的標識符定位到相應的頁眉<hdr>元素、頁腳<ftr>元素;若不包含<sectPr>子元素,遍歷下一個<p>元素重復第一步,直到文檔最后停止遍歷;在<body>元素中尋找保存最后一節屬性的<sectPr>子元素,重復第二步。
2.3表格定位算法
表格信息存儲在<body>元素的子元素<tbl>內,依次遍歷每個<tbl>元素,可找到表格位置。定位表名的方法如下:首先獲取<tbl>的位置信息,即計算這個<tbl>元素是<body>的第幾個子元素,然后再檢測前一個位置的<p>是否為空段落,空段落體現為一個空行,非空段落作為表名處理。如在該前一個位置沒有找到表名,則再向前回溯一個位置繼續進行判斷。如超過3步回溯仍未找到表名,認為表名缺失或表名的格式有誤。
3格式提取模塊
格式提取模塊的功能為獲取論文各特定部分的格式。格式提取模塊包括段落屬性提取子模塊和特殊格式屬性提取子模塊。
3.1段落屬性提取子模塊
待測學位論文的每個特定部分都具有段落屬性,段落屬性提取是所有特定部分的共性工作,由段落屬性提取子模塊完成。在OpenXML中,所有文本內容都保存在段落元素<p>中,在表1中給出了段落中常見的元素及其說明。(1)字體依次遍歷每一個<p>元素,由rFonts元素按照樣式的層次結構依次提取字體樣式,獲取到中英文的字體;檢測段落是否為全英文、全中文,或者既有中文又有英文,若是全英文,舍棄提取到的中文字體樣式,不能用于對比模塊;若是全中文,舍棄提取到的英文字體樣式,不能用于對比模塊;若既有中文又有英文,提取到的中文英文字體樣式全部保存。(2)字號首先按照樣式的層次結構獲取<sz>的屬性Val的值,計算得到以磅為單位的字號大小;然后參考字號對照表得到字號和磅數的對應關系,得到實際字號;將字號保存用于對比模塊。(3)段前距離段前距離信息從<spacing>元素的before和before-Lines屬性中提取。首先依據樣式的層次結構找到<spacing>元素;若該元素包含beforeLines屬性,獲取該屬性對應的屬性值,計算得到以行距倍數表示的該段落的段前距離;利用<sectPr>元素的子元素<docGrid>的linePitch屬性可以獲得一行的磅數,統一換算成以“磅”為單位的段前距離;若不包含beforeLines屬性,則獲取before屬性的屬性值,計算得到以“磅”為單位的段前距離。
3.2特殊格式屬性提取子模塊
特殊格式提取子模塊用于處理除段落屬性之外的其他格式提取問題,包括參考文獻樣式提取、圖和表所在章節的標題名稱提取等,這些格式要求在OpenXML中并沒有明確的元素對應,需采用特殊方式提取。(1)參考文獻格式提取首先利用正則表達式匹配參考文獻的標志代碼,根據標志代碼確定參考文獻的類型;若無法匹配,說明此條參考文獻缺少標志代碼,保存錯誤信息后,繼續下一條參考文獻格式的提取;若匹配成功,接著以中括號為分割點把該條參考文獻分割成幾部分,檢測作者、出版社、出版年份等格式是否滿足要求;接下來獲取參考文獻的編號樣式,判斷參考文獻的編號是否連續,若不連續,保存錯誤信息,若連續,進入下一步;最后統計參考文獻條目的數目,保存起來用于對比模塊。檢測參考文獻連續性的方法如下:首先記錄并維護參考文獻的正確編號值,即編號應為從1開始的連續自然數,每次檢測到新的參考文獻條目后此值加1;接著判斷此參考文獻是手動編號還是自動編號,若是手動編號,利用正則表達式獲取編號,然后判斷是否和正確編號值相同,若是自動編號只需檢測自動編號開始的參考文獻編號是否和正確編號值相同。(2)圖和表所在章節的標題名稱提取首先用鏈表保存章節標題所在的段落的位置信息,即索引值;然后獲取圖、表的索引,用圖、表的索引值和鏈表中的各個值依次比較,直到鏈表中的值大于此值為止,則鏈表中的前一個數值就是該圖、表所在章節標題的位置;最后根據此索引即可得到標題名稱。
4對比模塊
對比模塊的功能是將格式提取模塊提取出的待測論文中的格式特征與論文模板中的規則進行對比,將對比結果不一致格式問題輸出到檢測報告中。該模塊分為規則配置文件、規則對比子模塊、報告生成子模塊三個部分。
4.1規則配置文件
規則配置文件包含了模板論文規定的規則,是檢測待測論文正確與否的標準。在調用規則配置文件時,首先由單元定位模塊確定當前檢測的位置在論文中所屬的部分,然后檢測該部分是否已存在XML格式的配置文件,若存在,則進入規則對比子模塊;若不存在,則說明當前部分沒有設置格式要求,結束當前部分的檢測。
4.2規則對比子模塊
首先獲取單元定位模塊的結果,判斷當前要檢測的段落是待測論文的哪一部分,在規則配置文件中找到模板論文相應的規則,將格式提取模塊提取到的該部分的格式信息與相應的規則配置文件中的規則進行對比,若該格式特征與規則配置文件中的規則一致,則說明該格式正確;反之將錯誤信息交由報告生成子模塊處理。
4.3報告生成子模塊
首先獲取生成報告的保存路徑,若用戶未自定義,默認路徑設置為該待測論文的上傳路徑;接著獲取在規則配置文件中保存的所有待檢測的特定部分的節點信息,依次遍歷每個節點;獲取節點中保存的該節點對應的名稱,從而找到對應的錯誤信息的保存位置;將尋找到的錯誤信息編號后保存到檢測報告中,最終生成一份檢測報告。
5實驗及分析
在編程結束后,共進行了開發人員測試和用戶測試兩方面測試,下面是兩種測試環境下的具體分析。
5.1開發者測試
為了實現快速檢測大批量、相同格式要求論文的目的,檢測單篇論文的程序被進行了批處理,在批處理程序中選擇需要檢測的部分,包括封面、獨創性聲明、標題、摘要、目錄、正文、頁眉頁腳、表格、圖形、參考文獻、授權書等十一個部分。在.NET及Java環境下,對包含46篇論文的論文集檢測結果如下:46篇論文全部檢測成功,共用時33秒,平均0.717秒一篇。
5.2用戶測試
本系統于2016年6月1日正式上線,在2016年6月本科生畢業期間共收到來自全校的500余篇論文的上傳,其中不同的論文317篇,剩余的200余次上傳為同一用戶在修改論文的過程中不斷地使用本系統進行檢測與修正,最終修正為格式無誤的論文。在2016年9月研究生畢業期間,共收到來自23名用戶的50余篇不同的研究生論文。
6結語
學位論文格式自動檢測系統可以根據論文模板,自動對待測論文進行格式檢測,具有自動化程度高、檢測速度快、檢測準確率高等優點,可大幅降低畢業生和指導教師的工作量,提高工作效率。下一步工作可重點考慮在線配置檢測規則,以提高本系統對不同學校論文模板的適用性。
作者:葉秀云 劉德正 單位:大連理工大學軟件學院