在介紹新版前,稍稍解釋下背景知識(shí)痢法。
OCR 服務(wù)已經(jīng)識(shí)別出文字了狱窘,iText 還要做什么?
iText 發(fā)布后财搁,受到很多朋友的歡迎和好評(píng)训柴,解決了諸如掃描版 PDF 無(wú)法復(fù)制等問(wèn)題。
不過(guò)妇拯,也有一些朋友有些誤解幻馁,覺(jué)得 iText 僅僅是調(diào)用了 OCR 服務(wù),是個(gè)殼而已越锈。其實(shí)仗嗦,并不盡然。
雖然甘凭,我覺(jué)得用戶(hù)并不需要知道這些軟件背后的故事稀拐,只要軟件好用即可。不過(guò)看來(lái)丹弱,既然有誤解德撬、有好奇,我還是簡(jiǎn)單提及一些吧躲胳。
OCR 服務(wù)識(shí)別 后蜓洪,得到的是這樣的結(jié)果:各文字片斷及其位置。
但坯苹,如果根據(jù)這些信息還原出自然語(yǔ)境下的段落隆檀?這是很難的。
比如,對(duì)于下面這張圖:
OCR 識(shí)別出來(lái)的結(jié)果是類(lèi)似這樣的(為了方便示意恐仑,我在各行間額外加了空行):
3.1新用戶(hù)引導(dǎo)
這事的矛盾之處在于:新用戶(hù)和老用戶(hù)的矛盾泉坐。
進(jìn)一步說(shuō),我追求程序的簡(jiǎn)潔。尤其是在用戶(hù)對(duì) itext熟悉之后,并不需要程序有過(guò)多的描述裳仆。比如,文字按
鈕可以被圖標(biāo)按鈕取代,用界面上根本看不到的快捷鍵進(jìn)行操作,等等腕让。可問(wèn)題是,熟悉是需要一個(gè)過(guò)程,新
用戶(hù)需要多次操作后,才能掌握這些甚至有些晦澀的技巧歧斟。沒(méi)有新用戶(hù),又何來(lái)老用戶(hù)?
這二者的矛盾,怎么解決呢?
你可能覺(jué)得纯丸,這沒(méi)什么呀,我自己手動(dòng)把多余的換行符刪掉不就可以了构捡?你說(shuō)的對(duì)。不過(guò)壳猜,這樣的體驗(yàn)并不爽勾徽。
為了讓你用的爽、少了這步手動(dòng)操作统扳,我自己試著列出常見(jiàn)的段落分布喘帚,分析其中的位置規(guī)律,實(shí)現(xiàn)相應(yīng)的識(shí)別段落的算法咒钟。
目前來(lái)看吹由,效果還是可以的:
3.1 新用戶(hù)引導(dǎo)
這事的矛盾之處在于:新用戶(hù)和老用戶(hù)的矛盾。
進(jìn)一步說(shuō)朱嘴,我追求程序的簡(jiǎn)潔倾鲫。尤其是在用戶(hù)對(duì) iText 熟悉之后,并不需要程序有過(guò)多的描述萍嬉。比如乌昔,文字按鈕可以被圖標(biāo)按鈕取代,用界面上根本看不到的快捷鍵進(jìn)行操作壤追,等等磕道。可問(wèn)題是行冰,熟悉是需要一個(gè)過(guò)程溺蕉,新用戶(hù)需要多次操作后,才能掌握這些甚至有些晦澀的技巧悼做。沒(méi)有新用戶(hù)疯特,又何來(lái)老用戶(hù)?
這二者的矛盾肛走,怎么解決呢辙芍?
注:以上是 iText 識(shí)別并優(yōu)化后的結(jié)果,未加手工編輯;其中的標(biāo)點(diǎn)符號(hào)也已修正故硅。
iText 第一版發(fā)布后庶灿,收到用戶(hù)反饋的一些圖片,一些段落的識(shí)別有問(wèn)題吃衅。于是往踢,我花了不知道幾個(gè)小時(shí),重寫(xiě)了段落識(shí)別相關(guān)的算法徘层。目前峻呕,對(duì)于中英文混排,在使用騰訊服務(wù)時(shí)趣效,段落識(shí)別的效果已經(jīng)很好了瘦癌。
不過(guò),并不完美跷敬。主要是在一些場(chǎng)景下讯私,除非結(jié)合語(yǔ)義識(shí)別,否則是無(wú)法僅根據(jù)位置信息來(lái)劃分段落的西傀。如果你發(fā)現(xiàn)有問(wèn)題的圖斤寇,歡迎發(fā)給我,我來(lái)優(yōu)化算法拥褂。
下面給出一些典型的含段落的圖娘锁,大家可以自己試試。
圖 1:https://ws4.sinaimg.cn/large/006tKfTcgy1fm6c8xxge5j30mw0q67i2.jpg
圖 2:https://ws1.sinaimg.cn/large/006tKfTcgy1fm6c99zhzij30te0wuahg.jpg
識(shí)別后的文本優(yōu)化
另外饺鹃,段落識(shí)別只是對(duì) OCR 服務(wù)優(yōu)化的一部分莫秆,還有文本的優(yōu)化,比如中英文之間需要增加空格等等悔详。
如果說(shuō)段落識(shí)別很麻煩馏锡,文本優(yōu)化則更多麻煩,根本的原因在于:需要對(duì)內(nèi)容進(jìn)行識(shí)別伟端。比如:
- 英文段落首字母大寫(xiě)杯道,這規(guī)則沒(méi)錯(cuò)吧,但對(duì)于 "iPhone is a good phone." 這樣的情況责蝠,iPhone 是特定詞匯党巾,i 不應(yīng)該大寫(xiě)。
- 中文文字后的 '.' 應(yīng)該使用全角的 "霜医。"齿拂,這規(guī)則也沒(méi)錯(cuò)吧,但對(duì)于『今天天氣真熱啊...』肴敛,明顯又不應(yīng)該替換署海;亦或是 JSON 數(shù)據(jù)『"name": "張飛"』中的 " 也不應(yīng)該被替換吗购。
- 以及其他無(wú)數(shù)多的例子。
沒(méi)辦法砸狞,只能有所取舍捻勉。目前,iText 主要完成了這些部分的優(yōu)化:
- 自動(dòng)識(shí)別段落
- 中文環(huán)境使用全角標(biāo)點(diǎn)符號(hào)
- 中文與英文字母刀森、數(shù)字間增加空格
- 刪除中文字符間踱启、英文字符與標(biāo)點(diǎn)符號(hào)間的多余空格
- 英文首字母大寫(xiě)
手動(dòng)選擇 OCR 服務(wù)
目前,如果你在國(guó)內(nèi)使用 iText研底,默認(rèn)使用的是騰訊的服務(wù)埠偿;國(guó)外則使用 Google.
如果你有 Google 信仰、或者需要識(shí)別日文等其他語(yǔ)言榜晦,可以 右擊 iText 菜單欄圖標(biāo)冠蒋,手動(dòng)選擇使用騰訊或 Google OCR 服務(wù)。
不過(guò)乾胶,從實(shí)測(cè)和目前優(yōu)化的情況來(lái)看抖剿,中文還是建議使用騰訊;大家可以自行測(cè)試胚吁。
下載
新版 iText 已上架 Mac App Store牙躺,點(diǎn)擊下載
每月可免費(fèi)識(shí)別 20 次愁憔,訂閱 iText 高級(jí)版即可無(wú)限次識(shí)別腕扶。高級(jí)版限時(shí) 6 折優(yōu)惠:¥3/月、¥30/年吨掌,持續(xù)至 12.12
如果你覺(jué)得 iText 還不錯(cuò)半抱,還請(qǐng)幫忙 在 App Store 評(píng)論;如果你覺(jué)得 iText 還可以改進(jìn)膜宋,歡迎:
- 在這里留言
- 加入 Telegram 群
- 微信加小號(hào)入群:it_guwen