張繼琛
摘 要:pdf、word、txt等類型文檔在學(xué)習(xí)和辦公中的使用越來普遍,為了方便對這些文檔進(jìn)行統(tǒng)一歸類、整理等必要的處理,在處理文檔的時候,那么就需要把文檔轉(zhuǎn)換成統(tǒng)一的格式進(jìn)行處理,這就涉及到各種類型文檔的相互轉(zhuǎn)換。還需要提取關(guān)鍵詞等功能來幫助用戶對文檔分類或了解文檔的大概內(nèi)容。
本文會講解在多種類型文檔進(jìn)行數(shù)據(jù)處理時所采用的關(guān)鍵詞抽取的相關(guān)技術(shù)和數(shù)據(jù)格式轉(zhuǎn)換技術(shù)的調(diào)研和使用。擬用C/S結(jié)構(gòu)開發(fā),采用JAVA作為開發(fā)工具,在Eclipse環(huán)境下,實(shí)現(xiàn)對多種類型文檔進(jìn)行數(shù)據(jù)處理的模擬。
關(guān)鍵詞:格式轉(zhuǎn)換;關(guān)鍵詞抽取
1 設(shè)計方案
1.1文檔格式轉(zhuǎn)換方案
因各類文檔的轉(zhuǎn)換方法類似,而word文檔轉(zhuǎn)換為pdf文檔是最常用的。所以設(shè)計方案用實(shí)現(xiàn)word文檔轉(zhuǎn)換為pdf文檔的作為例子,詳細(xì)方案如下。
方案1:
首先利用程序直接打開Word文檔,從原文檔中獲取文字和圖像的內(nèi)容以及它們的相關(guān)屬性(因word文檔對文字和圖像的屬性設(shè)置過多,只能獲取部分關(guān)鍵屬性),再直接生成PDF文檔并按照Word文檔的對應(yīng)屬性把對應(yīng)的文字內(nèi)容和圖像內(nèi)容分別輸入到相應(yīng)的位置上,最后關(guān)閉文件。
但是,因為需要從文檔中直接獲取其中的內(nèi)容和對應(yīng)屬性,如果要采用此方案,就必須精通Word以及PDF的文檔的結(jié)構(gòu)。但是Word和PDF的文檔的結(jié)構(gòu)非常復(fù)雜(單單文檔的規(guī)則就有幾千條,時間會浪費(fèi)在閱讀和使用規(guī)則上)。這就意味著,在讀取Word文檔的時候不但要獲取Word文檔的文本內(nèi)容,而且還要獲取到對應(yīng)的字體格式、顏色、背景圖像以及表格的位置等等。又因為微軟的office軟件和Adobe Acrobat Professional都不是開源軟件,沒有它們的源代碼,就很難保證在定義Word和PDF文檔對應(yīng)屬性、設(shè)置文檔格式時不會遇到非開源的部分。綜上所述,此方案體實(shí)現(xiàn)困難。
方案2:
對于方案1中存在的問題,微軟公司和第三方公司提供了操作Word、Excel和PDF的類庫、接口和組件,這就有了解決方案。第二種方案就是先制作一個中間件,即將word文檔先轉(zhuǎn)換成Ps文檔,然后再把Ps文檔轉(zhuǎn)換成PDF文檔。最終編寫圖形界面,上傳文檔并利用代碼使用這個中間件完成文檔轉(zhuǎn)換。
方案3:
為了提高多種類型文檔的數(shù)據(jù)處理的穩(wěn)定性和安全性,本方案對方案2進(jìn)行修改,取消使用件。方案2調(diào)用提供的相應(yīng)組件和類庫的使用是在中間件中實(shí)現(xiàn)的,每當(dāng)對中間件打包處理時,只能把中間件打包,而對于其中所調(diào)用的組件和類庫等無法打包,若用方案2開發(fā)模擬數(shù)據(jù)處理的模擬程序必受到軟件環(huán)境的制約。所以方案3放棄使用中間件,采用PDFBOX、POI類庫??紤]到需轉(zhuǎn)換的文檔具有很多的規(guī)范,且不易直接操作的特點(diǎn),同時為了數(shù)據(jù)處理模擬程序的通用性,因此決定使用方案3進(jìn)行模擬。
1.2關(guān)鍵詞抽取方案
在文檔被統(tǒng)一的轉(zhuǎn)換為同一類文檔后,接下來就需要對文檔進(jìn)行關(guān)鍵詞抽取。
1.利用ANSJ中文分詞對轉(zhuǎn)換后文檔進(jìn)行處理,將文檔中所有詞匯和詞性放入數(shù)組中存儲。
2.統(tǒng)計特征值。創(chuàng)建一個哈希表。里面需要有詞匯所在位置(標(biāo)題,摘要,正文,句首,句尾)和出現(xiàn)總次數(shù)等等。
3.從正文的開始處,若開頭不是虛詞也不是符號,若相連的兩個詞都不是,計算這兩個詞連續(xù)出現(xiàn)的次數(shù)。如果計算的次數(shù)大于設(shè)定的閾值,就把這兩個詞或者合并到一起并修正詞性為new(表示為名詞),再從這個重新組成的詞作為開始,循環(huán)以上操作;若相連兩個詞的出現(xiàn)的次數(shù)小于設(shè)定的閾值,或有虛詞、符號,則跳過。然后尋找下一個不是虛詞或者符號的實(shí)詞。直至正文內(nèi)容的結(jié)尾。
4.根據(jù)修改的數(shù)組重新遍歷。重新整理哈希表的信息。修改原來的新詞匯new和里面的特征值。
以上步驟能夠重新切分出一些新詞。這些新詞可以作為關(guān)鍵詞提取的一個特征值,它們會起很大的作用。
2 程序模擬
按照方案3進(jìn)行程序模擬的結(jié)果如下圖所示:
參考文獻(xiàn)
[1] 田學(xué)軍.PDF文件格式及其轉(zhuǎn)化方法探討[J],荊門職業(yè)技術(shù)學(xué)院學(xué)報,2005,(3):5-31.
[2] 鄭家恒,盧嬌麗,關(guān)鍵詞抽取方法的研究[J].計算機(jī)工程,2005,18(9):194-196.
[3] 宋艷娟,李金銘,陳振標(biāo).基于XSLT的PDF信息抽取技術(shù)的研究[J].計算機(jī)與數(shù)字工程,2008,36(5):156-159.