AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


利用Neo4j和Pyvis实现当日知识图谱的生成与展示
发布日期:2024-06-22 06:38:55 浏览次数: 1946 来源:智知鱼之乐


背景介绍

知识图谱通过节点和关系展示数据之间的联系,被广泛应用于数据挖掘、推荐系统、语义搜索等领域。本文将介绍如何利用Neo4j数据库和Pyvis库,通过Flask实现仅展示当日数据的知识图谱。

实现步骤


Part.01

环境配置

首先,设置Neo4j数据库的连接参数,并引入必要的Python库:

from neo4j import GraphDatabasefrom pyvis.network import Network确保已正确配置Neo4j连接和Pyvis安装。


Part.02

数据查询与处理

我们在查询当日数据时遇到了一个问题:查询结果显示为全部数据,而不是仅当日数据。导致问题的原因是每次生成图表时,之前的数据没有清空,导致结果叠加。

MATCH (a)-[r]->(b) WHERE a.username = $username AND type(r) <> 'MENTIONS' AND a.timestamp.year = date().year AND a.timestamp.month = date().month AND a.timestamp.day = date().day RETURN a, r, b

该查询语句提取当前用户在当天的所有节点和关系数据。


Part.03

问题解决

为了确保每次生成图时内容清空,我们在每次生成图表前重置Pyvis的Network对象。具体做法是,在生成图表的函数中,每次调用前重新初始化Network对象:

self.visual_graph = Network(height="750px", width="100%", bgcolor="#ffffff", font_color="black")


Part.04

数据可视化

遍历查询结果,将节点和关系添加到网络图中,并生成HTML文件:

self.visual_graph.show("knowledge_graph.html")

结论

本文介绍了如何利用Neo4j和Pyvis,通过Flask实现仅展示当日数据的知识图谱。在遇到当日数据显示为全部数据的问题时,通过每次生成图前重置网络图对象的方法成功解决了问题。该方法不仅适用于单日数据的展示,还可以扩展到其他时间范围的数据可视化应用中。


53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询