Компания Explosion AI, специализирующаяся на разработках, связанных с искусственным интеллектом и машинным обучением, представила первый значительный выпуск свободной библиотеки spaCy, в которой воплощены в рабочий код результаты последних достижений в области распознавания текста на естественном языке (NLP, Natural Language Processing). Библиотека написана на языке Cython (расширение Python, позволяющее использовать вставки на языке Си), совместима с CPython 2.6+/3.3+ на платформах Unix/Linux, macOS и Windows, и распространяется под лицензией MIT. Языковые модели пока подготовлены только для английского и немецкого языков (размер каждой модели около 500Мб).

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

По производительности spaCy значительно превосходит проекты ClearNLP, CoreNLP, MATE и Turbo, и тратит на обработку документа менее 50 мс. Ценой высокой скорости является незначительное снижение точности - spaCy отстаёт по точности на 2% от наиболее эффективной альтернативной релизации, но работает на порядок быстрее. Например, spaCy при точности в 91.8% выполняет обработку 13963 слов в секунду, в то время как библиотека MATE при точности в 92.5% обрабатывает 550 слов в секунду, а библиотека Turbo при точности в 92.4% обрабатывает 349 слов в секунду.

Основные возможности spaCy:

  • Разбор зависимостей на основе меток (точность 91.8% в тесте OntoNotes 5);
  • Распознавание именованных сущностей (точность 82.6% в тесте OntoNotes 5);
  • Пометка частей речи (точность 87.1% в тесте OntoNotes 5);
  • Легко используемые векторы расстановки слов;
  • Присвоение всем строкам цифровых идентификаторов;
  • Экспорт массивов данных для обработки в библиотеке NumPy;
  • Сохранение выравнивания как в исходной строке, что упрощает расчёт разметки;
  • Наличие простых орфографических функций;
  • Отсутствие препроцессора, spaCy обрабатывает текст как есть;
  • Поддержка подключения механизмов глубинного машинного обучения.


Источник: http://www.opennet.ru/opennews/art.shtml?num=45351