基于知识图谱的医药领域问答项目QASystemOnMedicalKG

基本资料

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

该项目立足医药领域,以垂直型医药网站为数据来源,以疾病为核心,构建起一个包含7类规模为4.4万的知识实体,11类规模约30万实体关系的知识图谱。

我的环境:
  • win10
  • python3.8
  • neo4j数据库
项目流程
  1. 配置好neo4j数据库,记住账号密码。方法:windows下安装Neo4j

  2. 通过build_medicalgraph.py把从网页爬出来的信息导入neo4j数据库,项目中已经有信息了,在data文件夹的medical.json里。这里只需要改下里面的代码:

    class MedicalGraph:
    	def __init__(self):
    	    cur_dir = '/'.join(os.path.abspath(__file__).split('/')[:-1])
    	    self.data_path = os.path.join(cur_dir, 'data/medical.json')
    	    self.g = Graph(
    	        host="127.0.0.1",  # neo4j 搭载服务器的ip地址,ifconfig可获取到
    	        http_port=7474,  # neo4j 服务器监听的端口号
    	        user="neo4j",  # 数据库username,如果没有更改过,应该是neo4j
    	        password="******")  #自己设置的密码
    
    
    	...(中间省略)
    
    
    if __name__ == '__main__':
    	handler = MedicalGraph()
    	handler.create_graphnodes()   # 创建知识图谱实体节点类型
    	handler.create_graphrels()    # 创建实体关系边 
    
    

    导入关系需要较久的时间,可以实时查看neo4j数据库的信息:
    基于知识图谱的医药领域问答项目QASystemOnMedicalKG_第1张图片

  3. answer_search.py同样修改neo4j信息

  4. 运行chatbot_graph.py
    基于知识图谱的医药领域问答项目QASystemOnMedicalKG_第2张图片

出现的问题
  1. ‘gbk’ codec can’t decode byte 0xa3 in position 29: illegal multibyte sequence
    在open函数里面加上encoding='UTF-8’
    基于知识图谱的医药领域问答项目QASystemOnMedicalKG_第3张图片
  2. 需要运行Neo4j后项目才能正常运行。
    在对应路径执行 neo4j.bat console 命令
    在这里插入图片描述

你可能感兴趣的:(github,自然语言处理)