DeepDive-信息抽取工具安装教程

一、DeepDive简介

DeepDive是信息抽取的工具,它可以从各种dark data(文本、图片、表格)中将非结构数据抽取到关系数据库中。DeepDive的主要功能是抽取dark data中的实体以及实体之间的关系。

DeepDive文档:

http://deepdive.stanford.edu/

DeepDive GitHub:

https://github.com/HazyResearch/deepdive

二、DeepDive安装

DeepDive有三种安装方式,Docker镜像安装、快速安装、源包安装

采用快速安装的方式进行,机器系统为CentOS-7.3.1611

1.bash <(curl -fsSL git.io/getdeepdive) deepdive //安装deepdive包

1.1 vi ~/.bash_profile  //编辑bash_profile文件,将deepdive命令加入当前user环境

1.2 export PATH=~/local/bin:"$PATH"  //将这句追加到bash_profile

1.3 source ~/.bash_profile  //使配置生效





2.bash <(curl -fsSL git.io/getdeepdive) spouse_example  //安装spouse demo包





3.安装postgre作为关系数据库(刚开始想使用mysql,但是deepdive文档中说 minimal support mysql,所以还是使用推荐的postgre),使用bash <(curl -fsSL git.io/getdeepdive) progres 安装会有各种权限的问题,建议使用root用户安装

3.1 yum install https://download.postgresql.org/pub/repos/yum/9.5/redhat/rhel-7-x86_64/pgdg-centos95-9.5-2.noarch.rpm  //添加RPM

3.2 yum install postgresql95-server postgresql95-contrib   //安装PostgreSQL 9.5

3.3 /usr/pgsql-9.5/bin/postgresql95-setup initdb  //初始化数据库

3.4 systemctl enable postgresql-9.5.service  //设置开机启动

3.5 systemctl start postgresql-9.5.service  //启动服务

3.6 修改用户密码

    su - postgres  切换用户,执行后提示符会变为 '-bash-4.2$'

    psql -U postgres 登录数据库,执行后提示符变为 'postgres=#'

    ALTER USER postgres WITH PASSWORD 'abc123'  设置postgres用户密码

    \q  退出数据库



3.7 开启远程访问

    vi /var/lib/pgsql/9.5/data/postgresql.conf

    修改#listen_addresses = 'localhost'  为  listen_addresses='*'

3.8 信任远程连接

    vi /var/lib/pgsql/9.5/data/pg_hba.conf

    修改如下内容,信任指定服务器连接

    # "local" is for Unix domain socket connections only

    local   all             all                                     md5

    # IPv4 local connections:

    host    all             all             127.0.0.1/32            md5

    # IPv6 local connections:

    host    all             all             ::1/128                 md5

3.9 打开防火墙

    CentOS 防火墙中内置了PostgreSQL服务,配置文件位置在/usr/lib/firewalld/services/postgresql.xml,我们只需以服务方式将PostgreSQL服务开放即可。

    firewall-cmd --add-service=postgresql --permanent  开放postgresql服务

    firewall-cmd --reload  重载防火墙

3.9+ 重启PostgreSQL数据服务

    systemctl restart postgresql-9.5.service





4 spouse测试

4.1 载入数据

4.1.1 psql -U postgres -h localhost //输入密码本地连接postgre

4.1.2 键数据库并赋予用户postgres权限

      postgres=# CREATE DATABASE exampledb OWNER postgres;

      postgres=# GRANT ALL PRIVILEGES ON DATABASE exampledb to postgres;

      postgres=# \c exampledb;

      postgres=# ALTER SCHEMA public OWNER to postgres;

      postgres=# GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO postgres;

      postgres=# GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO postgres;



4.2 spouse项目配置

4.2.1 postgresql://postgres@localhost:5432/exampledb  //打开db.url,将远程链接地址加进去

4.2.2 deepdive create table articles //创建articles表,文档说自动创建,但是尝试多次都没有建表,使用命令主动创建

4.2.3 在app.ddlog中定义如下schema,记得将原文件内容删除

      articles(

         id      text,

         content text

      ).

4.2.4 deepdive compile  //编译

4.2.5 deepdive load articles input/articles-1000.tsv.bz2 //将1000文章载入

4.2.6 deepdive query '?- articles(id, _).' //测试,查询到一堆id代表加载成功,去postgre表中会看到数据加载进来了



4.3 对输入加工(待完成)



4.4 运行模型 (待完成)





5. 坑

5.1 在处理tsv文件时候会遇到如下问题

    error while loading shared libraries: libbz2.so.1.0: cannot open shared object file

    解决方法:

    sudo yum install bzip2-devel

    sudo ln -s `find /usr/lib64/ -type f -name "libbz2.so.1*"` /usr/lib64/libbz2.so.1.0

5.2 postgre权限问题

    使用deepdive安装postgre会遇到很多权限问题,建议使用root用户自行安装,配置好远程连接权限就ok了

 

DeepDive是一种基于机器学习的知识抽取系统,可以帮助我们从海量的非结构化数据中提取出有用的知识。 举个例子来说明DeepDive的知识抽取实例。假设我们拥有一个包含大量餐馆评论的文本数据库,我们希望从中提取出关于不同餐馆的菜品口味的知识。 首先,我们需要为DeepDive提供一些训练数据,这些数据包括标注好的句子,其中指出了每个词语是否与菜品的味道相关。接着,DeepDive使用这些训练数据进行机器学习,以便能够识别与菜品味道相关的词语。 一旦训练完成,我们就可以使用DeepDive来处理整个餐馆评论数据库。DeepDive将会对每个句子中的词语进行标注,以确定其与菜品味道的相关性。例如,DeepDive可能会识别出句子中的"好吃"、"美味"、"难吃"等词语与菜品味道相关。然后,DeepDive可以根据这些标注将句子分类为积极评价或消极评价。 通过合并和整理这些标注好的句子,我们可以得到一个包含丰富知识的数据库。这个数据库可以告诉我们哪些餐馆的菜品被认为是好吃的,哪些被认为是难吃的。我们可以利用这些知识来做更深入的分析,例如找到味道最好的菜,或者预测一个餐馆的成功度。 总之,DeepDive的知识抽取实例能够帮助我们从非结构化的数据中提取出有用的知识,帮助我们做出更好的决策和发现更多的见解。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值