基于Neo4j 图数据库的知识图谱的关联对齐(实体对齐)——下篇

基于Neo4j 图数据库的知识图谱的关联对齐(实体对齐)——上篇
上一篇写道了,算出2个实体的相似性。本篇开始写算出 2个实体相似性后,用代码实现neo4j的对齐操作。
直接上代码:
huizon = (jacd+edit)/2
if 0.70 < huizon < 1: # 取一个值的区间
# 判断a 和 b 的长度,目的是留下字数长的实体,然后把字数短的实体去掉。
if len(a) > len(b): # 如果a实体比b实体要长 ,删除b
rel_a,rel_b = deleted(a, b, sd)
if rel_a == rel_b: # 如果关系一样 直接删除
session.run("match(n) where n.name=’%s’ detach delete n " % (b))
else: # 如果关系不一样先把关系拿出来迁移到另外一个相似的实体上,然后在进行删除。
rels = session.run(“MATCH (n)-[r]->(m) where n.name=’%s’ and m.name=’%s’ RETURN r.relation” % (b, sd))
rls = rels.values()[0][0]
if rls:
session.run("MATCH§,(q) where p.name=’%s’and q.name=’%s’ create unique §-[:%s {relation:’%s’}]->(q) " % (a, sd, rls, rls))
session.run("match(n) where n.name=’%s’ detach delete n " % (b))
else: # 如果b实体比a实体要长 ,删除a
rel_a, rel_b = deleted(a, b, sd)
if rel_a == rel_b:
session.run("match(n) where n.name=’%s’ detach delete n " % (a))
else:
rels = session.run(“MATCH (n)-[r]->(m) where n.name=’%s’ and m.name=’%s’ RETURN r.relation” % (a, sd))
rlsd = rels.values()[0][0]
if rlsd:
session.run("MATCH§,(q) where p.name=’%s’and q.name=’%s’ create unique §-[:%s {relation:’%s’}]->(q) " % (b, sd, rlsd, rlsd))
session.run("match(n) where n.name=’%s’ detach delete n " % (a))

评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值