淺談題庫試題錄入之Word自動識別

7 評論 8251 瀏覽 20 收藏 8 分鐘

編輯導語:題庫錄入對于題庫的質與量都具有重要意義,Word文件導入是效率較高的錄入方式,本文將重點介紹Word文件自動識別的具體實現方法,一起來學習一下吧~

一、前言

試題的錄入功能對于題庫來說是核心功能,直接關系到題庫的質與量。 錄題功能是否高效直接影響題庫中題目數量的多少,同時也決定著題目的質量的高低。

目前的錄題方式以手動錄入和文件導入為主,而文件導入格式又以Word和Excel為主。手動錄入和Excel文件導入這兩種錄入方式效率低,對于存在公式的試題處理十分麻煩,而Word文件導入的錄入方式在效率方面完勝前兩種,并對于公式也有著很好的兼容處理。

本文將重點介紹Word文件自動識別的具體實現方法。

二、文檔轉換工具的選擇

Word解析首先需要將其轉化成題庫需要的格式,那么選擇好的轉換工具將是整個文件識別的關鍵。

對比了Word2LaTeX,Pandoc和各種語言自帶的模塊及庫之后,選擇Pandoc作為Word文件解析的工具。選擇的理由是開源且支持多種格式。

Pandoc被譽為轉換領域中的“瑞士軍刀”,可以支持大量標記語言之間的格式轉換,例如 Markdown 、Microsoft Word、PowerPoint、Jupyter Notebook、HTML、PDF、LaTeX、Wiki、EPUB 格式之間的相互轉換,感興趣的朋友可以去官網了解。

三、LaTeX/Markdown

文件轉換工具選擇好之后,就要確定使用哪種格式作為最終入庫的格式。手動錄入和Excel導入采用的是HTML格式入庫,但是HTML對于理科的公式處理效果不太理想。調研完目前的幾種主流的格式之后,發現LaTeX格式最為合適。在我的上一篇文章中也具體說明了選擇LaTeX的原因,有興趣的小伙伴可以看看。

針對之前的業務場景,文科學科的試題有著字體(宋體,楷體,仿宋和黑體)需求,還要支持文字下方加點兼容下劃線,所以就采用了文科試題轉換成Markdown格式,如果沒有這些需求,可以統一處理成LaTeX格式。

四、公式識別

Word中通過公式編輯器MathType插入的公式都是以wmf格式的圖片呈現的,然而在常規業務場景下除了公式圖片外是不會添加wmf格式的圖片的,這樣就保證了公式圖片的獨特性。

首先找到所有的wmf圖片以及圖片對應的Rid(word圖片對象的編號)、位置以及寬高屬性,通過程序將xml文件中對應對象添加特殊標記來實現自動給公式打標簽的功能,最后在導入Word時將上述圖片屬性組合成LaTeX格式并替代原先的特殊標記。

找到的wmf圖片在導入試卷之后異步調用第三方公式OCR軟件Mathpix Snip,可以識別圖片中的公式并轉成LaTeX格式并返回,替換成原先的圖片地址就可以實現公式的識別。

公式識別

五、標簽識別

標簽識別是經歷了一些優化的歷程,主要是從標簽識別-標簽補充-標簽簡化這三個階段進行。

1. 標簽識別

除了公式之外,其它的內容都是通過特征進行識別的,比如題型,分數,難易度等。這些都是試題的屬性,也是區別于試題內容之外需要識別的,但是程序是不知道這些屬性如何區分,所以需要給它們增加特殊標記(以英文符號[]作為標記,例如:[題型])。

2. 標簽補充

為了達到Word中的排版效果,比如段落的首行縮進,標題正文的字體區別,居中居左居右等,就需要在Word中加入對應樣式的標簽。后期增加了將近10多個標簽,效果還是不錯的,但是效率卻明顯的下降了。由于每增加一個標簽,都會直接影響教研老師的效率。

3. 標簽簡化

想要達到既能達到Word的排版效果,又能保證錄題的效率,團隊做出了很多的嘗試,最終通過研究Word原始XML文件,完成大部分屬性的自動識別,只需要教研老師在導入文件中打上題型的標簽就可以直接入庫。

識別后的效果展示

六、總結

在整個項目中,從一開始的技術選型,工具選擇,迭代優化,到最后實現錄題效率的極大提升,經歷了不少的困難。項目一開始的時候其實是摸黑前行,找不到突破的方向,包括后期的效率提升方面,時間和業績的壓力導致內部人員都產生過動搖的念頭,大家都在疑問到底能不能實現。但是我深知這個功能一旦實現了,將會給教研老師省去很大一部分的時間,那么它的價值就是不言而喻的。

Word自動識別要想達到很好的排版效果,接近Word原排版樣式,是需要對細節有著嚴格要求的,中間的難點問題是需要耐住性子,沉下心來一點點的去發現并攻克,借用曾國藩的一句話就是“結硬寨,打呆仗”。的確,如果沒有這樣的攻堅態度是做不出來創新的。

在此,將這個功能的實現分享給大家,希望能對Word自動識別方面感興趣的小伙伴們有一定的幫助,也希望大家共同探討。

 

本文由 @一條酸奶中的? 原創發布于人人都是產品經理,未經許可,禁止轉載

題圖來自Unsplash,基于CC0協議

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 您好,想合作如何聯系您

    來自浙江 回復
  2. 通過這種方法就可以識別出word的公式了嗎? 還有表格是否可以識別?

    回復
  3. 如何通過程序實現難度、知識點這些屬性的標簽呢?

    回復
    1. 兩種方式:
      1. 人為手動在Word中增加相應的標簽,入庫時程序校驗識別
      2. 題目先入庫,再在題庫里給題目打難度和知識點等標簽

      來自陜西 回復
  4. 聽君一席話,聽君一席話。自動識別體現在哪里?

    來自廣東 回復
    1. 整個識別過程除了簡單的人為預處理,其它的都是通過程序實現的

      來自陜西 回復
    2. 拋開內容不說,你說的都對。

      來自廣東 回復