知识图谱生成器:开源项目教程
knowledge_graph_maker 项目地址: https://gitcode.com/gh_mirrors/kn/knowledge_graph_maker
1. 项目介绍
知识图谱生成器(Knowledge Graph Maker)是一个开源的Python库,它可以基于给定的本体(Ontology)将任何文本转换为知识图谱。知识图谱,也称为语义网络,是一种用于表示现实世界中实体(如对象、事件、情况或概念)及其相互关系的网络结构。这种信息通常存储在图数据库中,并以图形结构进行可视化。
本项目旨在帮助用户从文本中提取实体和关系,构建出结构化的知识图谱,进而用于各种分析和应用,如文本理解、信息检索、自然语言处理等。
2. 项目快速启动
首先,确保您的环境中已经安装了Python。
安装库
使用pip命令安装知识图谱生成器库:
pip install knowledge-graph-maker
配置环境变量
在.env
文件中设置以下环境变量:
- 如果使用GROQ客户端:
GROQ_API_KEY=your_groq_api_key
- 如果使用OpenAI客户端:
OPENAI_API_KEY=your_openai_api_key
- 如果使用Neo4j数据库:
NEO4J_USERNAME=neo4j
NEO4J_PASSWORD=localneo4j
NEO4J_URI=bolt://localhost:7687
创建知识图谱
- 定义本体(Ontology)
from knowledge_graph_maker import Ontology
ontology = Ontology(
labels=[
{"Person": "人名,不要使用任何形容词,人名可能通过名字或代词引用"},
{"Object": "对象名,不要加定冠词'the'"},
{"Event": "涉及多个人物的事件,不要包含限定词或动词,如gives, leaves, works等"},
"Place",
"Document",
"Organisation",
"Action",
{"Miscellanous": "任何无法归类到其他标签的重要概念"}
],
relationships=[
"任何两个实体之间的关系"
]
)
- 分割文本
由于LLM的上下文窗口有限,需要将文本分割成适当的块。
- 选择LLM模型
from knowledge_graph_maker import GroqClient, OpenAIClient
# 选择Groq模型
model = "mixtral-8x7b-32768"
llm = GroqClient(model=model, temperature=0.1, top_p=0.5)
# 或者选择OpenAI模型
oai_model = "gpt-3.5-turbo"
llm = OpenAIClient(model=oai_model, temperature=0.1, top_p=0.5)
- 运行图生成器
from knowledge_graph_maker import GraphMaker, Document
graph_maker = GraphMaker(ontology=ontology, llm_client=llm, verbose=False)
# 创建文档列表
docs = [Document(text="你的文本内容", metadata={"context": "相关上下文信息"})]
# 生成图
graph = graph_maker.from_documents(list(docs), delay_s_between=10)
# 输出结果
print("Total number of Edges", len(graph))
- 保存到Neo4j(可选)
from knowledge_graph_maker import Neo4jGraphModel
neo4j_graph = Neo4jGraphModel(edges=graph, create_indices=True)
neo4j_graph.save()
3. 应用案例和最佳实践
- 文本分析:使用知识图谱生成器分析长篇文档,提取关键实体和关系,以便更好地理解文本内容。
- 信息检索:构建知识图谱索引,快速检索相关信息,提高信息检索的效率。
- 问答系统:结合自然语言处理技术,构建基于知识图谱的问答系统。
4. 典型生态项目
- Neo4j:用于存储和查询知识图谱的图数据库。
- GROQ:一种用于自然语言处理的客户端,可以与知识图谱生成器配合使用。
- OpenAI:提供强大的自然语言处理模型,可以用于知识图谱生成的核心处理。
knowledge_graph_maker 项目地址: https://gitcode.com/gh_mirrors/kn/knowledge_graph_maker