医学知识图谱应用实例有哪些(医疗知识图谱问答系统(python neo4j))
这是中科院软件所刘焕勇老师在github上的一个开源项目
地址:http:// https://github.com/liuhuanyong/QASystemOnMedicalKG
本项目构建了以疾病为中心的医疗知识图谱 ,实体规模4.4万 ,实体关系规模30万 。并基于此,搭建起了一个可以回答18类问题的自动问答小系统 。
本项目以neo4j作为存储 ,并基于传统规则的方式完成了知识问答 ,并最终以cypher查询语句作为问答搜索sql ,支持了问答服务 。基于知识图谱的问答框架
基于知识图谱的问答系统应用知识
本体构建 RDF 生成 问句解析 SPARQL 查询 答案生成本项目的问答系统完全基于规则匹配实现 ,根据问句中的关键词进行匹配 ,对匹配到的关键词分类问句 ,然后使用cypher的match去匹配查找neo4j ,根据返回数据组装问句回答 ,最后返回结果 。
医药领域知识图谱规模
知识图谱实体类型
实体类型 中文含义 实体数量 举例 Check 诊断检查项目 3,353 支气管造影;关节镜检查 Department 医疗科目 54 整形美容科;烧伤科 Disease 疾病 8,807 血栓闭塞性脉管炎;胸降主动脉动脉瘤 Drug 药品 3,828 京万红痔疮膏;布林佐胺滴眼液 Food 食物 4,870 番茄冲菜牛肉丸汤;竹笋炖羊肉 Producer 在售药品 17,201 通药制药青霉素V钾片;青阳醋酸地塞米松片 Symptom 疾病症状 5,998 乳腺组织肥厚;脑实质深部出血 Total 总计 44,111 约4.4万实体量级知识图谱实体关系类型
实体关系类型 中文含义 关系数量 举例 belongs_to 属于 8,844 <妇科,属于,妇产科> common_drug 疾病常用药品 14,649 <阳强,常用,甲磺酸酚妥拉明分散片> do_eat 疾病宜吃食物 22,238 <胸椎骨折,宜吃,黑鱼> drugs_of 药品在售药品 17,315 <青霉素V钾片,在售,通药制药青霉素V钾片> need_check 疾病所需检查 39,422 <单侧肺气肿,所需检查,支气管造影> no_eat 疾病忌吃食物 22,247 <唇病,忌吃,杏仁> recommand_drug 疾病推荐药品 59,467 <混合痔,推荐用药,京万红痔疮膏> recommand_eat 疾病推荐食谱 40,221 <鞘膜积液,推荐食谱,番茄冲菜牛肉丸汤> has_symptom 疾病症状 5,998 <早期乳腺癌,疾病症状,乳腺组织肥厚> acompany_with 疾病并发疾病 12,029 <下肢交通静脉瓣膜关闭不全,并发疾病,血栓闭塞性脉管炎> Total 总计 294,149 约30万关系量级知识图谱属性类型
属性类型 中文含义 举例 name 疾病名称 喘息样支气管炎 desc 疾病简介 又称哮喘性支气管炎... cause 疾病病因 常见的有合胞病毒等... prevent 预防措施 注意家族与患儿自身过敏史... cure_lasttime 治疗周期 6-12个月 cure_way 治疗方式 "药物治疗","支持性治疗" cured_prob 治愈概率 95% easy_get 疾病易感人群 无特定的人群支持问答的类型
问句类型 中文含义 问句举例 disease_symptom 疾病症状 乳腺癌的症状有哪些? symptom_disease 已知症状找可能疾病 最近老流鼻涕怎么办? disease_cause 疾病病因 为什么有的人会失眠? disease_acompany 疾病的并发症 失眠有哪些并发症? disease_not_food 疾病需要忌口的食物 失眠的人不要吃啥? disease_do_food 疾病建议吃什么食物 耳鸣了吃点啥? food_not_disease 什么病最好不要吃某事物 哪些人最好不好吃蜂蜜? food_do_disease 食物对什么病有好处 鹅肉有什么好处? disease_drug 啥病要吃啥药 肝病要吃啥药? drug_disease 药品能治啥病 板蓝根颗粒能治啥病? disease_check 疾病需要做什么检查 脑膜炎怎么才能查出来? check_disease 检查能查什么病 全血细胞计数能查出啥来? disease_prevent 预防措施 怎样才能预防肾虚? disease_lasttime 治疗周期 感冒要多久才能好? disease_cureway 治疗方式 高血压要怎么治? disease_cureprob 治愈概率 白血病能治好吗? disease_easyget 疾病易感人群 什么人容易得高血压? disease_desc 疾病描述 糖尿病问答样例
项目实现
1.项目运行配置要求:要求配置neo4j数据库及相应的python依赖包
根据neo4j 安装时的端口 、账户 、密码 ,修改相应文件:answer_search.py 和build_medicalgraph.py 、neo4j
安装neo4j(neo4j 依赖java jdk 1.8版本以上),见文章:http://t.csdn.cn/UAu3Q
安装好neo4j后 ,登录网站http://localhost:7474/browser/
查看端口号和用户名
并修改相应python文件
2.知识图谱数据导入:python build_medicalgraph.py ,导入的数据较多,需要几个小时 。
数据导入这一步会出现一些问题 ,要注意编码格式 ,包的正确安装等
安装 py2neo
直接使用pip install py2neo命令会默认安装最新版,可能使用会出现问题
推荐安装4.3.0版本:pip install py2neo==4.3.0 -i https://pypi.douban.com/simple
导入成功后即可查看
3 、启动问答:python chat_graph.py
安装pyahocorasick
pip3 install pyahocorasick -i https://pypi.tuna.tsinghua.edu.cn/simple/
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!