Tutorial: Obtener datos coincidentes con el texto exacto de una expresiónTutorial: Get exact text-matched data from an utterance

En este tutorial, aprenderá cómo obtener datos de entidad que coincidan con una lista de elementos predefinida.In this tutorial, understand how to get entity data that matches a predefined list of items.

En este tutorial, aprenderá a:In this tutorial, you learn how to:

  • Creación de una aplicaciónCreate app
  • Agregar intenciónAdd intent
  • Incorporación de entidad de listaAdd list entity
  • TrainTrain
  • PublicarPublish
  • Obtener intenciones y entidades del punto de conexiónGet intents and entities from endpoint

Para este artículo, puede usar la cuenta de LUIS gratuita para crear la aplicación de LUIS.For this article, you can use the free LUIS account in order to author your LUIS application.

¿Qué es una entidad de lista?What is a list entity?

Una entidad de la lista es una coincidencia de texto exacta con las palabras de la expresión.A list entity is an exact text match to the words in the utterance.

Cada elemento de la lista puede incluir una lista de sinónimos.Each item on the list can include a list of synonyms. Para la aplicación de recursos humanos, un departamento de la empresa puede identificarse mediante varios datos clave, como el nombre oficial, las siglas comunes y los códigos del departamento de facturación.For the human resources app, a company department can be identified by several key pieces of information such as an official name, common acronyms, and billing department codes.

La aplicación de recursos humanos debe determinar a qué departamento se transfiere un empleado.The Human Resources app needs to determine the department an employee is transferring to.

Una entidad de lista es una buena opción para este tipo de datos cuando:A list entity is a good choice for this type of data when:

  • Los valores de los datos son un conjunto conocido.The data values are a known set.
  • El conjunto no excede los límites máximos de LUIS para este tipo de entidad.The set doesn't exceed the maximum LUIS boundaries for this entity type.
  • El texto de la expresión es una coincidencia exacta con un sinónimo o el nombre canónico.The text in the utterance is an exact match with a synonym or the canonical name. LUIS no usa la lista más allá de las coincidencias exactas de texto.LUIS doesn't use the list beyond exact text matches. La lematización, los plurales y otras variaciones no se resuelven solo con una entidad de lista.Stemming, plurals, and other variations are not resolved with just a list entity. Para administrar las variaciones, considere el uso de un patrón con la sintaxis de texto opcional.To manage variations, consider using a pattern with the optional text syntax.

Creación de una nueva aplicaciónCreate a new app

  1. Inicie sesión en el portal de LUIS con la dirección URL https://www.luis.ai.Sign in to the LUIS portal with the URL of https://www.luis.ai.

  2. Seleccione Create new app (Crear nueva aplicación).Select Create new app.

    Captura de pantalla de la página My Apps (Mis aplicaciones) de Language Understanding (LUIS)Screenshot of Language Understanding (LUIS) My Apps page

  3. En el cuadro de diálogo emergente, escriba el nombre HumanResources y mantenga la referencia cultural predeterminada, English (Inglés).In the pop-up dialog, enter the name HumanResources and keep the default culture, English. Deje en blanco la descripción.Leave the description empty.

    Creación de una nueva aplicación LUIS de HumanResources

  4. Seleccione Listo.Select Done.

Creación de una intención para transferir empleados a un departamento diferenteCreate an intent to transfer employees to a different department

  1. Asegúrese de que la aplicación de recursos humanos se encuentra en la sección Build (Crear) de LUIS.Make sure your Human Resources app is in the Build section of LUIS. Para cambiar a esta sección, seleccione Build (Crear) en la barra de menús superior derecha.You can change to this section by selecting Build on the top, right menu bar.

  2. Haga clic en Create new intent (Crear intención).Select Create new intent.

  3. Escriba TransferEmployeeToDepartment en el cuadro de diálogo emergente y seleccione Done (Listo).Enter TransferEmployeeToDepartment in the pop-up dialog box then select Done.

    Captura de pantalla del cuadro de diálogo Create new intent (Crear nueva intención)

  4. Agregue expresiones de ejemplo a la intención.Add example utterances to the intent.

    Expresiones de ejemploExample utterances
    move John W. Smith to the accounting department (mover a John W. Smith al departamento de contabilidad)move John W. Smith to the accounting department
    transfer Jill Jones from to R&D (transferir a Jill Jones a I+D)transfer Jill Jones from to R&D
    Dept 1234 has a new member named Bill Bradstreet (El dep. 1234 tiene un nuevo miembro llamado Bill Bradstreet)Dept 1234 has a new member named Bill Bradstreet
    Place John Jackson in Engineering (Colocar a John Jackson en Ingeniería)Place John Jackson in Engineering
    move Debra Doughtery to Inside Sales (mover a Debra Doughtery a Ventas internas)move Debra Doughtery to Inside Sales
    mv Jill Jones to IT (mover a Jill Jones a Informática)mv Jill Jones to IT
    Shift Alice Anderson to DevOps (Cambiar a Alice Anderson a DevOps)Shift Alice Anderson to DevOps
    Carl Chamerlin to Finance (Carl Chamerlin a Finanzas)Carl Chamerlin to Finance
    Steve Standish to 1234 (Steve Standish a 1234)Steve Standish to 1234
    Tanner Thompson to 3456 (Tanner Thompson a 3456)Tanner Thompson to 3456

    Captura de pantalla de intención con expresiones de ejemploScreenshot of intent with example utterances

    Estas expresiones son solo con fines de demostración.These few utterances are for demonstration purposes only. Una aplicación real debería tener al menos 15 expresiones de longitud variable, con el orden de las palabras, el tiempo verbal, la exactitud gramatical, la puntuación y el recuento de palabras variables.A real-world app should have at least 15 utterances of varying length, word order, tense, grammatical correctness, punctuation, and word count.

Entidad de lista de departamentosDepartment list entity

Ahora que la intención TransferEmployeeToDepartment tiene expresiones de ejemplo, LUIS debe comprender qué es un departamento.Now that the TransferEmployeeToDepartment intent has example utterances, LUIS needs to understand what is a department.

El nombre principal canónico de cada elemento es el nombre de departamento.The primary, canonical, name for each item is the department name. Los ejemplos de los sinónimos de cada nombre canónico son:Examples of the synonyms of each canonical name are:

Nombre canónicoCanonical name SinónimosSynonyms
ControlAccounting acctacct
acctingaccting
34563456
Development OperationsDevelopment Operations DevOpsDevops
49494949
EngineeringEngineering engeng
engingenging
45674567
FinanceFinance finfin
20202020
Information TechnologyInformation Technology ITIT
23232323
Inside SalesInside Sales isaleisale
insaleinsale
14141414
Research and DevelopmentResearch and Development R&DR&D
12341234
  1. Seleccione Entities (Entidades) en el panel izquierdo.Select Entities in the left panel.

  2. Haga clic en Crear nueva entidad.Select Create new entity.

  3. En el cuadro de diálogo emergente de la entidad, escriba Department para el nombre de la entidad y List (Lista) para el tipo de entidad.In the entity pop-up dialog, enter Department for the entity name, and List for entity type. Seleccione Listo.Select Done.

    Captura de pantalla del cuadro de diálogo emergente para crear una entidad nuevaScreenshot of creating new entity pop-up dialog

  4. En la página de la entidad Department, escriba Accounting como el nuevo valor.On the Department entity page, enter Accounting as the new value.

  5. Para Synonyms (Sinónimos), agregue los sinónimos de la tabla anterior.For Synonyms, add the synonyms from the previous table.

  6. Continúe agregando todos los nombres canónicos y sus sinónimos.Continue adding all the canonical names and their synonyms.

Adición de expresiones de ejemplo a la intención NoneAdd example utterances to the None intent

La aplicación cliente debe saber si una expresión no es significativa o adecuada para la aplicación.The client application needs to know if an utterance is not meaningful or appropriate for the application. La intención None se agrega a cada aplicación como parte del proceso de creación para determinar si la aplicación cliente no puede responder a una expresión.The None intent is added to each application as part of the creation process to determine if an utterance can't be answered by the client application.

Si LUIS devuelve la intención None para una expresión, la aplicación cliente puede preguntar al usuario si quiere finalizar la conversación o dar más instrucciones para continuarla.If LUIS returns the None intent for an utterance, your client application can ask if the user wants to end the conversation or give more directions for continuing the conversation.

Precaución

No deje la intención None vacía.Do not leave the None intent empty.

  1. Seleccione Intents (Intenciones) en el panel izquierdo.Select Intents from the left panel.

  2. Seleccione la intención None.Select the None intent. Agregue tres expresiones que el usuario podría solicitar pero que no son pertinentes para la aplicación de recursos humanos:Add three utterances that your user might enter but are not relevant to your Human Resources app:

    Expresiones de ejemploExample utterances
    Barking dogs are annoying (Los perros que ladran son molestos)Barking dogs are annoying
    Order a pizza for me (Pídanme una pizza)Order a pizza for me
    Penguins in the ocean (Pingüinos en el océano)Penguins in the ocean

Entrenamiento de la aplicación para probar los cambios en la intenciónTrain the app so the changes to the intent can be tested

  1. En la parte superior derecha del sitio web de LUIS, haga clic en el botón Entrenar.In the top right side of the LUIS website, select the Train button.

    Botón Train (Entrenar)

  2. El entrenamiento se completa cuando ve la barra de estado verde en la parte superior del sitio web que confirma que se ha realizado correctamente.Training is complete when you see the green status bar at the top of the website confirming success.

    Barra de estado que indica que el entrenamiento se realizó

Publicación de la aplicación para que se pueda consultar al modelo entrenado desde el punto de conexiónPublish the app so the trained model is queryable from the endpoint

Para recibir una predicción de LUIS en un bot de chat u otra aplicación cliente, tiene que publicar la aplicación en el punto de conexión.In order to receive a LUIS prediction in a chat bot or other client application, you need to publish the app to the endpoint.

  1. Seleccione Publish (Publicar) en el panel de navegación superior derecho.Select Publish in the top right navigation.

    Botón de publicación en el punto de conexión de LUIS del menú superior derecho

  2. Seleccione el espacio Production (Producción) y haga clic en el botón Publish (Publicar).Select the Production slot and the Publish button.

    Publicación en el punto de conexión de LUIS

  3. La publicación se completa cuando ve la barra de estado verde en la parte superior del sitio web que confirma que se ha realizado correctamente.Publishing is complete when you see the green status bar at the top of the website confirming success.

    Publicación en el punto de conexión de LUIS

  4. Seleccione el vínculo endpoints (puntos de conexión) en la barra de estado verde para ir a la página Keys and endpoints (Claves y puntos de conexión).Select the endpoints link in the green status bar to go to the Keys and endpoints page. Las direcciones URL de los puntos de conexión se muestran en la parte inferior.The endpoint URLs are listed at the bottom.

Obtención de intención y predicción de entidad desde el punto de conexiónGet intent and entity prediction from endpoint

  1. En la sección Manage (Administrar) del menú superior derecho, en la página Keys and endpoints (Claves y puntos de conexión) del menú de la izquierda, seleccione la URL del punto de conexión al final de la página.In the Manage section (top right menu), on the Keys and endpoints page (left menu), select the endpoint URL at the bottom of the page. Esta acción abre otra pestaña del explorador con la dirección URL del punto de conexión en la barra de direcciones.This action opens another browser tab with the endpoint URL in the address bar.

    La dirección URL del punto de conexión es similar a https://<region>.api.cognitive.microsoft.com/luis/v2.0/apps/<appID>?verbose=true&subscription-key=<YOUR_KEY>&<optional-name-value-pairs>&q=<user-utterance-text>.The endpoint URL looks like https://<region>.api.cognitive.microsoft.com/luis/v2.0/apps/<appID>?verbose=true&subscription-key=<YOUR_KEY>&<optional-name-value-pairs>&q=<user-utterance-text>.

  2. Vaya al final de la dirección URL en la dirección y escriba shift Joe Smith to IT.Go to the end of the URL in the address and enter shift Joe Smith to IT. El último parámetro de la cadena de consulta es q, la expresión query.The last querystring parameter is q, the utterance query. Esta expresión no es la misma que las expresiones etiquetadas, por lo que es una buena prueba y debería devolver la intención TransferEmployeeToDepartment con Department extraído.This utterance is not the same as any of the labeled utterances so it is a good test and should return the TransferEmployeeToDepartment intent with Department extracted.

     {
       "query": "shift Joe Smith to IT",
       "topScoringIntent": {
         "intent": "TransferEmployeeToDepartment",
         "score": 0.9775754
       },
       "intents": [
         {
           "intent": "TransferEmployeeToDepartment",
           "score": 0.9775754
         },
         {
           "intent": "None",
           "score": 0.0154493852
         }
       ],
       "entities": [
         {
           "entity": "it",
           "type": "Department",
           "startIndex": 19,
           "endIndex": 20,
           "resolution": {
             "values": [
               "Information Technology"
             ]
           }
         }
       ]
     }
    

Limpieza de recursosClean up resources

Cuando ya no sea necesaria, elimine la aplicación de LUIS.When no longer needed, delete the LUIS app. Para hacerlo, seleccione My apps (Mis aplicaciones) en el menú superior izquierdo.To do so, select My apps from the top left menu. Seleccione los puntos suspensivos (...) a la derecha del nombre de la aplicación en la lista de aplicaciones y, después, seleccione Delete (Eliminar).Select the ellipsis (...) to the right of the app name in the app list, select Delete. En el cuadro de diálogo emergente Delete app? (¿Eliminar aplicación?), haga clic en Ok (Aceptar).On the pop-up dialog Delete app?, select Ok.

Pasos siguientesNext steps

Este tutorial se creó una nueva intención, se agregaron expresiones de ejemplo y luego se creó una entidad de lista para extraer las coincidencias exactas del texto de las expresiones.This tutorial created a new intent, added example utterances, then created a list entity to extract exact text matches from utterances. Después del aprendizaje y de la publicación de la aplicación, una consulta al punto de conexión identificó la intención y devolvió los datos extraídos.After training, and publishing the app, a query to the endpoint identified the intention and returned the extracted data.

Continúe con esta aplicación, agregando una entidad compuesta.Continue with this app, adding a composite entity.