如何使用Docugami加载文档
本文将介绍如何使用Docugami加载文档,并展示与其他数据加载器相比,使用Docugami的优势。
1. 技术背景介绍
Docugami是一种智能文档处理系统,可以自动将文档分割成具有语义的块。它通过构建文档的XML树和添加语义标签来实现这一点。这种处理方式可以帮助我们构建更有意义的文档片段,使得文档的检索和问答更准确。
2. 核心原理解析
Docugami通过以下几种方式提供相对于传统数据加载器的优势:
- 智能分块:Docugami将每个文档分解成大小不一的块,从单词或数值到整个段落,遵循文档的语义轮廓。
- 语义注释:文档块带有跨文档集一致的语义标签,便于在多个文档中进行一致的层次查询。
- 结构化表示:XML树标识文档的结构轮廓,处理长文档的常见元素如页眉/页脚或多栏布局,确保干净的文本提取。
- 附加元数据:如果用户使用了Docugami,块还带有附加元数据,用于高精度文档问答。
3. 代码实现演示
首先,确保安装必要的Python包,并获取访问令牌。
!pip install docugami-langchain dgml-utils==0.3.0 --upgrade --quiet
接下来设置环境变量 DOCUGAMI_API_KEY
,并加载文档:
import os
from docugami_langchain.document_loaders import DocugamiLoader
DOCUGAMI_API_KEY = os.environ.get("DOCUGAMI_API_KEY")
docset_id = "26xpy3aes7xp"
document_ids = ["d7jqdzcj50sj", "cgd1eacfkchw"]
loader = DocugamiLoader(docset_id=docset_id, document_ids=document_ids)
chunks = loader.load()
print(f"Loaded {len(chunks)} chunks")
上面的代码加载了指定文档集中的文档,并输出文档块的数量。
4. 应用场景分析
Docugami的智能分块和语义注释使其特别适用于以下场景:
- 高精度的文档问答:例如合同条款检索,复杂的法律文本解析等。
- 结构化数据提取:从非结构化文档中提取半结构化数据,用于后续分析。
- 多文档层次查询:跨多个文档进行一致的层次查询,便于大规模文档管理和检索。
5. 实践建议
在使用Docugami时:
- 确保文档经过充分的预处理,保证文本质量。
- 根据具体的应用场景调整DocugamiLoader的参数,如
min_text_length
和include_xml_tags
。 - 利用Docugami的附加元数据提升检索与问答的精准度。
结束语
如果遇到问题欢迎在评论区交流。
—END—