Distant Supervision for relation extraction without labeled data

远程监督:使用未标注语料做关系抽取

1. 背景:

关系抽取(某个人是否属于某个组织等)

    关系抽取中使用的3种方法:

a) 监督学习

优点:准确率很高

缺点:1.手工标注金标语料代价昂贵,时间金钱上需要很大的开销,并且数量受限,得不到大量的训练数据; 2.领域受限,标注都是在一个特定的语料中,训练的系统受限于那个领域

b) 无监督学习

优点:可以使用大规模的数据,抽取出大量的关系

缺点:抽取的结果往往比较难映射到特定的知识库

c) Bootstrap learning

往往有低准确率的问题。

d) 远程监督

使用知识库(freebase)来获取weekly labeled training data。

特点:相比监督学习,使用知识库提供训练数据来取代人工标注获取训练数据,没有过拟合的问题和领域依赖的问题;比起无监督,不用解决聚类结果到关系的映射问题,并且使用大规模的训练数据可以得到丰富的特征。

2. 方法介绍

    基本假设: 如果两个实体是某个关系的参与者,任意的一个包含这两个实体的句子都可能表达了这个关系。

训练阶段

    1. 使用 NET(named entity tagger)标注 persons organizations 和 locations;
    2. 对在freebase中出现的实体对提取特征,构造训练数据;
    3. 训练多类别逻辑斯特回归模型。

测试阶段:

    1. 使用 NET(named entity tagger)标注 persons organizations 和 locations
    2. 在句子中出现的每对实体都被考虑做为一个潜在的关系实例,作为测试数据
    3. 使用训练后的模型对实体对分类。

3. 特征选择

3.1. 词汇特征:

a) 两个实体中间的词序列;

b) 这些词的词性标记;

c) 标志位表示哪个实体出现在前面;

d) 大小为k的左窗口;

e) 大小为k的右窗口。

3.2. 句法特征:

a) 两个实体之间的最短依存路径;

b) 两个实体的左右窗口。

3.3. 命名实体tag特征:

人名、地名、组织名和其他

4. 其他注意的地方

连接特征来丢进多类逻辑斯特回归模型。

负例构造:随机选取不在freebase中的实体对(有错误的可能)

训练和测试数据构造:freebase中的关系实例一半用来训练,另一半用来测试。数据使用维基百科数据,2:1的训练和测试数据分配。测试时只对在训练时未出现(不属于训练时的freebase中)的实例对分类。

测试结果选择:对所有实体对分类,并对每对实体对分配一个分类结果的置信度。然后对它们的置信度排序,选取top n。

Distant Supervision for relation extraction without labeled data的更多相关文章

  1. ACL2019: 《GraphRel: Modeling Text as Relational Graphs for Joint Entity and Relation Extraction》源码解析

    论文地址:<GraphRel: Modeling Text as Relational Graphs for Joint Entity and Relation Extraction> G ...

  2. 少标签数据学习:宾夕法尼亚大学Learning with Few Labeled Data

    目录 Few-shot image classification Three regimes of image classification Problem formulation A flavor ...

  3. Relation Extraction中SVM分类样例unbalance data问题解决 -松弛变量与惩罚因子

    转载自:http://blog.csdn.net/yangliuy/article/details/8152390 1.问题描述 做关系抽取就是要从产品评论中抽取出描述产品特征项的target短语以及 ...

  4. 关系抽取--Relation Extraction: Perspective from Convolutional Neural Networks

    一种使用CNN来提取特征的模型,通过CNN的filter的大小来获得不同的n-gram的信息,模型的结构如下所示: 输入 输入使用word2vec的50维词向量,加上 position embeddi ...

  5. 研究NLP100篇必读的论文---已整理可直接下载

    100篇必读的NLP论文 100 Must-Read NLP 自己汇总的论文集,已更新 链接:https://pan.baidu.com/s/16k2s2HYfrKHLBS5lxZIkuw 提取码:x ...

  6. 【DeepLearning】一些资料

    记录下,有空研究. http://nlp.stanford.edu/projects/DeepLearningInNaturalLanguageProcessing.shtml http://nlp. ...

  7. 卷积神经网络CNN在自然语言处理中的应用

    卷积神经网络(Convolution Neural Network, CNN)在数字图像处理领域取得了巨大的成功,从而掀起了深度学习在自然语言处理领域(Natural Language Process ...

  8. (转) Graph-powered Machine Learning at Google

        Graph-powered Machine Learning at Google     Thursday, October 06, 2016 Posted by Sujith Ravi, S ...

  9. Machine Learning and Data Mining(机器学习与数据挖掘)

    Problems[show] Classification Clustering Regression Anomaly detection Association rules Reinforcemen ...

随机推荐

  1. Document root element "configuration", must match DOCTYPE root "mapper".

    最近剛剛鼓搗mybatis , 第一個demo就出了問題.其實原因是因為將mapper中的頭copy到了configuration里去了 <?xml version="1.0" ...

  2. 编写第一个java程序

    安装了一个编辑器,Notepad++,这个编辑器以前在写PHP的时候就喜欢用,呵呵,现在写java也先沿用这个这个编辑器吧. 代码: public class Test{ public static ...

  3. Spring中依赖注入的使用和配置

    使用方法1: //在执行此实例化的时候就会完成所有注入 ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext( ...

  4. Android之访问下载文件

    1.SD卡操作类 FileUtils.java package com.example.mars_1500_download; import java.io.File; import java.io. ...

  5. Salted Password Hashing

    Here are some examples of poor wacky hash functions I've seen suggested in forums on the internet. m ...

  6. ruby的hash学习笔记例: 将字符串文本中的单词存放在map中

    text = 'The rain in Spain falls mainly in the plain.'first = Hash.new []second = Hash.new {|hash,key ...

  7. 关于DevExpress的GridView.VisibleIndex的赋值问题

    在DevExpress GridControl中,GridView中 如果VisibleIndex=-1,则这列将不会显示(不可见): 如果VisibleIndex>=0,则按照VisibleI ...

  8. [Android疑难杂症]动态改变Background后Padding无效的问题

    前言 在Layout中指定好background和padding以后,程序里面动态修改background之后padding就失效了,貌似是一个BUG,这里找到了一篇英文文章,简单翻译分享一下. 声明 ...

  9. Storm实时计算框架的编程模式

    storm分布式流式计算框架. nimbus:主进程服务(职责就是任务的分配的,程序的分发) supervisor:工作进程服务(职责就是启动线程池,接受任务,运行任务,报告任务的运行状态) 注意容错 ...

  10. python3 split( ) not enough values to unpack(expceted 2, got 1)

    在运行一个小脚本时,脚本从一文本文件读取数据,事实上这个文件只有一行'count:2',并取到这个2,将其转成数字.但运行,总是报错. 代码如下: with open('count.txt', 'r' ...