Какой смысл скачивать «модели» при использовании SpaCy?

Что делает модель?

Я вижу, как этот термин используется в отношении НЛП и МО в целом, и, кажется, нет конкретного определения.

Что делают модели в отношении NLP и SpaCy?

import spacy
from spacy import displacy

nlp = spacy.load('en_core_web_sm')
doc = nlp(u'This is a sentence.')
displacy.serve(doc, style='dep', options={'compact': True})

person Jay Jung    schedule 15.09.2018    source источник


Ответы (3)


В руководстве по spaCy 101 есть соответствующий раздел — см. здесь:

Хотя некоторые функции spaCy работают независимо, другие требуют загрузки статистических моделей, которые позволяют spaCy предсказывать< /strong> лингвистические аннотации — например, является ли слово глаголом или существительным. В настоящее время spaCy предлагает статистические модели для 8 языков, которые можно установить как отдельные модули Python. Модели могут различаться по размеру, скорости, использованию памяти, точности и данным, которые они включают. Выбранная вами модель всегда зависит от вашего варианта использования и текстов, с которыми вы работаете. Для универсального варианта использования небольшие модели по умолчанию всегда являются хорошим началом. Как правило, они включают в себя следующие компоненты:

  • Двоичные веса для маркировщика частей речи, синтаксического анализатора зависимостей и распознавателя именованных сущностей для предсказания этих аннотаций в контексте.
  • Лексические статьи в словаре, то есть слова и их контекстно-независимые атрибуты, такие как форма или написание.
  • Векторы слов, то есть многомерные представления значений слов, позволяющие определить, насколько они похожи друг на друга.
  • Параметры конфигурации, такие как язык и параметры конвейера обработки, чтобы привести spaCy в правильное состояние при загрузке модели.
person Ines Montani    schedule 15.09.2018

Не уверен, в частности, в SpaCy, но в ML обычно относится к (математической?) модели вашего алгоритма обучения. Из Википедии:

[Machine learning] Evolved from the study of pattern recognition and 
computational learning theory in artificial intelligence, machine learning 
explores the study and construction of algorithms that can learn from and make 
predictions on data – such algorithms overcome following strictly static 
program instructions by making data-driven predictions or decisions, through 
building a ***model*** from sample inputs.

Например, в нейронных сетях модель будет состоять из весов и функций активации, а также того, как они объединены. Модель — это то, что вы обучаете, и после обучения модель делает ваши прогнозы. Это ваша программа машинного обучения или, по крайней мере, ее часть, если хотите.

person Emil Vatai    schedule 15.09.2018

Spacy не полностью независимо оснащается всеми моделями.

Хотя он независимо заботится о большинстве функций, но да, для случаев использования, требующих внимания для прогнозирования linguistic annotations, необходимо загружать дополнительные статистические модели в виде отдельных модулей.

Я полагаю, поскольку дополнительные модули подходят только для определенных случаев использования, возможно, именно поэтому команда spacy решила не идти в ногу со вспомогательными модулями spaCy.

person Vikas Yadav    schedule 15.09.2018
comment
Модели в основном представляют собой большие сгустки двоичных данных, поэтому они не могут поставляться с библиотекой — их сейчас тоже много, для разных языков. Библиотека включает в себя весь необходимый код, а подключаемые пакеты моделей предоставляют веса. Прогнозирование лингвистических аннотаций, таких как именованные сущности, также не статично, и вы почти всегда хотите обновить веса, чтобы они соответствовали вашему конкретному варианту использования. Вот почему spaCy уделяет особое внимание моделям как подключаемым пакетам данных, а не функциям, включенным в библиотеку. - person Ines Montani; 15.09.2018