python知识图谱关系抽取算法_知识图谱系列——关系抽取(2)

摘要

本文接着 知识图谱系列——关系抽取(1)[1],继续介绍一个2019年新出的非常好的方法R-BERT[2] 。该方法使用预训练模型 BERT 到句子级别关系抽取任务上,取得了很好地效果。其主要贡献在于率先将 BERT 用在了关系抽取任务上, 探索了实体和实体位置在大型预训练模型中的结合方式,也证实了可以通过在实体前后加标识符得方式表明实体位置强化表征, 代替传统位置向量得做法,实际工业实践效果良好。

1 算法原理

关于BERT的原理可以参见google BERT源码和文章说明[3-4], 如图1所示,文章所展示的图非常明显的把方法思路展示出来:

(1) 使用BERT进行句子embedding表征;

(2) 标记entity位置,取出实体embedding向量序列;

(3)取出[cls]的embedding表示整个句子的意思 并连接全连接层,对实体向量序列取平均值 big分别连接全连接层;

(4)将三个向量进行拼接,再连接全连接层,而后进行softmax并输出结果。图1

2 实践小结

(1)数据预处理

假设输入的句子为: "中华民族是一个伟大的民族", 在送入 BERT 之前进行标记实体的预处理如下。第一个实体得前后添加 $ 符号,第二个实体前后添加 # 符号: "$中华民族$是一个伟大的#民族#。"

两个实体前后添加特殊符号的目的是标识两个实体, 让模型能够知道这两个词的特殊性,相当于显性指出两个实体的位置,告诉模型:这个词比较特殊要注意。

(2)参数设置参考

(2)效果

文中作者在 SemEval-2010 Task 8 dataset 上做了实验, 实验证明 R-BERT 比其他的模型如attention-CNN,entity attention bi-lstm 等效果都要好很多.。

除此之外,作者的实验结果还支持以下结果:不加实体标志且不使用实体embedding,只是用句子embedding,F1效果只有81.09%;

不显性标志实体前后的标识符会使 F1 效果从 89.25% 降至 87.98%. 说明标识符确实可以显著帮助模型提供实体信息;

在 BERT 输出层仅取出 [CLS ]获取句子向量而不利用实体向量会使得F1 效果降至 87.98%, 说明显性使用实体信息对模型是有显著效果的,这个很容易理解。

另外,本人实践工业数据效果远比此前模型高,其中不光是因为BERT这种预训练模型表达能力强的关系,显性标记实体这个操作既简单,效果又倍儿棒。

【知识图谱系列——关系抽取就介绍这两篇吧,毕竟2019年出来的新论文方法效果已经很好了,工业应用还是以实用为主嘛。下节开始介绍 知识图谱系列——实体链接技术】

参考文献

[1] 知识图谱系列——关系抽取(1):debuluoyi:知识图谱系列——关系抽取(1)​zhuanlan.zhihu.comv2-7f814de922e61f853cd4970307a61a91_180x120.jpg

[2] Wu, S., & He, Y. (2019). Enriching Pre-trained Language Model with Entity Information for Relation Classification.arXiv preprint arXiv:1905.08284.Enriching Pre-trained Language Model with Entity Information for Relation Classification​arxiv.orggoogle-research/bert​github.com

[4] Devlin, J. , Chang, M. W. , Lee, K. , & Toutanova, K. . (2018). Bert: pre-training of deep bidirectional transformers for language understanding.github.com/debuluoyi​github.com

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
关系抽取知识图谱构建中的一个重要任务,可以通过使用Python来实现。在关系抽取中,可以使用一些模型来帮助识别实体之间的关系。其中一个最近在知识图谱领域很火的模型是PCNN(Piece-wise Convolutional Neural Network)\[2\]。 关系抽取的F1值可以通过以下公式计算:F1 = 2 * (精确率 * 召回率) / (精确率 + 召回率)。在关系抽取中,识别关系的精确率和召回率是指识别出的关系与标注的关系相同的三元组的数量与总的识别出的关系的数量之比\[1\]。 关系抽取的一般流程包括实体抽取、实体链接和实体间关系抽取\[3\]。在实体抽取中,可以使用CNN+LSTM+CRF等算法进行实体识别。在实体链接中,需要将具有相同含义的实体进行规整。而实体间关系抽取可以使用经典算法如Piece-Wise-CNN和LSTM+Attention来实现。 在知识图谱中,一般采用图数据库(如neo4j)来存储知识。这样可以方便地查询和管理实体之间的关系\[3\]。 因此,使用Python可以实现知识图谱关系抽取的任务,可以借助PCNN模型和其他相关算法来识别实体之间的关系,并将结果存储在图数据库中。 #### 引用[.reference_title] - *1* [AI比赛-三元组抽取:工业知识图谱关系抽取-高端装备制造知识图谱自动化构建](https://blog.csdn.net/u013250861/article/details/129310105)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [知识图谱关系抽取之PCNN——tensorflow实现](https://blog.csdn.net/weixin_33417703/article/details/114452789)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值