漫谈·知识图谱

本文探讨了知识图谱的关系抽取,包括专家系统、句法依存和远程监督方法。同时,详细介绍了使用Neo4j进行知识图谱的表示,涵盖数据、导入、查询及效果展示,通过贾宝玉、李纨和林黛玉的关系图谱实例进行说明。
摘要由CSDN通过智能技术生成

1、关系抽取

1.1 专家系统

  • 以两家公司有 投资 关系为例
key_words = ["收购","竞拍","转让","扩张","并购","注资","整合","并入","竞购","竞买","支付","收购价","收购价格","承购","购得","购进",
             "购入","买进","买入","赎买","购销","议购","函购","函售","抛售","售卖","销售","转售"]

1.2 句法依存

  • 根据人的说话习惯来抽取
  • 主谓宾
if 'SBV' in child_dict and 'VOB' in child_dict:
	r = words[index]
	e1 = complete_e(words, postags, child_dict_list, child_dict['SBV'][0])
	e2 = complete_e(words, postags, child_dict_list, child_dict['VOB'][0])
	svos.append([e1, r, e2])

1.3 远程监督

在这里插入图片描述

2、知识图谱的常见表示(Neo4j)

2.1 数据

字段描述
Person_a实体a(人名,如:贾宝玉)
Person_b实体b(人名,如:薛宝钗)
Relation实体间关系(丈夫)
Family_a实体a的家族(贾家荣国府)
Family_b实体b的家族(薛家)

2.2 导入

with open("./raw_data/relation.txt") as f:
    for line in f.readlines():
        rela_array=line.strip("\n").split(",")
        print(rela_array)
        graph.run("MERGE(p: Person{cate:'%s',Name: '%s'})"%(rela_array[3],rela_array[0]))
        graph.run("MERGE(p: Person{cate:'%s',Name: '%s'})" % (rela_array[4], rela_array[1]))
        graph.run(
            "MATCH(e: Person), (cc: Person) \
            WHERE e.Name='%s' AND cc.Name='%s'\
            CREATE(e)-[r:%s{relation: '%s'}]->(cc)\
            RETURN r" % (rela_array[0], rela_array[1], rela_array[2], rela_array[2])
        )

2.3 查询

match(p )-[r]->(n:Person{Name:'%s'}) return  p.Name,r.relation,n.Name,p.cate,n.cate Union all match(p:Person {Name:'%s'}) -[r]->(n) return p.Name, r.relation, n.Name, p.cate, n.cate

2.4 效果

  • 贾宝玉 的关系图谱
    在这里插入图片描述
  • 李纨 的关系图谱
    在这里插入图片描述
  • 林黛玉 的关系图谱
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值