鱼C论坛

 找回密码
 立即注册
查看: 1021|回复: 5

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

[复制链接]
发表于 2024-2-27 14:08:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
如题,最近开发一个项目,需要用到PDF文档解析,文心用的OpenAI的ChatFile,所以不提供API接口,国内是否还有其他好用的开放API的PDF文档解析呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-2-27 15:12:27 | 显示全部楼层
不要通用OCR文字解读,要PDF全文分析
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

如何用Flask框架提取一个SQL对应的“question”列的所有内容到word文档,请帮我写一段Python代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-15 07:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表