UIMA (Архитектура управления неструктурированной информацией) - это архитектура для создания масштабируемых приложений, которые анализируют и извлекают информацию из источников неструктурированных данных, таких как текст, аудио и видео. Apache UIMA - это среда Java с открытым исходным кодом, реализующая архитектуру UIMA. Приложения UIMA обычно используют методы обработки естественного языка (NLP) для выполнения анализа.

UIMA (Архитектура управления неструктурированной информацией) - это архитектура для создания масштабируемых приложений, которые анализируют и извлекают информацию из источников неструктурированных данных, таких как текст, аудио и видео. UIMA указан в стандарте OASIS. Apache UIMA - это среда Java с открытым исходным кодом, реализующая архитектуру UIMA. Apache UIMA основан на коде с открытым исходным кодом от IBM. UIMA была центральной частью компьютера Watson IBM, играющего в опасную игру. Приложения UIMA обычно используют методы обработки естественного языка (NLP) для выполнения анализа.

UIMA определяет приложения как механизмы обработки сбора (CPE). Каждый CPE включает в себя считыватель коллекции (CR), один или несколько механизмов анализа (AE) и, необязательно, потребителя CAS.

Коллекция - это хранилище данных для анализа, которое может принимать различные формы, включая таблицы РСУБД, базу данных без схемы или набор файлов в файловой системе. Первым компонентом CPE является Читатель Коллекции, который считывает части данных из Коллекции и упаковывает части в структуру данных, называемую Общей структурой анализа (CAS). Коллекции могут храниться разными способами, включая таблицы РСУБД, базы данных без схемы и файлы в файловой системе.

CR передает объекты CAS первому механизму анализа в конвейере. Каждый AE анализирует информационный артефакт, упакованный в CAS, строит аннотации из результатов анализа (например, части речи для слов или фраз) и добавляет эти аннотации в CAS, прежде чем передавать их ниже по потоку. В конце конвейера потребитель CAS делает что-то полезное с аннотациями, например записывает их в базу данных или файлы, или добавляет их в индекс семантического поиска. Начиная с версии 2 UIMA, документация Apache UIMA рекомендует использовать модули анализа вместо потребителей CAS, поскольку AE обладают всеми необходимыми функциями для использования объектов CAS.

Каждый компонент UIMA имеет дескриптор в XML, который определяет его поведение и параметры. Дескриптор для механизма обработки коллекций обращается к дескрипторам каждого из его компонентов и при необходимости отменяет их настройки.

UIMA поддерживает условное управление потоком, так что аннотация, сделанная в CAS, может определить, какую ветвь конвейера он берет вниз по потоку.

UIMA Asynchronous Scaleout - это надстройка, которая позволяет приложению UIMA запускать множество экземпляров модуля анализа для поддержки более высокой пропускной способности.