Estoy buscando una buena fuente abierta POS Tagger en Java. Esto es lo que se me ocurrió hasta ahora.¿Qué es una buena biblioteca de Java para el etiquetado de partes de voz?
Alguien tiene alguna recomendación?
Estoy buscando una buena fuente abierta POS Tagger en Java. Esto es lo que se me ocurrió hasta ahora.¿Qué es una buena biblioteca de Java para el etiquetado de partes de voz?
Alguien tiene alguna recomendación?
He usado OpenNLP con buenos resultados. También puede consultar MorphAdorner.
He usado tanto LingPipe como el Tag Tagger de Stanford. El último es un marcador de posición state-of-the-art, pero, desde mi experiencia, es demasiado lento (aunque proporcionan modelos menos precisos, que son razonablemente rápidos). Por supuesto, siempre depende de lo que esté tratando de lograr, y siempre habrá una compensación entre la velocidad y la precisión.
También he usado una vez un software NER basado en LBJ y, aunque era bastante preciso, el código fuente era un completo desastre. Tanto LingPipe como la fuente de Stanford están muy limpias y bien documentadas.
También puede consultar LTAG-spinal. Todavía no lo he usado, pero a partir de la descripción del algoritmo y de la precisión de la lista, parece mucho mejor que las alternativas que tiene hasta ahora.
Espero que ayude.
¿Está buscando etiquetar POS en un dominio específico? La mayoría de los etiquetadores de uso general están entrenados en el texto de las noticias. Por lo general, no funcionan bien cuando los usa en dominios específicos (como el texto biomédico). Hay otros etiquetadores específicamente entrenados para dominios tales como dTagger (java) para texto biomédico.
Para texto de noticias, Adwait Ratnaparkhi's MXPOST es muy bueno y es el que recomendaría.
Otras implementaciones de Java incluyen:
OpenNLP y Lingpipe como publicado por los otros carteles también son bastante decentes.
Se puede encontrar información sobre el estado del arte en el etiquetado POS here. Como puede ver, LTAG-Spinal (también mencionado por otro afiche) se clasifica mejor a partir de ahora, pero la variación entre los distintos rotuladores no es mucha. No he usado LTAG yo mismo.
También tenga en cuenta que el rendimiento de referencia para el etiquetado POS es aproximadamente del 90%. La línea de base significa - (a) etiquetar cada palabra por la etiqueta POS más frecuente de un léxico, y (b) etiquetar cada palabra desconocida como sustantivo.
Su enlace MXPOST es a un sitio FTP con un archivo comprimido. Busqué y no pude encontrar mucho sobre MXPOST aparte de ser la tesis de CS de un tipo. ¿Estoy en lo correcto al asumir que no hay mucho apoyo de la comunidad para MXPOST? – Glenn
@Glenn Sí. Aunque OPENNLP parece ser una implementación equivalente de MXPOST. Cito del sitio OPENNLP: 1. * Si está familiarizado con la selección de características para la implementación maxent de Adwait Ratnaparkhi, no debería tener problemas ya que nuestra implementación [del etiquetador POS] usa características de la misma manera que la suya. * y 2. * Su introducción [de Adwait] para maxent de la PNL y la disertación se lo que realmente hizo opennlp.maxent y nuestros componentes Maxent Grok (POS tagger, detector de fin de frase, tokenizer, el nombre del buscador) posibles! * Parece que OpenNLP tiene una comunidad sourceforge activa. – hashable
Al final, fue LingPipe lo que funcionó mejor para mí. Fue el mejor en términos de poder insertar fácilmente dentro de otro sistema. Hizo un buen trabajo en el etiquetado POS también. – Glenn
El mejor modelo de Stanford es moderadamente lento. Pero, en realidad, la LTAG-espinal es 3 veces más lenta nuevamente e insignificantemente mejor. Para uso general, recomendamos el modelo left3words: el etiquetado con este es de velocidad similar o mejor que con el marcador de Ratnaparkhi o OpenNLP, pero es más preciso que cualquiera de los dos. Encuentre [más información] (http://nlp.stanford.edu/software/pos-tagger-faq.shtml#h) en las preguntas frecuentes del etiquetador de TPV Stanford. –
No puedo encontrar ninguna comparación con OpenNlp allí (solo con otros rotuladores) - ¿estoy pasando por alto algo? – benroth
@ChristopherManning Acabo de hacer una validación cruzada de 10 veces usando Penn Treebank. parece que left3words es ligeramente peor que opennlp. Pero bidireccional es de hecho mejor. ¿Podría decirnos más sobre los datos en los que hizo la comparación? ¡Gracias! –