AIGC宇宙 AIGC宇宙

使用Python构建红楼梦人物知识图谱

一、python环境准备可详细参考使用Python操作nNeo4j中python环境的搭建。 主要python库如下:复制二、数据准备数据一共有4列,381行,命名为triples.csv:source:实体起点。 比如Alice指向Bob,Alice是起点,箭头开始的位置。

使用Python构建红楼梦人物知识图谱

一、python环境准备

可详细参考使用Python操作nNeo4j中python环境的搭建。

主要python库如下:

复制

二、数据准备

数据一共有4列,381行,命名为triples.csv:

图片

  • source:实体起点。比如Alice指向Bob,Alice是起点,箭头开始的位置。

图片

  • target:实体起点。比如Alice指向Bob,Bob是终点,箭头终止的实体。
  • relation:实体间的关系。实体A与实体B的关系,但是要注意,实体关系是有指向的。比如A是B的父亲,A指向B;B是A的儿子,此时就是B指向A。
  • label:标签。会将target列的实体打标签,一个实体可以有多种标签,可以类别一个人是有多重身份的。

数据解释示例:

“贾代善”是“贾源”的son,“贾代善”的标签是“子”;

“贾母”是“贾代善”的wife,“贾母”的标签是“妻”;

三、代码编写

3.1 基础库的导入

复制

csv库用来读取triples.csv文件;

py2neo用来连接neo4j图数据库。

3.2 连接neo4j数据库

复制

此行代码连接了neo4j图数据库,连接方式为bolt,由Neo4j图形数据库团队创作,主要用于执行数据库查询。

当然,也可以通过http协议进行连接,连接代码如下:

复制

3.3 读取数据文件

复制

读取triples.csv文件,'r'表示read,读取文件,'encoding'表示数据编码为utf-8。

使用csv.reader形成基于文件的迭代器对象,简单来说就是可以通过reader遍历每一行数据。

for item in reader就是遍历每一行数据。

由于数据有表头,因此首行不计入实体关系的建立。

3.4 定义实体与关系

对于基础语法,可参考:使用Python操作Neo4j

复制

item表示某行数据,以首行数据为例:

item[0]表示贾代善,item[1]表示贾源,item[2]表示son,item[3]表示子。

图片

start_node定义为起始实体,实体的标签定义为Person,name定义为source列的数据;

end_node定义为终止实体,实体的标签定义为Person,name定义为target列的数据;

relation定义为start_node与end_node的关系item[3]。

对于以下代码,表示在标签为 Person 的节点中,通过 name 属性值匹配 start_node。

复制

3.5 完整代码如下

复制

四、图数据库查看

打开neo4j图数据库:http://localhost:7474/browser/

图片

图片

可以看到一共形成了388个实体,多种实体关系;

以贾宝玉实体为例,可以看到其复杂的人物关系。

图片

五、图数据库扩展使用方向

在我们形成知识图谱后,如何来应用呢?

在当前大模型不断发展的情况下,可以考虑将复杂的关系喂给大模型,让大模型自动分析,给出我们想要的结论。

相关资讯

图数据库的剪枝在大型语言模型中的知识表示

译者 | 李睿审校 | 重楼图数据库的剪枝通过删除不必要的信息并加以改进,可以使LLM更快、更高效,同时节省电力和资源。 大型语言模型(LLM)通过从庞大的数据集中学习复杂的语言模式,极大地推进了自然语言处理(NLP)的发展。 然而,当这些模型与结构化知识图谱(用于表示实体之间关系的数据库)结合在一起时,可能面临一些挑战。
1/15/2025 7:52:53 AM
李睿

知识图谱与其它知识库的关系

知识图谱与传统知识库:解构数据连接的哲学传统企业数据库和知识库长期以来一直被当作信息的仓库,它们好比一个个分隔的抽屉,每个抽屉里都整齐地存放着特定类型的信息。 企业习惯了这种存储方式,却很少思考:我们真的需要将信息放在不同的抽屉里吗? 知识图谱打破了这种传统思维,它将信息视为一张巨大的网络——每条信息都是网络中的一个节点,节点之间通过各种关系连接起来。
4/18/2025 12:49:58 PM
大数据AI智能圈

知识图谱、大模型与幻觉:自然语言处理的视角

摘要大型语言模型(LLMs)已经彻底改变了基于自然语言处理(NLP)的应用,包括自动化文本生成、问答系统、聊天机器人等。 然而,它们面临一个重大挑战:产生幻觉,即模型生成听起来合理但实际上错误的内容。 这削弱了信任,并限制了LLMs在不同领域的适用性。
5/28/2025 1:50:00 AM
KGGPT
  • 1