在Rasa-NLU训练数据中使用spaCy实体

问题描述 投票:2回答:1

我正在尝试使用Rasa创建一个简单的程序,它从文本输入中提取(法语)街道地址。

根据Rasa-NLU doc(http://rasa-nlu.readthedocs.io/en/latest/entities.html)中的建议,我想使用spaCy进行地址检测。

我看到(https://spacy.io/usage/training)相应的spaCy预建实体将是LOC

但是,我不明白如何使用此实体创建训练数据集。

以下是我目前的JSON培训数据集的摘录:

{
    "text" : "je vis au 2 Rue des Platanes",
    "intent" : "donner_adresse",
    "entities" : [
        {
            "start" : 10,
            "end" : 28,
            "value" : 2 Rue des Platanes",
            "entity" : "adresse"
        }
    ]
}

如果我训练程序并使用文本输入"je vis au 2 Rue des Hetres"运行它,我得到这个输出:

{
    "entities": [
        "end": 26,
        "entity": "adresse",
        "extractor": "ner_crf",
        "start": 10,
        "value": "2 rue des hetres"
    ],
    "intent": null,
    "intent_ranking": [],
    "text": "je vis au 2 Rue des Hetres"
}

根据我的训练数据集,这很好。但我想使用spaCy的LOC实体。

我怎样才能做到这一点? (我究竟做错了什么 ?)

以下是我的配置文件的相关摘要,如果需要:

{
    "pipeline" : "spacy_sklearn",
    "language" : "fr",
    "spacy_model_name" : "fr_core_news_md"
}
spacy rasa-nlu
1个回答
5
投票

如果您想使用spaCy的预训练NER,您只需将其添加到您的管道,例如

pipeline = ["nlp_spacy", "tokenizer_spacy", "ner_spacy"]

但根据你的需要,你可能只想复制一个preconfigured pipelines并在最后添加"ner_spacy"

© www.soinside.com 2019 - 2024. All rights reserved.