半监督学习Bootstrapping抽取知识图谱
Bootstrapping不需要标注好实体和关系的句子作为训练集,不用训练分类器。Bootstrapping算法的输入是拥有某种关系的少量实体对,作为种子,输出是更多拥有这种关系的实体对。不是找到更多的关系,而是发现拥有某种关系的更多新实体对。
思路
实体对 ==》 模板 ==》 新实体对 ==》 新模板 ==》 。。。
-
“创始人”是一种关系,如果我们已经有了一个小型知识图谱,里面有3个表达这种关系的实体对:(严定贵,嘉银金科),(马云,阿里巴巴),(雷军,小米)。
-
第一步:在一个大型的语料集中去找包含某一实体对(3个中的任意1个)的句子,全部挑出来。
比如:严定贵于2011年创立了嘉银金科;严定贵是嘉银金科的创始人;在严定贵董事长的带领下,嘉银金科赴美上市成功。 -
第二步:归纳实体对的前后或中间的词语,构造特征模板。
比如:A 创立了 B;A 是 B 的创始人;在A 的带领下,B。 -
第三步:用特征模板去语料集中寻找更多的实体对,然后给所有找到的实体对打分排序,高于阈值的实体对就加入到知识图谱中,扩展现有的实体对。
比如:马化腾创立了腾讯; -
第四步:回到第一步,进行迭代,得到更多模板,发现更多拥有该关系的实体对。
比如:(马化腾,腾讯)实体对,在语料集中,又找到了”马化腾–新关系–腾讯“,这样特征模板又增加了。
Bootstrapping的缺点
-
一是语义漂移问题,有些关系是跟时间有关的,比如夫妻,股东。
-
二是查准率会不断降低而且查全率太低,因为这是一种迭代算法,每次迭代准确率都不可避免会降低,80%—->60%—->40%—->20%…。所以最后发现的新实体对,还需要人工校验。
-
顺带提一下,远程监督有一对多关系的问题。
Reference
1、 https://cloud.tencent.com/developer/article/1639705
打赏
微信 | 支付宝 |
---|---|
万分感谢 |
- 原文作者:冷眼
- 原文链接:https://cold-eye.github.io/post/kg-bootstrapping/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。