Idiomas adicionales
Estas son algunas de las mejores prácticas para desarrollar asistentes digitales que soporten varios idiomas.
El requisito de que los asistentes digitales soporten varios idiomas es bastante común y afecta a diferentes áreas del asistente digital y el desarrollo de aptitudes. El soporte para idiomas adicionales es una tarea de implantación que va más allá de la traducción de mensajes de usuario y bot y que también debe tenerse en cuenta en el diseño de la conversación para capturar las diferencias regionales y culturales.
El soporte de idioma se configura e implanta en el nivel de aptitud. Esto incluye la configuración del tipo de traducción que se va a utilizar y las configuraciones necesarias para el tipo de traducción. Para las aptitudes expuestas mediante un asistente digital, el asistente digital también debe configurarse para soportar varios idiomas.
Servicio de traducción frente a NLU multilingüe
Oracle Digital Assistant proporciona dos opciones para admitir varios idiomas en asistentes digitales.
-
El uso de un servicio de traducción requiere que configure una clave de servicio de traducción de Google o Microsoft con la instancia de asistente digital. Los mensajes de usuario entrantes se traducen al idioma base configurado para una aptitud. El idioma base es el idioma que se utiliza para entrenar el modelo, que para los servicios de traducción más a menudo es el inglés. La ventaja de utilizar los servicios de traducción en este momento es que soporta más idiomas que el soporte de idiomas nativos.
-
El soporte de lenguaje nativo soporta un número menor de idiomas directamente en el modelo lingüístico (comprensión de lenguaje natural - NLU) sin necesidad de un servicio de traducción. Si bien el reconocimiento de idiomas incorporado es bastante bueno sin ningún otro entrenamiento específico del idioma, puede refinarlo agregando expresiones para cada idioma que desee soportar. Para las entidades, debe agregar cadenas de traducción para los valores y los sinónimos en las entidades de la lista de valores.
La decisión de qué enfoque utilizar depende del número de idiomas que necesite soportar en el proyecto del asistente digital, de la necesidad inmediata de cada idioma y de si el idioma existe o no como un idioma con soporte nativo.
No es posible utilizar aptitudes mediante servicios de traducción con aptitudes mediante el soporte nativo de NLU en el mismo asistente digital. Por lo tanto, la decisión sobre qué opción de traducción se debe utilizar para todas las aptitudes de un asistente digital al crear la primera aptitud.
Nuestra recomendación es utilizar el soporte de lenguaje NLU nativo si puede debido a su mejor soporte para la extracción de entidades de lista y la capacidad de ajustar la comprensión de idiomas adicionales agregando expresiones de ejemplo para ese idioma.
Ambas opciones de traducción soportan el idioma no inglés como idioma base para entrenar sus modelos de intención y desarrollar sus habilidades.
Uso de grupos de recursos en cualquier lugar
Recomendamos utilizar cadenas de grupos de recursos para todos los mensajes y peticiones de datos del bot. Aunque utilice un servicio de traducción para admitir varios idiomas en el bot, no utilice servicios de traducción para mensajes salientes: utilice siempre grupos de recursos y utilícelos en todas partes.
Por qué los grupos de recursos
El desarrollo del asistente digital tiene que ver con la persona que ha diseñado para él. La persona define el idioma, el tono de voz y la actitud de un asistente digital.
Para garantizar que el asistente digital asuma la personalidad que ha diseñado, debe mantener el control de los mensajes salientes del bot para cada idioma que soporte. Los grupos de recursos representan un único lugar donde se gestionan los mensajes de bot, lo que facilita la coherencia del tono de voz. Para crear asistentes digitales que admitan un segundo idioma, no hay ninguna alternativa realista a los grupos de recursos para mostrar mensajes de bot.
Acerca de las cadenas de grupos de recursos
Las cadenas de grupos de recursos se crean de forma declarativa en las aptitudes y los asistentes digitales de Oracle Digital Assistant. Las hace referencia desde conversaciones, en entidades y en valores de configuración de aptitudes mediante expresiones FreeMarker de Apache. Para hacer referencia a una cadena de mensaje, utilice una expresión como la siguiente:
${rb('message_key')}
rb
hace referencia a la definición del grupo de recursos y busca un identificador de mensaje con el nombre especificado. En el ejemplo anterior, buscaría una clave de mensaje con el nombre message_key
.
Si no existe un nombre de clave de grupo de recursos para el idioma del usuario, se utilizará la cadena definida para el idioma predeterminado (el idioma base). Si falta una cadena de mensaje para el idioma por defecto, se devuelve una excepción durante la prueba de tiempo de ejecución.
Si necesita transferir datos a un mensaje impreso a través de un grupo de recursos, puede hacerlo a través de parámetros posicionales y con nombre.
Parámetro de posición: Hello {0}, {1}
Parámetro con nombre: Hello {name}, {greeting}
Para transferir valores que lea de las variables agregadas a una conversación, utilice una expresión como la que se muestra a continuación.
Para parámetros posicionales: ${rb('message_key',firstname.value, greetingMessage.value)}
Para parámetros con nombre: ${rb('message_key','name,greeting',firstname.value, greetingMessage.value)}
Aunque los parámetros posicionales parecen más fáciles de utilizar, le recomendamos que utilice parámetros con nombre cuando pueda, ya que proporcionan el contexto para el tipo de datos que se agrega a un mensaje. Conocer el contexto facilita la vida de un traductor.
Consideración de una convención de denominación para nombres de claves de grupos de recursos
El uso completo de grupos de recursos en la aptitud significa hacer referencia a ellos desde entidades, el flujo de diálogo y desde la configuración de la aptitud y el asistente digital. Para facilitar la búsqueda de referencias de cadenas de grupos de recursos en la aptitud y el asistente digital, recomendamos agregar contexto a los nombres de clave del grupo de recursos mediante la implantación de una convención de nomenclatura.
Por ejemplo, puede utilizar los siguientes nombres para un mensaje de error, un mensaje de desambiguación y peticiones de datos en una entidad de lista de valores:
-
list.
<entity_name>.errorMessage
-
list.
<entity_name>.disambiguationMessage
-
list.
<entity_name>.prompt1
-
list.
<entity_name>.prompt2
Para una entidad de bolsa compuesta, puede utilizar una estructura de nomenclatura similar, pero agregarle el nombre del elemento de bolsa:
-
cbe.
<entity_name>.
<bag_item_name>.errorMessage
-
cbe.
<entity_name>.
<bag_item_name>.disambiguationMessage
-
cbe.
<entity_name>.
<bag_item_name>.prompt1
-
cbe.
<entity_name>.
<bag_item_name>.prompt2
Si hace referencia a una cadena de grupo de recursos desde la petición de datos de un estado de flujo de diálogo, o si un estado de flujo de diálogo solo imprime un mensaje de usuario que puede utilizar:
-
<dialog_flow_state_name>
.prompt
-
<dialog_flow_state_name>
.message
Para los elementos globales, como los botones de paginación o ayuda de un componente de respuesta común, puede utilizar una convención de nomenclatura que no contenga el nombre de un estado de flujo de diálogo específico:
-
button.next
-
button.previous
-
button.cancel
-
button.help
No existe una regla estricta sobre si se utiliza la notación de puntos como en los ejemplos anteriores, los guiones bajos o algo propio.
Uso de grupos de recursos para palabras clave
El componente Respuesta común permite definir palabras clave para elementos de acción para que el usuario pueda "presionar virtualmente"las enviando la palabra clave como mensaje. Las palabras clave son especialmente importantes si la interfaz de usuario no permite al usuario pulsar un botón (como cuando se utilizan canales de solo texto o voz).
Como un recordatorio suave pero obvio, "enviar" no se llama "enviar" en alemán, portugués, francés, árabe y todos los demás idiomas que admite con su bot. Por lo tanto, es bueno saber que la propiedad keyword
de los elementos de acción en el componente de respuesta común se puede leer desde una clave de grupo de recursos. El mensaje del grupo de recursos sería una lista separada por comas de palabras clave que desea utilizar.
Usar Formato Mensaje UCI
Además de los parámetros con nombre que agrega a un mensaje de grupo de recursos, hay otras opciones que puede utilizar para manejar determinadas condiciones al traducir mensajes. Por ejemplo, el mensaje que se imprime para varios artículos suele ser diferente del mensaje que se imprime cuando se solicita o se envía un único artículo.
ICU, que significa componentes internacionales para Unicode, es una sintaxis de formato de idioma admitida por paquetes de mensajes en Oracle Digital Assistant. Esta sintaxis permite escribir mensajes muy flexibles que facilitan la aplicación de diferencias regionales y específicas del idioma a los mensajes de bot.
Para empezar, puede ser suficiente utilizar la sintaxis de mensajes de la UCI para manejar mensajes con referencias de valor singular y plural y para mensajes que cambian debido a condiciones como el género del usuario que trabaja con el asistente digital.
Impacto del soporte de segundo idioma en Bot Persona
No es necesario cambiar la persona del asistente digital para un idioma específico. Sin embargo, si las diferencias regionales o culturales requieren un cambio en la actitud, la voz o la redacción del bot persona, es legítimo aplicar esos cambios. El objetivo de un asistente digital es complacer e involucrar a los usuarios, lo que también significa que debe adaptarse a los hábitos regionales.
Puede usar grupos de recursos en formato de UCI para ayudar a cambiar los mensajes según la región. Para ello, puede transferir un argumento al grupo de recursos para identificar una región para la que necesite adaptar la persona del bot y utilizar el formato de mensaje de la UCI para mostrar un mensaje diferente del que mostraría de lo contrario.
Ejemplo: manejo de diferencias regionales en mensajes
Este ejemplo de mensaje de grupo de recursos espera que se transfiera el argumento para region
al hacer referencia al nombre de clave del grupo de recursos. En el ejemplo, los valores que se deben manejar de forma diferente se definen como region1
y region2
. Puede establecer esos valores como desee, por ejemplo, en un código de país.
{region, select,
region1 {message for region 1}
region2 {message for region 2}
other {message for all other regions}
}
Para hacer referencia al mensaje del grupo de recursos para una de las regiones, debe utilizar la siguiente expresión en la configuración de flujo de diálogo, entidad o aptitud:
${rb('the_key_name','region','<VARIABLE_CONTAINING_REGION_VALUE>.value')}
<VARIABLE_CONTAINING_REGION_VALUE>
se debe sustituir por un nombre de variable en la aptitud que contenga el valor para el que tiene un mensaje diferente definido.
Lista de comprobación para idiomas adicionales
- ☑ Decida entre utilizar servicios de traducción o soporte de idioma nativo antes de desarrollar sus aptitudes.
- ☑ Asegúrese de que todas las aptitudes que desea agregar a un asistente digital utilizan el mismo tipo de soporte de idioma.
- ☑ Utilice grupos de recursos para todas las peticiones de datos y mensajes que muestre el bot.
- ☑ Utilice parámetros con nombre al transferir datos dinámicos a un mensaje de grupo de recursos.
- ☑ Utilice el formato de mensaje de la UCI para los plurales en los mensajes y para los mensajes que cambian según una condición.
- ☑ Utilice referencias de grupos de recursos al crear palabras clave.
- ☑ Utilice el campo Anotación de la cadena del grupo de recursos para proporcionar al traductor información adicional sobre el significado y el uso de una cadena y, opcionalmente, cómo desea que se traduzca el mensaje.
- ☑ Comprenda las diferencias regionales y culturales.
Más información
- Video del Oracle Design Camp: Diseño de conversaciones de internacionalización (I18n)
- Video de Oracle Design Camp: NLU multilingüe
- Video de Oracle Design Camp: Uso de grupos de recursos como un profesional
- TechExchange: código de ejemplo de formato de grupo de recursos y UCI