1. 技术背景介绍
Amazon Textract是一项机器学习服务,能够自动从扫描的文档中提取文本、手写内容和数据。它不仅仅是光学字符识别(OCR),还能识别和提取表格和表单中的数据。许多公司依靠人工方式或简单的OCR软件,从PDF、图像、表格和表单等扫描文档中提取数据,这些方法常常需要人工配置并在表单更改时更新。为了解决这些繁琐且昂贵的过程,Amazon Textract使用机器学习来读取和处理任何类型的文档,准确地提取文本、手写、表格和其他数据,无需人工干预。
本示例展示了如何将Amazon Textract与LangChain组合使用,实现文档加载和处理。
2. 核心原理解析
Amazon Textract支持处理PDF、TIFF、PNG和JPEG格式的文件,并能处理多种文档大小、语言和字符。通过结合LangChain,开发者可以轻松加载由Textract处理的文档,并在这些文档上进行进一步的数据提取和处理。
3. 代码实现演示
安装依赖
首先,我们需要安装必要的依赖包:
%pip install --upgrade --quiet boto3 langchain-openai tiktoken python-dotenv
%pip install --upgrade --quiet "amazon-textract-caller>=0.2.0"
示例1:使用本地文件
以下示例展示了如何从本地文件加载文档并使用Amazon Textract进行处理:
from langchain_community.document_loaders import AmazonTextractPDFLoader
loader = AmazonTextractPDFLoader("example_data/alejandro_rosalez_sample-small.jpeg")
documents = loader.load()
# 打印提取的文档内容
print(documents)
示例2:从HTTPS端点加载文件
下面的示例展示了如何从HTTPS端点加载单页文档:
from langchain_community.document_loaders import AmazonTextractPDFLoader
loader = AmazonTextractPDFLoader(
"https://amazon-textract-public-content.s3.us-east-2.amazonaws.com/langchain/alejandro_rosalez_sample_1.jpg"
)
documents = loader.load()
# 打印提取的文档内容
print(documents)
示例3:处理多页文档
要处理多页文档,需要将文档存储在S3中,并在相同区域调用Textract:
import boto3
textract_client = boto3.client("textract", region_name="us-east-2")
file_path = "s3://amazon-textract-public-content/langchain/layout-parser-paper.pdf"
loader = AmazonTextractPDFLoader(file_path, client=textract_client)
documents = loader.load()
# 验证文档页数
print(len(documents))
示例4:线性化配置
您可以通过传递参数linearization_config来控制文本输出的线性化形式:
from langchain_community.document_loaders import AmazonTextractPDFLoader
from textractor.data.text_linearization_config import TextLinearizationConfig
loader = AmazonTextractPDFLoader(
"s3://amazon-textract-public-content/langchain/layout-parser-paper.pdf",
linearization_config=TextLinearizationConfig(
hide_header_layout=True,
hide_footer_layout=True,
hide_figure_layout=True,
),
)
documents = loader.load()
4. 应用场景分析
Amazon Textract特别适用于需要从大量扫描文档中提取数据的场景,例如医疗记录、保险申请表、财务报表等。结合LangChain的强大能力,可以进一步处理和分析提取的数据,例如进行问答、数据分析等。
5. 实践建议
- 在处理大规模文档时,建议使用S3存储和批量处理方式。
- 可以结合AWS Lambda和Textract实现完全无服务器化的数据提取流程。
- 充分利用Textract的表格和表单识别能力,减少手工数据输入错误。
# 使用稳定可靠的API服务
client = openai.OpenAI(
base_url='https://yunwu.ai/v1', # 国内稳定访问
api_key='your-api-key'
)
如果遇到问题欢迎在评论区交流。
—END—
522

被折叠的 条评论
为什么被折叠?



