基本资料
项目是找的中科院软件所刘焕勇老师在github上的开源项目,基于知识图谱的医药领域问答项目QASystemOnMedicalKG。
该项目立足医药领域,以垂直型医药网站为数据来源,以疾病为核心,构建起一个包含7类规模为4.4万的知识实体,11类规模约30万实体关系的知识图谱。
我的环境:
- win10
- python3.8
- neo4j数据库
项目流程
-
配置好neo4j数据库,记住账号密码。方法:windows下安装Neo4j
-
通过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数据库的信息:
-
answer_search.py同样修改neo4j信息
-
运行chatbot_graph.py
出现的问题
- ‘gbk’ codec can’t decode byte 0xa3 in position 29: illegal multibyte sequence
在open函数里面加上encoding='UTF-8’
- 需要运行Neo4j后项目才能正常运行。
在对应路径执行 neo4j.bat console 命令