【问题标题】:Is spaCy supporting custom types for Named Entity Recognition?spaCy 是否支持命名实体识别的自定义类型?
【发布时间】:2020-03-30 20:58:50
【问题描述】:

在 spaCy 的“命名实体识别”功能的文档中 (https://spacy.io/usage/linguistic-features#named-entities) 文档指出 spaCy 可以识别命名实体的“各种类型”,例如“PERSON”、“LOC”、“PRODUCT”(https://spacy.io/api/annotation#named-entities)。

我的问题是:我还可以使用自定义实体训练数据吗?例如,我想训练发票数据以识别例如 IBAN / BIC 或发票编号。 .这是否也是可能的,还是此功能仅限于固定的实体列表?

【问题讨论】:

    标签: spacy


    【解决方案1】:

    它确实支持自定义实体,参见标题为“Training an additional entity type”的this section

    例如,要添加一个名为MY_ANIMAL 的标签,您可以使用这样的训练数据:

    TRAIN_DATA = [
        (
            "Horses are too tall and they pretend to care about your feelings",
            {"entities": [(0, 6, MY_ANIMAL)]},
        ),
        ("Do they bite?", {"entities": []}),
        (
            "horses are too tall and they pretend to care about your feelings",
            {"entities": [(0, 6, MY_ANIMAL)]},
        ),
    ]
    

    并将其输入现有的 NER 模型作为额外的训练,或新创建的 NER 管道。

    但是,需要注意的是:ML 模型针对识别命名实体进行了优化,命名实体通常是大写的名词,例如“John”、“London”或“The Times”。你也可以尝试用更通用的东西来训练它,比如数字,但它可能效果不佳。

    【讨论】:

    • 感谢您的回答,这就是我错过的。我也理解您对“通常大写的名词”的看法。但另一方面,在示例中也有 PERCENT、DATE 和 TIME 等实体。不应该是类似于那种数据的IBAN?
    • 如果答案有帮助,请将其标记为 ;-) 是的,您是对的,预训练模型中也存在“非典型”实体。我的看法是,您绝对可以尝试在您的 IBAN 号码等上训练 NER,但我只是想补充一点警告。但正如 ML/NLP 中常见的那样,您只需尝试一下即可:-)
    猜你喜欢
    • 2021-05-06
    • 1970-01-01
    • 2019-12-16
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 2020-02-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多