摘 ?要: 為實現(xiàn)對教育資源平臺中課件資源的分析,進行知識圖譜構建,文章通過分析現(xiàn)有Office文件解析技術,結合教育資源平臺常見資源文件類型,通過Office文檔轉換程序,統(tǒng)一Office文件格式,再通過解析程序進行解析完成資源文件的詳細內容識別。
關鍵詞: 解析; 資源文件; 文檔轉換; Office文件
中圖分類號:TP311 ? ? ? ? ?文獻標識碼:A ? ? 文章編號:1006-8228(2021)08-51-02
Research on content recognition of the Office document resources
Zhang Jiawei1,2
(1. Modern Education Technology Center, Xinjiang Teacher's College, Urumqi, Xinjiang 830043, China;
2. Xinjiang Laboratory of Education Cloud Technology and Resources)
Abstract: In order to realize the analysis of courseware resources in education resource platform and construct knowledge graph, this paper analyzes the existing Office file analysis technology, combines with the common resource file types of education resource platforms, unifies the Office file format by using the Office document conversion program, and completes the detailed content recognition of resource file by using the parsing program.
Key words: parse; resource file; document conversion; Office file
0 引言
教育資源平臺中的課件資源格式主要是Office中的Word、Excel、PPT,對資源內容分析,就需要對Office類型文件進行解析。Office文件主要包含97-2003版和Offcie 2007及以后版本,兩個版本的文件差異性較大,解析方法也不相同,Office中包含文本、表格、圖形、圖片、對象等,能否實現(xiàn)Office文件的完全解析是一個技術難點。
1 現(xiàn)有Office文檔解析技術
本節(jié)按Java、C#、Python這三種流行語言相關組件進行說明。
⑴ Java
Java語言中用于讀寫Office文件的組件主要有Jacob和POI。
Jacob是一個Java-COM中間件。通過這個組件,可以在Java程序中調用Windows系統(tǒng)的COM組件和Win32程序庫[2]。
POI提供API給Java程序對Microsoft Office格式檔案讀和寫的功能[3]。
⑵ C#
NPOI是POI項目的.NET版本,可以實現(xiàn)全文索引功能,提取文檔中文字和圖像[4]。
⑶ Python
Python可以使用python-docx庫、python-xlsx庫、python-pptx庫對相應文件進行讀寫。
諸如此類讀寫Office文檔的組件、類庫還有很多,但都不能很方便的進行文檔的分析,只是可以實現(xiàn)簡單文本內容和圖片的提取,所以需要通過Office 2007及之后版本基于OPEN XML存儲這一特性進行XML解析。97-2003版文件,通過轉換成2007版實現(xiàn)[5-6]。
2 Office文檔轉換
97-2003版文件可以通過soffice進行轉換成2007版。libreoffice和openoffice程序組件中都包含soffice程序,但功能有差異,openoffice不能滿足現(xiàn)有需求,所以本文中選用libreoffice中的soffice程序。
Word文件進行97-2003版轉2007版命令如下:
soffice --headless --convert-to docx test.doc
#結果:生成文件test.docx
soffice是用于文件轉換的命令,第一個參數(shù)headless是以無界面運行;第二個參數(shù)convert-to是進行文件類型轉換,其后跟第一個參數(shù)docx代表要轉換成的文件類型,第二個參數(shù)test.doc代表要進行轉換的文件,同時可跟“--outdir ?output_path”指定轉換后文件存放位置,轉換后文件默認生成到終端當前目錄。
Excel文件進行97-2003版轉2007版命令如下:
soffice --headless --convert-to xlsx test.xls
#結果:生成文件test.xlsx
PPT文件進行97-2003版轉2007版命令如下:
soffice --headless --convert-to pptx test.ppt
#結果:生成文件test.pptx
3 文檔解析
教育資源存放在文件服務器中,Office文件解析通過全自動化方式進行。解析首先會判斷Office文件類型,如果是2007及以后版本文件,則會執(zhí)行解析前準備工作,即修改后綴為ZIP格式文件并解壓該壓縮包,下一步可通過解析器自動匹配相應格式解析器進行解析;如果是97-2003格式,則需通過基于soffice的文檔轉換程序自動將現(xiàn)有格式文件轉換為2007及以后格式,然后執(zhí)行步驟同2007及以后版本文件操作,教育資源平臺Office文件解析流程如圖1所示。
4 總結
教育資源服務器上的Office文件資源,通過轉換格式,統(tǒng)一成2007及以后格式,即可輕松實現(xiàn)文檔內容解析,詳細識別文檔所包含的元素類型,實現(xiàn)標題、段落內容、圖片提取、表格識別等操作。文件格式的轉換也可以通過教育資源平臺上傳這一步驟完成,本文所使用資源解析方法目前對于實驗環(huán)境操作并沒有不妥之處,但對于生產(chǎn)環(huán)境還需要完善現(xiàn)有的文件解析技術,通過二進制文件讀取形式完成解析。
參考文獻(References):
[1] 廖怨婷.Word文檔解析及脫敏技術研究[D].西南交通大學,2018.
[2] JavaTpoint.Apache POI [EB/OL].https://www.javatpoint.com/apache-poi-introduction.
[3]Sourceforge.JACOB-Java COM Bridge [EB/OL].[2020-09-25].https://sourceforge.net/projects/jacob-project/.
[4] Codeplex.NPOI [EB/OL].https://archive.codeplex.com/?p=npoi.
[5] 隋欣,張軍輝.基于.NET的word的文檔信息讀取解析[J].計算機光盤軟件與應用,2013.24.
[6] Microsoft Word Program Manager Zeyad Rajab.Open XML SDK and Microsoft Office 2010.07/06/2010.
收稿日期:2021-03-18
基金項目:2017年新疆維吾爾自治區(qū)重點實驗室開放課題“新疆雙語教育資源分類識別與知識圖譜構建”(2017D04009)
作者簡介:張佳偉(1989-),男,甘肅禮縣人,大學本科,碩士學位,工程師,主要研究方向:Linux操作系統(tǒng),軟件工程。