Облегченные фреймворки НЛП для Python

В данный момент я использую spaCy для определения семантического сходства между двумя строками. Он работает хорошо и требует всего пару строк кода, а вся работа выполняется за кулисами:

>>> import spacy
>>> nlp = spacy.load('en')
>>> nlp('string').similarity(nlp('another string'))
0.796

Однако для этого требуется ~ 600 МБ данных модуля. Поскольку я размещаюсь на Heroku, это намного превышает доступный размер слагов. Я рассматриваю другие альтернативы хостингу, но есть ли другой фреймворк, который я мог бы использовать? Мне не нужна «промышленная сила» spacy, но другие фреймворки, похоже, работают не так хорошо/не так быстро реализуются.


person ayuopy    schedule 16.03.2017    source источник
comment
В документе spaCy показан вариант загрузки только некоторых языковых моделей. В вашем случае вас может заинтересовать загрузка только векторов - через python -m spacy.en.download glove. Если это само по себе стоит вам 600 МБ, то я не уверен, есть ли для вас какая-либо альтернатива, поскольку большая часть этого хранилища занята векторами для почти 13 000 слов, хранящихся в spaCy, и любое меньшее количество данных приведет к худшей точности.   -  person spicypumpkin    schedule 16.03.2017
comment
Он работает с меньшей моделью парсера, но да, это все еще около 600 МБ. Я думаю, что на данный момент мне придется просто использовать сравнение нечетких строк, которое, очевидно, не отражает настроения, но это лучше, чем ничего. Я также рассмотрю хостинг на VPS.   -  person ayuopy    schedule 16.03.2017
comment
Похоже, вы используете только векторы слов, почему бы вам не переключиться на меньший размер встраивания (пространственная перчатка по умолчанию имеет размер 300), также вы можете использовать меньший словарный запас в зависимости от вашего использования.   -  person Eyal Shulman    schedule 18.03.2017


Ответы (1)


Модели spaCy, начиная с версии 1.7.0, можно устанавливать как пакеты Python. Это означает, что они являются компонентом вашего приложения, как и любой другой модуль.

Это было недавно представлено, 20 марта 2017 года, модель на 50 МБ:

en_core_web_sm 50 МБ Словарь, синтаксис, сущности, векторы слов

У вас есть более подробная информация на веб-странице https://spacy.io/docs/usage/models.

person David Batista    schedule 22.03.2017