Reconocimiento de entidades | Ranura para sinónimos
Last updated
Last updated
La Ranura de Sinónimos permite realizar una búsqueda semántica de una Entidad utilizando una tabla de cierto formato con datos - un Vocabulario - y guardar la información encontrada en una Variable de Contexto. La búsqueda semántica - reconocimiento de varias formas verbales de sinónimos, y no sólo coincidencias completas con ellos - está disponible para los idiomas listados en la tabla Idiomas disponibles en Vocabularios. Para otras lenguas, funciona la búsqueda de coincidencias completas.
Al expresar una intención en lenguaje natural, el Usuario Bot puede utilizar una Entidad en la Petición. Por ejemplo, en la Petición "Cómo llegar a Nueva York en tren" hay una Entidad "ciudad" (Nueva York) y una Entidad "transporte" (tren). En algunos casos, es necesario asignar valores de Entidad y escribirlos en una Variable de Contexto para su uso posterior en el Script. La esencia puede expresarse con palabras diferentes: sinónimos. Por ejemplo, "Nueva York" puede llamarse "NY" y "tren" - "lluvia eléctrica" o "ferrocarril".
Algunos escenarios requieren que usted extraiga valores de Entidad y los escriba en una Variable de Contexto para su uso posterior en el Script. Para buscar una Entidad, la Ranura de Sinónimos se utiliza en combinación con la funcionalidad de Vocabulario.
Ejemplos:
Es necesario determinar el nombre oficial completo de la ciudad para transferirlo al sistema externo. Para ello, se crea un Vocabulario, compuesto por una serie de Entidades, cada una de las cuales corresponde a una ciudad concreta y contiene diversas variaciones de su nombre, por ejemplo: el nombre de la Entidad es "San Petersburgo", el contenido son sinónimos "San Petersburgo, SPB, Leningrado". El Mensaje del usuario del Bot es recorrido por la Ranura de Sinónimos a través de este Vocabulario y el nombre de Entidad encontrado en él es utilizado posteriormente en el Script.
Es necesario dividir el Script después de determinar la Intención dependiendo de la Entidad contenida en la Réplica.
Intención: "¿Cómo encontrar ?". Conjunto de entidades: "despacho del jefe", "vestuario", "sala de reuniones", "cafetería", "consulta del médico", "cocina", "aseo" Utilizando la ranura de sinónimos, se busca la entidad en el mensaje del usuario del bot y, a continuación, utilizando la ranura de reglas de transición, el guión se divide en varias ramas de guión en función de la entidad.
Nombre - el nombre de la Ranura, que se mostrará en el Árbol de Script. La longitud máxima de un valor de campo es de 40 caracteres.
Fuente - una Expresión que da como resultado - una cadena (Cadena de Prueba) en la que se realizará la búsqueda de Sinónimos del Vocabulario. Se puede especificar una Expresión completa con operadores o una Expresión de una sola Variable de Contexto, por ejemplo {{ variable }} o {{ lugares[0].nombre }}.
VARIABLE RESULTADO - nombre de la Variable de Contexto en la que se escribirá la información encontrada por la Ranura. Formato: cadena sin paréntesis, por ejemplo var1.
VOCABULARIO - Vocabulario de la pestaña Recursos. Funciona la búsqueda incremental sin distinción entre mayúsculas y minúsculas en la lista. Puede haber varios pares VARIABLE RESULTADO + VOCABULARIO. Para añadir un nuevo par, haga clic en el botón Añadir búsqueda.
A medida que se añade cada par VARIABLE DE RESULTADO + VOCABULARIO adicional al campo VOCABULARIO, la lista desplegable muestra aquellos vocabularios de empresa que no se utilizan en otros campos VOCABULARIO de esta ranura. Por lo tanto, los pares VARIABLE DE RESULTADO + VOCABULARIO en una Ranura de Sinónimos pueden ser un máximo de 20 (20 es el número máximo de Vocabularios de la Empresa).
En la Ranura de Sinónimos, es posible utilizar Expresión y Expresión con Estructura de Control en el campo Fuente. Más información: Sintaxis.
El Vocabulario es un objeto de Recursos de la Empresa, por lo que es accesible desde todos los Agentes de esta Empresa.Acerca de la creación de un Vocabulario: Pestaña Vocabularios.
Al pasar por una ranura de sinónimos, se realizan las siguientes operaciones en el orden indicado:
Eliminar del contexto de chat todas las variables de contexto especificadas en el campo VARIABLE DE RESULTADO de esta ranura;
Cálculo de la Expresión especificada en el campo Fuente, obteniendo la Cadena de Prueba.
Si la Expresión no ha podido evaluarse y obtener la cadena (la Variable de Contexto especificada en la Expresión no existe o la Expresión está formada incorrectamente), se creará en el Contexto de Chat el error Variable de Contexto con el valor Error de representación de plantilla (fuente de extracción de sinónimos) ocurrido.
Convertir el contenido de la Cadena de Prueba a minúsculas;
Separando el contenido la Cadena de Prueba por palabras utilizando un modelo especial (por ejemplo, por un espacio, por una coma, etc.) - obteniendo un array de palabras;
Para cada par VARIABLE DE RESULTADO - VOCABULARIO completado: Busque cada palabra de la cadena de prueba en el vocabulario especificado en el campo VOCABULARIO y escriba el resultado en la variable de contexto especificada en el campo VARIABLE DE RESULTADO correspondiente:
Si una o varias palabras de la cadena de prueba coinciden
con formas verbales de Sinónimos de las lenguas que figuran en la tabla Vocabulario de lenguas disponibles para el reconocimiento
o con el significado exacto del Sinónimo para cualquier idioma
Importante: el caso de los Sinónimos en el Vocabulario y la Cadena de Prueba no afecta al resultado del reconocimiento.
El valor de la Variable de Contexto especificada en el campo VARIABLE RESULTADO es una matriz de objetos, donde cada elemento de la matriz es un objeto que contiene un resultado positivo de reconocimiento de palabra (resultado positivo = la palabra se encontró en el Vocabulario).
El formato del resultado es JSON con información, en este ejemplo sólo se describe el primer elemento del array de objetos resultado: [ {'synonym': 'sinónimo encontrado en variable', 'reference': "primer sinónimo de la fila", 'entity': "nombre de la entidad", 'start': Número de serie del primer carácter encontrado en la variable de sinónimos, 'end':número de serie del último carácter encontrado en la variable sinónimo }, ... { <Nth element - search result> }, ]
Example: [ {'synonym': 'honda', 'reference': 'HONDA', 'entity': 'car_brand', 'start': 0, 'end': 5} ]
iv. La matriz puede tener varios elementos, su número es igual al número de coincidencias encontradas al comprobar en el Vocabulario, esto es posible en los siguientes casos:
una palabra de la cadena de prueba coincide con varias del vocabulario dado (se encuentran en varias cadenas)
varias palabras de la cadena de prueba que se encuentran en diferentes entidades de este vocabulario
Varias palabras de la Cadena de Prueba encontradas en una Entidad de este Vocabulario. Por ejemplo, en una frase se menciona una ciudad dos veces, cada mención es una palabra separada que dará su propio objeto resultado en la variable VARIABLE RESULTADO.
b. Si no se encuentra nada, la Variable de Contexto especificada en el campo VARIABLE DE RESULTADO no se creará en el Contexto de Chat.
Ejemplo: : Necesito dos billetes a NY Resultado del reconocimiento: [ {'synonym': 'NY', 'reference': 'New York', 'entity': 'New York', 'start': 24, 'end': 25}, {'synonym': 'NY', 'reference': 'New York', 'entity': 'New York', 'start': 24, 'end': 25} ] The word NY was found in 2 in one .
Ejemplo: : Quiero comprar billetes de LA a NY Resultado del reconocimiento: [ {'synonym': 'LA', 'reference': 'LA', 'entity': 'LA', 'start': 22, 'end': 23}, {'synonym': 'NY', 'reference': 'NY', 'entity': 'NY', 'start': 32, 'end': 33} ] La palabra LA se encontró en 1 Entidad del Vocabulario, la palabra NY se encontró en 1 Entidad del Vocabulario
Ejemplo: : comprar billetes Moscú - San Petersburgo - Moscú [ {'synonym': 'Moscow', 'reference': 'Moscow', 'entity': 'Moscow', 'start': 14, 'end': 20}, {'synonym': 'Peter', 'reference': 'St. Petersburg', 'entity': 'St. Petersburg', 'start': 21, 'end': 26}, {'synonym': 'Moscow', 'reference': 'Moscow', 'entity': 'Moscow', 'start': 27, 'end': 33} ] La palabra Moscú coincide con la entidad "Moscú" del vocabulario y aparece dos veces en la cadena de prueba.