Banky 发表于 2024-2-27 14:08:42

求一个国内好用的PDF文档解析API

如题,最近开发一个项目,需要用到PDF文档解析,文心用的OpenAI的ChatFile,所以不提供API接口,国内是否还有其他好用的开放API的PDF文档解析呢?

FishC 发表于 2024-2-27 14:09:17

在国内,有一些好用的开放API可以用于PDF文档解析。以下是其中几个较受欢迎的选择:

1. 百度AI开放平台:百度提供了一套强大的OCR(光学字符识别)服务,可以将PDF中的文字内容提取出来。你可以访问百度AI开放平台并注册账号,然后使用OCR接口对PDF进行解析。

2. 腾讯云OCR:腾讯云提供了一套OCR服务,也可以用于PDF文档解析。你需要前往腾讯云开放平台注册账号,并使用OCR接口完成PDF文档的解析。

这些平台都提供了详细的使用文档和示例代码,你可以根据文档中的说明进行接入和调用。以百度AI开放平台为例,下面是一个简单的Python代码示例,展示了如何使用百度OCR接口解析PDF文档:

import requests

# 请求URL
url = "https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic"
# 获取token地址
token_url = "https://aip.baidubce.com/oauth/2.0/token"

# 获取access_token
def get_access_token():
    # 填写自己的API Key和Secret Key
    client_id = "Your API Key"
    client_secret = "Your Secret Key"
   
    params = {
      "grant_type": "client_credentials",
      "client_id": client_id,
      "client_secret": client_secret
    }
    response = requests.get(token_url, params=params)
    result = response.json()
   
    return result["access_token"]

# 解析PDF文档
def parse_pdf(pdf_path, access_token):
    with open(pdf_path, 'rb') as f:
      pdf_content = f.read()

    headers = {'Content-Type': 'application/x-www-form-urlencoded'}
    params = {
      'access_token': access_token,
      'type': 'pdf',
      'detect_direction': 'true'
    }
    data = {'image': pdf_content}

    response = requests.post(url, headers=headers, params=params, data=data)
    result = response.json()
   
    # 处理解析结果
    if 'error_code' in result:
      print('解析失败,错误码:', result['error_code'])
    else:
      for item in result['data']:
            print(item['words'])

# 获取access_token
access_token = get_access_token()
# 解析PDF文档
parse_pdf('your_pdf_path', access_token)

以上代码仅为示例,你需要替换其中的API Key和Secret Key,并提供待解析的PDF文件路径。具体使用方法请参考对应平台的文档。

希望对你有帮助!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

Banky 发表于 2024-2-27 15:12:27

不要通用OCR文字解读,要PDF全文分析

FishC 发表于 2024-2-27 15:13:04

Banky 发表于 2024-02-27 15:12
不要通用OCR文字解读,要PDF全文分析

如果你需要对PDF文档进行全文分析,提取文字、表格、图像等元素的结构化数据,可以尝试使用以下国内的PDF解析API:

1. 腾讯云PDF解析:腾讯云提供了一套PDF解析服务,可以将PDF文档转换为可编辑的文本格式,并提供表格识别、图像提取等功能。你需要前往腾讯云开放平台注册账号,并使用PDF解析API完成相应操作。具体的使用文档和示例代码可以在腾讯云开放平台上找到。

2. 百度文档识别:百度AI开放平台提供了文档识别服务,支持PDF文档的结构分析、文字提取、表格解析等功能。你可以通过百度AI开放平台注册账号,并根据文档中的指引进行PDF文档解析。同样,你可以在百度AI开放平台上找到详细的使用文档和示例代码。

以下是一个使用腾讯云PDF解析API的简单Python代码示例:

import requests

# 通过腾讯云接口解析PDF文档
def parse_pdf(pdf_url, secret_id, secret_key):
    url = "https://recognition.image.myqcloud.com/ocr/pdf"
    headers = {
      "Host": "recognition.image.myqcloud.com",
      "Content-Type": "application/json"
    }
    data = {
      "url": pdf_url,
      "appid": "1251234567",# 替换为自己的腾讯云App ID
      "bucket": "your-bucket",# 替换为存放PDF的腾讯云存储桶名称
      "region": "ap-guangzhou",# 替换为对应的地域信息
      "is_sync": True
    }
    auth = {
      "Authorization": "TC3-HMAC-SHA256 Credential={}/2020-12-19/image/tc3_request, SignedHeaders=content-type;host, Signature={}".format(secret_id, secret_key)
    }
    response = requests.post(url, json=data, headers=headers, auth=auth)
    result = response.json()
    if result.get("code") == 0:
      text_result = result.get("result").get("TextResult")
      # 提取结构化的文字数据进行后续处理
      print(text_result)
    else:
      error_message = result.get("message")
      print("解析失败,错误信息:", error_message)

# 使用腾讯云API解析PDF文档
parse_pdf("your_pdf_url", "your_secret_id", "your_secret_key")

请替换代码中的相关参数,并提供符合要求的PDF文件URL。具体API调用方法请参考对应平台的文档。

希望对你有帮助!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

Banky 发表于 2024-3-11 09:37:34

FishC 发表于 2024-2-27 15:13
如果你需要对PDF文档进行全文分析,提取文字、表格、图像等元素的结构化数据,可以尝试使用以下国内的P ...

如何用Flask框架提取一个SQL对应的“question”列的所有内容到word文档,请帮我写一段Python代码

FishC 发表于 2024-3-11 09:37:52

Banky 发表于 2024-03-11 09:37
如何用Flask框架提取一个SQL对应的“question”列的所 ...

当使用Flask框架提取数据库中的内容并生成Word文档时,可以使用python-docx库来操作Word文档。以下是一个示例代码,展示了如何使用Flask框架和python-docx库来提取数据库中某一列的内容,并将其保存到Word文档中:

from flask import Flask, render_template
from docx import Document

app = Flask(__name__)

# 假设数据库连接已经配置好,数据表名为questions,"question"列存放问题内容


@app.route('/export', methods=['GET'])
def export_to_word():
    # 查询数据库,获取所有question的内容
    data = query_questions()

    # 创建Word文档
    document = Document()

    # 添加标题
    document.add_heading('Questions', level=1)

    # 添加问题内容
    for question in data:
      document.add_paragraph(question)

    # 保存Word文档
    document.save('questions.docx')

    return 'Export to Word successfully!'


def query_questions():
    # 连接数据库,查询question列的内容并返回
    # 在这里编写你的数据库查询代码
    # 假设你已经获得了问题的内容列表q_list
    q_list = ["Question 1", "Question 2", "Question 3"]
    return q_list


if __name__ == '__main__':
    app.run(debug=True)

在上述代码中,我们首先使用Flask创建了一个路由`/export`,在该路由下定义了一个名为`export_to_word`的函数,用于从数据库中提取问题内容并生成Word文档。其中的`query_questions()`函数用于模拟查询数据库,返回问题内容列表。

在`export_to_word`函数中,我们使用python-docx库创建一个空的Word文档,然后根据查询到的问题内容逐个添加到文档中。最后通过调用`document.save('questions.docx')`保存生成的Word文档。

最后,当你运行该Flask应用并访问`/export`路由时,程序会从数据库中获取问题内容,并生成名为`questions.docx`的Word文档。

请注意,这只是一个简单的示例代码,你需要根据你的实际情况进行相应的修改和完善,特别是关于数据库连接和查询部分。希望对你有所帮助!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 求一个国内好用的PDF文档解析API