知识图谱组队学习Task01——知识图谱介绍

文章目录

  • 一、知识图谱简介
  • 二、Neo4J
    • 1.Neo4J的安装方法
    • 2.Neo4J的基本操作
    • 3.通过 Python 操作 Neo4j
      • (1)neo4j模块:执行CQL ( cypher ) 语句
      • (2)py2neo模块:通过操作python变量,达到操作neo4j的目的
    • 4.通过csv文件批量导入图数据

一、知识图谱简介

知识图谱是由 Google 公司在 2012 年提出来的一个新的概念。从学术的角度,我们可以对知识图谱给一个这样的定义:“知识图谱本质上是语义网络(Semantic Network)的知识库”。但这有点抽象,所以换个角度,从实际应用的角度出发其实可以简单地把知识图谱理解成多关系图(Multi-relationalGraph)。

知识图谱的数据源主要来自两种渠道:

  • 业务本身的数据。这部分数据通常包含在公司内的数据库表并以结构化的方式存储,一般只需要简单预处理即可以作为后续AI系统的输入;
  • 网络上公开、抓取的数据。这些数据通常是以网页的形式存在所以是非结构化的数据,一般需要借助于自然语言处理等技术来提取出结构化信息。

构建知识图谱所涉及的技术:

  • 命名实体识别(Named Entity Recognition):从文本里提取出实体并对每个实体做分类/打标签
  • 关系抽取(Relation Extraction):把实体间的关系从文本中提取出来
  • 实体统一(Entity Resolution):对于有些实体写法上不一样,但其实是指向同一个实体
  • 指代消解(Disambiguation):文本中出现的“it”, “he”, “she”这些词到底指向哪个实体

知识图谱主要有两种存储方式:

  • 基于RDF的存储:以三元组的方式来存储数据而且不包含属性信息,设计原则是数据的易发布以及共享
  • 基于图数据库的存储:以属性图为基本的表示形式,实体和关系可以包含属性,能够进行高效的图查询和搜索。Neo4j系统目前仍是使用率最高的图数据库

二、Neo4J

1.Neo4J的安装方法

win10 下安装 neo4j

2.Neo4J的基本操作

手把手教你快速入门知识图谱 - Neo4J教程

3.通过 Python 操作 Neo4j

(1)neo4j模块:执行CQL ( cypher ) 语句

from neo4j import GraphDatabase
# step 2:连接 Neo4j 图数据库
driver = GraphDatabase.driver("bolt://localhost:7687", auth=("neo4j", "password"))
# 添加 关系 函数
def add_friend(tx, name, friend_name):
    tx.run("MERGE (a:Person {name: $name}) "
            "MERGE (a)-[:KNOWS]->(friend:Person {name: $friend_name})",
            name=name, friend_name=friend_name)
# 定义 关系函数
def print_friends(tx, name):
    for record in tx.run("MATCH (a:Person)-[:KNOWS]->(friend) WHERE a.name =$name "
                            "RETURN friend.name ORDER BY friend.name", name=name):
        print(record["friend.name"])
# step 3:运行
with driver.session() as session:
    session.write_transaction(add_friend, "Arthur", "Guinevere")
    session.write_transaction(add_friend, "Arthur", "Lancelot")
    session.write_transaction(add_friend, "Arthur", "Merlin")
    session.read_transaction(print_friends, "Arthur")

(2)py2neo模块:通过操作python变量,达到操作neo4j的目的

# step 1:导包
from py2neo import Graph, Node, Relationship
# step 2:构建图
g = Graph("http://localhost:7474",auth=("neo4j","password"))
# step 3:创建节点
tx = g.begin()
a = Node("Person", name="Alice")
tx.create(a)
b = Node("Person", name="Bob")
# step 4:创建边
ab = Relationship(a, "KNOWS", b)
# step 5:运行
tx.create(ab)
tx.commit()

py2neo模块符合python的习惯,写着感觉顺畅

4.通过csv文件批量导入图数据

Neo4j之导入数据

你可能感兴趣的:(知识图谱,知识图谱)