淺談題庫試題錄入之Word自動識別
編輯導(dǎo)語:題庫錄入對于題庫的質(zhì)與量都具有重要意義,Word文件導(dǎo)入是效率較高的錄入方式,本文將重點介紹Word文件自動識別的具體實現(xiàn)方法,一起來學(xué)習(xí)一下吧~
一、前言
試題的錄入功能對于題庫來說是核心功能,直接關(guān)系到題庫的質(zhì)與量。 錄題功能是否高效直接影響題庫中題目數(shù)量的多少,同時也決定著題目的質(zhì)量的高低。
目前的錄題方式以手動錄入和文件導(dǎo)入為主,而文件導(dǎo)入格式又以Word和Excel為主。手動錄入和Excel文件導(dǎo)入這兩種錄入方式效率低,對于存在公式的試題處理十分麻煩,而Word文件導(dǎo)入的錄入方式在效率方面完勝前兩種,并對于公式也有著很好的兼容處理。
本文將重點介紹Word文件自動識別的具體實現(xiàn)方法。
二、文檔轉(zhuǎn)換工具的選擇
Word解析首先需要將其轉(zhuǎn)化成題庫需要的格式,那么選擇好的轉(zhuǎn)換工具將是整個文件識別的關(guān)鍵。
對比了Word2LaTeX,Pandoc和各種語言自帶的模塊及庫之后,選擇Pandoc作為Word文件解析的工具。選擇的理由是開源且支持多種格式。
Pandoc被譽為轉(zhuǎn)換領(lǐng)域中的“瑞士軍刀”,可以支持大量標(biāo)記語言之間的格式轉(zhuǎn)換,例如 Markdown 、Microsoft Word、PowerPoint、Jupyter Notebook、HTML、PDF、LaTeX、Wiki、EPUB 格式之間的相互轉(zhuǎn)換,感興趣的朋友可以去官網(wǎng)了解。
三、LaTeX/Markdown
文件轉(zhuǎn)換工具選擇好之后,就要確定使用哪種格式作為最終入庫的格式。手動錄入和Excel導(dǎo)入采用的是HTML格式入庫,但是HTML對于理科的公式處理效果不太理想。調(diào)研完目前的幾種主流的格式之后,發(fā)現(xiàn)LaTeX格式最為合適。在我的上一篇文章中也具體說明了選擇LaTeX的原因,有興趣的小伙伴可以看看。
針對之前的業(yè)務(wù)場景,文科學(xué)科的試題有著字體(宋體,楷體,仿宋和黑體)需求,還要支持文字下方加點兼容下劃線,所以就采用了文科試題轉(zhuǎn)換成Markdown格式,如果沒有這些需求,可以統(tǒng)一處理成LaTeX格式。
四、公式識別
Word中通過公式編輯器MathType插入的公式都是以wmf格式的圖片呈現(xiàn)的,然而在常規(guī)業(yè)務(wù)場景下除了公式圖片外是不會添加wmf格式的圖片的,這樣就保證了公式圖片的獨特性。
首先找到所有的wmf圖片以及圖片對應(yīng)的Rid(word圖片對象的編號)、位置以及寬高屬性,通過程序?qū)ml文件中對應(yīng)對象添加特殊標(biāo)記來實現(xiàn)自動給公式打標(biāo)簽的功能,最后在導(dǎo)入Word時將上述圖片屬性組合成LaTeX格式并替代原先的特殊標(biāo)記。
找到的wmf圖片在導(dǎo)入試卷之后異步調(diào)用第三方公式OCR軟件Mathpix Snip,可以識別圖片中的公式并轉(zhuǎn)成LaTeX格式并返回,替換成原先的圖片地址就可以實現(xiàn)公式的識別。
公式識別
五、標(biāo)簽識別
標(biāo)簽識別是經(jīng)歷了一些優(yōu)化的歷程,主要是從標(biāo)簽識別-標(biāo)簽補充-標(biāo)簽簡化這三個階段進行。
1. 標(biāo)簽識別
除了公式之外,其它的內(nèi)容都是通過特征進行識別的,比如題型,分數(shù),難易度等。這些都是試題的屬性,也是區(qū)別于試題內(nèi)容之外需要識別的,但是程序是不知道這些屬性如何區(qū)分,所以需要給它們增加特殊標(biāo)記(以英文符號[]作為標(biāo)記,例如:[題型])。
2. 標(biāo)簽補充
為了達到Word中的排版效果,比如段落的首行縮進,標(biāo)題正文的字體區(qū)別,居中居左居右等,就需要在Word中加入對應(yīng)樣式的標(biāo)簽。后期增加了將近10多個標(biāo)簽,效果還是不錯的,但是效率卻明顯的下降了。由于每增加一個標(biāo)簽,都會直接影響教研老師的效率。
3. 標(biāo)簽簡化
想要達到既能達到Word的排版效果,又能保證錄題的效率,團隊做出了很多的嘗試,最終通過研究Word原始XML文件,完成大部分屬性的自動識別,只需要教研老師在導(dǎo)入文件中打上題型的標(biāo)簽就可以直接入庫。
識別后的效果展示
六、總結(jié)
在整個項目中,從一開始的技術(shù)選型,工具選擇,迭代優(yōu)化,到最后實現(xiàn)錄題效率的極大提升,經(jīng)歷了不少的困難。項目一開始的時候其實是摸黑前行,找不到突破的方向,包括后期的效率提升方面,時間和業(yè)績的壓力導(dǎo)致內(nèi)部人員都產(chǎn)生過動搖的念頭,大家都在疑問到底能不能實現(xiàn)。但是我深知這個功能一旦實現(xiàn)了,將會給教研老師省去很大一部分的時間,那么它的價值就是不言而喻的。
Word自動識別要想達到很好的排版效果,接近Word原排版樣式,是需要對細節(jié)有著嚴格要求的,中間的難點問題是需要耐住性子,沉下心來一點點的去發(fā)現(xiàn)并攻克,借用曾國藩的一句話就是“結(jié)硬寨,打呆仗”。的確,如果沒有這樣的攻堅態(tài)度是做不出來創(chuàng)新的。
在此,將這個功能的實現(xiàn)分享給大家,希望能對Word自動識別方面感興趣的小伙伴們有一定的幫助,也希望大家共同探討。
本文由 @一條酸奶中的? 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自Unsplash,基于CC0協(xié)議
您好,想合作如何聯(lián)系您
通過這種方法就可以識別出word的公式了嗎? 還有表格是否可以識別?
如何通過程序?qū)崿F(xiàn)難度、知識點這些屬性的標(biāo)簽?zāi)兀?/p>
兩種方式:
1. 人為手動在Word中增加相應(yīng)的標(biāo)簽,入庫時程序校驗識別
2. 題目先入庫,再在題庫里給題目打難度和知識點等標(biāo)簽
聽君一席話,聽君一席話。自動識別體現(xiàn)在哪里?
整個識別過程除了簡單的人為預(yù)處理,其它的都是通過程序?qū)崿F(xiàn)的
拋開內(nèi)容不說,你說的都對。