要在向量形式中保持章节和条款等文档结构,您需要在文本内容之外显式编码层次关系和位置上下文。这包括将文档分解为逻辑单元(例如,章节、条款),保留有关它们的顺序和嵌套的元数据,并使用在向量化过程中保留此信息的技术。例如,一份法律合同可以按条款拆分,并带有“第 3.2(a) 节”等标识符,对每个单元进行嵌入,同时跟踪其在文档大纲中的位置。
一种实用的方法是在向量化之前将文档预处理成结构化块。每个块(例如,条款或小节)都与元数据一起存储,例如其节号、父节以及在层次结构中的深度。生成向量时,您可以使用保留位置上下文的模型,例如带有位置编码的 Transformer,或在嵌入之前将结构化标签(例如,“[SECTION_3.2]”)附加到文本中。例如,以“终止权:...”开头的条款可以在前面加上“[CLAUSE_5.1]”以指示其位置。然后,FAISS 或 Pinecone 等向量数据库可以将这些向量与其元数据一起存储,从而实现同时考虑语义含义和结构上下文的查询。
另一种策略是使用基于图的表示。每个章节或条款成为图中的一个节点,边表示父子关系(例如,第 3 节包含第 3.1 小节)。节点可以使用图神经网络 (GNN) 进行嵌入,或者将其文本内容独立向量化,同时单独存储邻接信息。例如,“条款 4.2”的向量可能通过元数据链接到其父节点“第 4 节”。这使得检索系统能够在搜索或分析期间重建文档的层次结构。LangChain 的分层文档加载器或自定义解析器等工具可以自动化拆分和标记,确保向量化管道保留对合同分析或法规遵从性检查等任务至关重要的结构信号。