Modificación de datos de expresiones antes o durante la predicción
Importante
LUIS se retirará el 1 de octubre de 2025. Además, a partir del 1 de abril de 2023, ya no se podrán crear recursos de este servicio. Se recomienda migrar las aplicaciones de LUIS al reconocimiento del lenguaje conversacional para aprovechar el soporte continuo del producto y las capacidades multilingües.
LUIS proporciona distintos métodos para manipular la expresión antes o durante la predicción. Entre ellos se incluyen la corrección de la ortografía y la solución de los problemas de la zona horaria para elementos datetimeV2 creados previamente.
Corregir errores de ortografía de una expresión
Runtime V3
Preprocese el texto por correcciones ortográficas antes de enviar la expresión a LUIS. Use expresiones de ejemplo con la ortografía correcta para asegurarse de obtener las predicciones correctas.
Utilice Bing Spell Check para corregir el texto antes de enviarlo a LUIS.
Antes de runtime V3
LUIS usa Bing Spell Check API V7 para corregir los errores de ortografía de la expresión. LUIS necesita la clave asociada a ese servicio. Cree la clave y agréguela como parámetro de cadena de consulta en el punto de conexión.
El punto de conexión requiere dos parámetros para que las correcciones ortográficas funcionen:
Parámetro | Value |
---|---|
spellCheck |
boolean |
bing-spell-check-subscription-key |
Clave de punto de conexión de Bing Spell Check API V7 |
Cuando Bing Spell Check API V7 detecta un error, se devuelven la expresión original y la expresión corregida junto con las predicciones del punto de conexión.
- Respuesta de punto de conexión de predicción de V2
- Respuesta de punto de conexión de predicción de V3
{
"query": "Book a flite to London?",
"alteredQuery": "Book a flight to London?",
"topScoringIntent": {
"intent": "BookFlight",
"score": 0.780123
},
"entities": []
}
Lista de palabras permitidas
Bing Spell Check API que se utiliza en LUIS no admite una lista de palabras para omitir durante las alteraciones de la corrección ortográfica. Si necesita admitir una lista de palabras o acrónimos, procese la expresión en la aplicación cliente antes de enviar la expresión a LUIS para la predicción de intenciones.
Cambiar la zona horaria de la entidad datetimeV2 creada previamente
Cuando una aplicación de LUIS usa la entidad datetimeV2 creada previamente, se puede devolver un valor de fecha y hora en la respuesta de la predicción. La zona horaria de la solicitud se usa para determinar la fecha y hora correctas que se van a devolver. Si la solicitud procede de un bot o de otra aplicación centralizada antes de llegar a LUIS, corrija la zona horaria que usa LUIS.
API de predicción V3 para modificar la zona horaria
En la versión 3, datetimeReference
determina el desplazamiento de la zona horaria.
API de predicción V2 para modificar la zona horaria
La zona horaria se puede corregir agregando la zona horaria del usuario al punto de conexión mediante el parámetro timezoneOffset
basado en la versión de la API. El valor del parámetro debe ser un número positivo o negativo (en minutos) para modificar la hora.
Ejemplo de horario de verano de predicción V2
Si necesita que la entidad datetimeV2 creada previamente que se ha devuelto se ajuste al horario de verano, debe usar el parámetro de cadena de consulta con un valor +/- en minutos para la consulta del punto de conexión.
Agregar 60 minutos:
https://{region}.api.cognitive.microsoft.com/luis/v2.0/apps/{appId}?q=Turn the lights on?timezoneOffset=60&verbose={boolean}&spellCheck={boolean}&staging={boolean}&bing-spell-check-subscription-key={string}&log={boolean}
Quitar 60 minutos:
https://{region}.api.cognitive.microsoft.com/luis/v2.0/apps/{appId}?q=Turn the lights on?timezoneOffset=-60&verbose={boolean}&spellCheck={boolean}&staging={boolean}&bing-spell-check-subscription-key={string}&log={boolean}
El código en C# de la predicción de V2 determina el valor correcto del parámetro
El siguiente código de C# usa el método FindSystemTimeZoneById de la clase TimeZoneInfo para determinar el valor de desplazamiento correcto según la hora del sistema:
// Get CST zone id
TimeZoneInfo targetZone = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time");
// Get local machine's value of Now
DateTime utcDatetime = DateTime.UtcNow;
// Get Central Standard Time value of Now
DateTime cstDatetime = TimeZoneInfo.ConvertTimeFromUtc(utcDatetime, targetZone);
// Find timezoneOffset/datetimeReference
int offset = (int)((cstDatetime - utcDatetime).TotalMinutes);