You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

含字符/词/行Bounding Box的OCR文档跨段文本搜索技术问询

OCR扫描文档的跨层级文本检索与高亮方案

1. 快速检索与高亮的算法及数据结构

预处理阶段

  • 文本结构化与位置标记:将每个页面的OCR文本按阅读顺序整理为完整字符串,同时为每个字符绑定对应的页面ID、行索引、词索引以及自身的字符级Bounding Box。
  • 带位置信息的倒排索引:基于所有页面文本构建倒排索引,不仅记录每个词出现的页面,还同步记录该词在页面内的行号、词位置。针对短语搜索,扩展为短语级索引:将连续词序列映射到其出现的页面及精确位置范围(起始行/词到结束行/词)。
  • 多模式匹配预处理:若需支持批量短语搜索,可提前构建AC自动机,将目标搜索短语全部加入自动机,预处理完成后可在OCR文本串上一次性完成多短语匹配,大幅提升检索效率。

运行时检索与高亮

  • 短语定位:输入搜索短语后,先通过倒排索引快速锁定包含短语所有词的页面,再通过词的位置信息验证词的连续性(匹配短语的顺序和相邻关系),确定精确的匹配范围(涉及的行、词、字符)。
  • Bounding Box聚合与高亮:根据匹配范围,直接调取对应的行级/词级Bounding Box进行合并(跨行/跨词场景);若匹配零散字符则使用字符级Box。合并规则取所有Box的最小外接矩形,确保高亮区域完整覆盖匹配内容。

2. Bounding Box存储方案选择

建议同时存储字符级、词级、行级三级Bounding Box,核心原因如下:

  • 运行时性能优化:高亮时无需实时从字符级Box聚合词/行级Box,直接调取预计算的层级Box,减少CPU计算开销——尤其是整行、整词匹配场景,能直接返回对应Box,响应速度更快。
  • 存储成本可控:数百张扫描图片的OCR结果中,词级和行级Box的数量远少于字符级,整体存储量增加有限,不会带来明显的存储压力。
  • 适配多样化需求:不同场景可能需要不同层级的高亮(如整行高亮、关键词高亮、单字符修正高亮),三级存储可直接满足需求,无需额外计算。

若仅存储字符级Box,虽能节省少量存储空间,但每次高亮都需实时遍历聚合对应字符的Box,在频繁搜索或批量高亮场景下会产生明显性能损耗,得不偿失。


内容的提问来源于stack exchange,提问作者NedStarkOfWinterfell

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 07:57:45