本發(fā)明屬于計(jì)算機(jī)
技術(shù)領(lǐng)域:
:,涉及一種學(xué)位論文格式自動(dòng)檢測方法。
背景技術(shù):
::目前高校的學(xué)位論文,均具有較為嚴(yán)格的格式要求。學(xué)位論文一般采用微軟公司的Word編輯軟件撰寫,包括封面、獨(dú)創(chuàng)性聲明、標(biāo)題、摘要、目錄、正文、頁眉頁腳、表格、圖形、參考文獻(xiàn)、授權(quán)書等特定部分,必須與論文模板嚴(yán)格相同,以保證學(xué)位論文的格式規(guī)范性。在學(xué)位論文提交之后,教師要對學(xué)位論文進(jìn)行格式核查,將錯(cuò)誤之處指出并由學(xué)生修改,之后教師會再次核查格式,并指導(dǎo)學(xué)生修改,直至符合學(xué)校要求為止。以往,這一核查過程完全由教師人工進(jìn)行,具有工作量大、易出錯(cuò)、工作時(shí)間長等缺陷。本發(fā)明基于對Word軟件的docx格式的分析,提出了一種學(xué)位論文格式自動(dòng)檢測方法,可以由計(jì)算機(jī)替代教師來完成這一工作,可有效彌補(bǔ)人工方式的以上缺陷。下面對相關(guān)技術(shù)背景進(jìn)行介紹。1、docx格式MicrosoftWord是由微軟公司開發(fā)的一款辦公軟件,2007年之前的MicrosoftWord文件擴(kuò)展名是doc,2007年及之后的版本使用的文件擴(kuò)展名為docx,該類型格式采用基于XML的壓縮文件格式,一個(gè)新建的doc文件的大小為25KB,而一個(gè)新建的docx文件的大小為0KB,比doc格式更節(jié)省空間。2、論文模板論文模板是衡量學(xué)生提交的待測論文格式是否正確的標(biāo)準(zhǔn),待測論文的格式如與論文模板的格式要求一致,則為正確;反之,則為錯(cuò)誤。為了實(shí)現(xiàn)對論文格式正誤的快速檢測,論文模板的內(nèi)容分為封面、獨(dú)創(chuàng)性聲明、標(biāo)題、摘要、目錄、正文、頁眉頁腳、表格、圖形、參考文獻(xiàn)、授權(quán)書等十一個(gè)特定部分。本發(fā)明方法的工作即為對這十一個(gè)特定部分進(jìn)行自動(dòng)檢測。3、OpenXMLOpenXML是針對字處理文檔、演示文稿和電子表格的國際化開放標(biāo)準(zhǔn),xml格式的文件存儲基于OpenXML標(biāo)準(zhǔn)設(shè)計(jì)的文檔的源碼。2010年3月,美國微軟公司發(fā)布了OpenXMLSDK,OpenXMLSDK的功能是查看基于OpenXML標(biāo)準(zhǔn)設(shè)計(jì)的文檔的xml源碼。OpenXMLSDK簡化了對OfficeCOM對象的訪問方法,提供了以xml文件的方式查看McrosoftWord文件的途徑,方便了用戶對McrosoftWord文件的管理。OpenXML定義了以下相關(guān)名詞:(1)標(biāo)簽:由一對尖括號標(biāo)識的關(guān)鍵詞,用來標(biāo)記不同的元素,分為開始標(biāo)簽和結(jié)束標(biāo)簽;(2)元素:xml文件中從開始標(biāo)簽到結(jié)束標(biāo)簽之間的部分;(3)父元素:包含其他元素的元素稱為被包含元素的父元素;(4)子元素:元素中包含的元素稱為包含該元素的子元素;(5)屬性:在元素的開始標(biāo)簽中規(guī)定,提供了元素除了文本內(nèi)容以外的更多的信息,以名稱和值的形式成對出現(xiàn);(6)樣式的層次結(jié)構(gòu):不同層次均可定義樣式,高層次定義樣式的優(yōu)先級高于低層級,當(dāng)需要確定樣式時(shí),若高層次未定義該樣式,則應(yīng)從高到低依次尋找首次出現(xiàn)的低層次定義的樣式,以此作為文本的樣式;下面是OpenXMLSDK中常見的word文檔標(biāo)簽:(1)<document>:包含word文檔的全部內(nèi)容,包括文字、圖表、頁眉頁腳及其屬性,是最頂層標(biāo)簽;(2)<body>:<document>的子標(biāo)簽,包含word文檔所有的文字、圖表及其屬性;(3)<paragraph>:即為文檔的段落,有些段落只包含一個(gè)<paragraph>,有些段落包含兩個(gè)及以上的<paragraph>。一個(gè)或若干個(gè)<paragraph>組成<body>,<paragraph>的集合包含<body>內(nèi)所有的文字和圖形;(4)<p>:<paragraph>的縮寫形式,與<paragraph>相同;(5)<run>:位于<paragraph>內(nèi),為該段落的文字、圖片及其屬性;(6)<hyperlink>:位于<paragraph>內(nèi),標(biāo)識作者對該目錄使用過word程序中的更新域選項(xiàng),內(nèi)容為目錄的位置;(7)<FieldChar>:位于<paragraph>內(nèi),標(biāo)識作者未對該目錄使用過word程序中的更新域選項(xiàng),內(nèi)容為目錄的位置;(8)<text>:位于<run>內(nèi),內(nèi)容為當(dāng)前段落的文字內(nèi)容;(9)<bookmarkStart>:位于<paragraph>內(nèi),標(biāo)識換頁符的開始;(10)<sectPr>:位于<document>內(nèi),與<body>平級,內(nèi)容包含此節(jié)的頁眉引用<headerReference>、頁腳引用<footerReference>、頁的大小、寬度、頁邊距、網(wǎng)格線信息等章節(jié)屬性;(11)<headerReference>:位于<sectPr>內(nèi),為所在節(jié)的頁眉引用,可由此定位到頁眉;(12)<footerReference>:位于<sectPr>內(nèi),為所在節(jié)的頁腳引用,可由此定位到頁腳;(13)<ftr>:位于<document>內(nèi),與<body>平級,內(nèi)容包括首頁頁腳、奇數(shù)頁頁腳、偶數(shù)頁頁腳;(14)<hdr>:位于<docement>內(nèi),與<body>平級,內(nèi)容包括首頁頁眉、奇數(shù)頁頁眉、偶數(shù)頁頁眉、頁腳;(15)<tbl>:位于<body>內(nèi),與<paragraph>并列,用于標(biāo)識word文檔中的表格并存儲表格信息;(16)<picture>:位于<run>內(nèi),與<text>并列,用于標(biāo)識word文檔中的圖片并存儲圖片信息;(17)<drawing>:位于<run>內(nèi),與<text>及<picture>并列,功能與<picture>相同,用于標(biāo)識word文檔中的圖片并存儲圖片信息;(18)<r>:<run>的縮寫形式,與<run>相同;(19)<RunFonts>:位于<run>內(nèi),標(biāo)識該段文字的字體,ASCII、EastAsian屬性分別代表了英文、簡體中文兩種文字的字體樣式,通過檢測ASCII及EastAsian這兩種屬性,可以判斷論文中的英文、中文的字體樣式是否正確,同時(shí)還需判斷<r>元素內(nèi)文本是否只有中文或只有英文,以去除提取到的冗余的字體樣式;(20)<rFonts>:<RunFonts>的縮寫,與<RunFonts>相同;(21)<t>:<text>的縮寫形式,與<t>相同;(22)<size>:位于<paragraph>、<tbl>及<run>內(nèi),分別標(biāo)識該段落,表格或文字的字號;(23)<sz>:<size>的縮寫形式,與<size>相同。4、本發(fā)明中的其他相關(guān)名詞解釋:(1)字號對照表:記錄字號、磅數(shù)以及毫米數(shù)之間的對應(yīng)關(guān)系;(2)空段落:體現(xiàn)為文本內(nèi)容為空的<p>元素或者文本內(nèi)容全部由空字符構(gòu)成的<p>元素。技術(shù)實(shí)現(xiàn)要素:本發(fā)明要解決的技術(shù)問題是提供一種學(xué)位論文格式自動(dòng)檢測方法,能夠針對畢業(yè)生提交的學(xué)位論文,完成格式自動(dòng)檢測,找到所有不符合格式要求的部分,并提供錯(cuò)誤報(bào)告。本發(fā)明的技術(shù)方案:學(xué)位論文格式自動(dòng)檢測方法,包括單元定位模塊、格式提取模塊、對比模塊三個(gè)模塊。1、單元定位模塊單元定位模塊的功能是在學(xué)位論文中準(zhǔn)確找到封面、獨(dú)創(chuàng)性聲明、標(biāo)題、摘要、目錄、正文、頁眉頁腳、表格、圖形、參考文獻(xiàn)、授權(quán)書等十一個(gè)特定部分的位置及每個(gè)特定部分的長度,即對以上各特定部分進(jìn)行精確切割。單元定位模塊包括以下十一個(gè)子模塊。(1)封面定位子模塊封面存儲在<body>元素的子元素<paragraph>內(nèi),為論文的第一頁。定位封面時(shí),首先找到整篇文檔的第一個(gè)包含文字的<paragraph>,若其中的文字與論文模板中論文主標(biāo)題的文字相同,則說明成功定位到封面;若其中的文字與論文模板中論文主標(biāo)題的文字不同,則繼續(xù)遍歷之后的<paragraph>。若之后的<paragraph>中存在與主標(biāo)題字符串相同的<paragraph>,則成功定位到封面;若之后的<paragraph>不能找到與主標(biāo)題字符串相同的<paragraph>,則說明封面缺失或論文主標(biāo)題有誤。(2)獨(dú)創(chuàng)性聲明定位子模塊論文獨(dú)創(chuàng)性聲明存儲在<body>元素的子元素<paragraph>內(nèi),為論文的第二頁。定位論文獨(dú)創(chuàng)性聲明時(shí),首先根據(jù)封面定位子模塊的結(jié)果判斷論文封面是否缺失,若論文封面未缺失,則找到封面之后的首個(gè)包含文字的<paragraph>,若封面缺失,則找到整篇文檔的第一個(gè)包含文字的<paragraph>。若該<paragraph>中的文字包含“獨(dú)創(chuàng)性聲明”,則說明成功定位到獨(dú)創(chuàng)性聲明;該<paragraph>中的文字不包含“獨(dú)創(chuàng)性聲明”,則繼續(xù)遍歷之后的<paragraph>。若之后的<paragraph>中的文字包含“獨(dú)創(chuàng)性聲明”,則成功定位到獨(dú)創(chuàng)性聲明;若之后的不能找到文字中包含“獨(dú)創(chuàng)性聲明”的<paragraph>,則說明獨(dú)創(chuàng)性聲明缺失或獨(dú)創(chuàng)性聲明標(biāo)題有誤。(3)標(biāo)題定位子模塊遍歷每一個(gè)<p>元素,若該<p>元素包含了<hyperlink>元素或者<bookmarkStart>元素,則將該<p>元素判定為包含了標(biāo)題的段落;若不包含<hyperlink>元素和<bookmarkStart>元素,則獲取<p>元素中的全部文本,采用正則表達(dá)式匹配標(biāo)題的編號以及編號和標(biāo)題內(nèi)容之間的空格來確定標(biāo)題段落;若正則表達(dá)式無法匹配,找出文本長度符合標(biāo)題長度的段落<p>,標(biāo)記為疑似標(biāo)題。(4)摘要定位子模塊中英文摘要存儲在<body>元素的子元素<paragraph>內(nèi),在定位中文摘要時(shí),首先獲取標(biāo)題定位子模塊定位到的全部標(biāo)題,然后在其中找到“摘要”兩個(gè)字,獲取“摘要”標(biāo)題所處的<paragraph>在<body>中的位置。然后依次遍歷開始位置后的每個(gè)<paragraph>。若遍歷到一個(gè)正文段落,則表示摘要定位成功。若遍歷某<paragraph>中的<text>元素,發(fā)現(xiàn)其包含的內(nèi)容為“關(guān)鍵詞”,則在下一段終止摘要的處理,摘要定位完成。英文摘要的定位與中文摘要定位方法大致相同,唯一區(qū)別在于將“摘要”二字替換為“Abstract”,將“關(guān)鍵詞”替換為“Keywords”。(5)目錄定位子模塊目錄定位分為兩種情況:經(jīng)過“更新域”處理過的目錄和未經(jīng)“更新域”處理的目錄。前者包含<Hyperlink>元素,用以標(biāo)記更新域的位置,該更新域的位置即為目錄;后者包含<FieldChar>元素。在定位目錄時(shí),遍歷<body>中全部<paragraph>,所有包含<Hyperlink>元素及<FieldChar>元素的<paragraph>均為目錄。(6)正文定位子模塊首先尋找到全文的第一個(gè)帶編號的標(biāo)題,標(biāo)題后的第一個(gè)段落就是正文開始處;接著過濾中間封裝標(biāo)題的<p>元素和封裝圖的<p>元素;最后定位正文結(jié)束部分,尋找正文結(jié)束后出現(xiàn)的第一個(gè)沒有編號的標(biāo)題,以此為正文部分的結(jié)束定位標(biāo)志。(7)頁眉頁腳定位子模塊首先遍歷<p>元素,判斷其中是否包含<sectPr>子元素;若包含<sectPr>子元素,找出<sectPr>元素的所有頁眉引用<headerReference>子元素,接著找出<sectPr>元素的所有頁腳引用<footerReference>子元素,利用頁眉引用、頁腳引用的標(biāo)識符定位到相應(yīng)的頁眉<hdr>元素和頁腳<ftr>元素;若不包含<sectPr>子元素,遍歷下一個(gè)<p>元素繼續(xù)檢測是否包含<sectPr>子元素,直到文檔最后停止遍歷;在<body>元素中尋找保存最后一節(jié)屬性的<sectPr>子元素,找出最后一節(jié)對應(yīng)的頁眉引用和頁腳引用,從而定位到頁眉<hdr>和頁腳<ftr>元素;(8)表格定位子模塊表格信息存儲在<body>元素的子元素<tbl>內(nèi),依次遍歷每個(gè)<tbl>元素,可找到表格位置。定位表名的方法如下:首先獲取<tbl>的位置信息,即計(jì)算這個(gè)<tbl>元素是<body>的第幾個(gè)子元素,然后再檢測前一個(gè)位置的<p>是否為空段落,空段落體現(xiàn)為一個(gè)空行,非空段落作為表名處理。如在該前一個(gè)位置沒有找到表名,則再向前回溯一個(gè)位置繼續(xù)進(jìn)行判斷。如超過3步回溯仍未找到表名,認(rèn)為表名缺失或表名的格式有誤。(9)圖形定位子模塊找到<paragraph>元素的子元素<run>,圖片信息存儲在<run>的子元素<drawing>和<picture>中。在定位圖片時(shí),遍歷所有的<paragraph>,對每一個(gè)包含<drawing>或<picture>的<paragraph>,先確定該<paragraph>是<body>的第幾個(gè)子元素,再查看該<paragraph>的下一個(gè)<paragraph>的內(nèi)容是否為空,若為空則為空行;若不為空再繼續(xù)判斷該<paragraph>內(nèi)是否包含文字“圖”,若包含成功定位到圖名,若不包含則認(rèn)為圖名缺失或圖名的格式有誤。(10)參考文獻(xiàn)定位子模塊參考文獻(xiàn)存儲在<body>元素的子元素<paragraph>內(nèi)。在定位參考文獻(xiàn)時(shí),首先獲取標(biāo)題定位子模塊定位到的全部標(biāo)題,然后在其中找到“參考文獻(xiàn)”四個(gè)字,獲取“參考文獻(xiàn)”標(biāo)題所處的<paragraph>在<body>中的位置。然后依次遍歷開始位置后的每個(gè)<paragraph>。若遍歷到一個(gè)包含文字的<paragraph>,則說明該<paragraph>包含參考文獻(xiàn)的內(nèi)容;若遍歷到一個(gè)標(biāo)題段落,則說明參考文獻(xiàn)內(nèi)容結(jié)束,定位完成。(11)授權(quán)書定位子模塊授權(quán)書存儲在<body>元素的子元素<paragraph>內(nèi),為論文的最后一頁。定位授權(quán)書時(shí),首先找到參考文獻(xiàn)結(jié)束的位置,然后找到該位置之后第一個(gè)包含文字的<paragraph>。若其中的文字包含“授權(quán)書”,則說明成功定位到授權(quán)書;若其中的文字不包含“授權(quán)書”,則繼續(xù)遍歷之后的<paragraph>。若之后的<paragraph>中的文字包含“授權(quán)書”,則成功定位到授權(quán)書;若之后不能找到文字包含“授權(quán)書”的<paragraph>,則說明授權(quán)書缺失或授權(quán)書標(biāo)題有誤。2、格式提取模塊格式提取模塊的功能為獲取論文各特定部分的樣式。對于學(xué)位論文的每個(gè)特定部分,在格式提取模塊中都有對應(yīng)的屬性配置文件和提取算法。格式提取模塊根據(jù)該特定部分屬性配置文件中的配置信息,調(diào)用該特定部分的提取算法來提取待檢測學(xué)位論文的格式。格式提取模塊包括段落屬性提取子模塊和特殊格式屬性提取子模塊。(1)段落屬性提取子模塊待測學(xué)位論文的每個(gè)特定部分都具有段落屬性,段落屬性提取是所有特定部分的共性工作,由段落屬性提取子模塊完成。在OpenXML中,典型的段落屬性有:字體、字號、段間距。①字體依次遍歷每一個(gè)<p>元素,按照樣式的層次結(jié)構(gòu)依次提取字體樣式,獲取到中英文的字體;檢測段落是否為全英文、全中文,或者既有中文又有英文,若是全英文,舍棄提取到的中文字體樣式,不能用于對比模塊;若是全中文,舍棄提取到的英文字體樣式,不能用于對比模塊;若既有中文又有英文,提取到的中文英文字體樣式全部保存。②字號首先按照樣式的層次結(jié)構(gòu)獲取<sz>的屬性Val的值,計(jì)算得到以磅為單位的字號大??;然后參考字號對照表得到字號和磅數(shù)的對應(yīng)關(guān)系,得到實(shí)際字號;將字號保存用于對比模塊。③段間距段前距離信息從<spacing>元素的before和beforeLines屬性中提取。首先依據(jù)樣式的層次結(jié)構(gòu)找到<spacing>元素;若該元素包含beforeLines屬性,獲取該屬性對應(yīng)的屬性值,計(jì)算得到以行距倍數(shù)表示的該段落的段前距離;利用<sectPr>元素的子元素<docGrid>的linePitch屬性可以獲得一行的磅數(shù),統(tǒng)一換算成以“磅”為單位的段前距離;若不包含beforeLines屬性,則獲取before屬性的屬性值,計(jì)算得到以“磅”為單位的段前距離。段后距離信息從<spacing>元素的after和afterLines屬性中提取。首先依據(jù)樣式的層次結(jié)構(gòu)找到<spacing>元素;若該元素包含afterLines屬性,獲取該屬性對應(yīng)的屬性值,計(jì)算得到以行距倍數(shù)表示的該段落的段后距離;換算成以“磅”為單位的段后距離;若不包含afterLines屬性,則獲取after屬性的屬性值,計(jì)算得到以“磅”為單位的段后距離。行距樣式信息從<spacing>元素的lineRule和line屬性中提取,lineRule保存的是解析line的方法。首先依據(jù)樣式的層次結(jié)構(gòu)找到<spacing>元素;若lineRule為auto或者省略,則此時(shí)提取的結(jié)果為以行距倍數(shù)表示的該段落的行距;若lineRule屬性的值為atLeast或者為exactly,此時(shí)提取的結(jié)果以磅為單位。與段前距一樣,本發(fā)明統(tǒng)一轉(zhuǎn)換為以磅為單位方便對比。(2)特殊格式屬性提取子模塊特殊格式提取子模塊用于處理除段落屬性之外的其他格式提取問題,包括參考文獻(xiàn)樣式提取、圖和表所在章節(jié)的標(biāo)題名稱提取等,這些格式要求在OpenXML中并沒有明確的元素對應(yīng),需采用特殊方式提取。①參考文獻(xiàn)格式提取不同類型的參考文獻(xiàn)書寫格式不同,需先確定每條參考文獻(xiàn)屬于哪種類型,然后才能進(jìn)行詳細(xì)格式分析。首先利用正則表達(dá)式匹配參考文獻(xiàn)的標(biāo)志代碼,根據(jù)標(biāo)志代碼確定參考文獻(xiàn)的類型;若無法匹配,說明此條參考文獻(xiàn)缺少標(biāo)志代碼,保存錯(cuò)誤信息后,繼續(xù)下一條參考文獻(xiàn)格式的提??;若匹配成功,接著以中括號為分割點(diǎn)把該條參考文獻(xiàn)分割成幾部分,檢測作者、出版社、出版年份、期刊號等格式是否滿足要求;接下來獲取參考文獻(xiàn)的編號樣式,判斷參考文獻(xiàn)的編號是否連續(xù),若不連續(xù),保存錯(cuò)誤信息,若連續(xù),進(jìn)入下一步;最后統(tǒng)計(jì)參考文獻(xiàn)條目的數(shù)目,保存起來用于對比模塊。檢測參考文獻(xiàn)連續(xù)性的方法如下:首先記錄并維護(hù)參考文獻(xiàn)的正確編號值,即編號應(yīng)為從1開始的連續(xù)自然數(shù),每次檢測到新的參考文獻(xiàn)條目后此值加1;接著判斷此參考文獻(xiàn)是手動(dòng)編號還是自動(dòng)編號,若是手動(dòng)編號,利用正則表達(dá)式獲取編號,然后判斷是否和正確編號值相同,若是自動(dòng)編號只需檢測自動(dòng)編號開始的參考文獻(xiàn)編號是否和正確編號值相同。②圖和表所在章節(jié)的標(biāo)題名稱提取首先用鏈表保存章節(jié)標(biāo)題所在的段落的位置信息,即索引值;然后獲取圖、表的索引,用圖、表的索引值和鏈表中的各個(gè)值依次比較,直到鏈表中的值大于圖、表的索引值為止,則鏈表中的前一個(gè)數(shù)值就是該圖、表所在章節(jié)標(biāo)題的標(biāo)題位置;最后根據(jù)此索引即可得到標(biāo)題名稱;3、對比模塊對比模塊的功能是將格式提取模塊提取出的待測論文中的格式特征與論文模板中的規(guī)則進(jìn)行對比,分析二者是否一致,從而驗(yàn)證待測論文格式是否正確,并將對比結(jié)果不一致的格式問題寫入到檢測報(bào)告中。該模塊分為規(guī)則配置文件、規(guī)則對比子模塊、報(bào)告生成子模塊三個(gè)部分。(1)規(guī)則配置文件規(guī)則配置文件包含了模板論文規(guī)定的規(guī)則,是檢測待測論文正確與否的標(biāo)準(zhǔn)。規(guī)則配置文件的內(nèi)容按照封面、獨(dú)創(chuàng)性聲明、標(biāo)題、摘要、目錄、正文、頁眉頁腳、表格、圖形、參考文獻(xiàn)、授權(quán)書等十一個(gè)部分進(jìn)行配置。在調(diào)用規(guī)則配置文件時(shí),首先由單元定位模塊確定當(dāng)前檢測的位置在論文中所屬的部分,然后檢測該部分是否已存在xml格式的配置文件,若存在,則進(jìn)入規(guī)則對比子模塊;若不存在,則說明當(dāng)前部分沒有設(shè)置格式要求,結(jié)束當(dāng)前部分的檢測。(2)規(guī)則對比子模塊規(guī)則對比子模塊的功能是將待測論文的格式特征與規(guī)則配置文件配置的規(guī)則進(jìn)行對比,檢測格式提取模塊提取出的待測論文的格式特征的正誤。在進(jìn)行對比時(shí),獲取單元定位模塊的結(jié)果,判斷當(dāng)前要檢測的段落是待測論文的哪一部分,在規(guī)則配置文件中找到模板論文相應(yīng)的規(guī)則,將格式提取模塊提取到的該部分的格式特征與相應(yīng)的規(guī)則配置文件中的規(guī)則進(jìn)行對比,若該格式特征與規(guī)則配置文件中的規(guī)則一致,則說明該格式正確;反之該格式特征錯(cuò)誤。(3)報(bào)告生成子模塊首先獲取生成報(bào)告的保存路徑,若用戶未自定義,默認(rèn)路徑設(shè)置為該待測論文的上傳路徑;接著獲取在規(guī)則配置文件中保存的所有待檢測的特定部分的節(jié)點(diǎn)信息,依次遍歷每個(gè)節(jié)點(diǎn);獲取節(jié)點(diǎn)中保存的該節(jié)點(diǎn)對應(yīng)的名稱,從而找到對應(yīng)的錯(cuò)誤信息的保存位置;將尋找到的錯(cuò)誤信息編號后保存到檢測報(bào)告中,最終生成一份txt類型的檢測報(bào)告。本發(fā)明的有益效果在于可以自動(dòng)檢測學(xué)位論文格式的正確性,并將不符合模板格式要求的部分寫入錯(cuò)誤報(bào)告。本發(fā)明相對于人工檢查而言,具有檢測效率高、檢測結(jié)果準(zhǔn)確等特點(diǎn)。附圖說明圖1是本發(fā)明的系統(tǒng)結(jié)構(gòu)圖。圖2是本發(fā)明的數(shù)據(jù)流圖。具體實(shí)施方式以下結(jié)合
發(fā)明內(nèi)容和說明書附圖詳細(xì)說明本發(fā)明的具體實(shí)施方式。1、系統(tǒng)結(jié)構(gòu)本方法的系統(tǒng)結(jié)構(gòu)如圖1所示,包括單元定位模塊、格式提取模塊、對比模塊三個(gè)模塊。單元定位模塊包括封面定位子模塊、獨(dú)創(chuàng)性聲明定位子模塊、標(biāo)題定位子模塊、摘要定位子模塊、目錄定位子模塊、正文定位子模塊、頁眉頁腳定位子模塊、表格定位子模塊、圖形定位子模塊、參考文獻(xiàn)定位子模塊、授權(quán)書定位子模塊等十一個(gè)子模塊。封面定位子模塊的功能是找出封面在待測論文中的位置;獨(dú)創(chuàng)性聲明定位子模塊的功能是找出獨(dú)創(chuàng)性聲明在待測論文中的位置;標(biāo)題定位子模塊的功能是找出待測論文中所有的標(biāo)題及其所在的<paragraph>元素在<body>元素中的位置;摘要定位子模塊的功能是找出摘要在待測論文中的位置;目錄定位子模塊的功能是找出目錄在待測論文中的位置;正文定位子模塊的功能是找出正文在待測論文中的位置;頁眉頁腳定位子模塊的功能是找出待測論文中的全部頁眉頁腳及其所在的<paragraph>元素在<body>元素中的位置;表格定位子模塊的功能是找出待測論文中的全部表格及表格所在的<tbl>元素在<body>元素中的位置;圖形定位子模塊的功能是找出待測論文中的全部圖形及其所在的<paragraph>元素在<body>元素中的位置;參考文獻(xiàn)定位子模塊的功能是找出參考文獻(xiàn)在待測論文中的位置;授權(quán)書定位子模塊的功能是找出授權(quán)書在待測論文中的位置。格式提取模塊包括段落屬性提取子模塊和特殊格式屬性提取子模塊兩個(gè)子模塊。段落屬性提取子模塊的功能是提取待測論文每個(gè)部分共有的段落屬性,即提取每個(gè)段落的字體、字號、段間距;特殊格式屬性提取子模塊的功能是處理除段落屬性之外的其他格式提取問題,包括參考文獻(xiàn)樣式提取、圖和表所在章節(jié)的標(biāo)題名稱提取。對比模塊包括規(guī)則配置文件、規(guī)則對比子模塊、報(bào)告生成子模塊三個(gè)部分。規(guī)則配置文件的功能是存儲模板論文規(guī)定的規(guī)則,規(guī)則配置文件是檢測待測論文正確與否的標(biāo)準(zhǔn);規(guī)則對比子模塊的功能是將待測論文的格式特征與規(guī)則配置文件配置的規(guī)則進(jìn)行對比,檢測格式提取模塊提取出的待測論文的格式特征的正誤;報(bào)告生成子模塊的功能是獲取規(guī)則對比子模塊中檢測到的錯(cuò)誤的待測論文的格式特征并寫入檢測報(bào)告中供用戶查看。2、數(shù)據(jù)處理過程本方法對每個(gè)特定部分均進(jìn)行單元定位、格式提取、對比操作,最終生成檢測報(bào)告給用戶。以參考文獻(xiàn)部分為例,其數(shù)據(jù)流圖如圖2所示:用戶上傳待測論文;單元定位負(fù)責(zé)定位參考文獻(xiàn)部分的xml信息,然后輸出至格式提取模塊的兩個(gè)子模塊;段落屬性提取子模塊將提取出參考文獻(xiàn)部分的段落屬性,如字體、字號、行間距;特殊格式屬性提取子模塊將提取到關(guān)于參考文獻(xiàn)部分的特殊格式,如參考文獻(xiàn)的連續(xù)性、參考文獻(xiàn)條目中的作者規(guī)范性及出版社信息規(guī)范性;參考文獻(xiàn)部分的xml信息經(jīng)過格式提取處理后,轉(zhuǎn)變?yōu)槎温鋵傩约疤厥飧袷綄傩缘臉邮叫畔⑤敵鲋翆Ρ饶K;對比模塊的規(guī)則對比子模塊將提取到的樣式信息和規(guī)則配置文件中的參考文獻(xiàn)規(guī)則進(jìn)行對比,對比之后輸出參考文獻(xiàn)部分的對比結(jié)果;對比模塊的報(bào)告生成子模塊將對比結(jié)果按照確定格式輸出到檢測報(bào)告中;檢測報(bào)告交付給用戶使用。3、規(guī)則配置文件設(shè)計(jì)在創(chuàng)建規(guī)則配置文件之前,預(yù)先定義該文檔的格式,規(guī)則配置文件的最頂層元素定義為當(dāng)前檢測部分的名稱,最頂層元素之下包含兩類元素,第一類元素作用是標(biāo)記規(guī)則配置文件包含的規(guī)則在待測論文中所屬的部分;第二類元素是規(guī)則配置文件配置文件的主體部分,記錄該部分所包含的規(guī)則。以圖形部分的規(guī)則配置文件為例,該部分的規(guī)則配置文件代碼如下:第一行代碼為xml文件的版本標(biāo)識及編碼方式,<FigureStyle>元素是該規(guī)則配置文件的頂層元素,包含<partName>和<spErroInfo>兩類元素。<partName>元素為<FigureStyle>元素下的第一類元素,<partName>元素內(nèi)有且只有一個(gè)<Text>元素,<Text>元素的內(nèi)容為當(dāng)前規(guī)則配置文件包含的規(guī)則在待測論文中所屬的部分;<spErroInfo>為<FigureStyle>元素下的第二類元素,內(nèi)容為該規(guī)則配置文件所包含的具體規(guī)則,<spErroInfo>元素由一個(gè)或多個(gè)<Text>元素組成,每個(gè)<Text>元素記錄圖形部分的一條屬性,第一條<Text>元素記錄的屬性為:圖名字體應(yīng)為宋體,第二條<Text>元素記錄的屬性為:圖名的序號與文字中間應(yīng)空兩格。4、檢測報(bào)告設(shè)計(jì)檢測報(bào)告名稱以待檢測論文名稱加檢測時(shí)間戳來命名,方便用戶區(qū)分多次提交的檢測報(bào)告。檢測報(bào)告包括錯(cuò)誤信息列表和錯(cuò)誤信息統(tǒng)計(jì)兩個(gè)部分。在錯(cuò)誤信息列表部分,論文的封面、獨(dú)創(chuàng)性聲明、標(biāo)題、摘要、目錄、正文、頁眉頁腳、表格、圖形、參考文獻(xiàn)、授權(quán)書等十一個(gè)特定部分都可能有格式書寫錯(cuò)誤,為方便用戶查看,各特定部分之間用分割線分割。所有的錯(cuò)誤信息從1開始按順序編號,錯(cuò)誤信息分為兩大類,一類是確定錯(cuò)誤,一類是警告。確定錯(cuò)誤代表論文中的明確的錯(cuò)誤,每條確定錯(cuò)誤從前向后依次為:錯(cuò)誤編號、錯(cuò)誤說明、用大括號標(biāo)注的錯(cuò)誤位置和錯(cuò)誤頁碼;警告為疑似錯(cuò)誤,每條警告從前向后依次為:“警告”二字標(biāo)識、警告說明、用大括號標(biāo)注的警告位置和警告頁碼。錯(cuò)誤統(tǒng)計(jì)部分負(fù)責(zé)統(tǒng)計(jì)出錯(cuò)誤總數(shù)以及不同類型的錯(cuò)誤總數(shù)。錯(cuò)誤統(tǒng)計(jì)部分的意義在于,列舉出不同種類錯(cuò)誤的數(shù)目,使用戶了解各類型錯(cuò)誤的發(fā)生概率,為將來論文撰寫提供指導(dǎo)。錯(cuò)誤統(tǒng)計(jì)分為兩大類,一類為與段落屬性提取子模塊相對應(yīng)的一般錯(cuò)誤統(tǒng)計(jì)信息,一類為與特殊格式屬性提取子模塊相對應(yīng)的特殊錯(cuò)誤統(tǒng)計(jì)信息。一般錯(cuò)誤統(tǒng)計(jì)信息有:字體錯(cuò)誤、字號錯(cuò)誤、段前間距、段后間距錯(cuò)誤、行間距錯(cuò)誤。特殊錯(cuò)誤統(tǒng)計(jì)信息對應(yīng)論文的各個(gè)特定部分,例如:頁眉部分的奇偶頁錯(cuò)誤、摘要關(guān)鍵詞錯(cuò)誤、表名格式錯(cuò)誤、參考文獻(xiàn)條目格式錯(cuò)誤。某待測試論文的檢測報(bào)告實(shí)例如下:《基于SWOT分析的企業(yè)財(cái)務(wù)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)》檢測報(bào)告一:錯(cuò)誤信息列表-----------------封面-----------------1.統(tǒng)招、單考碩士、高校教師在職申請碩士學(xué)位、同等學(xué)歷碩士封面標(biāo)識內(nèi)容應(yīng)為“碩士學(xué)位論文”2.封面英文標(biāo)題實(shí)詞首字母未大寫:{TheenterpriseFinancialManagement}3.統(tǒng)招、單考碩士、高校教師在職申請碩士學(xué)位、同等學(xué)歷碩士研究生信息的第二個(gè)標(biāo)題應(yīng)為“學(xué)科、專業(yè)”4.封面底部英文校名字號錯(cuò)誤,應(yīng)為小四號-----------------摘要-----------------5.中文摘要關(guān)鍵詞字號錯(cuò)誤,應(yīng)為小四號6.英文摘要上方缺少論文英文題目,或者與封面的英文標(biāo)題書寫不一致7.英文摘要關(guān)鍵詞字體錯(cuò)誤,錯(cuò)誤部分為:{:}-----------------頁眉頁腳-----------------8.奇數(shù)頁頁眉命名不規(guī)范應(yīng)為:“大連理工大學(xué)碩士學(xué)位論文”||摘要9.偶數(shù)頁頁眉命名不規(guī)范,應(yīng)為論文中文題目||摘要-----------------目錄-----------------10.目錄中該章節(jié)標(biāo)題中文字體錯(cuò)誤,應(yīng)為宋體:{1緒論}-----------------正文-----------------11.該段落中文字體錯(cuò)誤,應(yīng)為宋體:{3.3.1系統(tǒng)體系框架設(shè)計(jì)“Spring的作用貫”P12}12.此段落字號錯(cuò)誤,應(yīng)為小四:{5.4.7應(yīng)收款管理功能實(shí)現(xiàn)“弱點(diǎn)機(jī)會組合”P37}“疑似”:此段落疑似標(biāo)題,請確認(rèn){6.2.2測試通過標(biāo)準(zhǔn)P42}-----------------圖-----------------13.如圖名不是該頁的最后一行,則圖名下一行應(yīng)為空行:{4.2系統(tǒng)部署“圖4.2系統(tǒng)部署圖”P19}14.圖英文名錯(cuò)誤,應(yīng)為“Fig.M.NName”:{5.4.1用戶登陸“Fig.5.3Generalmodule”P38}-----------------表-----------------15.中文序號與表名之間應(yīng)空兩格:{4.4數(shù)據(jù)庫設(shè)計(jì)表“4.3部門信息表”P19}16.該表格中文表名未居中:{4.4數(shù)據(jù)庫設(shè)計(jì)“表4.1科目余額審核表”P21}17.英文表名沒有居中:{4.4數(shù)據(jù)庫設(shè)計(jì)“Tab.4.1Accountbalanceaudittable”P21}-----------------參考文獻(xiàn)-----------------18.警告:期刊類參考文獻(xiàn)期號一般不超過20,此條參考文獻(xiàn)期號過大:{[1]何雪梅.大數(shù)P49}19.期刊類參考文獻(xiàn)期號卷號處不應(yīng)有空格:{[7]李成偉.我國P49}20.期刊類參考文獻(xiàn)應(yīng)以“:頁碼范圍”結(jié)尾”:{[10]梁亞玲.試P49}21.不能缺少院系{鐘雁.管理信息系統(tǒng)P49}22.此條參考文獻(xiàn)字體錯(cuò)誤,應(yīng)為中文宋體,英文TimesNewRoman:{[24]Levy,P49}二:錯(cuò)誤統(tǒng)計(jì)本論文共檢測出錯(cuò)誤22條,列舉如下:-----------------一般錯(cuò)誤統(tǒng)計(jì)-----------------1.字體錯(cuò)誤:42.字號錯(cuò)誤:3-----------------特殊錯(cuò)誤統(tǒng)計(jì)-----------------3.封面標(biāo)識錯(cuò)誤:14.封面中英文標(biāo)題錯(cuò)誤:15.封面信息填寫錯(cuò)誤:16.封面底部校名錯(cuò)誤:17.摘要標(biāo)題錯(cuò)誤:18.頁眉奇偶頁錯(cuò)誤:19.圖空行錯(cuò)誤:110.圖名格式錯(cuò)誤:111.表名格式錯(cuò)誤:312.參考文獻(xiàn)條目格式錯(cuò)誤:4針對該論文,共檢測出8個(gè)特定部分有錯(cuò)誤信息,分別為:封面、摘要、頁眉頁腳、目錄、正文、圖、表、參考文獻(xiàn);并生成錯(cuò)誤統(tǒng)計(jì)信息,包括錯(cuò)誤總數(shù)、一般錯(cuò)誤統(tǒng)計(jì)和特殊錯(cuò)誤統(tǒng)計(jì)。檢測出的一般錯(cuò)誤有:字體錯(cuò)誤、字號錯(cuò)誤。檢測出的特殊錯(cuò)誤有:封面標(biāo)識錯(cuò)誤、封面中英文錯(cuò)誤、封面信息填寫錯(cuò)誤、封面底部校名錯(cuò)誤、摘要標(biāo)題錯(cuò)誤、頁眉奇偶頁錯(cuò)誤、圖空行錯(cuò)誤、圖名格式錯(cuò)誤、表名格式錯(cuò)誤、參考文獻(xiàn)條目格式錯(cuò)誤。5、實(shí)驗(yàn)及結(jié)果基于本方法設(shè)計(jì)了“學(xué)位論文格式自動(dòng)檢測軟件”,對本方法的有效性進(jìn)行驗(yàn)證。在編程結(jié)束后,共進(jìn)行了開發(fā)人員測試,用戶測試兩方面測試,下面是測試用例及測試結(jié)果。隨機(jī)選取了大連理工大學(xué)畢業(yè)研究生的46篇學(xué)位論文,針對封面、獨(dú)創(chuàng)性聲明、標(biāo)題、摘要、目錄、正文、頁眉頁腳、表格、圖形、參考文獻(xiàn)、授權(quán)書等十一個(gè)特定部分進(jìn)行測試,全部能夠正常生成檢測報(bào)告,平均0.717秒完成一篇論文檢測,誤報(bào)率為0,漏報(bào)率小于1%。將本軟件部署于網(wǎng)站之上并針對大連理工大學(xué)即將上交學(xué)位論文的研究生開放,共有317名學(xué)生上傳523篇次論文,全部可以正常生成檢測報(bào)告,誤報(bào)率為0,漏報(bào)率小于1%。當(dāng)前第1頁1 2 3 當(dāng)前第1頁1 2 3