■馮 民 毛善鋒
1)河北科技大學(xué)學(xué)報編輯部,河北石家莊市裕華東路70號 050018
2)《東南大學(xué)學(xué)報(自然科學(xué)版)》編輯部,南京市四牌樓2號 210096
當(dāng)前,有關(guān)科技期刊元數(shù)據(jù)提取方面的研究已有一些研究成果[1_6],相關(guān)技術(shù)和產(chǎn)品也已較為成熟。例如,文獻(xiàn)[1]提供一種為提取DOI數(shù)據(jù)而在排版模板中預(yù)置標(biāo)簽的方法,這種方法相對來說提取的元數(shù)據(jù)結(jié)果最準(zhǔn)確,只是要求相關(guān)人員對排版軟件有一定的了解。文獻(xiàn)[2]提出利用VB讀取方正排版文件以提取元數(shù)據(jù),但技術(shù)相對復(fù)雜。文獻(xiàn)[3]提出在程序中預(yù)置兩個刊物的定位標(biāo)簽,使用Excel VBA從方正fbd小樣文件中提取元數(shù)據(jù),其要求人工先選擇一些符號,預(yù)置為定位標(biāo)簽。
本文提出了一種用Excel VBA進(jìn)行期刊元數(shù)據(jù)自動提取的程序設(shè)計,理論上可實(shí)現(xiàn)任意數(shù)量期刊元數(shù)據(jù)的提取。程序的創(chuàng)新之處在于無需預(yù)置定位標(biāo)簽,而是在元數(shù)據(jù)提取程序運(yùn)行過程中,在人工輔助下,由程序根據(jù)預(yù)置規(guī)則自動確定定位標(biāo)簽。本文的研究適用對象是單刊或期刊集團(tuán)、集群,期望為批量期刊元數(shù)據(jù)的提取提供一種減輕人工勞動、提高數(shù)據(jù)采集效率的新思路。
本文的思路是,利用Excel打開fbd等類型的文件后,所有的數(shù)據(jù)都按順序處于第1列單元格內(nèi)(有時個別數(shù)據(jù)在第2列)[3],根據(jù)不同的元數(shù)據(jù)前后有不同的“〖”、“〗”、“[”、“]”等符號對及特殊文字,由程序采集,作為定位標(biāo)簽使用,然后程序根據(jù)定位標(biāo)簽進(jìn)行元數(shù)據(jù)的定位和提取。最后,將提取的數(shù)據(jù)進(jìn)行處理,提供數(shù)據(jù)下載功能。
期刊元數(shù)據(jù)的提取程序流程如圖1所示,其各步驟的功能介紹如下。
圖1 數(shù)據(jù)提取流程圖
Step1:獲得期刊名。程序開始后,首先彈出用戶窗體(見圖2),各部分實(shí)現(xiàn)的功能如下。
圖2 用戶窗體
a)下拉列表。用戶窗體的初始化程序自動從“期刊名錄.txt”文件中提取期刊名,賦值到下拉列表中。點(diǎn)擊下拉列表中的刊名,則會出現(xiàn)在列表框中;直接在列表框中輸入刊名亦可。容錯機(jī)制:若打開“期刊名錄.txt”出錯,則先建立文件,此時列表會顯示為空。
b)確定。對應(yīng)圖1中的“選擇期刊”。點(diǎn)擊后程序會將在列表框所獲取的期刊名與“期刊名錄”中的期刊名逐一進(jìn)行對比,若已有此期刊則置isNewJournal為False;若 “期刊名錄”中沒有,則置isNewJournal為“True”。若沒有選擇期刊而點(diǎn)擊“確定”,則程序提示“還未選擇期刊”。
c)取消。對應(yīng)圖1中的“取消”。彈出“警告”對話框,提示已取消操作,并終止程序。
d)新增。對應(yīng)圖1中的“新增期刊”。點(diǎn)擊“新增”后,彈出輸入對話框,提示輸入刊物名稱。若輸入為空時點(diǎn)擊確定或點(diǎn)擊取消則返回到用戶窗體;若輸入的內(nèi)容經(jīng)比對是新增刊名,則在“期刊名錄.txt”中增加期刊名稱,并置 isNewJournal為“True”;若“期刊名錄”中已有此刊名,則彈出對話框,提示是否重新確定定位標(biāo)簽,選擇是則置isNewJournal為“True”,但不存入期刊名錄,選擇否則置isNewJournal為False??蓪ⅰ捌诳洝敝械钠诳托略銎诳贓xcel表中排序,然后再寫入,這樣顯示在用戶窗體的下拉列表中的期刊名就是按序排列的了。
Step2:載入fbd數(shù)據(jù)。利用“打開”對話框獲得fbd文件名及路徑,用Excel打開、載入fbd數(shù)據(jù)。
Step3:確定定位標(biāo)簽。由人工輔助點(diǎn)擊元數(shù)據(jù)所在的單元格,程序就會自動確定定位標(biāo)簽,并存入一個以期刊名命名的純文本文件中,如河北科技大學(xué)學(xué)報.txt。
Step4:讀取定位標(biāo)簽。根據(jù)從用戶窗體所獲得的期刊名,從當(dāng)前路徑下對應(yīng)的txt文件中讀取定位標(biāo)簽。若打開出錯,則轉(zhuǎn)到Step3。
Step5:提取、處理元數(shù)據(jù)。進(jìn)行元數(shù)據(jù)的提取和處理。
Step6:下載數(shù)據(jù)。在數(shù)據(jù)提取完畢后,對數(shù)據(jù)進(jìn)行處理,滿足諸如勤云采編系統(tǒng)所需的Excel數(shù)據(jù)表,或者COAJ所需的Excel數(shù)據(jù)表等的下載,再者,可考慮增加不同格式的下載功能。
以上流程中,所涉及的編程技術(shù)已較為成熟,這方面本文不再贅述。因?yàn)镾tep3是由程序確定定位標(biāo)簽,其準(zhǔn)確與否直接關(guān)系到元數(shù)據(jù)提取的正確性,是編程的關(guān)鍵點(diǎn)和難點(diǎn),故下文只闡述由程序確定定位標(biāo)簽這方面的內(nèi)容。
本文認(rèn)為,定位標(biāo)簽的提取類似于元數(shù)據(jù)的提取,即定位標(biāo)簽只不過是一種特殊的數(shù)據(jù),故而可以在用戶的輔助下,由程序依據(jù)一定的規(guī)則采集。
觀察可見,多數(shù)期刊中各篇論文的格式、體例至少在一期中是基本一致的,即各篇論文的相同項元數(shù)據(jù)的定位標(biāo)簽是基本相同的,這就為程序確定定位標(biāo)簽提供了條件。由載入Excel中的方正fbd小樣文件可知,幾乎每一項元數(shù)據(jù)的開始和末尾都有一些標(biāo)志性的、與正文內(nèi)容沒有重合的符號,有的元數(shù)據(jù)前還有特殊的文字字符,如“摘要”“關(guān)鍵詞”等,故定位標(biāo)簽的確定主要是程序?qū)@些特殊文字和“〖”、“〗”以及“[”、“]”符號的判斷和提取。
自動化采集定位標(biāo)簽的程序設(shè)計說明如下。
(1)盡量全面的考慮元數(shù)據(jù)項目
將這些元數(shù)據(jù)以及某些特殊數(shù)據(jù)(如“首頁頁眉”)的中文名稱賦值給一個一維數(shù)組,如
示例中有21個數(shù)據(jù),這些數(shù)據(jù)項目可根據(jù)需要增減、調(diào)整。
(2)循環(huán)采集定位標(biāo)簽
按上述一維數(shù)組的下標(biāo)順序,由程序彈出對話框(見圖3),提示用戶點(diǎn)擊某個元數(shù)據(jù)(如題名)所在的單元格,用戶可根據(jù)具體情況選擇是、否、取消,對應(yīng)的后續(xù)處理程序分別是采集定位標(biāo)簽、再等3秒以待選中單元格和取消此項數(shù)據(jù)的采集;循環(huán)上述步驟,即可采集所有元數(shù)據(jù)的定位標(biāo)簽。程序在采集定位標(biāo)簽的同時,還采集定位標(biāo)簽所在的行號,以便按元數(shù)據(jù)實(shí)際出現(xiàn)的順序排序,最后可將排序后的定位標(biāo)簽寫入以期刊名命名的txt文件。
圖3 程序提示、人工點(diǎn)擊單元格示例
說明:1)為了準(zhǔn)確切分稿件,首頁頁眉需與其他頁眉不同。2)定位標(biāo)簽排序后存儲的目的是按順序定位、采集元數(shù)據(jù)。不同的期刊其定位標(biāo)簽出現(xiàn)的順序可能不同,但都是按照先后出現(xiàn)的順序存儲的。
圖4顯示的是《河北科技大學(xué)學(xué)報》的定位標(biāo)簽。因?yàn)槭莟xt文件,故可以復(fù)制、移動,另外,也可以在必要時編輯txt文件里的定位標(biāo)簽。
圖4 定位標(biāo)簽示例
(1)在采集定位標(biāo)簽的循環(huán)過程中,一個重要的子程序是要確定用戶已選中單元格,這是程序采集定位標(biāo)簽的前提,其主要程序語句如下。
(2)另一個重要的子程序是在用戶選中單元格后,程序如何自動確定定位標(biāo)簽。對于元數(shù)據(jù)前有特殊字符作為先導(dǎo)的,如前面有“文章編號”“doi”,“摘要”等,依靠特殊字符進(jìn)行定位標(biāo)簽的提??;對于無特殊字符作為先導(dǎo)的,如“題名”“作者姓名”“單位”等,則進(jìn)行另外的統(tǒng)一設(shè)計。限于篇幅,本文只給出“統(tǒng)一設(shè)計”部分的程序以供參考。
本文提出了利用Excel VBA在程序運(yùn)行過程中確定元數(shù)據(jù)的定位標(biāo)簽繼而采集元數(shù)據(jù)的思路,一般只需在首次提取某個刊物元數(shù)據(jù)時進(jìn)行定位標(biāo)簽的采集,其后不必重復(fù)采集。這種方式可在較大程度上降低對人員的技術(shù)要求,減輕人工勞動,實(shí)現(xiàn)批量期刊自動化數(shù)據(jù)提取。對幾種刊物的初步測試表明,該方法能較準(zhǔn)確地采集定位標(biāo)簽,較好地實(shí)現(xiàn)元數(shù)據(jù)的提取,證明這種方法有一定的可行性。此種方法理論上可滿足任意數(shù)量期刊元數(shù)據(jù)提取的需要。
本文不足之處是,針對首頁頁眉與其他頁眉相同、排版較為特殊(如題名、作者姓名、單位等在同一個單元格內(nèi))、個別元數(shù)據(jù)定位標(biāo)簽與其他不同(如某篇文章題名的定位標(biāo)簽與其他篇的不同)等等情況還不能進(jìn)行有效的數(shù)據(jù)提取。今后,除針對上述問題進(jìn)行深入研究外,還需對更多期刊進(jìn)行測試,以發(fā)現(xiàn)問題、改進(jìn)程序。
[1]毛善鋒,田杰,張莞.預(yù)置XML標(biāo)簽 定制DOI元數(shù)據(jù)[J].科技與出版,2009(11):14_16.
[2]楊海亮,徐用吉.利用 VB讀取方正排版文件提取元數(shù)據(jù)[J].中國科技期刊研究,2015,26(6):612_617.
[3]馮民,高紹強(qiáng).用excel宏程序提取fbd期刊數(shù)據(jù)的簡易編程[J].中國科技期刊研究,2015,26(9):969_974.
[4]李朝光,張銘,鄧志鴻,等.論文元數(shù)據(jù)信息的自動抽?。跩].計算機(jī)工程與應(yīng)用,2002(21):189_191.
[5]狄滌,周競揚(yáng),潘金貴.基于規(guī)則的 HTML文檔元數(shù)據(jù)提取[J].計算機(jī)工程,2004,30(9):85_86.
[6]郭志鑫.基于本體的文檔引文元數(shù)據(jù)信息抽取[J].微計算機(jī)信息,2006,22(18):304_306.