1、项目背景
中科院软件所刘焕勇老师在github上的开源项目,基于知识图谱的医药领域问答项目QABasedOnMedicaKnowledgeGraph。
项目地址:https://github.com/liuhuanyong/QASystemOnMedicalKG
本人为小白,然后一步步完成的。
知识图谱构建,自动问答,基于kg的自动问答。以疾病为中心的一定规模医药领域知识图谱,并以该知识图谱完成自动问答与分析服务。
关于知识图谱概念性的介绍就不在此赘述。目前知识图谱在各个领域全面开花,如教育、医疗、司法、金融等。本项目立足医药领域,以垂直型医药网站为数据来源,以疾病为核心,构建起一个包含7类规模为4.4万的知识实体,11类规模约30万实体关系的知识图谱。 本项目将包括以下两部分的内容:
1.基于垂直网站数据的医药知识图谱构建
2.基于医药知识图谱的自动问答
项目环境
windows环境
本人是在Windows环境下的虚拟机运行的,下面只介绍一下本人的踩坑之路。当然,也可以直接在自己电脑下运行。
Windows10镜像+Vmware15.5
链接:https://pan.baidu.com/s/1rSZZ8OAjs-LybO098p5dGw 提取码:y663
Pycharm2020安装包
链接:https://pan.baidu.com/s/1eA9ga_h4kCnrO6TF7qBs1Q 提取码:i4e5
neo4j-community-4.1.1社区版
链接:https://pan.baidu.com/s/1Tb65vaw3Pj1YxTHhIycWjg 提取码:t317
jdk-8u241-windows
链接:https://pan.baidu.com/s/1VKZTax2zgZStexWbAXOEsg 提取码:exlk
windows下安装jdk以及环境变量配置
neo4j的环境变量配置
配置环境变量
下图中增加的NEO4J-HOME变量地址根据自己电脑的存储位置编辑。
最主要的就是环境配置(这个点让我很难受,若是大家也有类似情况,先静静,继续搞)
环境配置好以后,打开win+R,输入cmd。
然后输入neo4j.bat console
出现这样的界面,则表示安装完成。
然后复制界面上的网址http://localhost:7474/
浏览器打开,出现以下界面,首次登录,会提示你修改密码。默认账号和密码都是neo4j
在此期间,这个页面要保持打开.
然后打开安装好的Pycharm,直接将刘焕勇老师在github上的开源项目导入。
数据导入:运行源码中的 python build_medicalgraph.py,导入的数据较多,估计需要几个小时。(此时可能运行不成功,是因为缺少py2eo库,可以直接在pycharm中安装,如下图所示)
输入命令pip install py2neo 安装py2neo库。
安装成功后,查看是否安装
然后还有代码中要添加,
还有在电脑自己下载的neo4j文件中的conf文件夹中,在文件最后添加dbms.security.auth_enabled=false
之后再次运行代码,第一次时间可能比较久,好几个小时,等待中。
运行完成后,打开浏览器,就可以看到数据集
然后运行问答系统
运行效果
该项目的数据来自垂直类医疗网站寻医问药,使用爬虫脚本data_spider.py,以结构化数据为主,构建了以疾病为中心的医疗知识图谱,实体规模4.4万,实体关系规模30万。schema的设计根据所采集的结构化数据生成,对网页的结构化数据进行xpath解析。
项目的数据存储采用Neo4j图数据库,问答系统采用了规则匹配方式完成,数据操作采用neo4j声明的cypher。
项目的不足之处在于疾病的引发原因、预防等以大段文字返回,这块可引入事件抽取,可将原因结构化表示出来。
面对已知的问题,可以给出合适的答案,对于模板匹配不到的问题或问句类型,经常遇到的有三种回答方式:
1、给出一个无厘头的答案;
2、婉转的回答不知道,提示用户换种方式去问;
3、转移话题,回避问题。