Este proyecto se basa en el artículo "Especificación y verbalización de programas de conjuntos de respuestas en lenguaje natural controlado" de Rolf Schwitter. Recreé lo que se hizo en el artículo pero en una escala mucho más pequeña, enfocándome en crear una gramática bidireccional adecuada tanto para el procesamiento como para la generación de especificaciones de programas en CNL.
El programa big.pl (significa gramática bidireccional ) debe ejecutarse utilizando SWI-Prolog. Para probarlo, simplemente cargue el archivo usando el comando: [big].
Y luego consulta: test.
Una vez hecho esto, verá el resultado del programa para un ejemplo predefinido.
Si desea ejecutar el programa con SUS PROPIAS ORACIONES DE ENTRADA , debe modificar el archivo big.pl :
Tenga en cuenta que cada oración debe ser una lista de palabras, donde todas las palabras deben estar separadas por una coma y una oración debe terminar con el símbolo especial '.' . Cada oración debe comenzar con la palabra del sistema 'every'
/ 'no'
o tener un agente, por ejemplo, como en [bob,dreams,'.']
, donde bob es un agente. Las palabras del sistema son: 'every', 'no', 'is', 'is not', 'does not', '.'
. Consulte samples.txt para ver ejemplos de oraciones de entrada que puede intentar ejecutar.
En caso de que quieras introducir nuevas palabras y/o agentes no incluidos en el programa, tendrás que añadirlos tú mismo en big.pl. El léxico actual se define en las líneas 175-198. Para cada una de sus palabras personalizadas, agregue una línea siguiendo el formato de:
lexicon(cat:noun, wform:[student], arg:X, term:student(X)).
donde el argumento gato es la categoría de la palabra (sustantivo, verbo, det, etc.); wform significa forma de palabra, es decir, la palabra exacta que aparece en una oración; arg especifica el argumento del término al que se refiere la palabra; término denota el término real que se utilizará en el formato interno y en el ASP. Para cada uno de sus agentes personalizados, agregue una línea con el formato agent(name).
, donde nombre es el nombre de su agente, por ejemplo bob
.
Tenga en cuenta que actualmente el programa solo admite las siguientes categorías: sustantivo ( cat:noun
), verbo ( cat:iv
), determinante ( 'every', 'no'
), adjetivo ( cat:jj
). Todas las oraciones deben tener una estructura simple, sin artículos ("un", "una", "el"), sin componentes vinculados "y"/"o".
El programa big.pl ofrece cuatro resultados a la vez:
Consulte Report.pdf para obtener más detalles sobre las representaciones.
Tenga en cuenta que 3. La representación ASP es un programa de conjunto de respuestas válido, que puede resolver utilizando, por ejemplo, clingo, que le recomiendo que pruebe.
Creado por Yevheniia Soroka, estudiante de maestría, Stony Brook University, Nueva York (CSE505: Computing with Logic, otoño de 2018)
Un agradecimiento especial a Rolf Schwitter por su orientación sobre cómo comenzar y por compartir recursos útiles.