摘 ?要: 為實(shí)現(xiàn)對(duì)教育資源平臺(tái)中課件資源的分析,進(jìn)行知識(shí)圖譜構(gòu)建,文章通過分析現(xiàn)有Office文件解析技術(shù),結(jié)合教育資源平臺(tái)常見資源文件類型,通過Office文檔轉(zhuǎn)換程序,統(tǒng)一Office文件格式,再通過解析程序進(jìn)行解析完成資源文件的詳細(xì)內(nèi)容識(shí)別。
關(guān)鍵詞: 解析; 資源文件; 文檔轉(zhuǎn)換; Office文件
中圖分類號(hào):TP311 ? ? ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A ? ? 文章編號(hào):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 引言
教育資源平臺(tái)中的課件資源格式主要是Office中的Word、Excel、PPT,對(duì)資源內(nèi)容分析,就需要對(duì)Office類型文件進(jìn)行解析。Office文件主要包含97-2003版和Offcie 2007及以后版本,兩個(gè)版本的文件差異性較大,解析方法也不相同,Office中包含文本、表格、圖形、圖片、對(duì)象等,能否實(shí)現(xiàn)Office文件的完全解析是一個(gè)技術(shù)難點(diǎn)。
1 現(xiàn)有Office文檔解析技術(shù)
本節(jié)按Java、C#、Python這三種流行語言相關(guān)組件進(jìn)行說明。
⑴ Java
Java語言中用于讀寫Office文件的組件主要有Jacob和POI。
Jacob是一個(gè)Java-COM中間件。通過這個(gè)組件,可以在Java程序中調(diào)用Windows系統(tǒng)的COM組件和Win32程序庫[2]。
POI提供API給Java程序?qū)icrosoft Office格式檔案讀和寫的功能[3]。
⑵ C#
NPOI是POI項(xiàng)目的.NET版本,可以實(shí)現(xiàn)全文索引功能,提取文檔中文字和圖像[4]。
⑶ Python
Python可以使用python-docx庫、python-xlsx庫、python-pptx庫對(duì)相應(yīng)文件進(jìn)行讀寫。
諸如此類讀寫Office文檔的組件、類庫還有很多,但都不能很方便的進(jìn)行文檔的分析,只是可以實(shí)現(xiàn)簡(jiǎn)單文本內(nèi)容和圖片的提取,所以需要通過Office 2007及之后版本基于OPEN XML存儲(chǔ)這一特性進(jìn)行XML解析。97-2003版文件,通過轉(zhuǎn)換成2007版實(shí)現(xiàn)[5-6]。
2 Office文檔轉(zhuǎn)換
97-2003版文件可以通過soffice進(jìn)行轉(zhuǎn)換成2007版。libreoffice和openoffice程序組件中都包含soffice程序,但功能有差異,openoffice不能滿足現(xiàn)有需求,所以本文中選用libreoffice中的soffice程序。
Word文件進(jìn)行97-2003版轉(zhuǎn)2007版命令如下:
soffice --headless --convert-to docx test.doc
#結(jié)果:生成文件test.docx
soffice是用于文件轉(zhuǎn)換的命令,第一個(gè)參數(shù)headless是以無界面運(yùn)行;第二個(gè)參數(shù)convert-to是進(jìn)行文件類型轉(zhuǎn)換,其后跟第一個(gè)參數(shù)docx代表要轉(zhuǎn)換成的文件類型,第二個(gè)參數(shù)test.doc代表要進(jìn)行轉(zhuǎn)換的文件,同時(shí)可跟“--outdir ?output_path”指定轉(zhuǎn)換后文件存放位置,轉(zhuǎn)換后文件默認(rèn)生成到終端當(dāng)前目錄。
Excel文件進(jìn)行97-2003版轉(zhuǎn)2007版命令如下:
soffice --headless --convert-to xlsx test.xls
#結(jié)果:生成文件test.xlsx
PPT文件進(jìn)行97-2003版轉(zhuǎn)2007版命令如下:
soffice --headless --convert-to pptx test.ppt
#結(jié)果:生成文件test.pptx
3 文檔解析
教育資源存放在文件服務(wù)器中,Office文件解析通過全自動(dòng)化方式進(jìn)行。解析首先會(huì)判斷Office文件類型,如果是2007及以后版本文件,則會(huì)執(zhí)行解析前準(zhǔn)備工作,即修改后綴為ZIP格式文件并解壓該壓縮包,下一步可通過解析器自動(dòng)匹配相應(yīng)格式解析器進(jìn)行解析;如果是97-2003格式,則需通過基于soffice的文檔轉(zhuǎn)換程序自動(dòng)將現(xiàn)有格式文件轉(zhuǎn)換為2007及以后格式,然后執(zhí)行步驟同2007及以后版本文件操作,教育資源平臺(tái)Office文件解析流程如圖1所示。
4 總結(jié)
教育資源服務(wù)器上的Office文件資源,通過轉(zhuǎn)換格式,統(tǒng)一成2007及以后格式,即可輕松實(shí)現(xiàn)文檔內(nèi)容解析,詳細(xì)識(shí)別文檔所包含的元素類型,實(shí)現(xiàn)標(biāo)題、段落內(nèi)容、圖片提取、表格識(shí)別等操作。文件格式的轉(zhuǎn)換也可以通過教育資源平臺(tái)上傳這一步驟完成,本文所使用資源解析方法目前對(duì)于實(shí)驗(yàn)環(huán)境操作并沒有不妥之處,但對(duì)于生產(chǎn)環(huán)境還需要完善現(xiàn)有的文件解析技術(shù),通過二進(jìn)制文件讀取形式完成解析。
參考文獻(xiàn)(References):
[1] 廖怨婷.Word文檔解析及脫敏技術(shù)研究[D].西南交通大學(xué),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].計(jì)算機(jī)光盤軟件與應(yīng)用,2013.24.
[6] Microsoft Word Program Manager Zeyad Rajab.Open XML SDK and Microsoft Office 2010.07/06/2010.
收稿日期:2021-03-18
基金項(xiàng)目:2017年新疆維吾爾自治區(qū)重點(diǎn)實(shí)驗(yàn)室開放課題“新疆雙語教育資源分類識(shí)別與知識(shí)圖譜構(gòu)建”(2017D04009)
作者簡(jiǎn)介:張佳偉(1989-),男,甘肅禮縣人,大學(xué)本科,碩士學(xué)位,工程師,主要研究方向:Linux操作系統(tǒng),軟件工程。