微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

对大小写不佳的句子执行命名实体识别以提取公司名称

如何解决对大小写不佳的句子执行命名实体识别以提取公司名称

我有一个句子数据库,我试图从中提取任何和所有公司名称。截至目前,我正在使用 spaCy 的命名实体识别,并为具有标准大写的句子取得了良好的效果。 当我尝试对没有标准大写的句子做同样的事情时,问题就出现了。特别是,对于使用“标题大小写”的数据库子集,我的性能很差(即除介词/文章/等之外的所有单词都大写)。

以下是此类句子的一些示例,以及我使用 spaCy 获得的当前结果以及我想要的结果:

句子 当前提取 所需的提取
加勒比航空公司转变其收入会计流程 加勒比航空公司改变其收入核算 加勒比航空公司
Scular 通过 Absorb LMS 推动员工发展 Scular 通过 Absorb 推动员工发展 (Scular,Absorb LMS)
Oracle 解决方案将运营成本降低了 25% Oracle 解决方案降低运营成本 Oracle
Pandora 首席财务官通过 Coupa 缩短采购时间 潘多拉首席财务官削减采购时间 (潘多拉,Coupa)

如您所见,大写过多使得 spaCy 相信实体名称中包含的单词比实际情况多得多。 所以我的问题是如何缓解这个问题?是否有其他图书馆可能对这种大写不那么敏感,或者我可以通过“truecasing”来预处理句子。标准程序是什么?

为了完整起见,这里是我如何使用 spaCy 库

nlp = spacy.load("en_core_web_md")
for sentence in sentences:
    doc = nlp(sentence)
    for ent in doc.ents:
        ... store in database (ORG) ...

解决方法

您似乎已经对可能的解决方案有了一个想法...

我的建议:

  • 预处理和 truecase 句子(相当复杂/困难)
  • 使用具有无壳模型的其他框架(例如 BERT)
  • 使用足够的数据(必须注释)重新训练 Spacy 的模型

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。