本次记录主要是复现一下刘焕勇老师在github上的开源项目,体验一下什么是知识图谱,以及最终完成的具体功能显示的一个效果,为后续的毕设开展做一个铺垫。
一、环境搭建
由于python和pycharm都是之前上课期间所安装的版本,因此若遇到版本冲突问题,可参考其他博客,本次在我电脑安装项目的运行尚未出现版本的错误。
安装工具:python(3.10)+pycharm(2023.1)+neo4j(4.3.5,我的JDK环境为11),py2neo(在项目终端中pip下载,可安装最新版本,尚未报错)
注意:neo4j安装后一定要把修改后的密码记住哦!
二、项目启动
这里会遇到很多很多的坑,因为刘欢勇老师于2018年将该项目开源,这之间neo4j的版本进行了更新,所以在运行它的项目时,有些地方的连接需要进行写法上的更改,具体内容如下。
a.在pycharm终端中运行pip install py2neo,这里会安装成最新版。
b.在终端运行python build_medicalgraph.py
此时会首先报错:ValueError:The following settings are not supported:{‘http_port’:7474}
我尝试过的办法有以下集中能直接搜到的
1.安装低版本的Py2neo pip install py2neo==4.3.0,报错如下,说已经无法找到这个安装版本,因此仍使用最新版的py2neo。
2.有博客说尝试升级pip版本,仍无法解决
但实际上问题出现在新旧版本的py2neo对应的连接指令不相同。
刘焕勇老师的项目中,其连接语句为
self.g = Graph('http://localhost:7474/',username='neo4j',password='123456')
而如果使用了最新版本的py2meo,则需要更改语句为
注意:answer_search.py和build_medicalgraph.py两个文件中都有该语句需要修改,否则仍会报错ValueError:The following settings are not supported:{‘http_port’:7474}
self.g = Graph("http://localhost:7474", auth=("你的用户名", "你的密码"))
这个报错解决完后,重新输入python build_medicalgraph.py,会出现新的错误:UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0xaf in position 81: illegal multibyte sequence
此时需要在build_medicalgraph.py中找到这行代码,然后将其修改如下,添加上encoding=‘utf-8’
for data in open(self.data_path,encoding = ‘utf-8’)
最后再次输入python build_medicalgraph.py即可开始构建知识图谱,这一步耗时较长,耐心等待吧。
c.在终端运行python chatbot_graph.py
注意:在question_classifier中需要找到open,然后添加上encoding=‘utf-8’才能够解决gbk相关报错,运行成功后,就可以进入智能问答系统。
项目启动成功!
三、源码的学习