В чем разница между spacy.lang.en и load ('en')? - PullRequest
0 голосов
/ 03 октября 2019

В моих исследованиях по НЛП, более конкретно по пространственной библиотеке, меня смутило то, в чем разница между from spacy.lang.en import English() и spacy.load('en') и как она работает? Кто-то может помочь мне объяснить это и, если возможно, привести пример разницы? Заранее спасибо.

1 Ответ

0 голосов
/ 04 октября 2019

Языковой класс English в spacy.lang.en содержит код для конкретного языка и правила, включенные в библиотеку - например, правила специального случая для токенизации, стоп-слов или функций для определения, является ли словокак «двадцать два» напоминает число.

spacy.load("en") загружает установленную статистическую модель с кратким именем en - в данном случае en_core_web_sm пакет. Таким образом, вы также можете запустить spacy.load("en_core_web_sm"), что делает вещи немного более явными. Загрузка модели инициализирует соответствующий класс языка (в данном случае English), настроит конвейер обработки и загрузит двоичные веса обученной модели, которые позволяют spaCy делать предсказания (например, является ли слово существительным или чтоименованные объекты в тексте). Таким образом, объект nlp, который вы получите после загрузки модели, представляет собой экземпляр из English, но он также имеет настроенный конвейер обработки и загруженные веса.

Вы можете найтиболее подробный обзор того, как spacy.load работает под капотом здесь . первая глава онлайн-курса spaCy также объясняет языковые классы и статистические модели более подробно.

...