Graphs4Good: 使用Neo4j Bloom实现新冠病毒案例的接触史追踪

本文展示了如何利用Neo4j Bloom图形数据库解决新冠病毒接触史追踪问题,通过加载病例数据,定义查询模板,追踪感染源和传播路径,以帮助政府和组织及时响应。

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

(本文的英文原文发表于:https://community.neo4j.com/t/graphs4good-protecting-community-from-covid-19-by-answering-key-questions-in-neo4j-bloom/17291)

       尽管目前世界上大多数国家都在半封锁状态、以减慢致命的COVID-19病毒的传播,但寻找治愈方法的斗争从未停止。赢得这场前所未有的反病毒战争的关键很大程度上取决如何利用现有的数据来确定感染源、了解病毒如何传播以及保护社区免受感染。到目前为止,接触史追踪(Contact Tracing)已被认为是遏制情况恶化的最有效方法之一。

       时机至关重要。

       政府,组织甚至个人都需要一种追踪高风险患者和地点的方法。每天发布的确诊病例数量还远远不够。能够将那些确诊案例的详细信息包括何人、何时、何地以及传播途径等联系起来的能力比以往任何时候都更加重要,只有这样才能提供及时和可行的反应和预测。显然,这是图数据库解决方案的一个完美的问题。

       基于Neo4j社区和相关政府机构的一些想法,使用公开可用的案例数据(不包含身份信息),我用周四花了一个晚上的时间使用Neo4j Bloom构建此解决方案,以帮助回答(是的,以自然语言)接触史追踪的关键问题。以下是具体的方法。

1.加载数据

       为了深入了解病毒如何在人群中传播,我们需要个别的病例数据,而不是病例统计。实际上,Kaggle发起的COVID-19挑战赛提供这样的个别案例数据,可在此处找到:UNCOVER COVID-19挑战赛1 

        我也在Github上分享了本项目,可以找到2个数据文件。个例文件的布局不难理解,以下是Cypher LOAD CSV语句,可将数据加载到Neo4j中:

// 1.1 Load individual case data of Canada file by Kaggle

USING PERIODIC COMMIT 1000
LOAD CSV WITH HEADERS FROM 'file:///individual-level-cases.csv' AS line
MERGE (p:State:Canada{name:line.province})
CREATE (c:Case:Canada{caseId:line.case_id})
SET c.ageGroup = line.age, c.healthRegion = line.health_region, c.reportDate = line.date_report,
c.acquireMethod = line.locally_acquired, c.acquireSource = line.travel_history_country, c.source = line.case_source,
c.sex = line.sex, c.state= line.province, c.community = line.community,
c.linkedCase = line.linked_case
MERGE (c) -[:LIVES_IN]-> (p)
WITH c,p,split(line.travel_history_country,',') AS places
UNWIND places AS place
MERGE (pl:Place{name:trim(place)})
MERGE (c) -[:HAS_VISITED]-> (pl)

// 1.2 Load indivudual case file of Kore

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值