美文网首页知识图谱NLP学习知识图谱
《红楼梦》人物关系知识图谱

《红楼梦》人物关系知识图谱

作者: 飘涯 | 来源:发表于2018-10-17 10:59 被阅读72次

背景:红楼梦以人物众多,人物关系复杂著称,自己又是忠实的小红迷,于是趁着这个机会想把红楼梦的知识图谱尝试构建一下
,从人物关系数据如下:


image.png

获取里面的实体
代码如下:

#-*- conding:utf-8 -*-
import pandas as pd
import numpy as np
f = open("红楼梦_triples.csv",encoding='utf-8')
df = pd.read_csv(f)
print(df['node'].value_counts())
# print(df['node'].unique)
a = df['node'].value_counts()
# a.to_csv("node.csv")
print(type(a))
# print(df['head'].unique)

然后通过python构建图数据库,代码如下 :

import pandas as pd
import numpy as np
from py2neo import Node,Relationship,Graph

g = Graph("http://localhost:7474",
          username='neo4j',
          password='012464998')

g.run("MATCH (n) OPTIONAL MATCH (n)-[r]-()DELETE n,r")
n = open("./data/node.csv",encoding='utf-8')
r = open("./data/红楼梦_triples.csv",encoding='utf-8')
data01 = pd.read_csv(n)
data02 = pd.read_csv(r)
#建立节点
for i in range(len(data01)):
    temp= Node("person",name=data01["node"][i])
    # g.create(temp)
for i in range(len(data02)):
    temp = Relationship(g.find_one(label="person",property_key='name',property_value=data02["head"][i]),data02['label'][i],
                        g.find_one(label="person", property_key='name', property_value=data02["tail"][i]))
    # g.create(temp)

print(len(data))
tus

刷新neo4j页面,得到效果如下:


image.png
image.png

进行查询
例如查询,贾宝玉的丫鬟都是谁有多少:

match (p: person {name:"贾宝玉"})-[k:丫鬟]-(r) return r,k,p

查询结果如下:

有17个丫鬟

返回图如下:

image.png
  • 利用图数据库来查询两个实体的最短路径:
    例如:查询贾宝玉和香菱之间的关系:
    MATCH (p1:person {name:"贾宝玉"}),(p2:person{name:"香菱"}),p=shortestpath((p1)-[*..10]-(p2))RETURN p
    结果:


    image.png

相关文章

  • 《红楼梦》人物关系知识图谱

    背景:红楼梦以人物众多,人物关系复杂著称,自己又是忠实的小红迷,于是趁着这个机会想把红楼梦的知识图谱尝试构建一下,...

  • 构建红楼梦人物关系知识图谱

    知识图谱构建步骤:数据获取、知识抽取、关系提取、图数据库构建和语义搜索(本质就是把检索的问题转换为查询语句) 知识...

  • 知识图谱学习笔记 -- 海贼王关系图谱

    这两天准备学习点知识图谱查询的知识,查看到 OpenKG 上发布了一个 海贼王人物关系知识图谱 , 作为 海米 决...

  • 知识图谱技术解剖

    本体、知识库、知识图谱、知识图谱识别之间的关系? 本体:领域术语集合。 知识库:知识集合。 知识图谱:图状具有关联...

  • 开源vue关系图谱组件:relation-graph vue实现

    用这个关系图谱组件可以非常方便的展示如组织机构图谱、股权架构图谱、集团关系图谱等知识图谱,可提供多种图谱布局,包括...

  • 最全知识图谱介绍:关键技术、开放数据集、应用案例汇总

    1 知识图谱构建技术 本节首先给出知识图谱的技术地图,然后介绍知识图谱构建的关键技术,包括关系抽取技术、知识融合技...

  • 知识图谱的感性认识

    定义 知识图谱可以分割为知识和图谱。知识包含实体和实体之间的联系, 图谱就是用图的方式把实体和它们之间的关系用图表...

  • 结合知识图谱和推荐系统的应用

    1 什么是知识图谱 知识图谱是一种用图模型来描述知识和建模世界万物之间的关联关系的技术方法。知识图谱由节点和边祖成...

  • 产品经理视觉——初识知识图谱(一)

    一、什么是知识图谱? 知识图谱(Knowledge Graph)以语义网来描述现实世界中不同信息之间的关系,主要以...

  • KG

    一、中文知识图谱的构建 前情提要 知识图谱的本体学习术语抽取同义关系学习概念概念分类学关系学习非分类学关系学习公理...

网友评论

  • 9189ae370d6c:前面的实体和关系如何构建?
    飘涯:@花香飘飘 方法很多,实体用ner关系你自己定义好再抽取

本文标题:《红楼梦》人物关系知识图谱

本文链接:https://www.haomeiwen.com/subject/hqmlzftx.html