Код: Выделить всё
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) загрузить только предварительно обученную модель для обоих: нормализации и обучения моего классификатора текста?