码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 在线问诊 Python、FastAPI、Neo4j — 创建药品节点


    合集 - 在线问诊(10)
    1.在线问诊 Python、FastAPI、Neo4j — 创建药品节点09-12
    2.在线问诊 Python、FastAPI、Neo4j — 创建症状节点09-143.在线问诊 Python、FastAPI、Neo4j — 创建 检查节点09-194.在线问诊 Python、FastAPI、Neo4j — 创建 疾病节点09-205.在线问诊 Python、FastAPI、Neo4j — 创建 饮食节点09-216.在线问诊 Python、FastAPI、Neo4j — 创建 节点关系09-227.在线问诊 Python、FastAPI、Neo4j — 构建问题分类器09-278.在线问诊 Python、FastAPI、Neo4j — 生成 Cypher 语句09-289.在线问诊 Python、FastAPI、Neo4j — 问题咨询10-1010.在线问诊 Python、FastAPI、Neo4j — 提供咨询接口服务10-11
    收起

    目录
    • 前提条件
    • 创建节点 Demo
    • 准备数据
    • 创建药品标签节点

    在线问诊 Python、FastAPI、Neo4j — 创建节点
    Neo4j 节点的标签可以理解为 Java 中的实体。

    根据常规流程:首先有什么症状,做哪些对应的检查,根据检查诊断什么疾病,需要用什么药物治疗,服药期间要注意哪些饮食,需要做哪些运行
    在线问诊大概创建:症状、检查项目、疾病、药品、饮食、运动 这几个对象

    前提条件

    基于 Python FastAPI 获取 Neo4j 数据 :https://www.cnblogs.com/vipsoft/p/17687070.html

    创建节点 Demo

    通过 这个Demo 理解 Neo4j Driver for Python ,创建节点
    test_create_node.py

    import logging
    from utils.neo4j_provider import driver
    
    logging.root.setLevel(logging.INFO)
    
    ''' 创建知识图谱实体节点类型schema '''
    
    
    def create_drug(tx, name):
        query = (
            "CREATE (n:Drug {name: $name})"
            "RETURN id(n)"
        )
        result = tx.run(query, name=name)
        return result.single()[0]
    
    
    if __name__ == "__main__":
        with driver.session() as session:
            session.execute_write(create_drug, "扶他林")
        driver.close()
        logging.info("创建成功")
    

    验证

    # 查看创建后的结果
    MATCH (n:Drug) WHERE n.name="扶他林" RETURN n
    # 删除节点
    MATCH (n:Drug) WHERE n.name="扶他林" DELETE n
    

    image

    准备数据

    采用 CSV 格式,CSV 是一种纯文本形式保存数据,好处可以记事本打开预览,也可用 excel 打开,将来数据来源都过爬虫或者NLP处理,比处理Excel要方便得多
    Excel 只能看,如果编辑 CSV 就乱码了,不知道为啥
    通用名,商品名,英文名称,适应症,用法用量,禁忌,不良反应,药理毒理,注意事项,图片地址
    image

    创建药品标签节点

    创建药品标签节点
    build_drugs.py

    import logging
    import csv
    from utils.neo4j_provider import driver
    
    logging.root.setLevel(logging.INFO)
    
    # 从CSV 中读取数据,并生成 CQL
    def generate_cql() -> str:
        with open('drugs_data.csv', 'r', encoding='utf-8') as csv_file:
            csv_reader = csv.DictReader(csv_file)
            cql = ""
            for idx, row in enumerate(csv_reader):
                cql += """(drug%s:Drug {name: "%s",generic_name: "%s",english_name: "%s",indications: "%s",contraindications: "%s",adverse_reactions: "%s",toxicology: "%s",attention: "%s",usage_dosage: "%s",images_url: "%s"}),\r\n""" \
                       % (idx, row['商品名'], row['通用名'], row['英文名称'], row['适应症'], row['禁忌'], row['不良反应'], row['药理毒理'], row['注意事项'], row['用法用量'], row['图片地址'])
    
            return "CREATE %s" % (cql.rstrip(",\r\n"))
            data = [row for row in csv_reader]
    
    
    # 执行写的命令
    def execute_write(cql):
        with driver.session() as session:
            session.execute_write(execute_cql, cql)
        driver.close()
    
    # 执行 CQL 语句
    def execute_cql(tx, cql):
        tx.run(cql)
    
    # 清除 Drug 标签数据
    def clear_data():
        cql = "MATCH (n:Drug) DETACH DELETE n"
        execute_write(cql)
    
    
    if __name__ == "__main__":
        clear_data()
        cql = generate_cql()
        print(cql)
        execute_write(cql)
    

    image

    源代码地址:https://gitee.com/VipSoft/VipQA

  • 相关阅读:
    含钆介孔二氧化硅海藻酸钠纳米微球/桑色素二氧化硅单发光纳米微球的制备过程
    vue二维码生成插件qrcodejs2-fix、html生成图片插件html2canvas、自定义打印内容插件print-js的使用及问题总结
    自动驾驶学习笔记(三)——场景设计
    TFX发展简史/《Towards ML Engineering: A Brief History Of TensorFlow Extended (TFX)》
    千兆工业交换机和百兆以太网交换机有什么区别?
    现代_复习_第3章:向量
    【vue3】注册全局组件
    【Markdown】 Markdown 操作备忘录
    最常见的 10种网络安全攻击类型
    leetcode第92场双周赛
  • 原文地址:https://www.cnblogs.com/vipsoft/p/17687480.html
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号