apache/opennlp

Apache OpenNLP

What it solves

Apache OpenNLP provides a comprehensive set of machine learning-based tools for processing natural language text. It simplifies the creation of advanced text processing services by providing a mature toolkit for common NLP tasks that would otherwise require building complex models from scratch.

How it works

Written entirely in Java, the library implements various machine learning classifiers—including Maximum Entropy, Perceptron, Naive Bayes, and Support Vector Machines (SVM)—to analyze text. It can be used programmatically via a Java API or through a command-line interface (CLI). For modern deep learning needs, it includes an adapter for ONNX models with optional GPU acceleration. The toolkit is modular, allowing users to import only the specific components they need (e.g., tokenization or named entity extraction) to keep the application footprint small.

Who it’s for

It is designed for Java developers building text-processing applications, as well as data engineers integrating NLP capabilities into distributed streaming data pipelines like Apache Flink, Apache NiFi, or Apache Spark.

Highlights

  • Broad Task Support: Handles tokenization, sentence segmentation, part-of-speech tagging, named entity extraction, chunking, parsing, coreference resolution, and language detection.
  • Multi-language Support: Includes stopword filtering for 11 languages and provides pre-built models for various languages.
  • Flexible Deployment: Supports both API and CLI usage, and integrates with ONNX for deep learning models.
  • Enterprise Ready: Built for stability and scalability, with thread-safe core classes in version 3.0.0+.

Related

  • Project
  • Project
  • Project
  • Project
  • Project