参考链接:
https://github.com/SongRb/DeepDiveChineseApps
https://github.com/qiangsiwei/DeepDive_Chinese
https://github.com/mcavdar/deepdive/commit/6882178cbd38a5bbbf4eee8b76b1e215537425b2
本文主要记录下提取流程,和遇到的一些坑。。。
1,deepdive中文相关代码和网址
https://github.com/SongRb/DeepDiveChineseApps
https://github.com/qiangsiwei/DeepDive_Chinese
https://github.com/mcavdar/deepdive/commit/6882178cbd38a5bbbf4eee8b76b1e215537425b2
2,下载该路径下代码https://github.com/SongRb/DeepDiveChineseApps
数据库配置:
执行echo "postgresql://postgres:******@localhost:5432/deepdive_spouse_postgres" >db.url (******对应数据库密码)
即将数据库配置写入db.url
3, 中文NLP工具配置:
1)下载斯坦福中文工具stanford-chinese-corenlp-2016-01-19-models.jar和 stanford-srparser-2014-10-23-models.jar放到udf/bazzar/parser/lib/路径下
2)在udf/bazzar/parser/下再次执行sbt/sbt stage来重建NLP工程,这会重新编译新增的斯坦福中文JAR包
3)命令行./run.sh -p 8080,之后可以在8080端口测试该NLP相关功能
4,原始文本导入:
在路径 */DeepDiveChineseApps-master/spouse/下编译工程: ~/local/bin/deepdive
导入原始文本文件: ~/local/bin/deepdive create table articles ~/local/bin/deepdive load articles input/news-100.tsv.bz2
5,中文NLP处理:
将原始文本拆分成句子,再进行分词,词性标注、命名实体识别等工作
1) ~/local/bin/deepdive do sentences
input/news-100.tsv拷贝为input/articles.tsv
因为内部配置导入的的原始文本为articles.tsv,所以直接执行会报错" [ERROR] input/articles.*: No data source found for articles ‘run/ABORTED’ -> ‘20180305/104532.107734000’"
6,提取每句话中出现的人名
~/local/bin/deepdive compile && ~/local/bin/deepdive do person_mention
这里会从每句话中提取命名实体识别为person的词
7,生成候选配偶对
这里会提取每一句话中出现的两个人名作为spouse的候选样本
~/local/bin/deepdive compile && ~/local/bin/deepdive do spouse_candidate
8, 候选配偶对生成特征
~/local/bin/deepdive compile && ~/local/bin/deepdive do spouse_feature
9,远距离监督对候选配偶对进行标记
1)方案一:使用已标记样本对候选配偶对标记
即对于标记样本中出现的候选配偶对直接进行标记
~/local/bin/deepdive create table spouses_dbpedia~/local/bin/deepdive load spouses_dbpedia input/spouse_dbpedia.csv.bz2
2)方案二:使用简单的启发式规则来进行远距离监督对候选配偶对标记
使用已标记样本训练模型,对所有的候选配偶对spouse_candidate进行标记
~/local/bin/deepdive compile && ~/local/bin/deepdive do has_spouse
这一步已经得到了部分正例和部分反例,以及部分未标记样本
10,使用模型进行学习和推理
根据has_spouse里的标记信息,训练一个分类器,使用分类器进行分类得到结果概率。
~/local/bin/deepdive compile && ~/local/bin/deepdive do probabilities
11,deepdive总结:
1)关系提取流程
通过目标关系,使用NLP相关技术,对原始文本提取候选关系对,并生成特征;
通过手工标注关系对或者通过启发式规则得到标注关系对,训练分类器,得到分类结果,结果正例即是目标关系对,结果为反例即非目标关系对。
articles->sentences->person_mention->spouse_candidate->spouse_feature
spouses_dbpedia->has_spouse->probabilities
2)相关配置文件
- app.ddlog是deepdive的规划文件,此文件定义了数据的来源,数据的结构,数据的处理函数,KBC的构建。
(函数的定义:function nlp_markup over,函数的执行sentences += nlp_markup(doc_id, content) :- articles(doc_id, content). #函数执行,输入为 articles(doc_id, content).即articles表的doc_id字段和content字段)
- db.url,此文件定义了数据库的连接信息
- deepdive.conf deepdive环境配置,不用修改。
- input/ ,此目录放置数据文件,该数据文件需要按照app.ddlog中的规则来命名,该数据文件为应用提供源数据。
- udf/ ,存放用户定义的函数的目录,可以从deepdive.conf引用相对于应用程序根目录的路径名。
3)相关组件
NLP处理组件:应该可以替换,但是内部接口不清楚,斯坦福英文替换为斯坦福中文
生成特征组件:无法替换
推理模型:使用的是因子图模型,提供因子图权重手动设置和自动学习,无法替换
deepdive中文关系提取相关推荐
- 论文浅尝 - ICML2020 | 通过关系图上的贝叶斯元学习进行少样本关系提取
论文笔记整理:申时荣,东南大学博士生. 来源:ICML 2020 链接:http://arxiv.org/abs/2007.02387 一.介绍 本文研究了少样本关系提取,旨在通过训练每个关系少量带有 ...
- 论文浅尝 | 将文本建模为关系图,用于联合实体和关系提取
论文笔记整理:余海阳,浙江大学硕士,研究方向为知识图谱.自然语言处理. 链接:https://www.aclweb.org/anthology/P19-1136 动机 本文提出了一种利用图卷积网络(G ...
- 基于依存句法分析的实体关系提取
基于依存句法分析的实体关系提取 1.概述 概述 句法分析是自然语言处理中的关键技术之一,其基本任务是确定句子的句法结构或者句子中词汇之间的依存关系. 主要包括两方面的内容,一是确定语言的语法体系,即对 ...
- Snowball 关系提取,2篇知乎博客
Snowball 关系提取,简单理解 - 知乎 关系抽取:Snowball System - 知乎
- 论文阅读课5-DocRED: A Large-Scale Document-Level Relation Extraction Dataset(大规模文档集关系提取数据集
文章目录 abstract 1.Introduction 2.数据收集 3.数据分析 4.基线设置 5.实验 Yao, Y., et al. (2019). DocRED A Large-Scale ...
- 论文解读丨图神经网络应用于半结构化文档的命名实体识别和关系提取
摘要: 随着用于传递和记录业务信息的管理文档的广泛使用,能够鲁棒且高效地从这些文档中自动提取和理解内容的方法成为一个迫切的需求.本次解读的文章提出利用图神经网络来解决半结构化文档中的实体识别(NER) ...
- 开源中文关系抽取框架,来自浙大知识引擎实验室
向AI转型的程序员都关注了这个号???????????? 机器学习AI算法工程 公众号:datayx DeepKE DeepKE 是基于 Pytorch 的深度学习中文关系抽取处理套件. 环境依赖 ...
- KeyBERT进行中文关键词提取
原文链接 KeyBERTLeveraging BERT to extract important keywordshttps://maartengr.github.io/KeyBERT/index.h ...
- 中文关键词提取tfidf算法改进bsaeline
关键词 关键词是表达文档主题意义的最小单位.关键词自动抽取技术则是一种识别有意义且具有代表性片段或词汇(即关键词) 的自动化技术.关键词自动抽取在文本挖掘领域被称为关键词抽取 (Keyword Ext ...
最新文章
- CSS_DIV学习记录2(用背景颜色实现一个网页的完整布局)
- 【opencv学习】【图像的数值计算操作】
- $与一些特殊字符的组合用法
- 关于传奇MapInfo地图文件参数详细说明
- [MATLAB/编程]报童的诀窍/报童问题-图解法和二分法
- 书海觅珍 遨游古今——广西国正书吧正式运营开业
- 数据链路层的主要功能
- matlab解方java_如何在MATLAB中获得该方程的所有解?
- 手机怎么识别图片上的文字
- 主板螺丝是机箱配还是主板配_MATX主板配什么机箱好?曜越Tt启航者A3装机记
- c#FileStream文件读写可能会出现乱码
- 限速器校验合格范围_限速
- 在Github新建项目
- poe交换机归类有什么?
- 显著性检测—学习笔记
- 几何校正(image to image)
- 西安交通大学大计基第十四周练习题
- 数据库管理系统实验答案
- 设置网络唤醒电脑(WAKE ON LAN,WOL)
- HDU 2047 [阿牛的EOF牛肉串] 递推
热门文章
- Django url末尾斜杆 / 的重定向问题
- 如何查看华为笔记本的型号与硬件配置 ?
- 华为鸿蒙发布会演讲稿及鸿蒙操作系统简介
- 秒懂HTTP之URL与资源
- Halcon 图片格式RGB转灰度
- 走遍世界 —— 国旗上的国家历史
- 《计算机工程与应用》审稿周期很长不好中二审被拒
- 2023 最新软件库app源码 附后台
- 金三银四面试回来,我想跟程序员们谈谈
- 小米抢购限流峰值系统「大秒」架构解密 - 推酷