前言

最近在实践知识图谱的过程中,发现阿里目前在神马搜索构建知识图谱的过程使用了deepdive进行了关系抽取,另外就是利用深度学习PCNNs进行关系抽取。通过在对deepdive进行了解的过程中,deepdive非常适合信息抽取,是构建知识库的利器。能够基于词性标注、句法分析等通过各种文本规则实现实体之间关系的抽取,同时可面向异构、海量的数据。这里会重点介绍deepdive各个方面

涉及的原理和概念

工作机制:

具体过程: 首先对数据进行清洗,进行实体识别,之后进行实体关联,最终输出满足指定关系的集合。 对于官网实例,输入是一个文档集合和一个小的人工标注的实例集合,输出就是属于couple的pairs.

关于具体步骤如下: 1. 先对文章进行分句,将每一句存储到数据库中。 2. 分词并进行各种标注,对于的特征包括POS标签、语言标记。 3. 生成特征,组合各种特征。 4. 领域知识的集成。 5. 监督学习--distant supervision。在现有文本资料中人工找到具有正例的样本,并通过相关的关系生成反例样本。 6. 推理。使用因子图进行对特征、知识的推理。(推理机制使用了Gibbs Sampling)

关于deepdive,需要定义的内容如下: 1. 输入数据的样式,包括关系样式、中间数据格式与数据之间的映射关系——在app.ddlog中定义好 2. 用于进行distance supervise的规则——在app.ddlog中定义好 3. 推理参数——在app.ddlog中定义好 4. 原始数据处理方式——在udf中用python或者shell实现 5. 特征提取方式——在udf中用python或者shell实现

具体来看,可以分解为四个部分。 1. 特征抽取 2. 领域知识集成 3. 监督学习 4. 知识推理

涉及到四个概念: 1. 实体 2. 关系 3. 提及 mention 4. 关系提及 relation mention

安装

第一步,执行如下命令:

bash

结果报错,提示curl: (77) error,原因在于curl期望访问证书的路径不存在

解决方法:

sudo mkdir -p /etc/pki/tls/certs

sudo cp /etc/ssl/certs/ca-certificates.crt /etc/pki/tls/certs/ca-bundle.crt

解决上述问题后,接下来继续执行:

输入数字1,会在自己的目录下下载deepdive-v0.8-STABLE-Linux.tar.gz。

下载完毕会自动解压复制到local目录下

为了能使用使用deepdive命令能够直接使用,修改~/.bash_profile

export PATH=~/local/bin:"$PATH"

则deeplive就安装完毕!

第二步,安装数据库postgres

bash

总是会报503或者502的错误,不断忽略,重复执行。 最后能够下载但同时报出如下错误:

为了解决这个问题,执行如下命令

sudo gedit /etc/apt/sources.list

将cdrom的那一行注释掉即可解决。

接下来继续执行,又会报出如下错误:

提示包含错误的元数据以及Problem executing scripts APT问题

解决方法:

sudo apt-get remove libappstream3

第三步,下载spouse_example例子

bash

最终会得到如下的文件目录:

第四步,配置好postgresql 注意配置postgresql的url地址:

echo "postgresql://wangwei@localhost:5432/deepdive_spouse_wangwei" >db.url

注意到会提示deepdive_spouse_wangwei数据库不存在,解决方法如下:postgresql安装完成会生成一个名为postgres的用户帐户,首先先切换到此用户下 psql postgres

接下来去创建数据库: CREATE DATABASE deepdive_spouse_wangwei OWNER wangwei;接着可以验证归属wangwei用户的数据库deepdive_spouse_wangwei是否创建成功:

psql -U wangwei -d deepdive_spouse_wangwei -h 127.0.0.1 -p 5432

关于deepdive处理中文

由于deepdive默认是处理英文,因此需要做一些变动。 具体的做法: 1. 直接去https://nlp.stanford.edu/software/corenlp-backup-download.html 注意到最新的模型为stanford-chinese-corenlp-2018-02-27-models.jar,当前的version为3.9.1,注意高版本的后面编译加载之后会报错,还是建议选择低版本的模型stanford-chinese-corenlp-2016-01-19-models.jar。下载完成之后放入 /home/wangwei/spouse_example-0.8-STABLE/udf/bazaar/parser/lib 2. 执行如下命令对整个工程进行编译 sbt/sbt stage

3. 执行如下通过postman进行测试 ./run.sh -p 8080

未下载之前中文模型之前,无法对中文做任何分词和标注处理

放入中文模型之后,分词和标注的结果如下:

总结:本节就是关于deepdive的简单介绍和安装,后续将重点通过deepdive实践一个例子,欢迎大家关注我的知乎专栏和点赞。

参考:

deepdive连接mysql数据库_deepdive介绍与安装相关推荐

  1. deepdive连接mysql数据库_DeepDive安装及基础使用(上)

    一.deepdive环境搭建及数据库安装 1.下载deepdive 在用虚拟机尝试未果后,借来了一台Mac电脑,利用桌面右上角的搜索图标,搜索terminal,打开终端,开始下载DeepDive ba ...

  2. excel 连接 mysql数据库 提示 连接器 需要安装 组件

    excel 首次连接 mysql数据库 提示缺少组件 解决方法,去官网下载 mysql connector/NET https://dev.mysql.com/downloads/connector/ ...

  3. python通过什么对象连接数据库步骤_Python连接MySQL数据库方法介绍(超详细!手把手项目案例操作)...

    本文涉及到的开发环境:操作系统 Windows 10 数据库 MySQL 8.0 Python 3.7.2 pip 19.0.3 两种方法进行数据库的连接分别是PyMySQL和mysql.connec ...

  4. mysql数据库的介绍及安装

    一.什么是数据库 1.什么是数据(Data) 描述事物的符号记录成为数据,描述事物的符号既可以是文字.图片.图像.声音.语言等,数据有多种表现形式,他们都可以经过数字化后存入计算机 在计算机中描述一个 ...

  5. mac下连接mysql数据库_mac 系统下安装MYSQL数据库

    一.安装 比如:Mac OS X ver. 10.7 (x86, 64-bit), DMG Archive 下载完的文件为:mysql-5.6.10-osx10.7-x86_64.dmg 1.点击,安 ...

  6. Navicat Premium 连接mysql数据库(win10 本地安装的),报错2509 -Authentication plugin ‘ caching_sha2_。。。最新解决办法

    连接MySQL出现 2059 - authentication plugin 'caching_sha2_password' -navicat 解决方式 ` 这个错误的原因是由于MySQL8.0之后的 ...

  7. deepdive连接mysql数据库_Zabbix 中使用 Percona Monitoring Plugins 监控 MySQL

    Zabbix 中使用 Percona Monitoring Plugins 监控 MySQL 1.安装zabbix agent[root@szlinux01 ~]# rpm -ivh http://r ...

  8. deepdive连接mysql数据库_如何从Error Code获取Message

    如何从Error Code获取Message 1.Windows下根据错误代码号打印错误消息 "displays information about Windows network mess ...

  9. php 模板 php + mysql + myodbc,连接MySQL数据库在ASP中,就用MyODBC

    我们大家都知道ASP与MySQL连接现在应用最为广泛的两种办法是,一是使用组件,经常使用的是MySQL(和PHP搭配之最佳组合)X,可惜价格很贵.另一个就是用MyODBC来连接MySQL数据库,下面我 ...

最新文章

  1. XML指南——XML 确认
  2. 十一、jQuery的基本用法
  3. java list 循环赋值_Java List集合的坑(add方法报空指针,循环赋值时list已保存的值会改变)...
  4. 前端学习(1307):模块查找规则二
  5. dao传递类参数 mybatis_Mybatis (ParameterType) 如何传递多个不同类型的参数
  6. java 某点 旋转_java-如何围绕某个点旋转顶点?
  7. 获取当前周和前一周周一和周天,下一周周一和周天
  8. 心理学巨著《影响力》读后总结
  9. python主要用来做什么-python主要用来做什么
  10. Git版本控制:Git查阅、撤销文件修改和撤销文件追踪
  11. 微博开放平台api使用
  12. PLC模拟量控制的3个要求
  13. SD-WAN 系列--企业专线、企业互联网
  14. QuickChm 制作chm文档 chm文档脚本错误,乱码
  15. 局部加权回归(LWR) Matlab模板
  16. VS2008下编写Colors应用程序
  17. Arduino自制打地鼠游戏机详细教程
  18. sqlmap的用法,sqlmap -r
  19. GifCam:有手就会的动图录制神器,GIF专用
  20. 图解:什么是红黑树?(下篇)

热门文章

  1. 判断 矩阵对角线元素相等
  2. Unity软件灵活控制鼠标的隐藏与消失
  3. svg、canvas、css3d实现数据可视化(伪3d)
  4. 阿里云ACP考试学习过程分享
  5. 树莓派学习::qt5.10.1交叉编译【带opengl ES2】到官方Raspbian Stretch
  6. 无纸化自动化考评系统,专为企业研发安全稳定
  7. 51单片机IAP在线升级
  8. miui 8 android对应关系,MIUI2.3到MIUI8的演变过程,满满的回忆
  9. 传统健身模式盛行已久,他为什么坚持开一家24H智能健身房?
  10. 8种药水有且仅有一种有毒,药水1小时见效,现在要求在1小时内找出有毒药水,至少需要几只小白鼠?