Google Cloud Document AI 是一个来自 Google 云的文档理解平台,用于将文档中的非结构化数据转换为结构化数据,使其更易于理解、分析和使用。在本文中,我们将通过一个实用的例子深入探讨如何使用 Document AI 进行文档解析和数据提取。
技术背景介绍
在许多行业中,纸质或数字格式的文档中包含了大量的非结构化数据,如合同、发票、报表等。为了更好地利用这些信息,企业需要将其转换为结构化数据,这就是 Document AI 的优势所在。它利用机器学习技术,从文档中提取结构化数据,极大地提高了信息处理的效率。
核心原理解析
Document AI 通过使用 OCR(光学字符识别)和自然语言处理技术,将扫描件或文档的图像数据转换为文本,然后提取出相关的信息。其核心组件是 OCR 处理器和解析器。OCR 处理器负责将图像转换为文本,而解析器负责提取结构化数据。
代码实现演示
下面的代码演示了如何设置 Google Cloud Document AI 并解析 PDF 文档。你需要首先安装相关的 Python 库并配置 Google Cloud Storage 存储桶。
安装库
%pip install --upgrade --quiet langchain-google-community[docai]
设置 Google Cloud Storage 和 OCR 处理器
在开始之前,你需要在 Google Cloud 上设置一个存储桶(GCS_BUCKET)和创建一个 OCR 处理器。以下是代码示例:
from langchain_core.document_loaders.blob_loaders import Blob
from langchain_google_community import DocAIParser
# 替换为你自己的 PROCESSOR_NAME 和 GCS_OUTPUT_PATH
PROCESSOR_NAME = "projects/PROJECT_NUMBER/locations/LOCATION/processors/PROCESSOR_ID"
GCS_OUTPUT_PATH = "gs://BUCKET_NAME/FOLDER_PATH"
# 创建解析器实例
parser = DocAIParser(
location="us", processor_name=PROCESSOR_NAME, gcs_output_path=GCS_OUTPUT_PATH
)
# 使用公开的示例PDF文档
blob = Blob(
path="gs://cloud-samples-data/gen-app-builder/search/alphabet-investor-pdfs/2022Q1_alphabet_earnings_release.pdf"
)
# 懒加载解析文档
docs = list(parser.lazy_parse(blob))
print(f"Parsed {len(docs)} documents")
异步解析和结果获取
在处理多个文档时,可以批量处理以提高效率。
# 发起解析操作
operations = parser.docai_parse([blob])
print([op.operation.name for op in operations])
# 检查操作完成情况
while parser.is_running(operations):
print("Parsing is still running...")
# 获取解析结果
results = parser.get_results(operations)
print(results[0])
# 从解析结果生成最终的文档
docs = list(parser.parse_from_results(results))
print(f"Total parsed documents: {len(docs)}")
应用场景分析
Document AI 可以广泛应用于各种场景,包括但不限于:
- 金融行业: 自动解析发票、报表,快速提取关键信息。
- 医疗行业: 处理病历、检查报告等文档。
- 法律行业: 合同和协议的结构化数据提取。
- 人力资源: 自动处理简历和申请表。
实践建议
- 对于大规模文档处理,可以利用批处理和异步操作提高速度和效率。
- 为不同类型的文档创建不同的 OCR 处理器,以提高解析准确性。
- 利用解析后的结构化数据进行后续的数据分析和业务决策。
如果你在使用过程中遇到任何问题,欢迎在评论区交流!