安装Anaconda
安装时不勾选Add Anaconda to my PATH environment variable
因为勾选将会影响其他程序的使用
勾选Register Anaconda as my default Python 3.6
常用命令
在Anaconda Prompt中输入 conda list
,可以查看已经安装的包名和版本号
创建虚拟环境conda create -n <env_name> <package_names>
如 conda create -n KGQA python=3.5
激活环境activate <env_name>
退出deactivate
在当前环境中安装包 conda install <package_name>
, 然鹅很多包都没法用conda渠道安装,还是要用pip才行。根据本项目安装了flask、py2neo、pyltp和bs4
还可以用requirement.txt文件来批量安装依赖包conda install --yes --file requirements.txt
pyltp包安装出错解决
期间报错
1 | PackagesNotFoundError: The following packages are not available from current channels: - pyltp |
换成 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyltp
命令进行安装 ,仍然不行, 说是找不到wheels
找到了一个py3.5版本wheels源码链接, 参看
将下载好的文件放在此时Prompt命令行对应的文件夹中,如我的是 (KGQA) C:\Users\18771
然后执行pip install pyltp-0.2.1-cp35-cp35m-win_amd64.whl
即可安装成功wheels文件
输入conda list
发现有了pyltp安装包
在Pycharm中切换解释器
在pycharm中将项目解释器切换到上面新建的环境 settings -> project interpreter -> add local -> 找到Anconda3文件夹 -> envs -> KGQA -> python.exe
图数据库neo4j的使用
对比于关系型数据库,图数据库的最大好处在于,跨表检索时不需要复杂的连接操作——而我个人的理解是,这种操作的复杂性被转移到了图数据库的最初设计中,所以知识图谱问题的本质,其实是一个数据库设计的问题,这其中涉及到我们要用什么——应用需求,存什么——概念设计,怎么存——逻辑和物理设计,怎么呈现——问答可视化
存储类型
实体(节点)——实体分类
关系(边)——关系类型
实体和关系的属性——以键值对存储
下载安装Neo4j
官网下载速度真令人崩溃
国内镜像及文档——然而好像也打不开
还好找到一个云盘链接
新建环境变量:变量名NEO4J_HOME
路径C:\Users\18771\Desktop\知识图谱\neo4j-community-3.5.5-windows\neo4j-community-3.5.5
Win+X+A快捷键以管理员身份运行命令行,切换到bin所在目录,输入neo4j.bat console
启动服务,运行端口为7474
在浏览器中打开,默认的可视乎host是bolt://localhost:7687,默认的用户是neo4j,默认的密码是:neo4j,第一次成功connect到Neo4j服务器之后,需要重置密码。
进入界面后就可以开始编写Cypher语句创建数据了
py2neo将数据导入Neo4j
Pycharm上运行起github上一个KG的demo
修改neo_db目录下的配置文件config.py,设置图数据库的账号和密码。
切换到neo_db目录下,执行python create_graph.py 建立知识图谱
此时报错
1 | py2neo cannot import name 'NodeSelector' |
尝试 pip install git+https://github.com/nigelsmall/py2neo.git#egg=py2neo
不行。这个github上给的解决方法是升级到v3 , 而实际上我目前的py2neo版本已经是4.3.0版本
解决:将 NodeSelector 改为 NodeMatcher
接着运行,又报错
1 | FileNotFoundError: [Errno 2] No such file or directory: './raw_data/relation.txt' |
因为windows父级目录是 ../
再次运行,又粗线了…
1 | UnicodeDecodeError: 'gbk' codec can't decode byte 0x96 in position 15: illegal multibyte sequence |
更改一下打开格式
with open("../raw_data/relation.txt") as f:
改为 with open("../raw_data/relation.txt", 'r', encoding='UTF-8') as f:
这下运行导入成功了,在localhost:7687可以看到导入的数据