The Apache OpenNLP library is a machine learning based toolkit for the processing of natural language text.
This sandbox of the toolkit is written mostly in Java and provides support for special NLP tasks, such as word sense disambiguation, coreference resolution, text summarization, and more! These tasks are usually required to build text processing services.
The goal of the OpenNLP sandbox is to provide extra components, potentially in an experimental stage.
OpenNLP sandbox code can be used both programmatically through its Java API, some components even from a terminal through its CLI.
For additional information, visit the OpenNLP Home Page
You can use OpenNLP with any language, demo models are provided here. The models are fully compatible with the latest release, they can be used for testing or getting started.
Note
Please train your own models for all other use cases.
Documentation, including JavaDocs, code usage and command-line interface examples are available here
You can also follow our mailing lists for news and updates.
Currently, the library has different packages:
caseeditor-corpus-server-plugin
: A set of Java classes for Apache UIMA as Eclipse plugin to integrate corpora.caseeditor-opennlp-plugin
: An OpenNLP plugin for Apache UIMA.corpus-server
: A multi-module component to create, search, remove, and serve multiple corpora.mahout-addon
: An addon for Apache Mahout.mallet-addon
: An addon for Mallet targeting topic modelling techniques.opennlp-coref
: A component to conduct co-reference resolution.modelbuilder-addon
: A set of classes to build models.nlp-utils
: A set of OpenNLP util classes.opennlp-dl
: An adapter component for deeplearning4j.opennlp-grpc
: An implementation of a gRPC backend for OpenNLP.opennlp-similarity
: A set of components that solve a number of text processing and search tasks, see further details in this README.md.opennlp-wsd
: A set of components that allow for word sense disambiguation.summarizer
: A set of classes providing text summarization.tagging-server
: A RESTful webservice to allow for NER, POS tagging, sentence detection and tokenization.tf-ner-poc
: An adapter component for Tensorflow, in an early proof-of-concept (poc) stage.wikinews-importer
: A set of classes to process and annotate text formatted in MediaWiki markup.
You can import the core toolkit directly from Maven, SBT or Gradle after you have build it locally:
<dependency>
<groupId>org.apache.opennlp</groupId>
<artifactId>opennlp-sandbox</artifactId>
<version>${opennlp.version}</version>
</dependency>
libraryDependencies += "org.apache.opennlp" % "opennlp-sandbox" % "${opennlp.version}"
compile group: "org.apache.opennlp", name: "opennlp-sandbox", version: "${opennlp.version}"
For more details please check our documentation
At least JDK 21 and Maven 3.3.9 are required to build the sandbox components.
After cloning the repository go into the destination directory and run:
mvn install
The Apache OpenNLP project is developed by volunteers and is always looking for new contributors to work on all parts of the project. Every contribution is welcome and needed to make it better. A contribution can be anything from a small documentation typo fix to a new component.
If you would like to get involved please follow the instructions here