В этом гостевом посте Мазияр Панахи и Дэвид Талби предоставляют памятку по выбору библиотек НЛП с открытым исходным кодом.

Что делают библиотеки обработки естественного языка?

Обработка естественного языка (NLP) необходима для растущего числа приложений ИИ. Извлечение точной информации из свободного текста является обязательным, если вы создаете чат-бота, выполняете поиск в базе данных патентов, сопоставляете пациентов с клиническими испытаниями, оцениваете обслуживание клиентов или звонки по продажам, извлекаете факты из финансовых отчетов или решаете любой из этих 44 вариантов использования. по 17 отраслям».

Чтобы построить такие системы, ваше программное обеспечение должно понимать словарный запас, грамматику и семантику человеческого языка текста. Ему нужно знать, как составлены предложения, чтобы точка в «Это $7,25 в час» не начинала новое предложение. Ему нужно знать, как спрягаются глаголы, чтобы сделать вывод, произошло ли нарушение контракта, произойдет ли оно или может произойти. Нужно знать, как выражается отрицание — чтобы понять, диабетик у пациента или нет. Ему даже нужно понимать социальный контекст — чтобы понять, является ли сообщение «проваливай» угрозой насилия или дружеской перепалкой между приятелями.

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

Хорошая библиотека НЛП также должна реализовывать новейшие и лучшие алгоритмы и модели, а это непросто, пока НЛП переживает свой момент ImageNet, а современные модели обгоняют дважды в месяц. Он должен иметь простой в освоении API, быть доступным на вашем любимом языке программирования, поддерживать языки общения, для которых он вам нужен, быть очень быстрым и масштабироваться до больших наборов данных, включая потоковые и распределенные варианты использования.

Мы упоминали, что он также должен быть бесплатным и с открытым исходным кодом?

Шорт-лист НЛП с открытым исходным кодом

Этот пост призван помочь вам выбрать правильную библиотеку НЛП с открытым исходным кодом для вашего следующего проекта. Мы предполагаем, что вам необходимо создать программное обеспечение производственного уровня. Если вы занимаетесь исследованиями, отличные библиотеки, такие как Allen NLP и NLP Architect, призваны облегчить экспериментирование, хотя и за счет полноты функций, скорости и надежности.

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

Очевидно, что в общей области НЛП существует гораздо больше библиотек, но здесь мы сосредоточимся на библиотеках общего назначения, а не на тех, которые предназначены для конкретных случаев использования. Например, gensim — это популярная библиотека НЛП, которая изначально была создана для тематического моделирования и не может использоваться для построения полного конвейера НЛП.

В частности, в наш краткий список входят только библиотеки, которые предоставляют этот основной набор функций:

  • Обнаружение предложения
  • Токенизация
  • Стемминг
  • лемматизация
  • Часть речи (POS)
  • Распознавание именованных объектов (NER)
  • Анализатор зависимостей
  • Обучение предметно-ориентированных моделей

Они также предоставляют некоторые или все из следующих функций:

  • Проверка орфографии
  • Анализ настроений
  • Сопоставитель текста
  • Сопоставитель даты
  • Чанкинг
  • Другие особенности

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

Шпаргалка сравнения функциональности

Вот как сравниваются функциональные возможности самых популярных библиотек НЛП:

Вот сравнение технического функционала — поддержки современных вычислительных платформ и популярных языков программирования:

Лицензирование и поддержка

Открытый исходный код не везде означает одно и то же — например, Стэнфордскому CoreNLP требуется платная лицензия для коммерческого использования, и эта лицензия по-прежнему не обеспечивает коммерческую поддержку с определенными соглашениями об уровне обслуживания. Команды, стремящиеся создать коммерческие решения NLP производственного уровня, нуждаются как в активном сообществе, которое продолжает улучшать базовую библиотеку, так и в возможности платной поддержки на уровне предприятия.

Вот как библиотеки сравниваются по лицензированию и поддержке:

Стэнфорд продает коммерческие лицензии на CoreNLP, необходимые для коммерческого использования библиотеки. Коммерческие лицензии и поддержка spaCy предоставляются компанией explosion.ai, которая также лицензирует prodigy для быстрых циклов аннотирования и итерации и библиотеки машинного обучения thinc. John Snow Labs предлагает Spark NLP Enterprise, который включает в себя адаптацию, круглосуточную поддержку и расширенные функции, такие как разрешение сущностей, определение состояния утверждения и деидентификация. Он также предоставляет Spark NLP для здравоохранения, который включает в себя набор современных моделей и наборов данных для биомедицинского НЛП, ориентированных на здравоохранение.

Предварительно обученные модели

Хотя большинство библиотек НЛП поддерживают обучение новых моделей пользователями, важно, чтобы любая библиотека НЛП поставлялась с существующими предварительно обученными высококачественными моделями. Однако большинство библиотек NLP поддерживают только общие предварительно обученные модели (POS, NER и т. д.). Некоторые не разрешают использовать свои предварительно обученные модели в коммерческих целях из-за того, как модели лицензируются.

Вот общие предварительно обученные модели, которые поставляются в комплекте с каждой из библиотек:

Вывод

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

Помимо функциональности, вашими следующими критериями являются сравнение точности, скорости и масштабируемости. Удачи вам в ваших начинаниях НЛП!

Первоначально опубликовано на blog.dominodatalab.com.