图片词典制作关键核心:如何在ABBYY中指定只OCR词头?
本帖最后由 starmars 于 2021-3-7 15:38 编辑制作OCR图片词典的关键点在于OCR出每个页面的所有词头。ABBYY FineReader中要是有办法指定其只OCR词头,而不是眉毛胡子一把抓OCR整个页面,而让词头内嵌在正文中多一道繁杂的工序让自己想办法手工挑选出来词头,这个关键问题就解决了。
目前可以自己指定页面的一个区域让ABBY仅OCR每个页面这个区域,这种方法可以OCR出每页页眉的首词末词索引。但位于正文中的每个词头位置是不固定的,无法用这种指定OCR区域的方法。
已经有高人有专门的软件进行划线等处理来解决这个问题,但这个软件作者不公开下载和详细使用方法。强烈建议作者能开放这个软件,因为我并未看到软件作者靠其来牟利,既然不想靠它赚钱为什么不公开呢?一旦公开,有大量热心网友的制作,各种图片词典就会象雨后春笋一样出来了。留着只自己用有什么好处?是因为担心版权问题吗?但是,卖万能钥匙的人不犯法,只有使用万能钥匙去开锁用来牟利的人才犯法,这个逻辑对吧?
有一个解决思路大家看看:ABBYY OCR整个页面之后,如果选择保存成HTML文件,可以发现页面中词头因为颜色较或者字体与正文不同比较粗,都会被包裹在一个与正文CSS样式不同的标签内,例如单词bit<span class="font3" style="font-weight:bold;">bit</span> 而非词头的正文解释可能会使用另外的样式如class="font2"。这样就可以利用正则表达式仅提取出词头来。但是这又有问题:如何做到知道哪些词头对应哪个页面呢?你可能会说页码数字不也OCR出来了吗?但实践中我发现页码数字可能会与正文解释中数字混杂在一起需要人工麻烦地检查。于是可以在ABBYY中每页OCR结果保存成一个HTML文件,这样词头和页码对应关系就解决了,之后还有合并文件内容的textforever软件可将所有OCR出来的内容合并成一个文件。但是如何同时在上千张HTML页面文件内同时批处理进行正则处理提取出词头?难道我要手工一页页来弄?当然,我可以自己编程处理,但自己编程肯定没有EMEDITOR这种通用文本编辑器好,因为自己写的小程序毕竟不如商业软件健壮和功能强大,如无法预览无法后悔等等,除非花很多时间写。
我又想:既然ABBYY OCR之后给词头包裹了特定样式的标签,说明它可以单独识别出来词头。既然有这个能力识别单独的词头,难道这个软件就没有用一种方法让用户告诉它仅选择OCR词头吗?如果我是ABBYY的作者,我可以让用户先OCR一页样本成HTML,然后让用户指定这个HTML中的使用了特定样式的标签如<span class="font3" style="font-weight:bold;">,然后再OCR全部页面中和我指定的这个标签的内容样式相同相似的内容即词头,这不就解决了吗?这并不难吧?
但是,ABBYY真的有这个功能吗?或者,其他OCR软件有类似功能的? starmars 发表于 2021-3-8 15:01
如何对几百上千个HTML文件进行统一的正则处理?用哪个编辑器具体怎么操作? ...
我个人会去使用
1. 老马的小软件 TextForever 合并文本
合并选项里勾选:
√ 在文件内容前加注文件名
√ 在每个文件内容后加空行
2. 再用Emeditor,替换 < 为 \n<
然后针对你说的可能的加粗的<span class="font3" style="font-weight:bold;"> 进行上下行的操作,最后匹配保留,其余统统删除。 instrumental 发表于 2021-3-7 17:50
ABBYY 没这个功能
准备给ABBYY技术人员发信建议加入此功能。 klwo2 发表于 2021-3-7 16:18
你的「思路」很多,mdx作品没看见
ABBYY OCR成HTML,再提取的思路不可行
难道斑竹大人真的要我等一个个老老实实将每页词头人工输入出来??好苦逼啊。。。。 就比如吧,我想做的某本书:
这里OCR能识别出「止」就不错了,别的什么也用不上
天天问有什么速成方法,还不如拿具体作品出来具体讨论。 你的「思路」很多,mdx作品没看见
ABBYY OCR成HTML,再提取的思路不可行
至于你帖子里的其他部分,看着好像是在声讨某划线软件的作者(?),我也不知道具体是谁。划线任务我也做过,从没觉得会有什么「雨后春笋」效应
我也不懂为什么,论坛里已经有很多汉语图片mdx了,楼主依然假定OCR能解决一切问题,这也许是没实践过的缘故
ABBYY 没这个功能 本帖最后由 mikeee 于 2021-3-7 18:22 编辑
假定可以 OCR 出来转换成 html(可以先存docx再转html) 并且词头含特殊 html 标签,可以参考我的两个贴 https://www.pdawiki.com/forum/forum.php?mod=viewthread&tid=32718&_dsign=8a5d278fhttps://www.pdawiki.com/forum/forum.php?mod=viewthread&tid=32266 以及 https://www.pdawiki.com/forum/forum.php?mod=viewthread&tid=32208&extra=page%3D1&_dsign=19bb8adf (详细步骤及讨论贴)
基本思想就是利用 xpath 或 cssselector 处理 html 找到词头或别的希望想找的东西。python的话可以用 lxml(xpath)或 pyquery(cssseletor),有些网友可能更喜欢 bs4.其他语言应该也有类似的工具。 mikeee 发表于 2021-3-7 18:11
假定可以 OCR 出来转换成 html(可以先存docx再转html) 并且词头含特殊 html 标签,可以参考我的两个贴 ht ...
谢谢Mikee又给了一个思路:先OCR保存成docx Word格式,然后再转HTML. ABBYY可以保存成很多格式,保存完之后这些格式再转一次格式也许有意想不到的发现。 starmars 发表于 2021-3-7 18:55
准备给ABBYY技术人员发信建议加入此功能。
不可能加入的,自己写程序比较现实 本帖最后由 言叶之庭 于 2021-3-7 20:27 编辑
人工智能到达人脑的程度就可能实现了,程序如果能自动识别词头了,那为什么不让它把其它内容也一起识别了,估计到那时也不用人工校对了,给程序一本PDF,直接制作、打包成MDX。 starmars 发表于 2021-3-7 16:34
难道斑竹大人真的要我等一个个老老实实将每页词头人工输入出来??好苦逼啊。。。。 ...
我没说必然无法速成,可是你给的思路是只能想想,实践中指望不上的呀
实践中有用的思路是「零敲碎打,把大的变成小的」,至于具体怎么做,看具体文档
「一个个老老实实输入」也不是什么万万碰不得的思路,有时候这么做还比OCR快呢,你信不
那就导出所有页面的OCR结果为HTML, 之后用文本合并工具合并所有HTML(合并的同时加入文件名换行),再正则处理之类的也可以得到加粗等标志性文本。
本帖最后由 starmars 于 2021-3-8 20:20 编辑
知道了!谢谢! chigre3 发表于 2021-3-8 15:17
我个人会去使用
1. 老马的小软件 TextForever 合并文本
合并选项里勾选:
这是王道!! 利用 Pythong, 在页面中找词头_附源码
https://www.pdawiki.com/forum/forum.php?mod=viewthread&tid=43392
(出处: 掌上百科 - PDAWIKI)
页:
[1]