查看: 475|回复: 16
打印 上一主题 下一主题

[讨论] 图片词典制作关键核心:如何在ABBYY中指定只OCR词头?

[复制链接]
  • TA的每日心情
    擦汗
    2020-7-3 13:51
  • 签到天数: 19 天

    [LV.4]偶尔看看III

    90

    主题

    277

    回帖

    1万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    10032
    跳转到指定楼层
    1
    发表于 2021-3-7 15:34:37 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
    本帖最后由 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软件有类似功能的?

    该用户从未签到

    123

    主题

    1719

    回帖

    3万

    积分

    翰林院编修

    Rank: 11Rank: 11Rank: 11Rank: 11

    积分
    30382

    灌水大神章小蜜蜂章笑傲江湖章翰林院专用章管理组专用章

    推荐
    发表于 2021-3-8 15:17:01 | 只看该作者
    starmars 发表于 2021-3-8 15:01
    如何对几百上千个HTML文件进行统一的正则处理?用哪个编辑器具体怎么操作? ...

    我个人会去使用
    1. 老马的小软件 TextForever 合并文本
        合并选项里勾选:
        √ 在文件内容前加注文件名
        √ 在每个文件内容后加空行

    2. 再用Emeditor,替换 < 为 \n<
        然后针对你说的可能的加粗的<span class="font3" style="font-weight:bold;"> 进行上下行的操作,最后匹配保留,其余统统删除。
  • TA的每日心情
    擦汗
    2020-7-3 13:51
  • 签到天数: 19 天

    [LV.4]偶尔看看III

    90

    主题

    277

    回帖

    1万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    10032
    推荐
     楼主| 发表于 2021-3-7 18:55:31 | 只看该作者

    准备给ABBYY技术人员发信建议加入此功能。
  • TA的每日心情
    擦汗
    2020-7-3 13:51
  • 签到天数: 19 天

    [LV.4]偶尔看看III

    90

    主题

    277

    回帖

    1万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    10032
    推荐
     楼主| 发表于 2021-3-7 16:34:42 | 只看该作者
    klwo2 发表于 2021-3-7 16:18
    你的「思路」很多,mdx作品没看见

    ABBYY OCR成HTML,再提取的思路不可行

    难道斑竹大人真的要我等一个个老老实实将每页词头人工输入出来??好苦逼啊。。。。

    点评

    就是这么苦逼哈哈哈  发表于 2021-3-7 16:41

    该用户从未签到

    539

    主题

    3046

    回帖

    25万

    积分

    翰林院编修

    Rank: 11Rank: 11Rank: 11Rank: 11

    积分
    251476

    翰林院专用章灌水大神章笑傲江湖章小蜜蜂章管理组专用章

    推荐
    发表于 2021-3-7 16:22:57 | 只看该作者
    就比如吧,我想做的某本书:



    这里OCR能识别出「止」就不错了,别的什么也用不上

    天天问有什么速成方法,还不如拿具体作品出来具体讨论。

    该用户从未签到

    539

    主题

    3046

    回帖

    25万

    积分

    翰林院编修

    Rank: 11Rank: 11Rank: 11Rank: 11

    积分
    251476

    翰林院专用章灌水大神章笑傲江湖章小蜜蜂章管理组专用章

    推荐
    发表于 2021-3-7 16:18:42 | 只看该作者
    你的「思路」很多,mdx作品没看见

    ABBYY OCR成HTML,再提取的思路不可行

    至于你帖子里的其他部分,看着好像是在声讨某划线软件的作者(?),我也不知道具体是谁。划线任务我也做过,从没觉得会有什么「雨后春笋」效应

    我也不懂为什么,论坛里已经有很多汉语图片mdx了,楼主依然假定OCR能解决一切问题,这也许是没实践过的缘故
  • TA的每日心情

    2023-3-8 00:39
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    50

    主题

    43

    回帖

    3万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    31455
    5
    发表于 2021-3-7 17:50:26 | 只看该作者
    ABBYY 没这个功能
  • TA的每日心情
    开心
    2019-8-21 08:44
  • 签到天数: 163 天

    [LV.7]常住居民III

    17

    主题

    393

    回帖

    1万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    14980
    6
    发表于 2021-3-7 18:11:59 | 只看该作者
    本帖最后由 mikeee 于 2021-3-7 18:22 编辑

    假定可以 OCR 出来转换成 html(可以先存docx再转html) 并且词头含特殊 html 标签,可以参考我的两个贴 https://www.pdawiki.com/forum/fo ... amp;_dsign=8a5d278f  https://www.pdawiki.com/forum/fo ... hread&tid=32266 以及 https://www.pdawiki.com/forum/fo ... amp;_dsign=19bb8adf (详细步骤及讨论贴)

    基本思想就是利用 xpath 或 cssselector 处理 html 找到词头或别的希望想找的东西。python的话可以用 lxml(xpath)或 pyquery(cssseletor),有些网友可能更喜欢 bs4.其他语言应该也有类似的工具。
  • TA的每日心情
    擦汗
    2020-7-3 13:51
  • 签到天数: 19 天

    [LV.4]偶尔看看III

    90

    主题

    277

    回帖

    1万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    10032
    7
     楼主| 发表于 2021-3-7 18:55:00 | 只看该作者
    mikeee 发表于 2021-3-7 18:11
    假定可以 OCR 出来转换成 html(可以先存docx再转html) 并且词头含特殊 html 标签,可以参考我的两个贴 ht ...

    谢谢Mikee又给了一个思路:先OCR保存成docx Word格式,然后再转HTML. ABBYY可以保存成很多格式,保存完之后这些格式再转一次格式也许有意想不到的发现。
  • TA的每日心情

    2023-3-8 00:39
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    50

    主题

    43

    回帖

    3万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    31455
    9
    发表于 2021-3-7 19:35:05 | 只看该作者
    starmars 发表于 2021-3-7 18:55
    准备给ABBYY技术人员发信建议加入此功能。

    不可能加入的,自己写程序比较现实
  • TA的每日心情
    开心
    2 小时前
  • 签到天数: 1991 天

    [LV.Master]伴坛终老

    3

    主题

    3444

    回帖

    4万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    45827

    灌水大神章

    10
    发表于 2021-3-7 19:59:39 | 只看该作者
    本帖最后由 言叶之庭 于 2021-3-7 20:27 编辑

    人工智能到达人脑的程度就可能实现了,程序如果能自动识别词头了,那为什么不让它把其它内容也一起识别了,估计到那时也不用人工校对了,给程序一本PDF,直接制作、打包成MDX。

    该用户从未签到

    539

    主题

    3046

    回帖

    25万

    积分

    翰林院编修

    Rank: 11Rank: 11Rank: 11Rank: 11

    积分
    251476

    翰林院专用章灌水大神章笑傲江湖章小蜜蜂章管理组专用章

    11
    发表于 2021-3-7 20:10:49 | 只看该作者
    starmars 发表于 2021-3-7 16:34
    难道斑竹大人真的要我等一个个老老实实将每页词头人工输入出来??好苦逼啊。。。。 ...

    我没说必然无法速成,可是你给的思路是只能想想,实践中指望不上的呀

    实践中有用的思路是「零敲碎打,把大的变成小的」,至于具体怎么做,看具体文档

    「一个个老老实实输入」也不是什么万万碰不得的思路,有时候这么做还比OCR快呢,你信不

    该用户从未签到

    123

    主题

    1719

    回帖

    3万

    积分

    翰林院编修

    Rank: 11Rank: 11Rank: 11Rank: 11

    积分
    30382

    灌水大神章小蜜蜂章笑傲江湖章翰林院专用章管理组专用章

    12
    发表于 2021-3-8 13:02:17 | 只看该作者
    那就导出所有页面的OCR结果为HTML, 之后用文本合并工具合并所有HTML(合并的同时加入文件名换行),再正则处理之类的也可以得到加粗等标志性文本。
  • TA的每日心情
    擦汗
    2020-7-3 13:51
  • 签到天数: 19 天

    [LV.4]偶尔看看III

    90

    主题

    277

    回帖

    1万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    10032
    13
     楼主| 发表于 2021-3-8 15:01:23 | 只看该作者
    本帖最后由 starmars 于 2021-3-8 20:20 编辑

    知道了!谢谢!
  • TA的每日心情
    擦汗
    2020-7-3 13:51
  • 签到天数: 19 天

    [LV.4]偶尔看看III

    90

    主题

    277

    回帖

    1万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    10032
    15
     楼主| 发表于 2021-3-8 20:21:03 | 只看该作者
    chigre3 发表于 2021-3-8 15:17
    我个人会去使用
    1. 老马的小软件 TextForever 合并文本
        合并选项里勾选:

    这是王道!!
  • TA的每日心情

    2023-3-8 00:39
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    50

    主题

    43

    回帖

    3万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    31455
    16
    发表于 2021-3-8 21:08:43 | 只看该作者
    利用 Pythong, 在页面中找词头_附源码
    https://www.pdawiki.com/forum/fo ... hread&tid=43392
    (出处: 掌上百科 - PDAWIKI)