知识图谱示例

本章节提供了 HiRAG 与 TRAG 两种方法的知识图谱构建和使用的示例。

两种方法均由:构建实体关系三元组、生成实体关系对应描述、构建知识图谱三部分组成,其中共用同一个构建实体关系三元组方法。

构建实体关系三元组:

将 MinerU 处理后的结果加载为语料,根据语料构建实体关系三元组:

from src.data_processor.knowledge_graph.triple_extractor import triple_extractor

# 根据MinerU生成的文件得到三元组
input_path = "src/resources/pdf"
corpus_path = "src/resources/temp/knowledge_graph/corpus"  #语料库路径
triple_path = "src/resources/temp/knowledge_graph/triple"
triple_extractor(input_path, triple_path, corpus_dir = corpus_path)

参数说明:

  • input_path : 输入文件的路径,包含需要处理的原始文档与 MinerU 解析后的结果。

  • corpus_path : 语料库路径,MinerU 解析后的结果会处理成语料以便生成三元组。

  • triple_path : 构建三元组保存路径。

生成实体关系对应描述:

根据已有语料库与三元组,生成实体关系的对应描述。其中 TRAG 方法还会首先生成对应的六元组,在进行实体关系描述的生成。

# HiRAG
from src.data_processor.knowledge_graph.entity_relation_extractor import entity_relation_extractor

#根据已有语料库与三元组,提取实体与关系的描述
corpus_path = "src/resources/temp/knowledge_graph/corpus"  #语料库路径

output_path = "src/resources/temp/knowledge_graph/hirag_data"
triple_path = "src/resources/temp/knowledge_graph/triple"
entity_relation_extractor(corpus_path, output_path,  method="hirag", triple_path = triple_path)


# TRAG
from src.data_processor.knowledge_graph.entity_relation_extractor import entity_relation_extractor

#根据已有语料库与三元组,提取实体与关系的描述
corpus_path = "src/resources/temp/knowledge_graph/corpus"  #语料库路径

output_path = "src/resources/temp/knowledge_graph/trag_data"
triple_path = "src/resources/temp/knowledge_graph/triple"
entity_relation_extractor(corpus_path, output_path,  method="trag", triple_path = triple_path)

参数说明:

  • output_path : 输出文件的路径,生成的实体关系描述保存路径。

  • corpus_path : 语料库路径,MinerU 解析后的结果会处理成语料以便生成三元组。

  • triple_path : 构建三元组保存路径。TRAG 方法生成的六元组也保存在这里。

构建知识图谱:

根据生成的实体关系描述,构建知识图谱。

 # HiRAG
 from src.data_processor.knowledge_graph.graph_builder import graph_builder

 # 实体关系三元组等数据构建hirag,并存入working_dir
 data_path = "src/resources/temp/knowledge_graph/hirag_data"
 working_dir = "src/resources/temp/knowledge_graph/hirag"
 graph_builder(data_path, working_dir,method="hirag")

 # TRAG
 from src.data_processor.knowledge_graph.graph_builder import graph_builder

# 实体关系三元组等数据构建trag,并存入working_dir
 data_path = "src/resources/temp/knowledge_graph/trag_data"
 working_dir = "src/resources/temp/knowledge_graph/trag"
 graph_builder(data_path, working_dir,method="trag")

参数说明:

  • data_path : 构建知识图谱所需的数据,即生成实体关系描述的结果。

  • working_dir :构建好的知识图谱保存路径。