微信扫码
与创始人交个朋友
我要投稿
背景介绍
知识图谱通过节点和关系展示数据之间的联系,被广泛应用于数据挖掘、推荐系统、语义搜索等领域。本文将介绍如何利用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+中大型企业
2025-01-02
2024-07-17
2025-01-03
2024-07-11
2024-07-13
2024-08-13
2024-06-24
2024-06-10
2024-07-12
2024-08-27
2025-01-14
2025-01-10
2025-01-06
2025-01-02
2024-12-16
2024-12-10
2024-12-04
2024-12-01