CNDeepdive上手体验

Posted by Jamin Chen on March 4, 2018

Deepdive是斯坦福前几年开发的知识特征提取引擎,不过项目目前已经进入维护状态。最近由于研究项目需要,准备基于CNDeepdive对中文进行知识抽取。

虽然官方最新支持到Ubuntu 16.04,而自己的系统是18.04,加之不愿折腾新系统,一个周末都在趟坑,不过尚好走通了,记录下来以飨来者。

首先,CNDeepdive可以从OpenKG.cn百度云盘下载。由于自动化安装基于deepdive发布版,在18.04上主要遇到Python依赖无法满足(读者可以自行尝试),自动化安装失败!

转而从官方源码进行编译安装(也属无奈之举),参考Github项目以及开发者手册

安装依赖

1
git clone --recurse-submodules https://github.com/HazyResearch/deepdive.git

由于环境兼容性问题,需要做一些修改:

手动修改install.Ubuntu.sh的Python依赖,去掉由于版本关系不支持的python-software-properties(删除所有出现)。

由于编译Deepdive时一些组件需要依赖g++-4.8,这里利用update-alternative进行g++版本管理:

1
2
3
4
sudo apt install g++-4.8
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 20  # 系统默认版本
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 20
sudo update-alternatives --config g++  # 选择g++-4.8对应数字,临时切换到该版本

安装运行时依赖

1
2
3
export NO_DOCKER_BUILD=true
export NO_MINDBENDER=true  #后面说明原因
make depends

编译安装Deepdive

1
make install  # to ~/local by default

安装Mindbender

Mindbender是基于deepdive的一系列知识库建立工具集。

由于在当前系统环境,顺利安装后报JS语法错误,为了节省时间,该组件直接采用官方文档独立安装。

至此,英文版的Deepdive安装完成!

安装CNDeepdive

完成了CNDeepdive要求的第一步,此时进入CNDeepdive目录,运行nlp_setup.sh,配置本地中文stanford环境。

至此,CNDeepdive安装完成!

后续,参考CNDeepdive文档进行中文实例测试,不赘言。

恢复系统环境

1
sudo update-alternatives --config g++  # 选择g++-7对应数字,恢复系统默认版本