2011-06-02 17 views
6

Me gustaría generar una oración teniendo como entrada palabras. P. ej.nlg construyendo una oración

de entrada:

Mary 
chase 
the monkey 

Salida:

Mary chases the monkey. 

Esto podría hacerse utilizando una biblioteca simpleNLG: http://code.google.com/p/simplenlg/ de la siguiente manera:

String subject = "Mary"; 
String verb = "chase"; 
String object = "the monkey"; 

p.setSubject(subject); 
p.setVerb(verb); 
p.setObject(object); 

String output = realiser.realiseSentence(p); 
System.out.println(output); 

Esto generará la sentencia a María persigue al mono Pero me gustaría hacerlo automatizado donde ingreso palabras y la oración se genera. Esto requeriría algún preprocesamiento que especifique qué palabra es un sujeto, qué palabra es un verbo y cuál es un objeto. Sé que hay bibliotecas de etiquetado POS (partes de la oración) pero no especifican si se trata de un tema u objeto. ¿Alguna sugerencia de cómo se podría hacer esto? También para hacerlo funcionar para oraciones más grandes con múltiples objetos, adverbios, etc.

+0

No estoy seguro de lo que está preguntando.¿Desea ingresar una bolsa de palabras (donde no se considera el pedido) y tiene una salida de oraciones? ¿Cómo sabría el programa si quisieras "María persigue al mono" o "El mono persigue a María"? – Chris

+0

Parsers (OpenNLP, Stanford) comienzan con una oración y le dicen lo que desempeña el papel de sujeto, objeto, etc. – Chris

Respuesta

1

Para obtener el sujeto, verbo u objeto para la oración de entrada, necesita realizar un análisis sintáctico o un análisis sintáctico.

Existen dos grupos principales de herramientas de análisis, analizadores de componentes y analizadores de dependencias, pero generalmente el primero es la ruta más directa para obtener lo que necesita.

Estos son algunos programas de análisis constitutivos de investigación que usted puede intentar:

Esta pregunta relacionada también puede ayudar: Simple Natural Language Processing Startup for Java

3

El enfoque más común es construir estadísticas de ngramm y luego construir la mayoría de las palabras de las palabras que se pueden propagar. Ejemplo famoso de Oen se puede encontrar aquí http://scribe.googlelabs.com/

+0

Link is dead! . – iamprem

0

Sería depender en el orden de las palabras. Si el orden es Mary Chase the monkey, la salida sería Mary persigue al mono. Si la orden es la persecución del mono María, entonces la salida sería El mono persigue a María.

Eché un vistazo al analizador de OpenNLP pero toma como entrada una oración que se está analizando. Lo que tengo como entrada son las palabras y necesito construir una oración.

Y de todos modos cuando miro el ejemplo: El zorro marrón rápido salta sobre el perro perezoso.

El analizador ahora debería imprimir lo siguiente en la consola. (TOP (NP (NP (DT The) (JJ rápido) (JJ marrón) (NN fox) (NNS saltos)) (PP (IN sobre) (NP (DT el) (JJ perezoso) (NN perro))) (...)))

Todo lo que puedo ver son partes del discurso. No puedo verlo especificando objetos, temas, etc. a menos que exista tal función en la API.

Si me equivoco, corrígeme.

Cuestiones relacionadas