医药领域知识图谱快速及医药问答项目(项目全过程)

该项目是中科院软件所刘焕勇老师在github上的开源项目,基于知识图谱的医药领域问答项目

Github项目地址:mirrors / liuhuanyong / qasystemonmedicalkg · GitCode

一、项目环境搭建

该部分要十分注意,由于版本升级的问题,一些用法及格式已经不兼容了。

python3.8

下载地址:Python Release Python 3.8.10 | Python.org 医药领域知识图谱快速及医药问答项目(项目全过程)https://www.python.org/downloads/release/python-3810/;

Neo4j数据库安装 (我用的是4.2.2版本 JDK是15)

这个博主写得好,贴下链接:(3条消息) neo4j数据库安装 – CSDN 医药领域知识图谱快速及医药问答项目(项目全过程)https://www.csdn.net/tags/NtzaQg5sNTk2My1ibG9n.html ;

MongoDB安装 (我用的是4.0)

这个博主写得好,贴下链接:(3条消息) MongoDB安装详细教程(爬坑之路)_Just Do Its的博客-CSDN博客_mongodb安装医药领域知识图谱快速及医药问答项目(项目全过程)https://blog.csdn.net/liu991029/article/details/114709588 ; 环境配置差不多了,如果项目运行失败,看看这些软件是否运行

项目运行时以下三个cmd窗口不要关闭!!!

运行neo4j数据库

医药领域知识图谱快速及医药问答项目(项目全过程)

在浏览器中输入 localhost:7474

医药领域知识图谱快速及医药问答项目(项目全过程)

开启mongodb服务

医药领域知识图谱快速及医药问答项目(项目全过程)

开启mongodb客户端,27017是默认端口

医药领域知识图谱快速及医药问答项目(项目全过程)

如果还有环境以及版本、语法格式这种问题,就不要问我了。

二、数据获取

在该项目prepare_data目录下

该目录下的一些代码写法已经过时,报错了请自行百度。

1. ,运行data_spider.py(保证mongodb服务是开启的)

该程序末尾添加这三行以调用

handler = CrimeSpider()
handler.inspect_crawl()
handler.spider_main()

运行结果:

医药领域知识图谱快速及医药问答项目(项目全过程)

2. 运行build_data.py

这里需要好好说说,在这个py文件里面,有一个神秘的first_name.txt,但是刘焕勇老师并没有在项目中给出。于是我在这里猜测它就是medical.json的前身,在刚刚运行data_spider.py之后,mongodb里面已经有东西了,所以我认为first_name.txt就是从data数据库中导出的文件。(这里需要格式转换,mongodb并不支持txt格式,需要另存为txt格式)

first_name.txt就是长这样:

医药领域知识图谱快速及医药问答项目(项目全过程)

函数调用

if __name__ == '__main__':
    handler = MedicalGraph()
    handler.modify_jc()
    handler.collect_medical()

运行build_data.py结束后,medical数据库中也有东西了,继续导出,

我们得到second_name.txt,这已经非常接近medical.json了

医药领域知识图谱快速及医药问答项目(项目全过程)

这里我也挖个坑(其实是我不会)

从second_name.txt到medical.json需要进一步操作,如果有哪位小伙伴知道怎么做,请在评论区告诉我。

三、搭建图数据库

1.运行build_medicalgraph.py , 这需要几个小时

医药领域知识图谱快速及医药问答项目(项目全过程)

四、智能问答

1.question_classifier.py

该文件中有一段写法报错,已改正

        # 加载特征词  这里encoding用的是‘utf-8’模式,不加的话,我的pycharm会报错
        self.disease_wds = [i.strip() for i in open(self.disease_path, encoding='utf-8') if i.strip()]
        self.department_wds = [i.strip() for i in open(self.department_path, encoding='utf-8') if i.strip()]
        self.check_wds = [i.strip() for i in open(self.check_path, encoding='utf-8') if i.strip()]
        self.drug_wds = [i.strip() for i in open(self.drug_path, encoding='utf-8') if i.strip()]
        self.food_wds = [i.strip() for i in open(self.food_path, encoding='utf-8') if i.strip()]
        self.producer_wds = [i.strip() for i in open(self.producer_path, encoding='utf-8') if i.strip()]
        self.symptom_wds = [i.strip() for i in open(self.symptom_path, encoding='utf-8') if i.strip()]
        self.region_words = set(
            self.department_wds + self.disease_wds + self.check_wds + self.drug_wds + self.food_wds + self.producer_wds + self.symptom_wds)
        self.deny_words = [i.strip() for i in open(self.deny_path, encoding='utf-8') if i.strip()]

2.运行chatbot_graph.py

医药领域知识图谱快速及医药问答项目(项目全过程)

这里参考了fumuling/KGQA-Psychological-Counseling: 基于知识图谱的心理咨询智能问答系统 (github.com)医药领域知识图谱快速及医药问答项目(项目全过程)https://github.com/fumuling/KGQA-Psychological-Counseling ;

运行 api.py,然后直接进入home.html

效果展示:

医药领域知识图谱快速及医药问答项目(项目全过程)

结语

最后再次感谢医药领域知识图谱快速及医药问答项目和基于知识图谱的心理咨询智能问答系统这两个项目的创作者。如果有什么遗漏或者错误的话,欢迎在评论区指正。

Original: https://blog.csdn.net/qq_52062182/article/details/124542279
Author: 奔跑的蜗牛2.0
Title: 医药领域知识图谱快速及医药问答项目(项目全过程)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/554805/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球