teaching - nlp python
nlg construyendo una oraciĆ³n (3)
Dependería del 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 está siendo analizada. 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 flojo.
El analizador ahora debe 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 the) (JJ lazy) (NN dog))) ( .)))
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 estoy equivocado, corrígeme.
Me gustaría generar una oración teniendo como entrada palabras. P.ej
Entrada:
Mary
chase
the monkey
Salida:
Mary chases the monkey.
Esto podría hacerse utilizando una biblioteca simple de NLG: 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 oración Mary 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.
El enfoque más común es construir estadísticas ngramm y luego construir la mayoría de las palabras de propagación. El famoso ejemplo de Enan se puede encontrar aquí http://scribe.googlelabs.com/
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.
Hay 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 analizadores de componentes de investigación que puedes probar:
Esta pregunta relacionada también puede ayudar: Inicio de procesamiento de lenguaje natural simple para Java