Добавьте собственный язык в 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")