Выпуск spaCy 1.0, библиотеки для обработки информации на естественном языке
Компания 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 обрабатывает текст как есть;
- Поддержка подключения механизмов глубинного машинного обучения.