Если вы используете классификатор текста spacy, тогда лучше начать с пустой модели. TextCategorizer
не использует функции из каких-либо других конвейерных компонентов.
Если вы используете spacy для предварительной обработки данных для другого текстового классификатора, вам необходимо решить, какие компоненты имеют смысл для вашей задачи. Предварительно обученные модели загружают тегер, анализатор и модель NER по умолчанию.
Лемматизатор, который не реализован как отдельный компонент, является наиболее сложной частью этого. Он пытается обеспечить наилучшие результаты с доступными данными и моделями:
Если у вас не установлен пакет spacy-lookups-data
и вы создаете пустую модель, вы получите строчная форма как лемма по умолчанию / фиктивная.
Если у вас установлен пакет spacy-lookups-data
и вы создаете пустую модель, он автоматически загрузит леммы поиска, если они доступны для этого language.
Если вы загружаете предоставленную модель и конвейер включает в себя тегер, лемматизатор переключается на лучший лемматизатор на основе правил, если он доступен в пространстве для этого языка (в настоящее время: греческий) , Engli sh, французский, норвежский букмол, голландский, Swedi sh). Прилагаемые модели также всегда включают данные поиска для этого языка, поэтому их можно использовать, когда тегер не запущен.
Если вы хотите получить леммы поиска из предоставленной модели, Вы можете увидеть их, загрузив модель без тегера:
import spacy
nlp = spacy.load("en_core_web_sm", disable=["tagger"])
В общем, качество леммы поиска не велико (нет информации, чтобы помочь в неоднозначных случаях), и леммы на основе правил будут намного лучше, однако для запуска теггера требуется дополнительное время, поэтому вы можете выбрать леммы поиска, чтобы ускорить процесс, если качество достаточно хорошее для вашей задачи.
И если вы не используете парсер или Модель NER для предварительной обработки позволяет ускорить процесс, отключив их:
nlp = spacy.load("en_core_web_sm", disable=["ner", "parser"])