暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

知识图谱系列:Task 2 基于医疗知识图谱的问答系统操作介绍

网安杂谈 2021-01-12
603


感谢DataWhale分享,学习资源地址:


https://github.com/datawhalechina/team-learningnlp/tree/master/KnowledgeGraph_Basic



1.任务描述
今天的任务分两步,首先要搭建一个知识图谱(详见task03),然后启动问答测试(task04 task05详细讲),构建一个简单的基于 知识图谱 的对话系统。
今天主要是能跑通这两步,能让自己对整个任务有一个整体的认识。
任务的源码在这里:https://github.com/zhihao-chen/QASystemOnMedicalGraph
源码组成部分包括:
data:存放数据
img:存放readme里的图片
model:存放训练好的tfidf模型和意图识别模型
build_graph.py:构建图,详见task03
entity_extractor.py:抽取问句中的实体和识别意图,详见task04
search_answer.py:根据不同的实体和意图构造cypher查询语句,查询图数据库并返回答案,详见task05

2.搭建知识图谱环境

2.1.数据集
数据源:39健康网。包括15项信息,其中7类实体,约3.7万实体,21万实体关系。数据结构如图所示:

知识图谱实体类型

2.2.搭建过程
因为这次任务目标是先跑通,所以仅简略写下步骤。
要将数据导入Neo4j 图数据库,首先进入 build_graph.py 类中,在类MedicalGraph 中加入 本地Neo4j图数据库的账号和密码;
class MedicalGraph:
     def __init__(self):
            ...
           self.graph = Graph("http://localhost:7474", username="neo4j", password="自己的")

            ...
运行:
    python build_graph.py

就开始进行数据导入了。由于数据量大,需要的时间很长,要1-2个小时。

终于好了,看下结果,我们有了3w多节点,20多万个关系。


3.启动问答测试

运行命令:
    python kbqa_test.py

注意:其中一个库名称为ahocorasick,这个直接pip安装找不到,安装时要改为pyahocorasick.但是程序里面用的时候,还是要改回ahocorasick.

还有遇到其他的包就碰到哪个装哪个啦。。。
最终的效果是这样
后续具体分析各个部分源码










文章转载自网安杂谈,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论