2009-05-15 18 views
86

Necesito implementar algo de PNL en mi módulo actual. Estoy buscando una buena biblioteca que pueda ayudarme aquí. Encontré 'LingPipe' pero no pude seguir completamente sobre cómo usarlo.
Básicamente, tenemos que implementar una función donde la aplicación pueda descifrar las instrucciones del cliente (instrucciones de entrega) escritas en inglés sencillo. Por ejemplo:¿Hay una buena biblioteca de procesamiento de lenguaje natural?

  • Recogerá a las 12:00 del mediodía de mañana
  • solicitar la entrega después del 10 de junio de
  • Por favor, no envíe antes del miércoles
  • añadir 10 unidades más de XYZ a la orden
+0

ver http://stackoverflow.com/questions/22904025/ java-o-python-for-natural-language-processing – alvas

Respuesta

77

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

La última especificación podría ser de su interés, aunque no sé si hay implementaciones Java fácilmente disponibles (y tal vez eso sea demasiado complicado para su problema) :-)

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

+1

Presenté mi informe basado en las entradas que reuní de este foro y otros lugares en la red. También sugerí las otras opciones que sugirió y 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 solo específico para la pregunta de @ Winnie, lo pido con un propósito general. – kamaci

+1

Echa un vistazo a MALLET: mallet.cs.umass.edu –

11

Creo que si elige usar o no NLP puede depender de los requisitos específicos para su sistema. ¿Es un requisito que se acepte el inglés de forma libre o solo se aceptará un determinado conjunto de instrucciones? Puede ser más fácil crear un que admita lo que los usuarios necesitan para transmitir que hacer un análisis semántico completo del texto de forma libre.

En el espacio de Java, Groovy tiene compatibilidad con building DSLs.

+0

Aquí hay algunas líneas del documento de requisitos: '.. y el usuario debe poder ingresar una nota o una instrucción especial n en inglés sencillo. El sistema debería analizar las instrucciones del usuario y rellenar los campos relevantes (si los hay) de la orden con los valores correctos. " – Vini

+9

Es un requisito bastante vago. Por ejemplo, ¿la nota tiene que ser gramaticalmente correcta? No estoy seguro de si las partes que presentaron los requisitos están familiarizados con el estado de PNL, pero el problema que han descrito es esencialmente comprensión de lectura o comprensión del lenguaje natural, que es uno de los problemas descritos como ' el santo grial de NLP. Es dudoso para mí que encuentre un paquete que pueda 'hacer esto' por usted; probablemente sea mucho más realista darle al usuario una IU donde pueda especificar un número limitado de instrucciones especiales. –

Cuestiones relacionadas