数据治理 | 还在人工识别表格呢?Python 调用百度 OCR API 又快又准

这篇具有很好参考价值的文章主要介绍了数据治理 | 还在人工识别表格呢?Python 调用百度 OCR API 又快又准。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Part1 前言

文档类型的转换(PDF,Excel等)对广大社科学者来说一直是一个不大不小,但又令人十分头疼的问题。往期的实用技能分享中我们介绍过如何OCR识别图片中的文本,也介绍过如何使用 Python 读取(可以复制内容的)PDF 中的表格,将其转为 Excel 表。此时细心的小伙伴会发现一个盲区:我们怎么把不可复制内容的PDF(或扫描件)表格转成 Excel 表呢?

本文正是为了解决这个问题而写。我们知道,面对扫描文件一般会使用 OCR 技术来识别其中的文本。使用软件的话会面临收费,不符合白嫖精神;自己训练模型费时费力还不一定有效果。如果你也有这样的问题,请往下看,我们教你免费使用百度公司的 OCR 产品。

Part2 注册百度 AI 平台,申请 API

出于识别准确度和使用门槛的考虑,我们选择使用 百度 AI 平台提供的 OCR 服务,使用服务需要注册百度智能云账号,并申请 OCR 服务。这一步并不难,这里有一份非常详细的官方教程:https://ai.baidu.com/forum/topic/show/867951

申请成功页面如下图所示:

百度ocr,python,ocr,开发语言,Python学习,Python编程,爬虫,计算机

接下来我们使用 Python 调用我们前面申请到的 API 来识别 PDF 文档。

Part3 识别表格 PDF

我们以一份 PDF 文档(共 3 页)为例进行演示,其内容不可复制,所以不能使用 Python 直接读取其中的内容,只能依靠 OCR 识别。

下图是 PDF 第一页中部分表格内容:

百度ocr,python,ocr,开发语言,Python学习,Python编程,爬虫,计算机

1、安装 Python 包

使用 Python 调用百度 OCR API 需要安装 baidu-aip 库,在命令提示符中输入以下命令安装:

pip install baidu-aip   

2、PDF 文档转为图片

OCR 工具可以将图片识别为指定内容,而我们需要转换的文档是 PDF,所以需要先将 PDF 的每一页分别转为图片。PDF 转图片的代码如下:

import fitz
# 下面是待转换 PDF 的路径
pdf = './TEST/2019-2020 年全国碳排放权交易前2-4页.pdf'
doc = fitz.open(pdf)
for pg in range(doc.pageCount):
    page = doc[pg]   # 选择一页
    rotate = 0
    # 设置参数调整图片的质量
    X_, Y_ = 4, 4
    mat = fitz.Matrix(zoom_x, zoom_y).prerotate(rotate)
    pix = page.get_pixmap(matrix=mat, alpha=False)
    pix.save(f"./TEST/Pic/Page_{pg}.png")

百度ocr,python,ocr,开发语言,Python学习,Python编程,爬虫,计算机

如上图所示,代码运行后,在指定位置生成 3 张图片,分别对应 PDF 中的 3 页。

3、调用 API,将图片识别为 Excel 表

首先,我们根据前面申请的 API key,生成一个 API 客户端,这是固定的代码写法,代码如下:

from aip import AipOcr   # 导入第一步安装的库
APP_ID = '根据实际填写'  
API_KEY = '根据实际填写'
SECRET_KEY = '根据实际填写'

client = AipOcr(APP_ID, API_KEY, SECRET_KEY)   # 根据 API key 生成客户端

第二步,将图片传入 API 客户端,等待服务器完成 OCR 识别。代码如下:

img = open("./TEST/Pic/Page_0.png",'rb').read() # 以二进制方式打开图片
table = client.tableRecognitionAsync(img)       # 调用 API 表格服务
print(table)  # 查看 API 返回结果

百度ocr,python,ocr,开发语言,Python学习,Python编程,爬虫,计算机

此时,服务器只返回给我们两个 id,接下来我们根据其中的 request_id 来获取识别的状态和识别的结果,代码如下:

ID = table['result'][0]['request_id']    # 取出 request_id
result = client.getTableRecognitionResult(ID) # 根据 id 尝试获取识别结果
result     # 查看请求结果

百度ocr,python,ocr,开发语言,Python学习,Python编程,爬虫,计算机

如上图所示,我们只需关注请求结果中的识别状态(因为 OCR 识别需要一定时间,当识别已完成时才能获取结果)和识别结果(url),百度 API 会将识别的结果存放在云端,我们需要根据请求结果中的 url 来获取识别结果。

最后一步,获取识别结果,并写入 Excel 表中(识别结果为二进制数据,只有写入 Excel 才能使用)。代码如下:

import requests   # 使用 requests 库抓取数据
dataurl = result['result']['result_data']   # 请求结果的 url
data = requests.get(dataurl)      # 根据 url 获取数据

# 在我们希望的文件夹下新建一个 Excel 表,将识别的结果写入其中
with open("./TEST/识别结果/table_Page_0.xlsx", 'wb') as excel: # .表示Python当前工作目录
    excel.write(data.content)   # 将识别结果写入 Excel
    excel.close()

运行代码后,会在我们指定的位置(在上面的倒数第三行代码中,如果没有这个文件夹,我们需要主动创建)生成一个 Excel 表,如下图所示:

百度ocr,python,ocr,开发语言,Python学习,Python编程,爬虫,计算机

百度ocr,python,ocr,开发语言,Python学习,Python编程,爬虫,计算机

对比 PDF ,发现识别效果非常可观。实际上,只要是人眼能够分辨的文字,此 API 几乎都能准确识别

4、批量识别并合并为一张表

绝大多数情况下,一份 PDF 含有多页,以上三小节介绍了 Python 调用百度 API 识别表格的完整过程,下面我们再演示一下如何批量识别多页。前面的步骤中,我们将一份 PDF(3 页)转换为 3 张图片,下面我们就来 OCR 识别这三张图片,并将这三张图片的识别结果合并为一张表,代码如下:

import time, requests, glob
from aip import AipOcr
import pandas as pd

APP_ID = '根据实际填写'
API_KEY = '根据实际填写'
SECRET_KEY = '根据实际填写'
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)

path_list = glob.glob('./TEST/Pic/*.png')   # 获取 Pic 目录下所有 png 图片的路径
for pic_path in path_list:
    # 遍历所有图片的路径列表
    img = open(pic_path,'rb').read()           # 加载图片
    table = client.tableRecognitionAsync(img)     # 调用表格识别  API 进行识别
    request_id = table['result'][0]['request_id'] # API 返回的请求 ID
    # 下面每隔两秒查看识别状态,直到识别完成,即可抓取识别结果
    result = client.getTableRecognitionResult(request_id)
    while result['result']['ret_msg'] != '已完成':
        # 通过 ID 获取识别结果,直至识别完成
        time.sleep(2)
        result = client.getTableRecognitionResult(request_id)
    dataurl = result['result']['result_data']     # 识别完成后结果存储的 url
    # 将结果写入 Excel 表,与图片同名
    imgname = pic_path.split('\\')[-1].split('.')[0]
    with open(f'./TEST/excel/{imgname}.xlsx', 'wb') as excel:
        excel.write(requests.get(dataurl).content)

# 以上代码运行后,会在事先创建的 excel 文件夹下中生成三份 excel 表
# 接下来我们使用 Pandas 将他们合并为一张表(前提是这三张表结构一致,即字段名一样)。

excel_paths = glob.glob('./TEST/excel/*.xlsx')
DATA = pd.DataFrame()
for path in excel_paths:
    Page_df = pd.read_excel(path)
    DATA = pd.concat([DATA, Page_df])
# 将合并的表保存为 Excel 表
DATA.to_excel('./TEST/excel/2019-2020 年全国碳排放权交易前2-4页.xlsx', index=False)

运行代码后,在我们指定的文件夹下就会生成三份单页的 Excel 表,以及一个合并的 Excel 表。

百度ocr,python,ocr,开发语言,Python学习,Python编程,爬虫,计算机

以上就是调用百度 API 批量识别表格的步骤了。

百度ocr,python,ocr,开发语言,Python学习,Python编程,爬虫,计算机

💡 提示:

任何 OCR 产品都无法保证 100% 的识别准确率,如果你的数据非常非常重要,请谨慎使用 OCR 功能,或者使用后进行人工核对。

Part4总结

本期文章为大家介绍了如何使用百度 API 识别 PDF 表格或图片中的表格。如果你有这方面的需求,又恰好会一点 Python,那么就可以好好琢磨琢磨,把这个技能掌握住。最后,希望本期的技术分享能够给各位读者带来一点点帮助。

题外话

当下这个大数据时代不掌握一门编程语言怎么跟的上脚本呢?当下最火的编程语言Python前景一片光明!如果你也想跟上时代提升自己那么请看一下.

百度ocr,python,ocr,开发语言,Python学习,Python编程,爬虫,计算机

感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。

百度ocr,python,ocr,开发语言,Python学习,Python编程,爬虫,计算机

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

百度ocr,python,ocr,开发语言,Python学习,Python编程,爬虫,计算机
百度ocr,python,ocr,开发语言,Python学习,Python编程,爬虫,计算机

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!百度ocr,python,ocr,开发语言,Python学习,Python编程,爬虫,计算机

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

百度ocr,python,ocr,开发语言,Python学习,Python编程,爬虫,计算机

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

百度ocr,python,ocr,开发语言,Python学习,Python编程,爬虫,计算机

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

百度ocr,python,ocr,开发语言,Python学习,Python编程,爬虫,计算机

六、面试宝典

百度ocr,python,ocr,开发语言,Python学习,Python编程,爬虫,计算机

百度ocr,python,ocr,开发语言,Python学习,Python编程,爬虫,计算机
七、简历模板
百度ocr,python,ocr,开发语言,Python学习,Python编程,爬虫,计算机
百度ocr,python,ocr,开发语言,Python学习,Python编程,爬虫,计算机文章来源地址https://www.toymoban.com/news/detail-791923.html

到了这里,关于数据治理 | 还在人工识别表格呢?Python 调用百度 OCR API 又快又准的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • uniapp小程序调用百度语音识别

    需要在百度创建应用,领取免费的语音识别功能。这个可以按照官方的提示一步一步来 接入指南 这里的appid,appkey 和 secretkey是后面要用到的 基本上三步: 1:获取token 2:录音 3:上传到百度接口,获取到结果 注意地址要拼接的参数 后面要使用的token可以取access_token的值 录

    2024年02月11日
    浏览(19)
  • 百度公司在数据安全治理方面的探索汇总笔记

    (三) 百度数据安全治理实践 ( 1 )治理路线实践与创新 在数据安全合规性评估实践过程中,百度总结了自身特点,归纳 成功治理的先决条件,并制定了清晰的工作路线 ( 2 )数据安全保障工具与能力建设实践及创新为支撑数据安全的治理目标、建设目标、防护目标顺利实现

    2024年01月19日
    浏览(25)
  • 微信小程序调用百度智能云API(菜品识别)

    这里需要使用到如下几个参数(如下),其他的参数可以不管 client_id : 就是创建应用后的API Key client_secret: 就是创建应用后的Secret Key image: 需要用图片转换后的base64 url : 需要用到图片的线上地址,不能使用本地ip地址 调用成功后会如下图返回数据,当前使用以下三个数据

    2024年04月27日
    浏览(14)
  • 【微信小程序调用百度API实现图像识别功能】----项目实战

    本章主要讲述: 如何更快的上手小程序 如何搭建一个页面以及跳转到另一个页面 如何调用百度API接口实现图像识别技术 如何在微信小程序的后台添加合法域名        私信获取源码,有问题可以关注留言或私信,计算机毕业设计(小程序,网页设计,数据库,php开发等) 目录

    2024年02月09日
    浏览(35)
  • 【微信小程序调用百度API实现图像识别实战】----前后端分离

    前言:基于之前发布的文章【微信小程序调用百度API实现图像识别功能】----项目实战稍微进行了升级改进,主要新增了后端,数据库,实现对于虫害识别,返回防治建议等信息。 本文主要讲述: 如何创建数据库 如何连接数据库 如何创建后端服务 如何调用后端服务 目录  一

    2024年04月25日
    浏览(22)
  • AI人工智能课题:图像识别地标识别系统的设计与实现(基于百度智能云AI接口)

     博主介绍 :黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、

    2024年02月04日
    浏览(29)
  • AI人工智能课题:图像识别菜品识别系统的设计与实现(基于百度智能云AI接口)

     博主介绍 :黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、

    2024年02月03日
    浏览(34)
  • AI人工智能课题:图像识别红酒识别系统的设计与实现(基于百度智能云AI接口)

     博主介绍 :黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、

    2024年02月04日
    浏览(30)
  • AI人工智能课题:图像识别货币识别系统的设计与实现(基于百度智能云AI接口)

     博主介绍 :黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、

    2024年02月04日
    浏览(30)
  • 【微信小程序】调用百度API进行图像识别(以植物识别为例)

    需要素材与源码可联系笔者,项目文件过多不适宜全部展示。 微信小程序调用百度API可分为以下三步: 注册百度智能云账号,并开通植物识别API 在小程序中调用 渲染在小程序页面上 移步百度只能云平台https://cloud.baidu.com/ 注册好账号之后,把鼠标放在 产品 上,侧边会展开

    2024年02月05日
    浏览(24)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包