Apache UIMA (Unstructured Information Management Architecture) is a framework for building applications that analyse unstructured information, including text, audio and video. It provides a common architecture for combining independently developed analysis components into processing workflows.
The framework is particularly useful when an application needs to apply several stages of analysis to the same document. Rather than requiring every component to manage its own representation of the data, UIMA provides a shared structure in which annotations and associated information can be stored and accessed.
Apache UIMA does not provide a complete collection of linguistic analysis algorithms itself. Instead, it supplies the infrastructure through which developers can create, connect and execute their own components or integrate those supplied by other projects.
Its Java SDK includes facilities for defining analysis pipelines, describing annotation types and coordinating the processing of documents. Companion tooling simplifies the development of specialised text-analysis applications.
This is free and open source software.
Key Features
- Common Analysis Structure (CAS) for representing unstructured content and its annotations.
- Configurable type systems define the structure and attributes of analysis results.
- Supports reusable analysis engines that process documents and add annotations.
- Allows multiple analysis engines to be combined into processing pipelines.
- Provides collection readers and consumers for handling input and output.
- Supports annotations identifying specific spans of text and their associated attributes.
- Offers Java APIs for creating, accessing, querying and modifying analysis results.
- Supports serialisation and deserialisation of CAS data in multiple formats.
- Provides configurable execution of analysis components, including parallel processing.
- Supports component descriptors for defining processing resources and their configuration.
- Includes uimaFIT for annotation-based configuration and programmatic creation of processing pipelines.
- Provides facilities for inspecting and debugging analysis results.
- Supports integration with the Apache UIMA Ruta rule-based annotation framework.
- Allows third-party analysis engines and domain-specific processing components to be incorporated into applications.
- Cross-platform support – runs on Linux, macOS, and Windows.
Website: uima.apache.org
Support:
Developer: The Apache Software Foundation
License: Apache License 2.0
UIMA is written in Java. Learn Java with our recommended free books and free tutorials.
Related Software
| Natural Language Processing | |
|---|---|
| PyTorch-Transformers | Library of state-of-the-art pre-trained models |
| Natural Language Toolkit | Suite of open source Python modules, data sets and tutorials |
| Stanford CoreNLP | Extensible annotation-based NLP pipeline |
| spaCy | Industrial strength natural language processing |
| scikit-learn | Machine learning library for Python |
| Gensim | Python-based vector space modeling and topic modeling toolkit |
| flair | Simple framework for state-of-the-art NLP |
| Apache OpenNLP | Machine learning based toolkit |
| DL4J | Deploy and train deep learning models |
| Apache Lucene | Full-featured information retrieval software library |
| UIMA | Implementation of the UIMA specification |
| tidytext | Text mining using dplyr, ggplot2, and other tidy tools |
| text2vec | Framework with API for text analysis and NLP |
| quanteda | R package for Quantitative Analysis of Textual Data |
| Moses | Statistical machine translation system |
Read our verdict in the software roundup.
| Java Natural Language Processing Tools | |
|---|---|
| CoreNLP | Annotation-based NLP pipeline that provides core natural language analysis |
| OpenNLP | Machine learning based toolkit |
| DL4J | Deploy and train deep learning models |
| Lucene | High-performance, full-featured information retrieval software library |
| UIMA | Open source implementation of the UIMA specification |
| Spark NLP | Scalable library for natural language processing pipelines |
| Tika | Content analysis toolkit |
| processors | Toolkit for linguistic analysis and information extraction |
| MALLET | Statistical natural language processing, document classification and more |
| Apache cTAKES | Extracts clinical information from unstructured medical text |
| GATE | Full-lifecycle solution for a broad range of NLP tasks |
Read our verdict in the software roundup.
LinuxLinks helps you discover the best free and open source software for Linux. Explore our extensive collection of recommended applications, including alternatives to popular proprietary software.We also publish software reviews, Linux tutorials, hardware reviews, free programming books and articles covering the wider open source community. Browse our Linux resources to discover more. Know a useful free and open source Linux application we haven't covered? Suggest a program for inclusion. Has your software been featured on LinuxLinks? Display one of our Featured on LinuxLinks badges on your website or GitHub README. |


Please read our Comment Policy before commenting.