stanford software framework edu java python nlp

software - Java o Python para procesamiento de lenguaje natural



nlp stanford framework (2)

Java vs Python para NLP es en gran medida una preferencia o necesidad. Dependiendo de la compañía / proyectos, necesitará usar uno u otro y, a menudo, no hay muchas opciones a menos que esté encabezando un proyecto.

Además de NLTK (www.nltk.org), en realidad hay otras bibliotecas para el procesamiento de texto en python :

(para obtener más información, consulte https://pypi.python.org/pypi?%3Aaction=search&term=natural+language+processing&submit=search )

Para Java , hay toneladas de otras, pero aquí hay otra lista:

Esta es una buena comparación para el procesamiento de cadenas básicas, consulte http://nltk.googlecode.com/svn/trunk/doc/howto/nlp-python.html

Una comparación útil de GATE vs UIMA vs OpenNLP, consulte https://www.assembla.com/spaces/extraction-of-cost-data/wiki/Gate-vs-UIMA-vs-OpenNLP?version=4

Si no está seguro, cuál es el idioma para la PNL, personalmente le digo: "cualquier idioma que le proporcione el análisis / resultado deseado", consulte ¿Qué idioma o herramientas se deben aprender para el procesamiento del lenguaje natural?

Aquí hay una muy reciente (2017) de herramientas NLP: https://github.com/alvations/awesome-community-curated-nlp

Una lista anterior de herramientas de PNL (2013): http://web.archive.org/web/20130703190201/http://yauhenklimovich.wordpress.com/2013/05/20/tools-nlp

Además de las herramientas de procesamiento de lenguaje, necesitaría herramientas de machine learning para incorporar en las tuberías de NLP .

Existe un amplio rango en Python y Java , y una vez más depende de las preferencias y si las bibliotecas son lo suficientemente amigables para el usuario:

Bibliotecas de Machine Learning en python:

(para obtener más información, consulte https://pypi.python.org/pypi?%3Aaction=search&term=machine+learning&submit=search )

Con el reciente tsunami de aprendizaje profundo (2015) en NLP , posiblemente podría considerar: https://en.wikipedia.org/wiki/Comparison_of_deep_learning_software

Evitaré enumerar las herramientas de aprendizaje profundo por no favoritismo / neutralidad.

Otras preguntas sobre Stackoverflow que también solicitaron herramientas NLP / ML:

Me gustaría saber qué lenguaje de programación es mejor para el procesamiento del lenguaje natural. Java o Python ? He encontrado muchas preguntas y respuestas al respecto. Pero todavía estoy perdido al elegir cuál usar.

Y quiero saber qué biblioteca NLP usar para Java, ya que hay muchas bibliotecas (LingPipe, GATE, OpenNLP, StandfordNLP). Para Python, la mayoría de los programadores recomiendan NLTK.

Pero si tengo que hacer algo de procesamiento de texto o extracción de información a partir de datos no estructurados (solo texto en inglés sin formato) para obtener información útil, ¿cuál es la mejor opción? Java o Python? Biblioteca adecuada?

Actualizado

Lo que quiero hacer es extraer información útil del producto a partir de datos no estructurados (por ejemplo, los usuarios hacen diferentes formas de publicidad sobre teléfonos móviles o portátiles con un inglés no muy estándar)


La pregunta es muy abierta. Dicho esto, en lugar de elegir uno, a continuación se muestra una comparación según el idioma que desee utilizar (ya que hay buenas bibliotecas disponibles en ambos idiomas).

Pitón

En términos de Python, el primer lugar que debe considerar es el Python Natural Language Toolkit . Como señalan en su descripción, NLTK es una plataforma líder para construir programas de Python para trabajar con datos de lenguaje humano. Proporciona interfaces fáciles de usar a más de 50 recursos corporales y léxicos como WordNet, junto con un conjunto de bibliotecas de procesamiento de textos para clasificación, tokenización, derivación, etiquetado, análisis sintáctico y razonamiento semántico.

También hay algunos códigos excelentes que puede buscar originados en el proyecto de Google Native Language Toolkit basado en Python. Puede encontrar un enlace a ese código aquí en GitHub .

Java

El primer lugar para buscar sería el Grupo de procesamiento de lenguaje natural de Stanford. Todo el software que se distribuye allí está escrito en Java. Todas las distribuciones recientes requieren Oracle Java 6+ o OpenJDK 7+. Los paquetes de distribución incluyen componentes para la invocación de línea de comandos, archivos jar, una API de Java y un código fuente.

Otra gran opción que se ve en muchos entornos de aprendizaje automático aquí (opción general) es Weka . Weka es una colección de algoritmos de aprendizaje automático para tareas de minería de datos. Los algoritmos se pueden aplicar directamente a un conjunto de datos o llamar desde su propio código Java. Weka contiene herramientas para el preprocesamiento de datos, clasificación, regresión, clustering, reglas de asociación y visualización. También es adecuado para desarrollar nuevos esquemas de aprendizaje automático.