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 können Sie das kostenlose LUIS-Konto für die Erstellung Ihrer LUIS-Anwendung verwenden.For this article, you can use the free LUIS account in order 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 Build auswählen.You can change to this section by selecting Build on the top, right menu bar.

  2. Wählen Sie Create new intent (Neue Absicht erstellen) aus.Select Create new intent.

  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.

  2. Wählen Sie Neue Entität erstellen aus.Select Create new entity.

  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

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

    Schaltfläche „Train“ (Trainieren)

  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.

    Statusleiste bei abgeschlossenem Training

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.

Vor dem Veröffentlichen oder dem Testen der Endpunkt-URL müssen Sie keinen LUIS-Endpunktschlüssel im Azure-Portal erstellen.You do not have to create a LUIS endpoint key in the Azure portal before you publish or before you test the endpoint URL. Jede LUIS-App verfügt über einen kostenlosen Startschlüssel für die Erstellung.Every LUIS app has a free starter key for authoring. Dieser ermöglicht das unbegrenzte Erstellen und eine geringe Anzahl an Endpunkttreffern.It gives you unlimited authoring and a few endpoint hits.

  1. Klicken Sie im Navigationsbereich oben rechts auf Veröffentlichen.Select Publish in the top right navigation.

  2. Wählen Sie den Produktionsslot und dann die Schaltfläche Publish (Veröffentlichen) aus.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. Wählen Sie unten auf der Seite Publish (Veröffentlichen) den Link endpoint (Endpunkt) aus.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 hierzu im Menü oben links die Option Meine Apps.To do so, select My apps from the top left menu. Klicken Sie in der Liste rechts vom App-Namen auf die Auslassungspunkte (...) und anschließend auf Löschen.Select the ellipsis (...) to the right of the app name in the app list, select Delete. Wählen Sie im Popupdialogfenster Delete App? (App löschen?) OK aus.On the pop-up dialog Delete app?, select Ok.

Nächste SchritteNext steps