Tutorial: 4.Tutorial: 4. Hinzufügen einer Entität vom Typ „Liste“Add list entity

In diesem Tutorial erstellen Sie eine App, mit der veranschaulicht wird, wie Sie Daten abrufen, die mit Angaben in einer vordefinierten Liste übereinstimmen.In this tutorial, create an app that demonstrates how to get data that matches a predefined list.

  • Verstehen von ListenentitätenUnderstand list entities
  • Erstellen einer neuen LUIS-App für den Personalbereich mit MoveEmployee-AbsichtCreate new LUIS app for the Human Resources (HR) domain with MoveEmployee intent
  • Hinzufügen einer Listenentität zum Extrahieren des Mitarbeiters aus einer ÄußerungAdd list entity to extract Employee from utterance
  • Trainieren und Veröffentlichen der AppTrain, and publish app
  • Abfragen des App-Endpunkts zum Anzeigen der LUIS-JSON-AntwortQuery endpoint of app to see LUIS JSON response

Für diesen Artikel benötigen Sie ein kostenloses LUIS-Konto, um Ihre LUIS-Anwendung erstellen zu können.For this article, you need a free LUIS account to author your LUIS application.

VoraussetzungenBefore you begin

Falls Sie nicht über die Personal-App aus dem Tutorial zur RegEx-Entität verfügen, importieren Sie den JSON-Code in eine neue App (auf der LUIS-Website).If you don't have the Human Resources app from the regex entity tutorial, import the JSON into a new app in the LUIS website. Die zu importierende App befindet sich im GitHub-Repository LUIS-Samples.The app to import is found in the LUIS-Samples Github repository.

Wenn Sie die ursprüngliche Personal-App behalten möchten, klonen Sie die Version auf der Seite Einstellungen, und nennen Sie sie list.If you want to keep the original Human Resources app, clone the version on the Settings page, and name it list. Durch Klonen können Sie ohne Auswirkungen auf die ursprüngliche Version mit verschiedenen Features von LUIS experimentieren.Cloning is a great way to play with various LUIS features without affecting the original version.

Zweck der ListenentitätPurpose of the list entity

Mit dieser App werden Äußerungen zur Verschiebung eines Mitarbeiters von einem Gebäude in ein anderes vorhergesagt.This app predicts utterances about moving an employee from one building to a different building. Diese App nutzt eine Listenentität zum Extrahieren eines Mitarbeiters.This app uses a list entity to extract an employee. Auf den Mitarbeiter kann per Name, Telefonnummer, E-Mail-Adresse oder US-Sozialversicherungsnummer verwiesen werden.The employee can be referred to using name, phone number, email, or U.S. federal social security number.

Eine Listenentität kann viele Elemente mit Synonymen für die einzelnen Elemente enthalten.A list entity can hold many items with synonyms for each item. Für kleine oder mittelgroße Unternehmen wird die Listenentität zum Extrahieren der Mitarbeiterinformationen genutzt.For a small to medium size company, the list entity is used to extract the employee information.

Der kanonische Name für die einzelnen Elemente ist die Mitarbeiternummer.The canonical name for each item is the employee number. Für diese Domäne lauten Beispiele für die Synonyme wie folgt:For this domain, examples of the synonyms are:

Zweck des SynonymsSynonym purpose Wert des SynonymsSynonym value
NAMEName John W. SmithJohn W. Smith
E-Mail-AdresseEmail address john.w.smith@mycompany.com
DurchwahlPhone extension x12345x12345
Persönliche MobiltelefonnummerPersonal mobile phone number 425-555-1212425-555-1212
US-SozialversicherungsnummerU.S. federal social security number 123-45-6789123-45-6789

Eine Listenentität ist eine gute Wahl für diese Art von Daten, wenn Folgendes gilt:A list entity is a good choice for this type of data when:

  • Bei den Datenwerten handelt es sich um einen bekannten Satz.The data values are a known set.
  • Für den Satz werden die maximalen LUIS-Grenzen dieses Entitätstyps nicht überschritten.The set doesn't exceed the maximum LUIS boundaries for this entity type.
  • Der Text in der Äußerung ist eine genaue Übereinstimmung mit einem Synonym.The text in the utterance is an exact match with a synonym.

Bei LUIS wird der Mitarbeiter so extrahiert, dass von der Clientanwendung eine Standardreihenfolge zum Verschieben des Mitarbeiters erstellt werden kann.LUIS extracts the employee in such as way that a standard order to move the employee can be created by the client application.

Hinzufügen einer MoveEmployee-AbsichtAdd MoveEmployee intent

  1. Vergewissern Sie sich, dass sich Ihre Personal-App im LUIS-Abschnitt Build befindet.Make sure your Human Resources app is in the Build section of LUIS. Zu diesem Abschnitt gelangen Sie, indem Sie rechts oben auf der Menüleiste auf Build klicken.You can change to this section by selecting Build on the top, right menu bar.

    Screenshot: LUIS-App mit hervorgehobener Build-Option (rechts oben auf der Navigationsleiste) Screenshot of LUIS app with Build hightlighted in top, right navigation bar

  2. Klicken Sie auf Create new intent (Neue Absicht erstellen).Select Create new intent.

    Screenshot: Seite „Intents“ (Absichten) mit hervorgehobener Schaltfläche „Create new intent“ (Neue Absicht erstellen) Screenshot of Intents page with Create new intent button highlighted

  3. Geben Sie im Popupdialogfeld die Zeichenfolge MoveEmployee ein, und klicken Sie anschließend auf Fertig.Enter MoveEmployee in the pop-up dialog box then select Done.

    Screenshot: Dialogfenster „Create new intent“ (Neue Absicht erstellen)

  4. Fügen Sie der Absicht Beispieläußerungen hinzu.Add example utterances to the intent.

    Beispiele für ÄußerungenExample utterances
    move John W. Smith from B-1234 to H-4452 (John W. Smith von B-1234 nach H-4452 verschieben)move John W. Smith from B-1234 to H-4452
    mv john.w.smith@mycompany.com from office b-1234 to office h-4452 (Verschieben von „john.w.smith@mycompany.com“ von Büro b-1234 in Büro h-4452)mv john.w.smith@mycompany.com from office b-1234 to office h-4452
    shift x12345 to h-1234 tomorrow (x12345 morgen nach h-1234 verlagern)shift x12345 to h-1234 tomorrow
    place 425-555-1212 in HH-2345 (425-555-1212 in HH-2345 anordnen)place 425-555-1212 in HH-2345
    move 123-45-6789 from A-4321 to J-23456 (123-45-6789 von A-4321 nach J-23456 verschieben)move 123-45-6789 from A-4321 to J-23456
    mv Jill Jones from D-2345 to J-23456 (Verschieben von Jill Jones von D-2345 nach J-23456)mv Jill Jones from D-2345 to J-23456
    shift jill-jones@mycompany.com to M-12345 („jill-jones@mycompany.com“ nach M-12345 verlagern)shift jill-jones@mycompany.com to M-12345
    x23456 to M-12345 (x23456 nach M-12345)x23456 to M-12345
    425-555-0000 to h-4452 (425-555-0000 nach h-4452)425-555-0000 to h-4452
    234-56-7891 to hh-2345 (234-56-7891 nach hh-2345)234-56-7891 to hh-2345

    Screenshot: Seite „Intents“ (Absichten) mit hervorgehobenen neuen Äußerungen Screenshot of Intent page with new utterances highlighted

Erstellen einer MitarbeiterlistenentitätCreate an employee list entity

Nachdem die Absicht MoveEmployee jetzt über Äußerungen verfügt, muss LUIS verstehen, was ein Mitarbeiter ist.Now that the MoveEmployee intent has utterances, LUIS needs to understand what an employee is.

  1. Klicken Sie im linken Bereich auf Entitäten.Select Entities in the left panel.

    Screenshot: Seite „Intent“ (Absicht) mit Hervorhebung der Schaltfläche „Entities“ (Entitäten) im linken Navigationsbereich Screenshot of Intent page with Entities button in left navigation highlighted

  2. Klicken Sie auf Neue Entität erstellen.Select Create new entity.

    Screenshot: Seite „Entities“ (Entitäten) mit Hervorhebung von „Neue Entität erstellen“ Screenshot of Entities page with Create new entity highlighted

  3. Geben Sie im Popupdialogfeld Employee als Entitätsname und List (Liste) als Entitätstyp ein.In the entity pop-up dialog, enter Employee for the entity name, and List for entity type. Wählen Sie Fertigaus.Select Done.

  4. Geben Sie auf der Seite mit der Mitarbeiterentität Employee-24612 als neuen Wert ein.On the Employee entity page, enter Employee-24612 as the new value.

  5. Fügen Sie unter „Synonyme“ die folgenden Werte hinzu:For Synonyms, add the following values:

    Zweck des SynonymsSynonym purpose Wert des SynonymsSynonym value
    NAMEName John W. SmithJohn W. Smith
    E-Mail-AdresseEmail address john.w.smith@mycompany.com
    DurchwahlPhone extension x12345x12345
    Persönliche MobiltelefonnummerPersonal mobile phone number 425-555-1212425-555-1212
    US-SozialversicherungsnummerU.S. federal social security number 123-45-6789123-45-6789

  6. Geben Sie Employee-45612 als neuen Wert ein.Enter the Employee-45612 as a new value.

  7. Fügen Sie unter „Synonyme“ die folgenden Werte hinzu:For Synonyms, add the following values:

    Zweck des SynonymsSynonym purpose Wert des SynonymsSynonym value
    NAMEName Jill JonesJill Jones
    E-Mail-AdresseEmail address jill-jones@mycompany.com
    DurchwahlPhone extension x23456x23456
    Persönliche MobiltelefonnummerPersonal mobile phone number 425-555-0000425-555-0000
    US-SozialversicherungsnummerU.S. federal social security number 234-56-7891234-56-7891

Trainieren der LUIS-AppTrain the LUIS app

LUIS ist erst dann über die Änderungen an den Absichten und Entitäten (Modell) informiert, nachdem der Dienst trainiert wurde.LUIS doesn't know about the changes to the intents and entities (the model), until it is trained.

  1. Klicken Sie oben rechts auf der LUIS-Website auf die Schaltfläche Train (Trainieren).In the top right side of the LUIS website, select the Train button.

    Trainieren der App

  2. Das Training ist abgeschlossen, wenn oben auf der Website die grüne Statusleiste angezeigt wird.Training is complete when you see the green status bar at the top of the website confirming success.

    Training erfolgreich

Veröffentlichen der App zum Abrufen der Endpunkt-URLPublish the app to get the endpoint URL

Damit Sie eine LUIS-Vorhersage in einem Chatbot oder einer anderen Anwendung abrufen können, muss die App veröffentlicht werden.In order to get a LUIS prediction in a chatbot or other application, you need to publish the app.

  1. Klicken Sie oben rechts auf der LUIS-Website auf die Schaltfläche Publish (Veröffentlichen).In the top right side of the LUIS website, select the Publish button.

  2. Wählen Sie den Produktionsslot aus, und klicken Sie auf die Schaltfläche Publish (Veröffentlichen).Select the Production slot and the Publish button.

  3. Die Veröffentlichung ist abgeschlossen, wenn oben auf der Website die grüne Statusleiste angezeigt wird.Publishing is complete when you see the green status bar at the top of the website confirming success.

Abfragen des Endpunkts mit einer anderen ÄußerungQuery the endpoint with a different utterance

  1. Klicken Sie unten auf der Seite Veröffentlichen auf den Link Endpunkt.On the Publish page, select the endpoint link at the bottom of the page. Hierdurch wird ein weiteres Browserfenster mit der Endpunkt-URL in der Adressleiste geöffnet.This action opens another browser window with the endpoint URL in the address bar.

  2. Geben Sie in der Adressleiste am Ende der URL shift 123-45-6789 from Z-1242 to T-54672 ein.Go to the end of the URL in the address and enter shift 123-45-6789 from Z-1242 to T-54672. Der letzte Parameter der Abfragezeichenfolge lautet q (für die Abfrage („query“) der Äußerung).The last querystring parameter is q, the utterance query. Diese Äußerung entspricht keiner der bezeichneten Äußerungen. Sie ist daher ein guter Test, und es sollte die Absicht MoveEmployee mit Extrahierung von Employee zurückgegeben werden.This utterance is not the same as any of the labeled utterances so it is a good test and should return the MoveEmployee intent with Employee extracted.

{
  "query": "shift 123-45-6789 from Z-1242 to T-54672",
  "topScoringIntent": {
    "intent": "MoveEmployee",
    "score": 0.9882801
  },
  "intents": [
    {
      "intent": "MoveEmployee",
      "score": 0.9882801
    },
    {
      "intent": "FindForm",
      "score": 0.016044287
    },
    {
      "intent": "GetJobInformation",
      "score": 0.007611245
    },
    {
      "intent": "ApplyForJob",
      "score": 0.007063288
    },
    {
      "intent": "Utilities.StartOver",
      "score": 0.00684710965
    },
    {
      "intent": "None",
      "score": 0.00304174074
    },
    {
      "intent": "Utilities.Help",
      "score": 0.002981
    },
    {
      "intent": "Utilities.Confirm",
      "score": 0.00212222221
    },
    {
      "intent": "Utilities.Cancel",
      "score": 0.00191026414
    },
    {
      "intent": "Utilities.Stop",
      "score": 0.0007461446
    }
  ],
  "entities": [
    {
      "entity": "123 - 45 - 6789",
      "type": "Employee",
      "startIndex": 6,
      "endIndex": 16,
      "resolution": {
        "values": [
          "Employee-24612"
        ]
      }
    },
    {
      "entity": "123",
      "type": "builtin.number",
      "startIndex": 6,
      "endIndex": 8,
      "resolution": {
        "value": "123"
      }
    },
    {
      "entity": "45",
      "type": "builtin.number",
      "startIndex": 10,
      "endIndex": 11,
      "resolution": {
        "value": "45"
      }
    },
    {
      "entity": "6789",
      "type": "builtin.number",
      "startIndex": 13,
      "endIndex": 16,
      "resolution": {
        "value": "6789"
      }
    },
    {
      "entity": "-1242",
      "type": "builtin.number",
      "startIndex": 24,
      "endIndex": 28,
      "resolution": {
        "value": "-1242"
      }
    },
    {
      "entity": "-54672",
      "type": "builtin.number",
      "startIndex": 34,
      "endIndex": 39,
      "resolution": {
        "value": "-54672"
      }
    }
  ]
}

Der Mitarbeiter wurde gefunden und mit dem Typ Employee mit dem Auflösungswert Employee-24612 zurückgegeben.The employee was found and returned as type Employee with a resolution value of Employee-24612.

Wo wird für die Listenentität die Verarbeitung natürlicher Sprache durchgeführt?Where is the natural language processing in the List entity?

Da für die Listenentität eine genaue Textübereinstimmung erforderlich ist, wird keine Verarbeitung von natürlicher Sprache durchgeführt (und auch kein maschinelles Lernen).Because the list entity is an exact text match, it doesn't rely on natural language processing (or machine-learning). Die Verarbeitung natürlicher Sprache (bzw. maschinelles Lernen) wird für LUIS verwendet, um die richtige Absicht mit der höchsten Bewertung auszuwählen.LUIS does use natural language processing (or machine-learning) to select the correct top-scoring intent. Darüber hinaus kann eine Äußerung eine Mischung von mehr als einer Entität oder sogar mehr als einem Entitätstyp sein.Additionally, an utterance can be a mix of more than one entity or even more than one type of entity. Jede Äußerung wird für alle Entitäten der App verarbeitet, einschließlich der Entitäten, die auf der Verarbeitung natürlicher Sprache (oder maschinellem Lernen) basieren.Each utterance is processed for all the entities in the app, including natural language processing (or machine-learned) entities.

Was wurde mit dieser LUIS-App erreicht?What has this LUIS app accomplished?

Mit dieser App wurde basierend auf einer Listenentität der richtige Mitarbeiter extrahiert.This app, with a list entity, extracted the correct employee.

Ihr Chatbot verfügt nun über genügend Informationen, um die primäre Aktion (MoveEmployee) und den Mitarbeiter für den Verschiebevorgang zu ermitteln.Your chatbot now has enough information to determine the primary action, MoveEmployee, and which employee to move.

Wo werden diese LUIS-Daten verwendet?Where is this LUIS data used?

LUIS hat diese Anforderung abgeschlossen.LUIS is done with this request. Die aufrufende Anwendung (z.B. ein Chatbot) kann das Ergebnis für „topScoringIntent“ und die Daten aus der Entität verwenden, um den nächsten Schritt auszuführen.The calling application, such as a chatbot, can take the topScoringIntent result and the data from the entity to take the next step. LUIS führt diese programmgesteuerte Aufgabe nicht für den Bot oder die aufrufende Anwendung aus.LUIS doesn't do that programmatic work for the bot or calling application. LUIS bestimmt lediglich die Absicht des Benutzers.LUIS only determines what the user's intention is.

Bereinigen von RessourcenClean up resources

Löschen Sie die LUIS-App, falls Sie sie nicht mehr benötigen.When no longer needed, delete the LUIS app. Wählen Sie im Menü oben links die Option Meine Apps.Select Mu apps on the top, left menu. Klicken Sie in der Liste rechts vom App-Namen auf die drei Punkte (...) und anschließend auf Löschen.Select the three dot menu (...) to the right of the app name in the app list, select Delete. Klicken Sie im Popupdialogfenster Delete app? (App löschen?) auf OK.On the pop-up dialog Delete app?, select Ok.

Nächste SchritteNext steps