【知识图谱】实体抽取及算法选择

在知识图谱中,知识抽取包括实体抽取、关系抽取和属性抽取,这一篇,围绕实体抽取进行总结。

白话实体抽取

  • 知识图谱中实体抽取的等就是NLP中的命名实体识别(NER),这两个等价,在NLP市场通用。
  • NER的本质是从一句话中提取出用户感兴趣的东西,类似于一句话的关键词,其包括两个细分子任务:实体边界判定实体类别预测
    🌰:
    左前门玻璃升降器异响
    提取出以下实体:
    左前门(部件),玻璃升降器(部件),异响(现象)
    注意,实体的类别由用户定义,除开通用领域的实体类型,完全可以根据自己的业务需求进行定义,
    ——————————————————————
    难理解吗?不难
    难操作吗?当然难!难在哪?
    我总结了几个方面的原因:
  • 中文本身比英文更复杂;
  • 数据准备和标注代价大
  • 算法模型的选取

中文NER的难点

大家都说中文NER比英文NER更难,我也同意,原因如下:
1.中文文本不像英文有空格作为词语的界限标志,而且中文词的概念很模糊,也不具备英文中的字母大小写等形态指示
2.中文的用字灵活多变,有些词语在脱离上下文语境的情况下无法判断是否是命名实体,而且就算是命名实体,当其处在不同的上下文语境下也可能是不同的实体类型
3.命名实体存在嵌套现象,如“北京大学第三医院”这一组织机构名中还嵌套着同样可以作为组织机构名的“北京大学”,而且这种现象在组织机构名中尤其严重
4.中文里广泛存在简化表达现象,如北京大学,简称北大。
参考:https://blog.csdn.net/sinat_40641604/article/details/103627277?utm_source=app&app_version=5.0.1&code=app_1562916241&uLinkId=usr1mkqgl919blen

数据准备和标注上的难点

英文通常以单词为单位,中文以字为单位;

推荐算法模型

  • 简单的场景:
    LAC+自定义词典
    优点:简单好用,用来分词和NER都不错,属于小模型,速度快,词典管理很方便。
    缺点:要是一句话中的实体没有在词典里进行记录,则无法识别,基于BERT的方案可以解决这类问题。

  • 复杂的场景:
    目前推荐:
    BERT+Bilstm+CRF或者BERT+CRF,经典永流传
    SOTA模型可查看paperwithcode。
    〈补图〉

正则在NER中的应用

有些实体都不需要用上算法来抽取,比如车牌号,省份等,这类可穷举或者具有固定形式的,用正则来抽取就好,用AI算法的话,还需要标注,性能还不一定好。

基于实体词典和深度学习方法的区别?

实体词典很好用,每在词典中增加一个词条都能立竿见影的增加可以识别的实体。
但此方法最大的问题在于:一,词典的扩充是一个比较费时费力的事情,在语义上相同的一个词有非常多的组合变化,比如“无法摘档”,“难摘档”,“档很难摘”,“摘档困难”等,稍微变化一下就是一个新词,而词典很难穷举;二,未登录词OOV无法识别;三,无法识别多义词,如苹果。
深度学习方法,如BERT+CRF能处理多义词的问题,通过一个词的上下文来确定其语义。但OOV的问题仍无法解决。数据标注也是一件比较麻烦的事情。

基于实体词典的方法对于没有在词典中出现过的词,无法识别;深度学习算法可以识别,但会作为一个新词(可能是错误的)
🌰:
实体词典中只有“开关异常”这种故障现象,对于这样一句话:
“汽车右车门无法开关怎么回事?”
基于词典:无法抽取出“无法开关”
基于DL:可以抽取出“无法开关”。

在应用阶段:基于DL的方法会抽取出大量的位置实体,即已有的知识图谱中无法找到,如“无法开关”实际上它应该指向“开关异常”。此时就需要做实体链接,将这些超出范畴的实体给链接到已有的知识图谱中,当处理后仍无法链接到任何一个实体时,则确认它是一个新的实体给增加到图谱中。

关键技术

实体标注,分词,实体消歧。

实体抽取的粒度

这是一个很重要的问题:

  • 粒度越细,实体间的关系越复杂,数据标注越麻烦,算法训练需要更多次迭代,好处在于,在抽取时能够提取出更多的信息,在实体链接是更准确。
  • 粒度越粗,标注越简单,抽取更准确。但单个实体里面其实可以进行继续拆分,忽略了很多实体和关系,同时逻辑层次更为混乱。如“左车门车窗玻璃”这个汽车部件,其实可拆分问问[左车门,车窗玻璃]两个部件,两个部件具有包含的关系。当只抽取为一个部件时,其和左车门、车窗玻璃位于同一层,其实是不对的。

如何决定合适的NER粒度?
一考虑标注成本,粒度越细成本越高;二考虑业务需求,要考虑那种粒度能更好的识别业务中的文本,能处理业务文本中的问题。
因为抽取粒度很难一次就成行,建议从较粗的粒度开始,标注少批数据,边标注边从数据中归纳总结,增加新的实体类型。当增加某一个程度,发现越标越混乱时,就要回退到以前的实体类型和数量。
业务中的数据五花八门,要找到一种合适的粒度,标注起来才感觉到“爽快”。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值