首发于Singularity
Natural Language Processing By Chris Manning And Dan jurafsky 第6篇

Natural Language Processing By Chris Manning And Dan jurafsky 第6篇

关于关系抽取,推荐参考一个项目,

3种常见的方法做关系抽取。

首先介绍第一种,人工手写规则,这应该是最low的一种,

这种做法实际上就是命名体识别后再用正则去匹配

第二种方法,监督学习,常见思路如下:

这个是常见思路,但为了效率最常见的还是下面的改进版算法:

只去找句子中的命名实体,然后去搭建第一个分类器,用来判别这两个命名实体是否有关系,如果有关系的话,再去利用第二个分类器,用来对关系进行分类,所以为什么要构建两个分类器呢?因为在数据量很大的情况下,这样可以快速的淘汰很多没有关系的命名实体组。

这里讲了很多如何去提取特征的方法,算法反倒不是很重要了,因为输入的特征很大程度上决定了最终的效果好坏。

但是监督学习对于不同类型的数据泛化能力可能不是很好。这时可能就需要无监督和半监督去学习会比较好了。

如果我们根本就没有很庞大的数据集呢?这时该怎么办呢?由此我们要引入半监督和无监督来进行关系提取。

具体方法如下:

借助web去网上搜寻类似的句子,然后再从句子中总结句法规则,下面展示了一些具体的方法如何去寻找句法格式的。

snowball算法的思路就是先找寻X, Y两个命名实体,然后找寻实体前后的词语有没有相似之处,同时这个算法会对每个模式计算置信度值,

接下来看下无监督学习怎么去做关系抽取,

根据文本冗余度去评判评估关系提取的好坏

最后如果采用半监督和无监督的方法精准率勉强可以计算,召回率就没有办法了。

说实话,句法分析一直都是自然语言处理里面很重要的一个部分,但这节也只是提供了一些思路,具体方法讲的并不是十分透彻。

编辑于 2018-06-09 15:37