Добавьте собственный язык в Spacy 3.0 и обучите в нем конвейеры

До сих пор я использовал Spacy 2.3.1. Я создал свой собственный класс, унаследованный от Language class и обучил конвейер NER, используя в нем скрипт Python.

Но в Spacy 3.0 введено множество удобных команд CLI и конфигураций для обучения пользовательских конвейеров, которые настоятельно рекомендуется использовать вместо скриптов Python. Вот пример конфигурации для объекта:

      ...

[nlp]
lang = "fa"
pipeline = ["transformer","ner"]
batch_size = 32
disabled = []
before_creation = null
after_creation = null
after_pipeline_creation = null
tokenizer = {"@tokenizers":"spacy.Tokenizer.v1"}

...

Как видите, langатрибут должен быть одним из предопределенных языков в библиотеке Spacy. Могу ли я указать в конфигурации, что мне нужно создать объект на моем собственном языке как nlp объект?

1 ответ

На самом деле есть раздел об этом в документации. Основная идея - вам нужно добавить свой язык в реестр. Пример из документов:

      import spacy
from spacy.lang.en import English

class CustomEnglishDefaults(English.Defaults):
    stop_words = set(["custom", "stop"])

@spacy.registry.languages("custom_en")
class CustomEnglish(English):
    lang = "custom_en"
    Defaults = CustomEnglishDefaults

# This now works! 🎉
nlp = spacy.blank("custom_en")
Другие вопросы по тегам