Esto es una especie de seguimiento de esta pregunta sobre las direcciones de investigación de NLG en el campo de la lingüística.
¿Cómo realizan las herramientas de asistente personal como Siri, Google Now o Cortana la Generación del lenguaje natural (NLG)? Específicamente, la parte de generación de texto de oración . No me interesa la parte de texto a voz, solo la parte de generación de texto.
No estoy buscando exactamente cómo lo hace cada uno, ya que esa información probablemente no esté disponible.
Me pregunto qué configuración se requiere para implementar la generación de oraciones de esa calidad.
- ¿Qué tipo de datos necesitaría en una base de datos (en un nivel alto)?
- ¿Requiere tener un diccionario de cada palabra posible y su significado, junto con muchos libros / corpus anotados y analizados estadísticamente?
- ¿Requiere realmente grabar a las personas que hablan de una manera natural (como en programas de televisión o podcasts), transcribirlas en texto y luego agregarlas de alguna manera a su "sistema"? (para obtener frases realmente "humanas")
- ¿O simplemente están utilizando patrones de oraciones basados en sintaxis simples, sin una gigantesca base de datos semántica de "significado"? Donde alguien acaba de escribir un montón de expresiones regulares tipo cosa ...
- ¿Cuáles son los algoritmos que se usan para oraciones tan humanas escritas naturalmente?
Una razón para preguntar es que parece que el campo NLG está muy lejos de poder hacer lo que Siri y Google Now y otros están logrando. Entonces, ¿qué tipo de cosas están haciendo? (Solo para la parte de generación de texto de la oración).
fuente
Respuestas:
Siri generalmente no "genera" oraciones. Analiza lo que dices y 'reconoce' ciertas palabras clave, claro, y para respuestas comunes, usará una plantilla, como
I found [N] restaurants fairly close to you
oI couldn't find [X] in your music, [Username].
Pero la mayoría de sus respuestas son enlatadas, dependiendo de su interpretación de su discurso, además de un generador de números aleatorios para elegir una respuesta creativa a una pregunta frívola. Simplemente preguntando a Siri "¿Cuánta madera puede un mandril de madera?" o "¿Cuál es el significado de la vida?" generará cualquiera de una variedad de respuestas. Hay numerosas referencias culturales y bromas incorporadas (y repetidas textualmente) que demuestran con relativa certeza que Siri no solo genera espontáneamente la mayor parte de su texto, sino que lo extrae de una base de datos de algún tipo. Es probable que las preguntas entrantes se guarden en un servidor central, donde los empleados de Apple pueden crear nuevas respuestas a esas preguntas, lo que permite a Siri "aprender".
Sin embargo, su parte de texto a voz es lo suficientemente buena como para que a veces parezca que las respuestas se están generando ...
fuente
Si tiene una llamada representación sintáctica profunda de lo que desea generar, como leer (él, libro) , entonces es relativamente fácil generar su representación lineal. Se necesita una gramática formal que describa la sintaxis del lenguaje y un léxico morfológico para las formas flexionadas. La generación es un orden de magnitud más fácil que el análisis (ya que uno está "creando ambigüedad", no resolviéndola).
Si solo tiene una representación lógica (digamos, en lógica de primer orden), las cosas se vuelven más complicadas. Digamos que tienes comprar (John, libro) ∧ leer (John, libro) . Se podrían generar dos oraciones como John compró un libro. John leyó un libro pero se siente antinatural. Una mejor salida sería John compró un libro. El lo leyó. Aún mejor sería generar una oración compuesta con y . La representación lógica podría ser similar a la representación sintáctica profunda anterior, pero no hay pronombres, límites de cláusulas, etc. La fase de traducir una representación puramente lógica de lo que uno quiere transmitir a algo más "humano" se llama "lenguaje planificación "o" planificación de oraciones "y es la tarea más difícil en el proceso.
fuente