前端关系图谱插件_从零搭建金融证券知识图谱-Part4

本文介绍了金融证券知识图谱的更新过程,包括获取最新数据、筛选需要更新的数据、更新图数据库。利用py2neo和APOC库对Neo4j图数据库进行操作,重点讨论了节点标签和关系的更新策略,以及检查更新结果的方法。项目代码已开源在Github,供读者复现。
摘要由CSDN通过智能技术生成

c97fa83969c3b7e295ff490f7aa9fb20.png

引言

本文作为该系列的第四篇文章,也是最后一篇。主要介绍金融证券知识图谱的更新与。

  • 数据获取和数据模型构建
  • 数据抽取和实体对齐
  • 知识图谱应用
  • 知识图谱更新

79192cda192600cc52595d3a72366632.png

全部代码已用 jupyter notebook 的形式开源在 Github 上,感兴趣的朋友可以进行复现。如果觉得有帮助,那就给个star吧~

https://github.com/kevin-meng/financial_stock_knowledge_graph​github.com

1. 前期准备

需要用到的软件:

  • py2neo:4.3.0 # neo4j 的 python 库
  • apoc: 3.4.03 # neo4j 工具包

公众号后台回复neo4j插件 可获取具体插件安装方法。

具体用法可参考下面的网址。 网址:https://neo4j.com/docs/labs/apoc/3.5/graph-updates/periodic-execution/

2. 更新图谱

整个更新过程大致可分为三个阶段:

  1. 获取最新数据
  2. 筛选需要更新的节点和关系数据
  3. 更新图数据库

2.1 获取最新数据

项目代码中这一部分相对简单,直接修改时间,重新调取 Tushare 接口即可。 获得最新数据后,按照当初建设时完成数据抽取和实体对齐等一系列工作,并最终形成,6类节点数据表和7类关系数据表,并将其写入文件中。

在实际业务中,这一环节会稍有不同。首先,获取数据通常是直接从数仓中提取。其次,抽取后的节点和关系数据 通常会写入数据库或者直接入仓。

2.2 筛选需要更新数据

主要是对比前后数据差异,只筛选出需要更新的数据。在更新图谱时如何定位到需更新的边是关键。 这里需要重点说下 董事高管与上市公司之间的关系处理,因为不同与其他节点之间只有一条关系的情况,即通过两个节点就可定位需更新的边; 而董事高管与上市公司之间往往存在多条关系。这样很好理解,因为现实中,会有下面两种常见情况

  • 兼任
  • 不同任期 因此,针对上面两种情况,这里通过人ID、上市公司、职位上任时间,去筛选需要更行的边。因为涉及四个字段的拼接,为了提高速度,先将这四个字段进行md5 hash 处理作为主键。从下面是代码
import pandas as pd
import hashlib

def get_md5(string):
    """  Get md5 according to the string """
    byte_string = string.encode("utf-8")
    md5 = hashlib.md5()
    md5.update(byte_string)
    result = md5.hexdigest()
    return result

def data_merge(filename,path_origin,path_new):
  """ 合并数据 """
    data_origin = pd.read_csv(path_origin + filename,header=None,names=names,dtype=str)
    data_new = pd.read_csv(path_new + filename,header=None,names=names,dtype=str)
    if types &#
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值