Extracción de datos de texto de expresiones con intenciones y entidades
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 ofrece la capacidad de obtener información de expresiones de lenguaje natural de un usuario. La información se extrae de manera que pueda ser usada por un programa, una aplicación o un bot de chat para tomar medidas. En las secciones siguientes, obtendrá información sobre qué datos se devuelven de las intenciones y entidades con ejemplos de JSON.
Los datos más difíciles de extraer son los datos de aprendizaje automático, porque no corresponden a una coincidencia de texto exacta. El proceso de extracción de datos de entidades de aprendizaje automático debe formar parte del ciclo de creación hasta que esté seguro de que recibirá los datos que espera.
LUIS extrae datos de la expresión del usuario en el punto de conexión publicado. La solicitud HTTPS (POST o GET) contiene la expresión, así como algunas configuraciones opcionales como los entornos de producción o de almacenamiento provisional.
Solicitud de punto de conexión de predicción de V2
https://westus.api.cognitive.microsoft.com/luis/v2.0/apps/<appID>?subscription-key=<subscription-key>&verbose=true&timezoneOffset=0&q=book 2 tickets to paris
Solicitud de punto de conexión de predicción de V3
https://westus.api.cognitive.microsoft.com/luis/v3.0-preview/apps/<appID>/slots/<slot-type>/predict?subscription-key=<subscription-key>&verbose=true&timezoneOffset=0&query=book 2 tickets to paris
El valor de appID
está disponible en la página Configuración de la aplicación LUIS, así como parte de la dirección URL (después de /apps/
) cuando edite esa aplicación LUIS. El valor de subscription-key
es la clave de punto de conexión que se ha usado para consultar a la aplicación. Aunque puede usar la clave de inicio o creación gratis mientras se familiariza con LUIS, es importante que cambie la clave del punto de conexión por una clave que admita el uso esperado de LUIS. La unidad de timezoneOffset
es minutos.
La respuesta HTTPS contiene toda la información de la intención y la entidad que LUIS puede determinar en función del modelo actual publicado de un punto de conexión de producción o de almacenamiento provisional. La dirección URL del punto de conexión se encuentra en el sitio web de LUIS, en la sección Administrar, en la página Claves y puntos de conexión.
Los datos principales son el nombre de la intención de puntuación superior. La respuesta del punto de conexión es:
- Respuesta de punto de conexión de predicción de V2
- Respuesta de punto de conexión de predicción de V3
{
"query": "when do you open next?",
"topScoringIntent": {
"intent": "GetStoreInfo",
"score": 0.984749258
},
"entities": []
}
Objeto de datos | Tipo de datos | Ubicación de los datos | Value |
---|---|---|---|
Intención | String | topScoringIntent.intent | "GetStoreInfo" |
Si el bot de chat o aplicación de llamada a LUIS toma una decisión en función de más de una puntuación de intención, devuelve todas las puntuaciones de intenciones.
- Respuesta de punto de conexión de predicción de V2
- Respuesta de punto de conexión de predicción de V3
Establezca el parámetro querystring, verbose=true
. La respuesta del punto de conexión es:
{
"query": "when do you open next?",
"topScoringIntent": {
"intent": "GetStoreInfo",
"score": 0.984749258
},
"intents": [
{
"intent": "GetStoreInfo",
"score": 0.984749258
},
{
"intent": "None",
"score": 0.2040639
}
],
"entities": []
}
Las intenciones se ordenan de mayor a menor puntuación.
Objeto de datos | Tipo de datos | Ubicación de los datos | Value | Score |
---|---|---|---|---|
Intención | String | intents[0].intent | "GetStoreInfo" | 0.984749258 |
Intención | String | intents[1].intent | "None" | 0.0168218873 |
Si agrega dominios creados previamente, el nombre de la intención indica el dominio, como Utilties
o Communication
, así como la intención:
- Respuesta de punto de conexión de predicción de V2
- Respuesta de punto de conexión de predicción de V3
{
"query": "Turn on the lights next monday at 9am",
"topScoringIntent": {
"intent": "Utilities.ShowNext",
"score": 0.07842206
},
"intents": [
{
"intent": "Utilities.ShowNext",
"score": 0.07842206
},
{
"intent": "Communication.StartOver",
"score": 0.0239675418
},
{
"intent": "None",
"score": 0.0168218873
}],
"entities": []
}
Domain | Objeto de datos | Tipo de datos | Ubicación de los datos | Value |
---|---|---|---|---|
Sectores públicos | Intención | String | intents[0].intent | "Utilities.ShowNext" |
Comunicación | Intención | String | intents[1].intent | Communication.StartOver" |
Intención | String | intents[2].intent | "None" |
La mayoría de los bots de chat y las aplicaciones necesitan algo más que el nombre de la intención. Estos datos adicionales y opcionales proceden de las entidades que se han detectado en la expresión. Cada tipo de entidad devuelve otra información sobre la coincidencia.
Una sola palabra o frase en una expresión puede coincidir con más de una entidad. En ese caso, se devuelve cada entidad coincidente con su puntuación.
Se devuelven todas las entidades de la matriz entities de la respuesta desde el punto de conexión:
Revise la compatibilidad de los tokens en LUIS.
Las entidades creadas previamente se detectan en función de una coincidencia de expresión regular mediante el proyecto de código abierto Recognizers-Text. Las entidades creadas previamente se devuelven en la matriz de entidades y usan el nombre de tipo con el prefijo builtin::
.
Las entidades de lista representan un conjunto fijo y cerrado de palabras relacionadas y sus sinónimos. LUIS no detecta valores adicionales para las entidades de lista. Use la característica Recommend (Recomendar) para ver sugerencias de palabras nuevas en función de la lista actual. Si hay más de una entidad de lista con el mismo valor, se devolverá cada entidad en la consulta de punto de conexión.
Una entidad de expresión regular extrae una entidad basada en una expresión regular que se proporciona.
Obtener nombres de una expresión es difícil porque un nombre puede ser casi cualquier combinación de letras y palabras. En función de qué tipo de nombre vaya a extraer, tiene varias opciones. Las sugerencias siguientes no son reglas a seguir, si no más bien instrucciones.
Las entidades PersonName y GeographyV2 están disponibles en algunas referencias culturales del idioma.
Los nombres de personas pueden tener un pequeño formato en función del idioma y la referencia cultural. Use una entidad personName precompilada o una entidad sencilla con roles de nombre y apellido.
Si usa la entidad sencilla, asegúrese de proporcionar ejemplos que usen el nombre y el apellido en diferentes partes de la expresión, en expresiones de distintas longitudes y expresiones en todas las intenciones, incluida la intención None. Revise las expresiones del punto de conexión de forma regular para etiquetar los nombres que no se predijeron correctamente.
Los nombres de ubicaciones se establecen y conocen, por ejemplo, ciudades, condados, estados, provincias y países o regiones. Use la entidad precompilada geographyV2 para extraer información de ubicación.
Algunas aplicaciones necesitan poder encontrar nombres nuevos y emergentes, como productos o empresas. Estos tipos de nombres son el tipo más difícil de extracción de datos. Empiece con una entidad simple y agregue una lista de frases. Revise las expresiones del punto de conexión de forma regular para etiquetar los nombres que no se predijeron correctamente.
Pattern.any es un marcador de posición de longitud variable que solo se usa en la expresión de plantilla de un patrón para marcar dónde empieza y acaba la entidad. Debe encontrarse la entidad que se usa en el patrón para poder aplicar el patrón.
Si está configurado el análisis de sentimiento durante la publicación, la respuesta JSON de LUIS incluye el análisis de sentimiento. Obtenga más información sobre el análisis de sentimiento en la documentación del servicio de lenguaje.
La entidad de extracción de frases clave devuelve frases clave en la expresión, proporcionadas por el servicio de lenguaje.
LUIS devuelve todas las entidades que ha detectado la expresión. Como consecuencia, es posible que el bot de chat tenga que tomar una decisión en función de los resultados.
Si una palabra o frase coincide con más de una entidad de lista, la consulta de punto de conexión devolverá todas las entidades de lista.
Para la consulta when is the best time to go to red rock?
, si la aplicación tiene la palabra red
en más de una lista, LUIS reconocerá todas las entidades y devolverá una matriz de entidades como parte de la respuesta del punto de conexión JSON.
Vea Add entities (Agregar entidades) para obtener más información sobre cómo agregar entidades a la aplicación de LUIS.