El procesamiento del lenguaje natural (NLP) cada día es más popular. NLP es un campo de la inteligencia artificial destinado a comprender y extraer información importante del texto. Las tareas principales incluyen el reconocimiento y la generación de voz, el análisis de textos, el análisis de sentimientos, la traducción automática, etc.
Existen muchas herramientas y librerías diseñadas para resolver problemas de NLP. En este post se describe y comparan diferentes bibliotecas de procesamiento de lenguaje natural.
- NLTK (Natural Language Toolkit) se utiliza para tareas tales como tokenización, lemmatización, stemming, parseo, etiquetado POS, etc. Esta biblioteca tiene herramientas para casi todas las tareas de NLP.
- Spacy es el principal competidor de la NLTK. Estas dos bibliotecas pueden utilizarse para las mismas tareas.
- Scikit-learn ofrece una gran biblioteca para el aprendizaje automático. Las herramientas para el preprocesamiento de textos también se presentan aquí.
- Gensim es el paquete para el modelado de espacios temáticos y vectoriales, similitud de documentos.
- Pattern es una biblioteca de patrones para servir como módulo de minería web. Por lo tanto, soporta la NLP sólo como una tarea secundaria.
- Polyglot es otro paquete de Python para NLP. No es muy popular, pero también se puede utilizar para una amplia gama de tareas de NLP.
- TextBlob: TextBlob simplifica el procesamiento de texto proporcionando una interfaz intuitiva a NLTK. Posee una suave curva de aprendizaje al mismo tiempo que cuenta con una sorprendente cantidad de funcionalidades.
- Stanford CoreNLP: Paquete desarrollado por la universidad de Stanford, para muchos constituye el estado del arte sobre las técnicas tradicionales de Procesamiento del Lenguaje Natural. Si bien esta escrita en Java, posee una interface con Python.
- pyLDAvis: Esta librería está diseñado para ayudar a los usuarios a interpretar los temas que surgen de un análisis de tópicos. Nos permite visualizar en forma muy sencilla cada uno de los temas incluidos en el texto.
A continuación, se muestra una tabla comparativa de algunas de estas librerías con detalle de sus pros y contras:
Posts de fuentes utilizadas para el post: https://www.datasciencecentral.com/profiles/blogs/comparison-of-top-6-python-nlp-libraries
https://relopezbriega.github.io/blog/2017/09/23/procesamiento-del-lenguaje-natural-con-python/