Tipo de slot gramatical - Amazon Lex

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Tipo de slot gramatical

Con el tipo de slot gramatical, puede crear su propia gramática en formato XML según la especificación SRGS para recopilar información en una conversación. Amazon Lex V2 reconoce los enunciados que coinciden con las reglas especificadas en la gramática. También puede proporcionar reglas de interpretación semántica mediante etiquetas de ECMAScript en los archivos de gramática. A continuación, Amazon Lex devuelve las propiedades definidas en las etiquetas como valores resueltos cuando se produce una coincidencia.

Solo puede crear tipos de slot gramaticales en los idiomas inglés (Australia), inglés (Reino Unido) e inglés (EE. UU.).

Un tipo de slot gramatical consta de dos partes. La primera es la propia gramática, escrita con el formato de especificación SRGS. La gramática interpreta el enunciado del usuario. Si el enunciado es aceptado por la gramática, coincide; de lo contrario, se rechaza. Si un enunciado coincide, se pasa al guion, si lo hay.

La segunda forma parte de un tipo de slot gramatical es un guion opcional escrito en ECMAScript que transforma la entrada en los valores resueltos devueltos por el tipo de slot. Por ejemplo, puede usar un script para convertir números hablados en dígitos. Las declaraciones de ECMAScript se incluyen en el elemento <tag>.

El siguiente ejemplo está en formato XML según la especificación SRGS que muestra una gramática válida aceptada por Amazon Lex V2. Define un tipo de slot gramatical que acepta números de tarjetas y determina si son para cuentas normales o prémium. Para obtener más información acerca de la sintaxis aceptable, consulte Definición sobre la gramática y los temas Formato de script.

<grammar version="1.0" xmlns="http://www.w3.org/2001/06/grammar" xml:lang="en-US" tag-format="semantics/1.0" root="card_number"> <rule id="card_number" scope="public"> <item repeat="0-1"> card number </item> <item> seven <tag>out.value = "7";</tag> </item> <item> <one-of> <item> two four one <tag> out.value = out.value + "241"; out.card_type = "premium"; </tag> </item> <item> zero zero one <tag> out.value = out.value + "001"; out.card_type = "regular";</tag> </item> </one-of> </item> </rule> </grammar>

La gramática anterior solo acepta dos tipos de números de tarjeta: 7241 o 7001. Ambos pueden llevar opcionalmente el prefijo «número de tarjeta». También contiene etiquetas ECMAScript que se pueden utilizar para la interpretación semántica. Con la interpretación semántica, el enunciado «carta número siete dos cuatro uno» devolvería el siguiente objeto:

{ "value": "7241", "card_type": "premium" }

Este objeto se devuelve como una cadena serializada en JSON en el objeto resolvedValues devuelto por las operaciones RecognizeText, RecognizeUtterance y StartConversation.

Añadir un tipo de slot gramatical

Añadir un tipo de slot gramatical
  1. Cargue la definición XML de su tipo de slot en un bucket de S3. Anote el nombre del bucket y la ruta al tipo de archivo.

    nota

    El tamaño de archivo máximo es de 100 KB.

  2. Inicie sesión en la AWS Management Console y abra la consola de Amazon Lex en https://console.aws.amazon.com/lex/.

  3. En el menú de la izquierda, seleccione Bots y, a continuación, seleccione el bot al que quiere añadir el tipo de slot gramatical.

  4. Seleccione Ver idiomas y, a continuación, seleccione el idioma al que quiere añadir el tipo de slot gramatical.

  5. Seleccione Ver tipos de slots.

  6. Seleccione Añadir tipo de slot y, a continuación, seleccione Añadir tipo de slot gramatical.

  7. Asigne un nombre al tipo de slot y, a continuación, seleccione Añadir.

  8. Seleccione el bucket de S3 que contiene el archivo de definición e introduzca la ruta al archivo. Seleccione Guardar tipo de slot.