使用 OCR 和 Google Books API 进行图书元数据和封面检索
使用 KNIME 从图像中提取关键信息变得像 ABC 一样容易。
By 罗伯托·卡迪利, 数据科学家, KNIME & 拉达鲁德尼卡亚, 数据科学家, KNIME
图 1:借助 OCR 可以提取信息的图书版本通知示例。
大多数时候,我们的数据科学项目所需的原始数据并没有组织在一个整洁、结构良好且富有洞察力的表格中。 相反,这有时会作为文本存储在扫描文档中。 然后必须一个接一个地提取文档中的单词以形成文本格式的数据单元格。 这是光学字符识别 (OCR) 执行的任务。
当您阅读本文的文字时,无论是文本还是数字,您的眼睛都能够通过识别构成字符(例如,字母、数字、标点符号等)的明暗模式来处理它们。 然后,您的大脑会解码字符和模式的不同组合,以掌握单词的含义。 从这个意义上说,您的眼睛和大脑是您能想象到的最复杂、最精致的 OCR 引擎,它们在您甚至没有注意到的情况下工作。
计算机具有类似的功能,但它们必须解决一个关键的限制:没有眼睛。 如果我们想让计算机查看和阅读物理文本文档,我们需要输入使用光学扫描仪或数码相机生成的图形文件。 就计算机而言,通过这两种方式获取的文档与埃菲尔铁塔的照片没有区别:两者都被视为构成任何计算机图形图像的彩色方块(也称为像素)的无意义集合。 因此,后者只是我们打算阅读的文本的图片,而不是文本本身。
这就是 OCR 可以派上用场的地方。 这种强大的技术能够提取打印的、打字的或手写的数据,无论是发票、名片、法律文本还是打印输出,并将其转换为可搜索和可编辑的数字格式。 尽管多年来 OCR 一直被认为是一项昂贵的服务,只有极少数大公司能够负担得起,但从 2000 年代中期开始,它的成本逐渐下降,而其准确性和功能已经发展到今天支持数百种语言和字符编码, 从 UTF-8 到 GB2312。
能够从图像中搜索和提取文本的好处是无价的。 例如,在法律或会计行业,它可以显着节省成本和时间,因为它可以在几秒钟内检索文章或财务报表中的部分文本或数字。 将此过程与雇佣一群人阅读数千份文件只是为了找到一条关键信息的成本进行比较,可以了解 OCR 如何使企业受益。
最近,OCR 技术正在经历一场悄无声息的革命,因为该服务的提供商正在将其与人工智能相结合。 因此,不仅数据被捕获、可搜索和可编辑,而且人工智能系统实际上正在理解内容以执行特定任务。 例如,在对文本进行 OCR 识别后,AI 可以使用神经机器翻译提供其翻译,而人工干预最少。 另一个经典示例来自审计部分,其中使用离群值检测技术对 pdf 文档的内容进行 OCR 后,可以识别出欺诈性发票。 等等。 这种协同作用结合了两全其美,可以简化流程并提高企业和客户的生产力。
在本文描述的用例中,OCR 用于识别图书,然后从 Google 图书存储库中检索图书的元数据。
更具体地说,我们将看看:
- 如何进行 OCR KNIME分析平台.
- 我们如何将 KNIME 的 OCR 处理器和 Google Books API 集成到检索图书元数据和封面的用例中。
KNIME 分析平台中的 OCR
在 KNIME 中对包含文本的图像进行 OCR 是一项非常简单的任务。 只需安装 KNIME 图像处理 — Tess4J 集成 在你的本地扩展 KNIME分析平台,并拖放 苔丝4J 节点到您的工作流程编辑器。
Tess4J 节点集成了 Tesseract OCR 库,是目前使用最广泛、最准确的开源 OCR 处理器之一。 Tesseract 最初是由惠普实验室在 1990 年代初期作为专有软件开发的,后来于 2005 年开源。谷歌从那时起采用了该项目并赞助了它的开发。
Tess4J 节点在 Tesseract 3 上运行,它通过在两遍过程中识别字符模式来工作。
- 在第一遍中,引擎尝试识别每个单独的字符。 然后,它将在第一次传递中以高置信度识别的字符作为训练数据传递给自适应分类器。 这样,自适应分类器就有机会学习如何更准确地识别后续文本。
- 然而,自适应分类器学习有用信息的时间可能太晚,无法做出有意义的贡献。 为了解决这个问题并利用自适应分类器获得的知识,引擎运行第二次通过,再次识别识别得不够好的字符 [1]。
Tesseract 3 可以处理任何 Unicode 字符(使用 UTF-8 编码),并且可以处理各种语言的文本和书写布局:从左到右(例如,英语、意大利语、俄语等),从右到左(例如,阿拉伯语、希伯来语、乌尔都语等)和自上而下(例如,日语、韩语、中文等)[2]。
免责声明。 Mac 用户目前无法使用 Tess4J 节点。 KNIME 开发人员正在努力恢复顺畅的功能。
用例:检索图书元数据和封面
现在我们已经对 OCR 在 KNIME 分析平台中的工作原理有了基本的了解,让我们来看看一个有趣的用例。 假设我们收集了说明几本书的版本通知的图像,并且我们希望利用这些信息检索书籍元数据和封面。 例如,检索到的数据可用于构建定制的数字图书馆和训练图书推荐系统。
图 2 中的工作流程涵盖了所有步骤:从图像读取、OCRing、文本处理和 ISBN 参考提取,到图书元数据和封面检索和可视化。 让我们详细看看不同的步骤。
图 2:这个 工作流程 对图书版本通知执行简单的 OCR 任务,并使用 Google Books API 检索图书元数据和封面。
1 — 读取图像数据
第一步是将图书版本通知图像导入 KNIME。 版本通知是书中包含当前版本信息的页面,例如版权声明、法律声明、出版信息、印刷历史和 ISBN 代码(图 1)。
元节点“读取图像数据”以一种简单的编程方式处理该问题(图 3)。 我们确定图像文件的存储位置 列出文件/文件夹 节点并使用 图像阅读器(表格) 节点以优雅地导入图像。 在图像阅读器(表)节点中,我们只需要指定“文件输入列”,即包含存储图像的文件路径的列。 所有其他配置都可以保留为默认值。
图像阅读器(表格)是 KNINE图像处理 扩展,与此扩展中的其他节点一样,它提供了一个包含图像及其元数据的交互式视图,只需右键单击该节点,选择“视图:图像查看器”,然后双击表格视图中的任何图像。
图 3:元节点内部“读取图像数据”。 Image Reader (Table) 节点将图像导入到工作流中,并允许我们在其视图中以交互方式浏览它们。
2 — 光学字符识别
读入图书版本公告的图像文件后,我们可以对其进行OCR。
Tess4J 节点的配置非常简单,只需点击几下(图 4)。 在里面 个人设置 选项卡,该节点提供了通过在配置对话框的“预处理”部分中选择框“Deskew input images”来校正任何旋转或倾斜图像的可能性。 通常建议这样做,因为图形文件可能无法正确对齐。 此外,Tess4J 节点会在后台自动生成二值化图像。
接下来,我们选择“Tessdata 路径”。 默认情况下,它设置为“使用内部”,这样我们就可以选择要处理的文本的语言。 在此配置中,英语是默认语言,但 Tess4J 节点支持其他自然语言,例如丹麦语、意大利语、西班牙语、俄语、希腊语、斯洛伐克语、德语和法语。 值得一提的是,通过选择“Use External”,我们可以扩展 Tess4J 节点的能力,以包含内部不支持的语言。 事实上,我们可以通过指定存储目录来选择我们自己的、外部训练的数据语言模型。 我们选择“使用内部”,因为我们更喜欢依赖 Tess4J 的内部模型来处理我们的英文文档。
在“识别配置”部分,我们找到了两个最重要的下拉列表配置,分别是“页面分割模式”和“OCR引擎模式”。 第一个定义了我们的页面是如何被分割的。
在图 4 中,我们选择“Full Auto Pageseg”,这样可以确保全自动分页。 根据手头的具体用例,从 13 种可用模式中选择另一种模式(例如,“单列”或“稀疏文本”)可能是更合适的选择。
第二个设置要求我们选择 OCR 引擎。 在这里,我们选择“Tesseract Only”,以确保最快的执行速度。 其他选项包括“仅立方体”——Tesseract 的另一种识别模式——速度较慢但通常会产生更好的结果; 或“Tesseract And Cube”,它结合了两个世界的精华。 选择一个或另一个引擎在很大程度上取决于图像的质量和我们希望处理的文本的复杂性。
除了基本设置之外,Tess4J 节点还提供了一个 高级配置 我们可以在其中定义一组的选项卡 控制参数. 此选项卡使节点非常灵活,并帮助专家用户根据他们的特定需求自定义和微调 Tesseract OCR 引擎。 不过别担心,在大多数情况下,基本配置会让您走很长一段路!
图 4:Tess4J 节点的配置对话框。
除了根据手头的用例调整 Tess4J 节点的配置外,如果需要,彻底预处理输入图像也是一种很好的做法。 特别是,当图像充分放大时,Tesseract 效果最佳,字符 x 高度的像素数至少为 20 像素; 图像正确对齐并具有足够高的分辨率; 并删除任何深色边框,否则它们可能会被误解为字符 [3]。 这 KNINE图像处理 扩展包括几个用于图像清理、操作和转换的节点,以及许多 示例工作流 可以在找到 KNIME 中心.
Tess4J 节点的输出是一个包含字符串数据类型的提取文本的表格,因此可以搜索和编辑它。
3 — ISBN 提取的文本处理
图像经过 OCR 识别后,最终可以访问其中包含的文本并检索有用的信息。
特别是,版本通知通常会报告分配给图书的 ISBN 代码。 ISBN 代码是唯一的 13 位长(在 10 年之前是 2007 位长)商业图书标识符,因此它被分配给出版物的每个单独版本和变体。 当我们想要检索元信息时,提取 ISBN 代码可以让我们明确地引用每本书。 为此,我们可以依靠包含在 KNIME — 文本处理 扩展,其中一些用于“ISBN 提取”元节点(图 5)。
在“文本清理”元节点中,我们首先将 OCRed 文本从字符串转换为文档数据类型。 接下来,我们将文本转换为小写,删除标点符号、空格、连字符,并将字母“o”替换为“0”(零)以更正 ISBN 代码中被错误识别的字符。
我们通过分离字符串“isbn”后面的 13 个字符来提取 ISBN 代码,并使用 规则引擎 节点以检查提取的字符是否不包含缺失值并且预期长度为 13 个字符。 然后,我们利用此节点的功能附加一个列,将成功提取标记为 1,将不成功提取标记为 0。
图 5:“ISBN 提取”元节点内部。
4 — 元信息检索和可视化
在最后一步,我们使用 ISBN 代码从 Google Books API 检索图书元信息和封面。 “获取书籍元数据和封面”元节点负责处理(图 6)。 但是,只有成功提取 ISBN 代码后,元数据检索才有可能。 为了确保顺利处理成功/不成功的 ISBN 提取,我们包含了几个工作流控制节点。 您可以在 备忘单:使用 KNIME 分析平台进行控制和编排.
如果成功提取 ISBN 代码,我们使用 获取请求 向其发送 GET 请求的节点 谷歌图书 API,一种由 Google 提供支持的免费 RESTful Web 服务,允许检索多种元信息,例如书名、副标题、作者、出版日期、描述、页数、语言、平均评分、评分计数和封面。 此外,此 RESTful Web 服务不需要创建开发者帐户。 GET 请求节点的配置非常简单。 它需要简单地选择一个有意义的“URL 列”,我们在 字符串操作 通过加入节点 Google 图书 API 网址 带有每个版本通知的 ISBN 代码。 所有其他配置都可以保留为默认值。
然后我们使用解析 GET 请求节点的 JSON 输出 JSON 路径 在收集最终结果之前,node 和 join 将提取的元信息与书籍封面连接起来。
最后,我们创建了“可视化图书元数据和封面”组件,用于对检索到的图书元信息和封面进行简洁的可视化。
在组件中,我们包装 交互式范围滑块过滤器小部件 节点以根据读者在 Google 图书上分配的平均评分计数(0-糟糕;5-极好)启用动态图书过滤,以及 平铺视图 节点显示结果。
然后该组件获取一个视图,其中包括用于根据平均评分选择书籍的滑块和一个包含所选书籍封面和描述的表格。 对于本文,我们选择提取评分在 3 到 5 之间的书籍,结果如图 6 所示。
图 6:检索到评分高于 3 的书籍的元信息和书籍封面。
总结
在本文中,我们说明了如何在 KNIME 分析平台中轻松执行 OCR。 为此,我们介绍了 Tess4J 节点,并提供了有关该节点所基于的 Tesseract OCR 库功能的详细信息。
此外,我们还展示了一个简单的用例,其中 OCR 可以成为一种强大而有用的资源。 我们从图书版本通知中提取了信息——特别是 ISBN 代码——以向 Google 图书的 RESTful 网络服务发送 GET 请求。 这使我们能够检索图书元数据和封面。
使用 KNIME,OCRing 图像以提取关键信息变得像 ABC 一样容易。 自己试试吧! 您的 OCR 用例是什么?
本文中介绍的工作流程可从以下网站免费下载 KNIME 中心.
参考资料
[1] 史密斯,R.(2007)。 “Tesseract OCR 引擎概述”。 第九届文件分析与识别国际会议 (ICDAR 2007), 第 629–633 页。 可在:
https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/33418.pdf
[检索时间:15.07.2021 年 XNUMX 月 XNUMX 日]。
[2] GitHub 上的 Tesseract OCR 项目—— https://github.com/tesseract-ocr/tesseract
[3] GitHub 上的 Tesseract OCR 文档 — https://tesseract-ocr.github.io/tessdoc/
罗伯托·卡迪利 是 KNIME 的数据科学家,NLP 爱好者和历史爱好者。 高级数据科学低代码编辑器。
拉达鲁德尼卡亚 是 KNIME 的数据科学家。
作为首次发表于 高级数据科学的低代码.
原版。 经许可重新发布。
相关新闻:
来源:https://www.kdnuggets.com/2021/11/book-metadata-cover-retrieval-ocr-google-books-api.html
- "
- &
- 2021
- 账号管理
- 基本会计和财务报表
- AI
- 所有类型
- 分析
- 分析
- API
- 刊文
- 刊文
- 作者
- 汽车
- 最佳
- 书籍
- 盒子
- 建立
- 商业
- 企业
- 关心
- 寻找工作
- 例
- 字符识别
- 中文
- 分类
- 清洁
- 客户
- 码
- 收藏
- 柱
- 商业的
- 公司
- 元件
- 电脑
- 研讨会 首页
- 信心
- 配置
- 内容
- 版权
- 电流
- XNUMX月XNUMX日
- data
- 数据科学
- 数据科学家
- 细节
- 检测
- 开发商
- 开发
- 研发支持
- 数字
- 文件
- 下降
- 早
- 编辑
- 工程师
- 英语
- 等
- 执行
- 扩大
- 利用
- 萃取
- 数字
- 终于
- 金融
- 姓氏:
- 遵循
- 申请
- 格式
- Free
- 法语
- GitHub上
- 非常好
- 谷歌
- 团队
- 处理
- 便利
- 此处
- 高
- 招聘
- 历史
- 托管
- 创新中心
- How To
- HTTPS
- 主意
- 鉴定
- 图片
- 包含
- 收入
- 增加
- 行业中的应用:
- 信息
- 互动
- 国际
- IT
- 加入
- 知识
- 韩语
- 标签
- 语言
- 语言
- 大
- 学习用品
- 学习
- 法律咨询
- 杠杆作用
- 自学资料库
- 光
- 清单
- 圖書分館的位置
- 长
- 机器学习
- 机器翻译
- 操作
- 中等
- 亦即
- 整齐
- 神经
- NLP
- 节点
- 数字
- OCR
- 优惠精选
- 打开
- 开放源码
- 光学字符识别
- 附加选项
- 附加选项
- 其他名称
- 员工
- 的
- 图片
- 像素
- 平台
- 生产率
- 项目
- 蟒蛇
- 质量
- 范围
- 评分
- 原
- 原始数据
- 读者
- 读者
- 阅读
- 报告
- 资源
- 成果
- 科学
- 搜索
- 选
- 感
- 集
- 设置
- 简易
- So
- 软件
- 解决
- 西班牙语
- 赞助商
- 开始
- 故事
- 成功
- SUPPORT
- 支持
- 支持
- 系统
- 技术
- 专业技术
- 正方体
- 次
- 最佳
- 产品培训
- 转型
- 转型
- 翻译
- 统一
- us
- 用户
- 查看
- 可视化
- 卷筒纸
- 什么是
- 话
- 工作
- 工作流程
- 合作
- 价值
- 写作
- X
- 年