【问题标题】:Patient name extraction using MedSpacy使用 MedSpacy 提取患者姓名
【发布时间】:2022-10-20 00:45:22
【问题描述】:

我正在寻找有关使用 medspacy 的 NER 的一些指导。意识到使用 MedSpacy 提取疾病,但目的是使用 medspacy 从医疗报告中提取患者姓名。 文字应该是:

patient:Jeromy, David (DOB)
Date range 2020 to 2022. Visited Dr Brian. Suffered from ...

有这种类型的数据集,想要使用 MedSpacy 从所有医疗报告页面中提取患者姓名。我知道目标规则可能会有所帮助,但任何明确的指导将不胜感激。

感谢和问候

【问题讨论】:

  • 我认为 MedSpaCy 不包括患者姓名的 NER,您可以为此使用默认的 spaCy NER for PERSON。
  • 是的,但 PERSON 的默认 spaCy NER 仅提取患者姓名,如“John Bryn”,无法提取患者姓名“Bryn, John”。第二个名字,名字。我们是否可以在 MedSpacy 中使用某种规则/模式,例如是否有任何下一个标记出现在模式“患者:”之后,将其作为患者姓名获取。如果可以的话,请为此提供一些想法或代码。对此表示感谢。

标签: spacy named-entity-recognition


【解决方案1】:

如果您发现默认的 SpaCy NER 模型不够用,因为它不会提取诸如“Byrn, John”之类的名称,我有几个建议:

  1. 使用 SpaCy 的 Prodigy 注释工具训练自定义 NER 组件,您可以使用它轻松地标记一些名称示例。这是一项相当简单的任务,因此您可能可以用少于 100 个不同示例来训练模型。注意:Prodigy 是付费工具,所以如果您没有访问权限/不愿意付费,请参阅我的其他建议。

  2. 在没有 Prodigy 的情况下训练自定义 NER 组件。与上述方法类似,但涉及程度略高。这篇Medium 文章提供了对初学者友好的介绍,您也可以参考 SpaCy 自己的文档。您可以向 SpaCy 提供一些文本示例和要提取的实体,如下所示:

    训练数据 = [ ('病人:伯恩,约翰',{ '实体': [(9, 19, 'PERSON')] }), (“约翰·伯恩接受了 10 毫克的 advil”,{ '实体': [(0, 10, 'PERSON')] }) ]

  3. 基于现有 SpaCy 组件构建规则。您可以利用现有的 SpaCy 管道组件(您不一定需要 MedSpaCy),例如 POS 标记和依赖解析。例如,您可以在文档中查找专有名词来识别名称。查看有关 POS 标记 here 的文档。

  4. 尝试其他预训练的 NER 模型.可能还有其他模型更适合您的任务。在SpaCy Universe 上查看其他模型,或者在HuggingFaceHub 上查看更好的模型,其中包含一些适用于每个用例的最佳模型。 HF Hub 的额外好处是您可以在每个模型模型页面上试用模型,并在决定之前评估一些示例的性能。

    希望这可以帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多