知识图谱
文章平均质量分 65
山阴少年
这个作者很懒,什么都没留下…
展开
-
Neo4j入门(六)从计算节点的出度、入度开始
本文将会介绍一些较高级的Neo4j查询Cypher语句,先从计算节点的出度、入度开始。 在此之前,我们先构建一个简单的电影知识图谱。图谱构建 我们将构建一个IMDB排名前250的电影知识图谱,其数据来源可访问网址:https://www.imdb.cn/imdb250/6,电影数据示例如下: 其中节点的Schema如下:节点类型属性Moviename,language,releaseDate,minutesPersonnameCountryname原创 2021-11-26 22:56:37 · 4231 阅读 · 2 评论 -
关于知识图谱上下级概念建设的一点想法
对知识图谱有所了解的人,都知道知识图谱是对知识的整理,以点和边的形式呈现,属于人工智能中的“符号主义”流派。虽然知识图谱可以清晰地告诉我们各个知识点之间的关联和区别,但我们还是无从知晓图谱中哪些节点相似性高,因此建立知识图谱并不是终极目标,还有许多后续工作需要开展。其中,对知识图谱进行同义关系建设和上下级关系建设也是比较重要的工作。 同义关系,即同义词,也就是对知识图谱中的节点建立同义关系,这些同义关系的节点实际上就是同一个事物。本文将会介绍笔者对知识图谱上下级概念建设的一点想法。什么是上下级概念原创 2021-11-24 22:46:11 · 1783 阅读 · 0 评论 -
Neo4j入门(五)删除节点的正确姿势
本文还是照例讲讲自己工作中遇到的坑。本文将会讲述如何在Neo4j中正确地删除节点。 图数据库在删除节点的时候,并不像删除属性和删除关系那样方便,原因就在于删除节点时,可能有关系与之相连,因此需要考虑这个问题。Neo4j在删除节点时,已经考虑了这个问题,那么,我们该如何正确地在Neo4j中删除节点呢? 本文将会介绍如何使用Neo4j原生Cypher语句及py2neo模块进行节点删除。 首先,我们有如下的3个节点及边,如下图:原生Cypher语句只删除节点MATCH (n:Test{原创 2021-11-23 23:07:41 · 8406 阅读 · 0 评论 -
Neo4j入门(四)批量更新节点属性
本文将用于介绍如何使用py2neo来实现Neo4j的批量更新节点属性。单节点属性更新 首先我们先来看单个节点如何实现节点的属性,比如现有Neo4j图数据库中存在节点,其label为Test,属性有name=上海,我们需要为该节点增加属性enname=shanghai。 以下为Python示例代码:# -*- coding: utf-8 -*-from py2neo import Graphfrom py2neo import NodeMatcher# 连接Neo4jurl = "h原创 2021-09-17 23:14:38 · 4270 阅读 · 0 评论 -
Neo4j入门(三)删除关系
本文将介绍笔者在工作中使用Neo4j时遇到的一个坑。 下面笔者将会介绍这个问题。简单来说,就是当我们使用py2neo操作Neo4j时,delete方法会删除整个子图,而仅仅是删除子图中的关系是调用separate方法。以下举例来说明。 假设我们有如下图谱:我们试图删除Alice -Knows-> Bob这条关系。 我们使用py2neo调用delete来删除该关系,示例代码如下:from py2neo import Graph, Node, Relationshipfrom py2n原创 2021-08-18 23:22:05 · 4654 阅读 · 0 评论 -
Neo4j入门(二)批量插入节点、关系
本文将介绍如何在Neo4j中批量插入节点、关系,提升图谱构建的效率。 在讲解批量插入节点、关系前,我们需要了解下节点重复创建问题。节点重复创建 在Neo4j中,我们如果对同一个节点进行重复插入,则图谱中会存在多个重复节点,这是因为Neo4j本身自带一个自增id造成的。 我们来创建name为Google、address为U.S.的节点。使用CQL语句如下:create (company: Company{name: "Google", address: "U.S."});create (原创 2021-07-15 23:50:09 · 4881 阅读 · 3 评论 -
Neo4j入门(一)节点、关系的增删改查
本文作为笔者入门Neo4j的第一篇文章,后续将会更多地介绍Neo4j及知识图谱相关的内容。 Neo4j是图数据库中的佼佼者,采用Java编写,社版区已开源,商业版需收费。Neo4j是一个高性能的NoSQL图形数据库(Graph Database),它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中。Neo4j也可以被看作是一个高性能的图引擎,该引擎具有成熟数据库的所有特性。Neo4原创 2021-07-14 00:08:40 · 8569 阅读 · 1 评论 -
知识图谱构建举例
笔者在去年的时候,给出了利用深度学习来构建知识图谱的一次尝试,文章为:利用关系抽取构建知识图谱的一次尝试 ,本文将会更出更多的例子,也是笔者近一个星期的忙碌结果。 下面为知识图谱构建的例子,由笔者原创,是从新闻或者小说中直接抽取而来,加上大量时间的人工整理而得到,下面的图片是从Neo4J导出并截图。 例子1:《平凡的世界》实体关系图(局部): 例子2:《白鹿原》实体关系图(局部)...原创 2020-03-05 22:20:04 · 14662 阅读 · 2 评论 -
利用关系抽取构建知识图谱的一次尝试
关系抽取 信息抽取(Information Extraction, IE)旨在从大规模非结构或半结构的自然语言文本中抽取结构化信息。关系抽取(Relation Extraction, RE)是其中的重要子任务之一,主要目的是从文本中识别实体并抽取实体之间的语义关系,是自然语言处理(NLP)中的一项基本任务。比如,我们可以从下面的一段话中,鸿海集团董事长郭台铭25日表示,阿里巴巴集团董事局主...原创 2020-01-13 22:59:45 · 3934 阅读 · 6 评论 -
SPARQL入门(二)使用Java操作ARQ
在文章SPARQL入门(一)SPARQL简介与简单使用中,我们了解了RDF、SPARQL以及基于Java编写的SPARQL处理器ARQ。在本文中,笔者将会如何使用Java来操作ARQ。 注意到在Jena的官网http://jena.apache.org/download/index.cgi 说明中,有关于Maven的使用方法介绍:因此可以使用Maven,然后再用Java来操作ARQ,J...原创 2019-05-15 14:02:03 · 1433 阅读 · 3 评论 -
SPARQL入门(一)SPARQL简介与简单使用
知识图谱(Knowledge Graph)是当前互联网最炙手可热的技术之一,它的典型应用场景就是搜索引擎,比如Google搜索,百度搜索。我们在百度搜索中输入问题“中国银行的总部在哪”,搜索的结果如下:这便是知识图谱的典型应用,能够直接输出问题的答案。借助知识图谱,能够让搜索引擎更加高效,搜索结果更加精准,给用户带来更好的搜索体验和乐趣。 关于知识图谱的知识点和工具数不胜数,我们在学习...原创 2019-05-14 23:32:31 · 13004 阅读 · 0 评论