2011-04-08 14 views
9

He utilizado LingPipe, Stanford's NER, RiTa y varias bibliotecas de similitud de frases para mis proyectos anteriores de Java que se centraban en el procesamiento de texto (pre) (indexación, etiquetado xml, detección de temas, etc.) de grandes cantidades de texto en inglés (alrededor 10,000 documentos sumando a> 1gb de texto). Tal vez soy un mal programador de Java, pero me encuentro escribiendo un montón de código y usando muchas bibliotecas cuando cambio a un corpus diferente. En general, siento que podría haber una mejor herramienta para el trabajo.Python's NLTK vs. Librerías Java relacionadas?

Supongo que mi pregunta es, ¿me beneficiaré de cambiar a Python y NLTK para recuperación de información/procesamiento de lenguaje? ¿O hay suficientes pros y contras para hacerlo muy subjetivo? ¿El NLTK es lo suficientemente intuitivo para ser aprendido rápidamente?

Me ensuciaría las manos, pero no tendré acceso a una máquina personal en los próximos días.

Respuesta

11

NLTK es bueno para el procesamiento de lenguaje natural. Lo he usado para mi proyecto de minería de datos. Puedes entrenar tu propio analizador. La curva de aprendizaje no es empinada.

NLTK tiene un enorme corpus para el entrenamiento de su analizador. También puede proporcionar su propio conjunto de datos, por ejemplo, un diario etiquetado como parte de un discurso.

Porque python es muy bueno para el procesamiento de texto, puede intentarlo. Además, tiene un en línea tutorial

No se olvide de usar la versión de Python 2.x. Prueba Python 2.6. NLTK puede no ser bueno con python 3.x

+0

Gracias por el consejo. Parece que la mayoría de las personas en el campo prefieren Python y NLTK, pero la gran cantidad de soluciones Java me hizo pensar que estaba abandonando un barco más boyante. – wnewport

7

Si ya entiende los conceptos básicos de NLP, creo que NLTK debería ser bastante fácil de recuperar. Tiene un montón de documentación, 2 libros, y he escrito una serie de artículos & tutoriales en streamhacker.com. Y si hay algo de los paquetes de Java que no desea perder, en teoría podría combinarlo con NLTK usando Jython (y quizás execnet).

También es posible que desee echar un vistazo a la biblioteca Pattern.

+0

Creo que te conozco ... ¡Jacob, cito un artículo tuyo en mi trabajo de graduación! – lamwaiman1988

+0

Genial, siempre es bueno ser citado :) – Jacob

+0

No se puede usar Jython porque no hay numpy en jython :(. – andychase