知识图谱问答系列文档(三)——从零开始搭建一个通用知识图谱问答【构建知识图谱】

本文介绍了如何使用neo4j构建大规模知识图谱,涉及数据格式、导入工具和错误处理。通过三元组抽取、属性映射建立节点和关系,利用neo4j-admin import工具进行数据导入,并展示了处理错误数据的Cypher语句。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(三)构建知识图谱

知识图谱构建使用neo4j作为图谱数据库,因数据量庞大(4572万个实体,1.41亿条关系),需使用neo4j-admin import工具导入,导入前需准备节点和关系的文件。

  • 节点数据格式

    neo4j节点数据使用以下数据格式,本文统一给实体增加Entity标签,便于检索。

    id:ID name :LABEL
    1 姚明 Entity
    2 姚沁蕾 Entity
    3 中国 Entity

    说明:此处id应唯一,一一对应相关实体.

  • 关系数据格式

    neo4j关系数据使用以下数据格式,:START_ID表示起始实体的id,:END_ID表示终止的实体id,本文统一增加Relation关系类型,便于检索。

    :START_ID :END_ID :TYPE name
    1 2 Relation 女儿
    1 3 Relation 国籍
    1 Relation 身高

    说明:id对应关系为 (:START_ID)-[r]->(:END_ID)

  • 数据抽取

    数据抽取部分包括三元组抽取,属性映射,城市映射和带有单位的属性值标准化等部分。话不多说,先上代码,再谈本文所遇到的问题。

    spo_extract代码如下:

    import os
    import csv
    import re
    import build_prop_dict
    
    dir_path = os.getcwd()
    
    attr_map = build_prop_dict.load_attr_map(dir_path + '/data/prop_mapping.txt')
    city_map = build_prop_dict.load_city_map(dir_path + '/data/city_mapping.txt')
    zz_map = build_prop_dict.load_attr_map(dir_path + '/data/zhengze_mapping.txt')
    
    spo_file = open('/mnt/zjb/data/allTypeCsv.csv', 'w', encoding='utf-8')
    alltypeCsv = csv.writer(spo_file)
    
    entity_file = open('/mnt/zjb/data/entity.csv','w', encoding='utf-8')
    spo_file = open('/mnt/zjb/data/relation.csv', 'w', encoding='utf-8')
    
    ent_csv = csv.writer(entity_file)
    ent_csv.writerow(("id:ID", "name", ":LABEL"))
    spo_csv = csv.writer(spo_file)
    spo_csv.writerow((":START_ID", ":END_ID", ":TYPE", "name"))
    
    def remove_stopwords(s):
        ans = (re.sub(r'[;::;、,,.。%【】、`?*①②③④◇●◆/(& --·)\\()“”〗""》〖《 \s\d]',
                      '', s)).replace('\u200b', '').replace("[", '').replace("]", '')
        return ans
    
    entity_dict = dict()
    idx = 0
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值