Разница между пустыми и предварительно обученными моделями в пространствеPython

Программы на Python
Anonymous
Разница между пустыми и предварительно обученными моделями в пространстве

Сообщение Anonymous »

В настоящее время я пытаюсь обучить классификатор текста с помощью spacy, и у меня застрял следующий вопрос: в чем разница между созданием пустой модели с использованием spacy.blank('en') и использованием предварительно обученной модели spacy.load('en_core_web_sm'). Чтобы увидеть разницу, я написал этот код:

Код: Выделить всё

text = "hello everyone, it's a wonderful day today"

nlp1 = spacy.load('en_core_web_sm')
for token in nlp1(text):
print(token.text, token.lemma_, token.is_stop, token.pos_)
и это дало мне следующий результат:

привет, привет, False INTJ
всем, всем, True PRON
, , False PUNCT
it -PRON- True PRON
будет True AUX
a True DET
чудесно чудесно Ложное ADJ
день день Ложное существительное
сегодня сегодня Ложное существительное

Потом я попробовал это (для того же текста)

Код: Выделить всё

nlp2 = spacy.blank('en')
for token in nlp2(text):
print(token.text, token.lemma_, token.is_stop, token.pos_)
и результат был

привет, привет, ложь
всем, всем, правда
, , False
это -PRON- True PRON
's True
a True
чудесно замечательно False
day day False
сегодня сегодня False

Мало того, что результаты отличаются (например, лемма для 's отличается), но также нет POS-тегов для большинства слов в пустой модели.
Поэтому очевидно, что мне нужна предварительно обученная модель для нормализации моих данных. Но я до сих пор не понимаю, как должно быть с моим классификатором данных. Должен ли я 1) создать пустую модель для обучения классификатора текста (используя nlp.update()) и загрузить предварительно обученную модель для удаления стоп-слов, лемматизации и тегов POS или 2) загрузить только предварительно обученную модель для обоих: нормализации и обучения моего классификатора текста?

Вернуться в «Python»