¿Existe una buena biblioteca de procesamiento del lenguaje natural? [Cerrado]

90

Necesito implementar algo de PNL en mi módulo actual. Estoy buscando una buena biblioteca que pueda ayudarme aquí. Me encontré con 'LingPipe' pero no pude seguir completamente cómo usarlo.
Básicamente, necesitamos implementar una función en la que la aplicación pueda descifrar las instrucciones del cliente (instrucciones de entrega) escritas en inglés sencillo. P.ej:

  • Recogerá mañana a las 12:00 del mediodía
  • Solicitar entrega después del 10 de junio
  • No envíe antes del miércoles
  • Agregue 10 unidades más de XYZ al pedido
Vini
fuente

Respuestas:

78

LingPipe es muy agradable y está bien documentado. También puedes echar un vistazo a:

El último específicamente podría ser de su interés, aunque no sé si hay implementaciones de Java disponibles (y tal vez eso sea demasiado para su problema de todos modos :-)

La idea de Paul de usar un DSL probablemente sea más fácil y rápida de implementar y más confiable de usar para sus clientes. Yo también recomendaría investigar eso primero.

n3rd
fuente
1
Presenté mi informe basado en los aportes que reuní de este foro y otros lugares en la red. También sugerí las otras opciones que sugirió y el Biz ha decidido mantener esto en espera (ahora comienza la I + D para encontrar el mejor candidato posible).
Vini
1
Si compara LingPipe y otros que enumeró, ¿cuál preferiría? Pregunto esto no específico solo para la pregunta de @ Winnie, lo hago para fines generales.
kamaci
1
Echa un vistazo a MALLET: mallet.cs.umass.edu
Samik R
11

Creo que si elige usar NLP o no, podría depender de los requisitos específicos de su sistema. ¿Es un requisito que se acepte el inglés de forma libre o solo se aceptará un cierto conjunto de instrucciones? Podría ser más fácil crear un lenguaje específico de dominio que admita lo que los usuarios necesitan transmitir que realizar un análisis semántico completo de texto de forma libre.

En el espacio de Java, Groovy tiene cierto soporte para construir DSL .

Paul Morie
fuente
Aquí hay algunas líneas del documento de requisitos: '.. y el usuario debería poder ingresar una nota o una instrucción especial en inglés sencillo. Luego, el sistema debe analizar la instrucción del usuario y completar los campos relevantes (si los hay) del pedido con los valores correctos "
Vini
10
Ese es un requisito bastante vago. Por ejemplo, ¿la nota tiene que ser gramaticalmente correcta? No estoy seguro de si las partes que propusieron los requisitos están familiarizadas con el estado de la PNL, pero el problema que han descrito es esencialmente la comprensión de lectura o la comprensión del lenguaje natural, que es uno de los problemas descritos como 'el santo' grial 'de la PNL. Para mí es dudoso que encuentre un paquete que pueda simplemente 'hacer esto' por usted; probablemente sea mucho más realista darle al usuario una interfaz de usuario en la que pueda especificar un número limitado de instrucciones especiales.
Paul Morie
8

Para otros lenguajes de JVM, consulte

oluies
fuente
Sin embargo, parece que la parte de PNL de Scala NLP llamada Epic seguirá apareciendo pronto.
Erik Kaplun