Spark NLP

Spark NLP — это библиотека обработки естественного языка на Scala, Python и Java с открытым исходным кодом; построена на основе Apache Spark и Spark ML, а также применяет методы глубокого обучения фреймворка TensorFlow [1]. Библиотека предоставляет простой API для интеграции с ML Pipelines. Коммерчески поддерживается John Snow Labs [2].

Для чего используется

Цель Spark NLP обеспечить API c конвейерами обработки естественного языка, которые реализует самые современные и передовые технологии в этой области с поддержкой масшатбируемости и внедрения в производство.

Библиотека предлагает готовые предобученные модели нейронных сетей, конвейеры и векторные представления слов, а также поддерживается обучение пользовательских моделей. Готовые модели включают: ELMo, BERT, RoBERTa, ALBERT, XLNet, Ernie, ULMFiT, OpenAI transformer. В том числе на русском и украинском языках [3].

Spark NLP направлен в первую очередь на внедрение моделей в производство. Этим он сходен с другой библиотекой обработки данных на естественном языке — spaCy. Тем не менее, согласно данным O`Reilly библиотека Spark NLP пользуется большим спросом, чем spaCy [4].

Главные особенности Spark NLP

В библиотеке используется концепция конвейера: упорядоченный набор текстовых аннотаторов. Стандартные аннотаторы включают в себя:

  • Токенизатор
  • Нормализатор
  • Стеммер
  • Лемматизатор
  • Извлечение сущностей
  • Извлечение дат
  • Часть речевого теггера
  • Признание именованных сущностей
  • Обнаружение границы предложения
  • Анализ тональности текстов (Sentiment analysis)
  • Проверки орфографии
  • Парсинг на основе регулярных выражений и контекстной грамматики
  • Разметка частей речи
  • Классификация (многоклассовая, многоязычная) документов

Также в Spark NLP входит более 1100 предобученных конвейеров и моделей на более чем 192 языках [3].

Spark OCR

Spark OCR — еще одно коммерческое расширение библиотеки для оптического распознавания символов (optical character recognition) из изображений, отсканированных документов PDF и файлов DICOM. Это программная библиотека, созданная на основе Apache Spark, которая предлагает следующие возможности:

  • Алгоритмы предварительной обработки изображений для улучшения результатов распознавания
    • Адаптивная установка пороговых значений и шумоподавлений
    • Обнаружение и исправление отклонений
    • Адаптивное масштабирование
    • Анализ макета и детектирование областей
    • Изменение размеров изображения
    • Удаление объектов на заднем фоне
  • Распознавание текста путем объединения конвейеров NLP и OCR:
    • Извлечение текста из изображений (оптическое распознавание символов)
    • Извлечение данных из таблиц
    • Распознавание и выделение именованных объектов в PDF-документах
    • Маскировка чувствительного текста с целью удаления конфедециальной информации
  • Генерация вывода в разных форматах:
    • PDF, изображения или файлы DICOM с аннотированными или маркированными объектами
    • Цифровой текст для последующей обработки в библиотеке
    • Форматы структурированных данных (JSON и CSV) в виде файлов или Spark DataFrame

Spark NLP в медицине

В библиотеке присутствует расширение для майнинга медицинских текстов. Предоставляются аннотаторы, конвейеры, модели и векторные представления в области медицины и здравоохранения. Так, Spark NLP предлагает доступ к нескольким клиническим и биомедицинским преобразователям: JSL-BERT-Clinical, BioBERT, ClinicalBERT, GloVe-Med, GloVe-ICD-O. Включено более 50 предварительно обученных моделей здравоохранения, которые могут распознавать следующие сущности:

  • Клинические — вспомогательные признаки, симптомы, методы лечения, процедуры, тесты, лаборатории
  • Препараты — название, дозировка, сила, способ действия, продолжительность, частота
  • Факторы риска — курение, ожирение, диабет, гипертония, злоупотребление психоактивными веществами
  • Анатомия — орган, подгруппа, клетка, структура организма, ткань, ген, химикат
  • Демографические данные — возраст, пол, рост, вес, рас, этническая принадлежность, семейное положение, показатели жизнедеятельности
  • Конфиденциальные данные — ФИО, адреса, телефоны, электронная почта, даты

Читайте также:

Источники:

  1. https://github.com/JohnSnowLabs/
  2. https://nlp.johnsnowlabs.com/
  3. https://github.com/JohnSnowLabs/nlp-models
  4. https://www.oreilly.com/content/comparing-production-grade-nlp-libraries-accuracy-performance-and-scalability/

Поиск по сайту