Названия моделей создаются по следующему принципу: lang_type_genre_size. Lang обозначает язык. Type указывает на возможности модели (например, core означает, что речь идет об универсальной модели, имеющей словарь, синтаксис, сущности и векторы). Genre указывает на тип текстов, которые лежали в основе обучения данной модели: web («Википедия» или подобные ресурсы) или news (новостные статьи). Size обозначает размер модели: lg — большая, md — средняя и sm — маленькая. Чем больше модель, тем больше дискового пространства ей нужно.
Обычно узлы в нейронной сети сгруппированы по слоям: имеются входной и выходной слои, а между ними — один скрытый слой или более. Каждый узел в слое (за исключением выходного слоя) соединяется с каждым узлом из следующего слоя, и каждому соединению соответствует весовой коэффициент. Во время процесса обучения алгоритм подбирает веса таким образом, чтобы минимизировать ошибку предсказаний
Нейронная сеть (neural network) представляет собой набор алгоритмов предсказания. Она состоит из большого числа простых обрабатывающих элементов, подобных нейронам в мозге человека, которые взаимодействуют между собой путем отправки сигналов в соседние узлы и получения встречных сигналов.
распределение вероятностей (probability distribution) для конкретной случайной величины представляет собой таблицу соответствий значений этой величины вероятностям их выпадения (в эксперименте).
Математически определение семантического подобия между двумя словами сводится к вычислению косинусного коэффициента между соответствующими векторами, то есть вычислению косинуса угла между ними.
сценария таким образом:
for token in doc:
print(token.head.text, token.dep_, token.text)
import spacy
nlp = spacy.load('en')
doc = nlp(u'I am flying to Frisco')
print([w.text for w in doc])
python -m spacy download en
Сокращение en указывает spaCy, что нужно скачать и установить по умолчанию самую подходящую модель для английского языка. «Самая подходящая» в этом случае — сгенерированная для указанного языка (в данном примере — английского), универсальная и требующая минимум дискового пространства.
Для скачивания конкретной модели необходимо указать ее название следующим образом:
$python -m spacy download en_core_web_md
После установки модель можно загрузить с помощью того же самого сокращенного названия, что и во время установки:
nlp = spacy.load('en')
Базовые операции NLP в библиотеке spaCy
Начнем с цепочки базовых операций NLP — конвейера обработки.
сайта spaCy вы можете скачать, например, такие модели для английского языка: en_core_web_sm, en_core_web_md, en_core_web_lg и en_vectors_web_lg.
каждое слово по отдельности, сверточный слой сначала разбивает предложение на части. Предложение в NLP можно считать матрицей, каждая строка которой соответствует слову, представленному в виде вектора. Таким образом, если размерность каждого из векторов слов равна 300, а длина предложения — пять слов, получится матрица размером 5 × 300. Если размер фильтра обнаружения в сверточном слое равен 3 (то есть он применяется к трем последовательным словам), размер покрывающих входные данные областей составит 3 × 300. Такого контекста будет достаточно, чтобы соотнести каждое слово с тегом части речи.