前言

说到问答机器人,就不得不说一下 ChatGPT 啦。一个预训练的大预言模型,只要是人类范畴内的知识,似乎他回答得都井井有条,从写文章到写代码,再到解决零散琐碎的问题,不光震撼到我们普通人,就百度和阿里也因此紧追其后分别推出了文心一言和通义千问。

所以好像我们也可以通过 GPT,并训练特定的数据来完成本业务下的问答。但是,那时出现了 OpenAI 在封号的事件,国内公司又担心以后形成垄断后收取高昂费用。于是,我打算自己弄一个 GPT,(打断…… 很显然不现实),但是呢!既然是特定场景,那也不需要这么强大的机器人,只要能完成基本流程的智能回复就可以了。 前期我就想着用知识图谱的方式来完成,正好在网上也找了一个医疗知识问答的项目,所以跟着做一遍总结一下。

项目

一个基于 python+neo4j 的问答,通过在图数据库里创建节点和关联边,接收问题的词语,进过拆解特定解析完成查询语句的拼装,最后输出答案。说到这里,是不是感觉这个其实就是一个程序化的思维导图,但是改造的地方也有很多,比如可以通过深度学习进行语义分析,添加语音对话,特定语气地回答输出等等。

neo4j 操作

1. 创建节点

create (n:Attr {name: "磕碰掉漆"}

2. 删除节点

MATCH (n:iphone6s) DELETE n

3. 创建关联边

MATCH (e:Goods_Class),(cc:Goods)
CREATE (e)-[r:HAS_GOODS ]->(cc) match(class_name:Goods_Class),(goods_name:Goods)
where class_name.name='%s'and goods_name.name='%s'
create (class_name)-[rel:关联边名称{name: 指定名称}]->(goods_name)

4. 删除关联边

MATCH (c:Goods_Class)-[r:HAS_GOODS]-(g:Goods)
DELETE r

5. 删除删除指定属性的节点

Match (n:Goods{name: '黑鲨手机'}) DELETE n

6. 条件查询

通过某个节点名查询与之关联的另一些节点信息,如下面是根据一个疾病名称,获取该疾病与之有关联 (has_symptoms) 的症状名称列表

MATCH (m:Diseases)-[r:has_symptoms]->(n:Symptoms) where m.name = '喘息样支气管炎' return m.name, r.name, n.name

医疗知识图谱问答 ——Neo4j 基本操作的更多相关文章

  1. 知识图谱和neo4j的基本操作

    一.知识图谱的简介 1.知识图谱是什么 知识图谱本质上是语义网络(Semantic Network)的知识库 可以理解为一个关系图网络. 2.什么是图 图(Graph)是由节点(Vertex)和边(E ...

  2. 简单的知识图谱,neo4j+python

    因为研究方向是知识图谱,就有兴致想要构建一个简单的知识图谱,就在网上查找了一下,参考了neo4j搭建简单的金融知识图谱的思想,就着手从零开始构建. 1.首先就要考虑数据的获得,因为之前没有接触过爬虫之 ...

  3. 知识图谱demo net core + neo4j

    知识图谱 基于neo4j数据库和.net core开发环境 Neo4j数据库的安装 安装neo4j数据库之前,需安装java的JDK文件,安装版本需与数据库保持一致,较新的neo4j数据库都需要至少j ...

  4. 百度大脑UNIT3.0详解之知识图谱与对话

    如今,越来越多的企业想要在电商客服.法律顾问等领域做一套包含行业知识的智能对话系统,而行业或领域知识的积累.构建.抽取等工作对于企业来说是个不小的难题,百度大脑UNIT3.0推出「我的知识」版块专门为 ...

  5. 基于Java开发的全文检索、知识图谱、工作流审批机制的知识库

    一.项目介绍 一款全源码,可二开,可基于云部署.私有部署的企业级知识库云平台,应用在需要进行常用文档整理.分类.归集.检索的地方,适合知识密集型单位/历史文档丰富的单位,或者大型企业.集团. 为什么建 ...

  6. 知识图谱实战开发案例剖析-番外篇(1)- Neo4j是否支持按照边权重加粗和大数量展示

    一.前言 本文是<知识图谱实战开发案例完全剖析>系列文章和网易云视频课程的番外篇,主要记录学员在知识图谱等相关内容的学习 过程中,提出的共性问题进行展开讨论.该部分内容原始内容记录在网易云 ...

  7. springboot2.0+Neo4j+d3.js构建知识图谱

    Welcome to the Neo4j wiki! 初衷这是一个知识图谱构建工具,最开始是对产品和领导为了做ppt临时要求配合做图谱展示的不厌其烦,做着做着就抽出一个目前看着还算通用的小工具 技术栈 ...

  8. [知识图谱]Neo4j知识图谱构建(neo4j-python-pandas-py2neo-v3)

    neo4j-python-pandas-py2neo-v3 利用pandas将excel中数据抽取,以三元组形式加载到neo4j数据库中构建相关知识图谱 Neo4j知识图谱构建 1.运行环境: pyt ...

  9. [知识图谱]利用py2neo从Neo4j数据库获取数据

    # -*- coding: utf-8 -*- from py2neo import Graph import json import re class Neo4jToJson(object): &q ...

  10. 知识图谱之图数据库Neo4j

    知识图谱中的知识是通过RDF结构来进行表示的,其基本单元是事实.每个事实是一个三元组(S, P, O),在实际系统中,按照存储方式的不同,知识图谱的存储可以分为基于表结构的存储和基于图结构的存储. 基 ...

随机推荐

  1. Pyathon If条件测试

    if条件测试 # 案例 cars = ['audi','bmw','subaru','toyota'] for car in cars: if car =='bmw': print(car.upper ...

  2. Python-webdriver_manager的简单使用

    前言: 提前祝大家五一快乐(*^▽^*) 我们在使用Selenium做UI自动化时都需要手动去下载各个浏览器版本的webdriver,有时我们可能还会遇到跨操作系统去进行测试. 以及有时因浏览器自动升 ...

  3. XUnit数据共享与并行测试

    引言 在单元或者集成测试的过程中,需要测试的用例非常多,如果测试是一条一条过,那么需要花费不少的时间.从 V2 开始,默认情况下 XUnit 自动配置并行(参考资料),大大提升了测试速度.本文将对 A ...

  4. Linux xfs文件系统stat命令Birth字段为空的原因探究

    在Linux平台找出某个目录下创建时间最早的文件,测试验证脚本结果是否准确的过程中发现一个很有意思的现象,stat命令在一些平台下Birth字段有值,而在一些平台则为空值,如下所示: RHEL 8.7 ...

  5. 一天吃透SpringCloud面试八股文

    1.什么是Spring Cloud ? Spring cloud 流应用程序启动器是基于 Spring Boot 的 Spring 集成应用程序,提供与外部系统的集成.Spring cloud Tas ...

  6. 代码随想录算法训练营Day27 回溯算法|39. 组合总和 40.组合总和II 131.分割回文串

    代码随想录算法训练营 39. 组合总和 题目链接:39. 组合总和 给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 ta ...

  7. odoo开发教程十五:仪表板

    仪表盘可以通过外部ID引用其他视图文件的内容,整合到一个界面进行显示. 一:建立仪表盘视图文件 views/session_board.xml: 通过外部id引入要展示的视图文件--定义仪表板form ...

  8. 在树莓派上实现numpy的conv2d卷积神经网络做图像分类,加载pytorch的模型参数,推理mnist手写数字识别,并使用多进程加速

    这几天又在玩树莓派,先是搞了个物联网,又在尝试在树莓派上搞一些简单的神经网络,这次搞得是卷积识别mnist手写数字识别 训练代码在电脑上,cpu就能训练,很快的: import torch impor ...

  9. 单例bean与类加载过程

    构造单例bean的方式有很多种,我们来看一下其中一种,饿汉式 public class Singleton1 implements Serializable { //1.构造函数私有 private ...

  10. 《数据结构》之栈和堆结构及JVM简析

    导言: 在数据结构中,我们第一了解到了栈或堆栈,它的结构特点是什么呢?先进后出,它的特点有什么用呢?我们在哪里可以使用到栈结构,栈结构那么简单,使用这么久了为什么不用其它结构替代? 一.程序在内存中的 ...