KG
Takoony
天下大事,必作于细,天下难事,必作于易
展开
-
Neo4j 导入动态类型关系
本人试验的时候:using前面需要 :auto 才行https://jiapan.me/2018/neo4j-import-dynamic-relationship-type/转载 2021-11-06 11:43:02 · 1114 阅读 · 1 评论 -
linux安装neo4j及远程访问
一、所需的安装包:1、neo4j-community-4.2.9-unix.tar2、jdk-11.0.12_linux-x64_bin.tar.gz二、所需的参数设置:1、运行:systemctl stop firewalld.service2、修改:conf/neo4j.conf 中的0.0.0.0;默认不需要修改三、重要的解决问题方法1、logs/neo4j.log 通过日志查看运行情况四、案例初始安装neo4j 4.1.10版本,每次运行 ./neo4j start,一直无法通原创 2021-08-18 17:46:17 · 633 阅读 · 0 评论 -
k-core与k-shell的区别
一、问题描述:在文章中看到k-core与k-shell的概念,将全局图中分成2-core与1-shell的概念?结论:图可以说明一切,如图所示:1、2-core是包含蓝色与绿色的点,3-core会包含全部的点2、1-shell指的是黄色的点3、推断:任何一个图均可以分成k-core图与(k-1)-shell...原创 2021-08-09 16:06:08 · 2753 阅读 · 3 评论 -
nGQL-为什么路径越长,数量越多呢,直觉是条件越严格,路径数量会越少
问题描述:建立一个图谱,500个节点,2000条边,使用路径查找时,发现路径越长,返回的数量越多,和直觉完全相反,出乎意料?问题答案:路径短到极致就是等于节点的数量,一跳的话,就等于边的数量。如果路径越长,数量越多,也取决图的结构。如果路径长到极致,就会出现一条路径都没有。比如说图由abc连接d,d又连接efg组成,一跳的话就只有6个路径,两跳的话就会出现3*3=9的路径数量。如果路径长度为3的话,那么符合条件的路径数量为0....原创 2021-07-26 09:43:56 · 180 阅读 · 0 评论 -
nGQL知识点总结-20210719
1、vid默认fix_string(8)类型,可以自由设置成int类型和fix_string(n),n可以自由设置2、nGQL属性数据类型不能是迭代类型数据3、但nGQL不支持此在where中设置查找的语法。类似这种Match p=(n:xxx)-[]->(m:xxx) where count(m-[]->()) == 0 return p;使用节点入度与出度作为查询条件...原创 2021-07-26 09:40:31 · 1073 阅读 · 0 评论 -
vim打开所有折叠的方法及其他所有折叠的命令
zr可以一次性打开所有折叠。原创 2021-07-26 09:14:50 · 4187 阅读 · 0 评论 -
nGQL中vid值过长被截断的处理方法
一、问题描述在构造的图谱中,存在节点的值重合的问题,最终分析定位为vid值长度过长被截断,只保留了17个字符串的长度,进而被判断为同一个节点;比如说c11111111111111111234,c11111111111111111666;都被截断为c11111111111111111,这要怎么处理呢?二、解决方案了解nebula的nGQL语句对VID要求。如图所示:系统对VID的长度作了限制。数据类型可以为INT64和FIXED_STRING(N)类型。字符串类型默认长度为8. 所以字符串类型的VI原创 2021-07-20 16:41:29 · 326 阅读 · 0 评论 -
nebula的nGQL语句可以为属性添加类似list的数字类型吗
一、问题描述现在要基于大量属性为列表的数据类型建立知识图谱,可不可以指定属性的数据类型为列表呢?二、解决方案理论上:如图所示:实际上:ALTER TAG xxxx ADD (p3 int); 成功执行ALTER TAG xxxx ADD (p4 list); 执行失败三、结论可迭代的数据类型不支持作为属性的数据类型。...原创 2021-07-20 14:48:03 · 401 阅读 · 0 评论 -
nebula如何实现用in实现any(x,y,z)的效果
1、问题描述:想通过增加条件限制来进行查找,比如说某属性必须至少一个满足条件?2、解决方案:可以使用IN关键字进行限制。如图所示:实现all的效果,可以用not in可以直接加在 where 后面。any:where 2 in [n1,rel, n2.rel, n3.rel];all:where 0 not in [n1,rel, n2.rel, n3.rel];完美实现相应的效果。3、结论:IN关键字和列表数据类型的结合不仅可实现any的效果,而且更好用。...原创 2021-07-19 11:21:34 · 196 阅读 · 0 评论 -
nebula-gql语句之时间差值计算
一、问题起源:需要查找一个字图,时间差值要求在一定的范围内,10分钟或者1个小时,即需要加一个where约束条件进行时间的阈值计算,从参考手册来看,并不存在相应的说明?二、解决方案:假设一、可不可以直接转换成时间类型,然后用加减乘除就可以计算时间减值呢?直接用减法:return Time("01:02:13") - Time("01:01:13");失败return DateTime("2021-01-01T01:02:13") - DateTime("2021-01-01T01:01:13")原创 2021-07-13 11:29:18 · 239 阅读 · 0 评论 -
nebula加入时间约束条件,查询结果没有输出
一、问题描述:Match data=(i1:ip)-[r1]->(w1:warning)-[r2]->(i2:ip)-[r3]->(w2:warning)-[r4]->(i3:ip)-[r5]->(w3:warning)-[r6]->(i4:ip) where w1.record_itime < w2.record_time return data ;加入该查询语句,不会有任何结果输出;where后面的条件改变成w1.record_itime < w2.r原创 2021-07-13 10:25:25 · 308 阅读 · 0 评论 -
nebula注释符号
原创 2021-06-30 15:28:01 · 211 阅读 · 0 评论 -
neo4j查询多跳关系的方法
match data=(n:ip)-[*1…3]->(m:ip) return data原创 2021-06-29 20:14:27 · 2598 阅读 · 0 评论 -
nebula语法学习
一、边的插入命令:重要的注意事项:边的插入需要使用节点的vid,而不是节点的值。INSERT EDGE e2 (name, age) VALUES “11”->“13”????“n1”, 1);二、子图命令查询:MATCH (v:host)-[e1]->(v2)-[e2]->(v3)-[e3]->(v4)-[e4]->(v5)-[e5]->(v6) where v.ip==“xx.yy.zz.dd” RETURN v,v2,v3,v4,v5,v6,e1,e2,e原创 2021-06-25 17:06:50 · 1158 阅读 · 0 评论 -
nebual的图数据结构
原创 2021-06-24 10:04:13 · 109 阅读 · 0 评论 -
GCN的多层卷积的流程图
原创 2021-06-18 11:01:31 · 1184 阅读 · 0 评论 -
图卷积的理解
如图所示:圆圈中的就是最核心的区别。如果没有这部分内容,深度学习过程等同于MLP。而这部分本质上是图卷积。将邻居节点的信息进行民聚合。如图所示:训练过程中,每一层都有embedding向量。...原创 2021-06-17 15:53:30 · 437 阅读 · 0 评论 -
初探GNN-文本表示学习
引言现实世界中的许多问题都可以通过图结构表述,例如基因序列关系、蛋白质结构、知识图谱和社交网络,鉴于这种广泛存在的结构特征,研究者们自然会尝试将特定结构融入学习模型中,概率图模型(PGM: probabilistic graphical model)和图神经网络(GNN: Graph Neural Networks)应该算是两个代表性的方向;其中结合深度学习的图神经网络近几年发展迅速,在CV、NLP和推荐系统的应用场景中的表现出巨大潜力。丁香园团队希望能在GNN领域中找到合适的文本知识表示学习方法,因此转载 2021-06-16 15:41:53 · 382 阅读 · 0 评论 -
neo4j设置边及边的属性方法
MATCH (a:Person{name:xxxx}), (b:Person)WHERE a.name = 'A' AND b.name = 'B'CREATE (a)-[r:RELTYPE {name: a.name + '<->' + b.name}]->(b)RETURN type(r), r.name结论:原理等同于为节点设置属性;即在标签后面添加中括号{}就行,然后所有的属性都设置在这里。...原创 2021-06-08 17:04:22 · 3129 阅读 · 0 评论 -
图算法之k-Core
k-Core算法是一种用来在图中找出符合指定核心度的紧密关联的子图结构,在k-Core的结果子图中,每个顶点至少具有k的度数,且所有顶点都至少与该子图中的 k 个其他节点相连。k-Core通常用来对一个图进行子图划分,通过去除不重要的顶点,将符合逾期的子图暴露出来进行进一步分析。k-Core由于其线性的时间复杂度和符合直观认识的可解释性,在风控金融,社交网络和生物学上都具有较多的应用场景。算法原理 k-Core算法是一种子图挖掘算法,用于寻找一个图中符合指定核心度的顶点的集合,即要求每..转载 2021-06-08 16:40:01 · 8923 阅读 · 0 评论 -
page rank算法
一目了然,不多说,看图!原创 2021-06-08 14:48:39 · 102 阅读 · 0 评论 -
pagerank公式的理解
节点y被a与y所指,所以节点y的重要程度就是将他们汇总起来;节点a指向y的占据了a的一半,因为它还同时指向了节点m;节点y也是同样的道理;节点y也指向了两个节点,一个是自身,一个是节点a;从另一个角度来理解,每个节点out-degree加起来要等于1。比如说a的out-degree为2,每个都占一半。公式中的i->j代表指向节点j的意思,并非是从i遍历到j;而i是要遍历图中所有的点。比如说当节点等于y的时候。即j=y,那么i先取值为y,y节点的out-degree为2,所以r(y)/2..原创 2021-06-08 14:09:41 · 241 阅读 · 0 评论 -
Clustering Coefficient
分子:选择某个节点k,k节点的邻居节点之间的多少个边,即相连。分母:选择某个节点k,k节点邻居节点两两相连的数量,从邻居节点之间选择两个点的组合数。第一个图,v节点的邻居节点为4,4个邻居节点之间两两相连,有6条边。6/6=1第二个图,v节点的邻居节点为4,4个邻居节点之间只有3条边,3/6=0.5第三个图,v节点的邻居节点为4,4个邻居节点之间只有0条边,0/6=0...原创 2021-05-28 17:51:46 · 880 阅读 · 0 评论 -
图数据库应用系列(一):金融智能风控
导语图数据库是一种新型的NoSQL数据库管理系统,使用图论(GraphTheory)的“图”作为数据模型,将实体表示为图的节点,实体间的关系表示为图的边,能够直接揭示事物之间关联关系。图数据库解决了困扰数据库界已久的复杂关联(多表关联)难题,善于处理海量的、复杂的、互联的、多变的网状数据,特别适合于高效治理异构大数据、深度挖掘复杂网络以及推理预测隐性关联关系。图数据库作为一种新兴的大数据、人工智能底层支撑技术,相关应用介绍资料较少。为此,我们特别策划推出了“图数据库应用”系列文章,将以创邻Gal转载 2021-05-28 10:06:11 · 949 阅读 · 1 评论 -
图的密度公式的解释
一直不明白,图的密度公式的含义,如图所示:分母:n(n-1)/2,其实可以理解为两两相连的组合数量。比如说有6个节点,那个两两相连的组合数为6*5/2=15。分子自然是节点的数量。显而易见,这样的公式是可以区分出图的密度的。...原创 2021-05-18 15:58:29 · 5970 阅读 · 3 评论 -
时间特征构图案例及节点之间的多重关系
前面有一直在想,如何将时间特征加入知识图谱!原创 2021-05-18 15:41:07 · 229 阅读 · 0 评论 -
如何用python驱动器调用neo4j算法包
来源:https://towardsdatascience.com/neo4j-cypher-python-7a919a372be7有一个问题,如何用python包去调用neo4j的查询及算法包呢?从本质上来思考问题,python只需要与Noe4j的接口打通就行了,将所有的执行命令传入给neo4j就行。session = self.__driver.session(database=db) if db is not None else self.__driver.session()respon原创 2021-05-18 10:33:21 · 686 阅读 · 1 评论 -
neo4j 4.1.8版本安装图算法包
本人电脑上的版本为4.1.8参考:https://neo4j.com/docs/graph-data-science/current/installation/#tnotedef1下载:1.5版本解压后:重点注意:网上搜索答案都是algo关键字类似这种:dbms.security.procedures.unrestricted=apoc.*dbms.security.procedures.unrestricted=algo.*dbms.security原创 2021-05-17 18:49:28 · 252 阅读 · 0 评论 -
noe4j 多层关系查询
从一个节点,通过直接关系,连接到另外一个节点,这个过程叫遍历,经过的节点和关系的组合叫做路径(Path),路径是由节点和关系的有序组合。(a)-->(b):是步长为1的路径,节点a和b之间有关系直接关联;(a)-->()-->(b):是步长为2的路径,从节点a,经过两个关系和一个节点,到达节点b;Cypher语言支持变长路径的模式,变长路径的表示方式是:[*N..M],N和M表示路径长度的最小值和最大值。(a)-[*2]->(b):表示路径长度为2,起始节点是a,终止节点原创 2021-05-15 11:22:28 · 1455 阅读 · 0 评论 -
GNN初步理解
转载自:https://towardsdatascience.com/a-gentle-introduction-to-graph-neural-network-basics-deepwalk-and-graphsage-db5d540d50b3原创 2021-05-14 11:47:03 · 115 阅读 · 0 评论 -
neo4j设置节点或者边的显示,包括颜色、属性、大小
第一步:选择要设置的节点标签第二步、找到浏览器底部显示的设置选项底部会出现如下选项第三步、根据需求进行随意设置包括节点大小、颜色、需要显示的属性原创 2021-05-08 14:27:26 · 15292 阅读 · 9 评论 -
neo4j查询节点与相应的边的方法
MATCH (n:Person)-[:ACTED_IN]->(m:Movie) RETURN n,m原创 2021-05-08 10:39:29 · 13796 阅读 · 3 评论 -
DeepWalk 和 Node2Vec
DeepWalk#与词嵌入类似,图嵌入基本理念是基于相邻顶点的关系,将目的顶点映射为稠密向量,以数值化的方式表达图中的信息,以便在下游任务中运用。Word2Vec根据词与词的共现关系学习向量的表示,DeepWalk受其启发。它通过随机游走的方式提取顶点序列,再用Word2Vec模型根据顶点和顶点的共现关系,学习顶点的向量表示。可以理解为用文字把图的内容表达出来,如下图所示。DeepWalk训练图表示的整个过程大致可以分为2步:随机游走提取顶点序列 使用skip-gram学习顶点嵌入转载 2021-05-08 09:59:40 · 609 阅读 · 1 评论 -
Cluster coefficient的理解
在图论中,集聚系数(也称群聚系数、集群系数)是用来描述一个图中的顶点之间结集成团的程度的系数。具体来说,是一个点的邻接点之间相互连接的程度。例如生活社交网络中,你的朋友之间相互认识的程度。有证据表明,在各类反映真实世界的网络结构,特别是社交网络结构中,各个结点之间倾向于形成密度相对较高的网群。也就是说,相对于在两个节点之间随机连接而得到的网络,真实世界网络的集聚系数更高这个公式当中的分母k很容易理解,连接该节点的边的数量。分子的值开始较难理解,我的理解是计算三角形(三个node为顶点,且包括原创 2021-05-04 21:14:04 · 5116 阅读 · 2 评论 -
neo4j查询语句
1、查询所有节点及关系: MATCH (n)returnn2、查询指定类型节点: MATCH(h:Helo),(m:Mailfrom)returnh,mn,h,m都是随意的,可以理解为变量原创 2021-04-30 15:46:17 · 5703 阅读 · 1 评论 -
如何从零开始搭建知识图谱?
导读:从一开始的 Google 搜索,到现在的聊天机器人、大数据风控、证券投资、智能医疗、自适应教育、推荐系统,无一不跟知识图谱相关。它在技术领域的热度也在逐年上升。 本文以通俗易懂的方式来讲解知识图谱相关的知识、尤其对从零开始搭建知识图谱过程当中需要经历的步骤以及每个阶段需要考虑的问题都给予了比较详细的解释。 对于读者,我们不要求有任何 AI 相关的背景知识。一、概论随着移动互联网的发展,万物互联成为了可能,这种互联所产生的数据也在爆发式地增长,而且这些数据恰好可以作为分析关系的有效原料。如果说.原创 2021-04-29 20:32:17 · 7969 阅读 · 0 评论 -
window7环境下安装neo4j server版本踩坑记录
核心在于版本匹配:windows7 + neo4j 4.1.8 + jdk 11第一步、下载neo4j最新版本与java最新版本java16会出现一些问题,但有一个问题无法解决,如图所示:版本降级到4.1.8第二步、下载neo4j 版本为4.1.8后,再用bin/neo4j console命令,结果是一启动就关闭了查看原因,说明跟java有关自己下载的java版本为java16第三步、下载java11与java16在同一个页面,需要往下拖拽第四步、原创 2021-04-28 15:31:35 · 814 阅读 · 0 评论 -
python环境下neo4j的安装与使用
一、什么是neo4j呢?Neo4j 对于大多数人来说,可能是比较陌生的。其实,Neo4j 是一个图形数据库,就像传统的关系数据库中的 Oracel 和 MySQL一样,用来持久化数据。Neo4j 是最近几年发展起来的新技术,属于 NoSQL 数据库中的一种。Neo4j是一个嵌入式,基于磁盘的,支持完整事务的Java持久化引擎,它在图(网络)中而不是表中存储数据。Neo4j提供了大规模可扩展性,在一台机器上可以处理数十亿节点/关系/属性的图,可以扩展到多台机器并行运行。相对于关系数据库来说,图数据原创 2021-04-26 19:57:31 · 3552 阅读 · 0 评论 -
window上远程访问linux上的neo4j的设置
1、在neo4j.conf文件中的将dbms.connectors.default_listen_address=0.0.0.0前面的注释去掉即可2、直接采用:linux主机的ip + :7474即可原创 2020-08-05 14:53:29 · 510 阅读 · 0 评论