Apache OpenNLP
# Apache OpenNLP

La biblioteca Apache OpenNLP es un kit de herramientas de aprendizaje automático en Java para el procesamiento de texto en lenguaje natural en el área de la lingüística computacional o NLP.

Soporta las tareas más comunes de NLP como reconocimiento de idiomas, tokenización, segmentación de frases, etiquetado de partes de la oración, extracción de entidades con nombre, análisis de fragmentos, análisis sintáctico y resolución de correferencias. Estas funciones son claves para desarrollar servicios avanzados de procesamiento de texto. Utiliza la licencia libre de Apache Software Foundation. El propósito de OpenNLP es crear un conjunto de herramientas avanzadas para las tareas mencionadas y ofrecer una gama de modelos pre construidos para varios idiomas.

Los componentes incluidos posibilitan realizar la tarea correspondiente de procesamiento de lenguaje, entrenar un modelo y, frecuentemente, evaluar un modelo también. Se puede interactuar con cada uno de estos componentes mediante su interfaz de programación de aplicaciones (API). Adicionalmente, cada uno es accesible a través de la línea de comandos (CLI) para simplificar los experimentos y la formación.

## Detalles

* Identificación de idiomas: El "LanguageDetector" de OpenNLP utiliza un modelo entrenado. OpenNLP proporciona el modelo ya entrenado "langdetect-183.bin", que puede identificar 103 idiomas.
* Detección de frases: El "SentenceDetector" determina si un punto indica el final de una oración o tiene otro significado. También requiere un modelo entrenado. OpenNLP ofrece modelos para varios idiomas, por ejemplo, "de-sent.bin" para la detección de oraciones en textos en alemán.
* Tokenización: El tokenizador descompone un texto en tokens, que suelen ser palabras, signos de puntuación, números, etc.
* Etiquetado de partes del discurso: OpenNLP dispone de una variedad de modelos preentrenados para diferentes idiomas (alemán, inglés, español, portugués, danés, etc.). Estos modelos permiten etiquetar automáticamente un corpus de texto en uno de estos idiomas con las etiquetas correspondientes.
* Extracción de entidades con nombre: El "TokenNameFinder" identifica objetos y números nombrados en el texto. Para reconocer entidades, se necesita un modelo específico, que depende del idioma y del tipo de entidad para el que ha sido entrenado. OpenNLP ofrece un conjunto de modelos previamente entrenados, desarrollados a partir de varios corpus disponibles gratuitamente, que pueden descargarse desde la página de descargas de modelos.

## Enlaces web

* Sitio web oficial (inglés)
* TutorialKart: Tutorial de Apache OpenNLP (inglés)
