時 華,陸新民(中國科技出版傳媒股份有限公司,北京100717)
基于MS Word字處理軟件的內容結構化標引和拆分技術研究
時華,陸新民
(中國科技出版傳媒股份有限公司,北京100717)
介紹ConSIS系統中提出的針對.docx格式文稿的內容進行結構化標引與拆分中涉及到的3種技術:對內容結構進行自動標引的方法,將公式對象轉換為標準MathML代碼的方法,進行語義標引的方法,并且通過ConSIS系統的實現驗證這些技術的有效性。
字處理軟件;內容結構化;結構化標引;公式轉換;MathML;語義標引
隨著新媒體技術的不斷涌現和用戶的消費特征、閱讀行為習慣等方面的不斷變化,使得可選擇的出版內容的呈現方式、傳播方式或服務的形態和商業模式成幾何倍數增長。如何適應這種發展和變革,對出版內容進行有意義的碎片化處理和重組一直是數字出版領域的重要研究方向。
內容的碎片化是將非結構化或半結構化內容進行結構化處理,并從內容復用角度進行拆分的過程。如何從技術層面實現這一過程,國外著名的數字出版內容和技術服務商,如愛思唯爾、斯普林格,早在20世紀90年代初開始就做了大量的技術研究,開發了各種基于XML的內容結構化標引與拆分工具。國內的一些具有前瞻性的企業,如萬方數據、同方知網、高等教育出版社、方正電子等也都在這方面做了有力的嘗試。
目前大多數的內容結構化標引與拆分工具都建立在XML編輯器的基礎之上,在結構化方面需要較多的人工干預,一般依附于內容編撰平臺,以在線方式開展工作,這就使得內容碎片化存在一定的問題。
一是由于內容在創作時沒有按照規范要求進行編排,導致出版單位需要在作品的加工環節投入大量的人力進行諸如電子目錄制作、公式表格的重新繪制等工作。
二是由專門的加工編輯人員對內容進行細粒度加工,例如CNKI的知網節、萬方的五要素等,在碎片化方面達到了一定效果,但是離開了作者和專家的參與,這種形式的碎片化和標引標注的質量都會受到質疑。因為作者對于作品的本意是最清楚的,而編輯的重點在于作品的規范和質量控制,同行評議的專家對于內容的學術水平是最清楚的,重復性的加工利用工業化的加工的成本是最低的。所以,對于作品的碎片化和標引標注工作應該從作品的創作階段就開始進行,只有四種角色都參與進來才能保證內容碎片化和標引標注的質量,才使得加工成果有復用的價值。
三是現有的內容結構化標引與拆分工具沒有在軟件的可用性和易用性角度進行設計,往往忽略使用者的客觀限制和使用習慣:作者、編輯、專家使用最多的軟件是字處理軟件,對于其中的界面最為習慣,而對于基于XML編輯器的在線標引工具所提供的交互界面相對陌生,要想靈活掌握需要花費一定的時間成本;在線標引工具要求使用者必須在聯通因特網的網絡環境下工作,在使用場所上受到很大的限制;在線標引工具的界面功能相對薄弱,使用者在標引的同時往往會伴隨著內容的修改和調整,單一的標引功能使得用戶要想對內容和版式做調整的話,需要用戶不斷在幾個工作平臺上進行切換,效率低下,很容易出錯。
因此,研究能夠智能生成文檔內容結構,適合于多種角色習慣的基于常用字處理軟件的內容結構標引標注技術,無論在理論上還是在應用中都具有重要意義。
結合科技部科技支撐計劃項目專項“科技文獻采編、生產環節動態出版關鍵技術研發與應用示范”課題的研究工作,本文介紹了由中國科技出版傳媒股份有限公司研制的課題原型系統ConSIS(內容結構化標引與拆分系統的簡稱)中提出的針對采編環節中的.docx格式文稿進行的文檔結構智能生成、自動化標引的機制,相關的關鍵實現技術和總體設計方法。
結構化標引涉及到對文檔結構、文檔內容對象的標引,以及語義標引,具體研究內容包括以下。
1.1對文檔內容結構的識別與自動彪引技術的研究
從內容復用的角度來看,一本圖書可被拆分成目錄、前言、序言、篇章節、段落、注釋、公式、插圖、表、后記/跋、參考文獻、附錄/索引等內容單元。這些內容單元與Word對象模型中的對象并不是一一對應的。
1.2對公司、圖、表等特殊文檔內容對象的識別與自動轉換技術研究
由于作者在作品創作時使用的公式、圖、表編輯工具各種各樣,造成在文檔中會有各種OLE對象。當脫離終端環境后,在新的環境中如果沒有安裝相應的編輯處理程序,那么將無法編輯這些文檔內容對象。
目前大部分標引工具無法解決此類問題,它們普遍采取的是保存圖片的方式。而這種方式使得重用性大大降低,如:公式轉換成一定精度圖片后,就不能滿足再編輯、同時滿足印刷(精度太小)、不同終端展示(精度太高)的需求。
MathType是現在最流行的公式錄入器,它可以和Word很好地結合,非常快捷方便地在Word中輸入公式。
在Word文檔中,用MathType編輯的公式都是Inlinshape對象。為了規范化存儲,一般可以考慮轉化為圖片,不想損失原格式,就必須用OLE對象轉化為二進制流。
1.3對手動標引技術研究
對文檔內容的語義標引,必須使用工具進行手動標引。標引內容的存放位置是一個問題,目前大多數工具的做法是將其單獨存放到數據庫或文檔之外的XML文件中,也有部分程序采用的是在文檔正文中使用可隱藏的標引符號的方式將標引標注的內容插入到被標引的正文中的方式。存儲到數據庫或XML文件中的方式,一般是文稿被提交到數字內容管理系統后,由編輯人員通過在線標引工具實現的。這種方式要讓作者采用是非常困難的;插入到正文的方式破壞了原文的內容體系結構,增加了自動標引的復雜度,不利于針對正文內容的全文索引庫的建立。
ConSIS系統是中國科技出版傳媒股份有限公司所承擔的科技部科技支撐計劃項目專項“科技文獻采編、生產環節動態出版關鍵技術研發與應用示范”課題的原型系統之一。本文給出了ConSIS系統在.docx格式文稿結構化標引、拆分方面所設計實現的新機制。它在一定程度上解決了目前大多數標引工具的問題。
對文檔結構的識別,系統的做法是基于Word對象模型(Word Object Model)逐一分析Word對象中元素的樣式,通過預先定義的具有語義特征的樣式分析出整個文檔的結構及其中各類特征元素。
如果文檔的結構性能比較好,創建出合格的目錄就會變得非常快速簡便。Word一般是利用標題或者大綱級別來創建目錄的,這對那些用Word寫書、寫論文的朋友很有幫助。因此,在創建目錄之前,應確保希望出現在目錄中的標題應用了內置的標題樣式(如,標題1到標題9),也可以應用包含大綱級別的樣式或者自定義的樣式。
文檔拆分的過程是由程序來完成的。程序會逐一分析Word對象中元素的樣式,通過預先定義的具有語義特征的樣式分析出整個文檔的結構及其中各類特征元素,最后抽取出對應的內容形成相對獨立的內容單元。
2.2將Word 中德公式轉換為標準Matgnl 代碼方法
這里所指的Word文稿中的公式包括由Word自帶的公式編輯器生成的公式和MathType程序生成的公式。
通過對Word文檔進行研究發現,從Word界面插入的公式是基于OMath XML(Office Open XML的一部分,在Office 2007中被作為一種新的文檔格式介紹)的。
因此,在程序中可以這樣從打開的Word文檔中得到公式的OMath XML:
String str=ActiveDocument.OMaths(1).Range.WordOpenXML;
它將被嵌入用來定義一個Word文檔的OPC平面文件OOXML中。但是很容易從中提取出它。
當然,OMath XML和MathML是不同的,但這并不會影響到將OMML公式轉化為MathML公式。
可以調用MathType Convert Equations命令將OMML公式直接轉換成MathML。
對于由MathType生成的公式,在Word中是以OLE對象的方式存儲的。通過設置MathType工具的“剪切和復制首選項”,就可以輕松的復制獲得一個公式的MathML代碼,如圖1所示:

圖1
那么,如何讓已經插入到Word文稿中的公式由程序自動完成MathML代碼轉換呢?
一種解決思路是:
首先利用VBA編程實現將Word中的MathType公式對象向MathML代碼轉換。
如:
轉化成XML片段為:


feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLw-BLn
hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr
4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq= Jc9
vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr= xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcba WaaOaaaeaaca
WGIbWaaWbaaSqabeaacaaIYaaaaOGaeyOeI0IaaGinaiaadggacaWGJbaaleqaaOWaaSaaaeaacqGHsislcaWGIbGaeyySae7aa
Oaaaeaaca
WGIbWaaWbaaSqabeaacaaIYaaaaOGaeyOeI0IaaGinaiaadggacaWG
JbaaleqaaaGcbaGaaGOmaiaadggaaaaaaa@465A@
〈/annotation>
〈/semantics>
〈/math>
然后使用字符串匹配的方式提取出公式的源代碼。
使用Apache的POI開源項目提供的HWPF接口可以把Word中的presentation源碼提取。
更簡單的解決方法是使用MathType SDK:
MathType已經提供了很多免費的軟件開發套件(MathType Software Development Kit,簡稱MathType SDK),在MathType SDK中有專用來做此事的hooks。
2.3實現手動標引的方法
系統為用戶提供了一種對文檔中的圖表、表格、公式、知識點等內容進行語法標引的方法。
(1)根據模板文件(Xsd格式)中的規則,生成標引標注命令,為文檔編輯者提供標引標注界面。
在Word初始化時,解析指定目錄下的Xsd文件,取得所有根節點元素,使用Word自定義工具欄功能在工具欄上生成節點的操作按鈕。
當單擊相應的按鈕時,程序繼續解析該節點的類型定義,讀取該類型定義將下的一級節點,寫入新建的窗體中。如果該節點為基本類型,則根據基本類型的對應顯示控件類型在窗體上繪制出該控件;如果該節點為基本類型之外的類型,如,復雜類型,則在窗體上繪制出該類型所對應的一個按鈕。
點擊按鈕時,程序循環執行上述操作。
(2)保存文檔編輯者標引標注的內容到自定義的XML文件中,該XML存于文檔的.docx文檔容器中。
作為存儲方式,XML具有良好的規范性和可擴展性,可以滿足版式信息的需求。但是XML除了要滿足XML的語法規則外,還必須遵循某些額外定義的語意才行,這些語意就是告訴程序需要標引哪些元素,每個元素的接收內容、類型,是否必須,以及元素之間的關系等。
標引功能需要利用XML處理器,根據XML規范中所定義的完構性和有效性來查核標引標注文件的內容,一旦發現不合規定的文件便會拒絕處理并告知標引者,這對于保證標引內容的正確性、規范性是非常必要的。
在.docx文檔容器內部,生成自定義XML,用于存儲用戶通過標引標注窗口輸入的標引標注數據。
自定義XML數據也是單獨的存儲在.docx文檔容器當中的。
每個項都存儲為包中的一個單獨的部件,這個數據放在一個叫做customXML的目錄中,它位于包的根目錄下。模塊通過將一個新的部件添加到文檔的customXMLParts集合,將一個XML文件附加到一個文檔當中,然后默認地XML數據被存儲在一個叫做/customXml/item1.xml的文件當中。
通過使用XMLMapping和XPath表達式,將XML部件的特定元素映射到一個內容控制。當需要修改自定義XML時,只需要查找保存自定義XML的部件,然后只修改這些文件的內容。
存儲后的結構如圖2所示:

圖2
(3)提供右鍵查看標引標注內容的功能,并允許修改。
取得當前坐標值,遍歷自定義XML文件,獲得所有包含該坐標值的標引標注項,生成Ribbon界面,顯示標引標注項目與數據。
基于字處理軟件的標引標注工具解決了在線標引工具使用環境受限及多數標引工具與用戶的使用習慣不一致的問題,實現了在字處理軟件上完成內容結構化創作和編輯工作的目的。
工具對文稿的結構化構建,減少了編輯的工作量,提高了質量和效率。但,受到文稿自身結構規范化程度影響,目前的技術人工參與的痕跡還很多,還無法完全實現智能的結構化和標注。
隨著國產字處理軟件(如金山WPS軟件等)品質和創新能力的不斷提升,市場份額逐漸擴大。今后要針對國產字處理軟件開發出相應的系統,不斷完善與改進ConSIS系統。
[1]孫艷玲,劉化冰,王海虹,等.深度加工標引的中國藥物專利數據庫[J].中國醫藥導刊,2008,10(1):22~26
[2]吳倩,李寧,方春燕.“標文通”與OOXML文字處理文檔格式的比較與轉換[J].計算機應用研究,2009,26(2):591~594
[3]Ausbrooks R,Buswell S,Carlisle D,et al.Mathematical Markup Language(MathML)Version 2.0.W3C Recommendation[J].World Wide Web Consortium,2003,2003
[4]劉東閣.基于MathML的公式檢索系統的設計與實現[D].東北大學,2009
[5]傅立云,劉新.基于XML技術的多媒體資料標引系統[J].圖書館,2010(2):111-113,2010(2):111~113
[6]McGrath K,Stubbs P,李永倫.VSTO開發者指南[M].機械工業出版社,2009
Research on the Content Structuring Indexing and Split Techniques Based on Word Processor in MS Word
SHI Hua ,LU Xin-min
(China Science Publishing&Media Ltd.,Beijing 100717)
Proposes three technologies that involved in content structural indexing and splitting of.docx document in CoSIS system:indexing content structure automatically;transforming formula object to standard MathML code;semantic indexing over.docx document.The experimental results conducts on CoSIS reveal that these technologies work well in practice.
Word Processor;Content Structuring;Structured Indexing;Conversion Formula;MathML;Semantic Indexing
國家科技支撐項目(No.2012BAH90F00)
1007-1423(2015)11-0038-05
10.3969/j.issn.1007-1423.2015.11.007
時華(1981-),男,河北高碑人,本科,高工,研究方向為項目管理、數字出版
陸新民(1971-),男,河北人,碩士研究生,副編審,研究方向為出版、計算機應用技術
2015-03-03
2015-03-25