Tutorial 4: Extrahieren genauer TextübereinstimmungenTutorial 4: Extract exact text matches

In diesem Tutorial lernen Sie, wie Daten abgerufen werden, die mit einer vordefinierten Liste von Elementen übereinstimmen.In this tutorial, understand how to get data that matches a predefined list of items. Jedes Element auf der Liste kann eine Liste mit Synonymen enthalten.Each item on the list can include a list of synonyms. Für die Personalwesen-App kann ein Mitarbeiter anhand verschiedener Schlüsselinformationen, wie Name, E-Mail, Telefonnummer und Steuernummer identifiziert werden.For the human resources app, an employee can be identified be several key pieces of information such as name, email, phone number, and U.S. federal tax ID.

Die Personalwesen-App muss bestimmen, welcher Mitarbeiter von einem Gebäude in ein anderes Gebäude verlegt wird.The Human Resources app needs to determine which employee is moving from one building to a different building. Für eine Äußerung über eine Mitarbeiterverlegung bestimmt LUIS die Absicht und extrahiert den Mitarbeiter, damit von der Clientanwendung ein Standardauftrag zum Verlegen des Mitarbeiters erstellt werden kann.For an utterance about an employee move, LUIS determines the intent, and extracts the employee so that a standard order to move the employee can be created by the client application.

Diese App verwendet eine Listenentität, um den Mitarbeiter zu extrahieren.This app uses a list entity to extract the employee. Auf den Mitarbeiter kann über den Namen, die Telefondurchwahl, die Mobiltelefonnummer, die E-Mail-Adresse oder die Steuernummer Bezug genommen werden.The employee can be referred to using name, company phone extension, mobile phone number, email, or U.S. federal social security number.

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 exakte Übereinstimmung mit einem Synonym oder dem kanonischen Namen.The text in the utterance is an exact match with a synonym or the canonical name.

In diesem Tutorial lernen Sie Folgendes:In this tutorial, you learn how to:

  • Verwenden der vorhandenen Tutorial-AppUse existing tutorial app
  • Hinzufügen einer MoveEmployee-AbsichtAdd MoveEmployee intent
  • Hinzufügen einer Entität vom Typ „Liste“Add list entity
  • TrainierenTrain
  • VeröffentlichenPublish
  • Abrufen von Absichten und Entitäten vom EndpunktGet intents and entities from endpoint

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.

Verwenden der vorhandenen AppUse existing app

Fahren Sie mit der im letzten Tutorial erstellten App mit dem Namen HumanResources fort.Continue with the app created in the last tutorial, named HumanResources.

Wenn Sie nicht über die HumanResources-App aus dem vorhergehenden Tutorial verfügen, befolgen Sie diese Schritte:If you do not have the HumanResources app from the previous tutorial, use the following steps:

  1. Laden Sie die App-JSON-Datei herunter, und speichern Sie sie.Download and save app JSON file.

  2. Importieren Sie den JSON-Code in eine neue App.Import the JSON into a new app.

  3. Klonen Sie die Version von der Registerkarte Versionen aus dem Abschnitt Verwalten, und geben Sie ihr den Namen list.From the Manage section, on the Versions tab, clone the version, 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. Da der Versionsname als Teil der URL-Route verwendet wird, darf er keine Zeichen enthalten, die in einer URL ungültig sind.Because the version name is used as part of the URL route, the name can't contain any characters that are not valid in a URL.

MoveEmployee-AbsichtMoveEmployee 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

    Beachten Sie, dass „Zahl“ und „datetimeV2“ in einem vorhergehenden Tutorial hinzugefügt wurden und automatisch bezeichnet werden, wenn sie in Beispieläußerungen gefunden werden.Remember that number and datetimeV2 were added in a previous tutorial and will be automatically labeled when they are found in any example utterances.

    Diese Äußerungen dienen lediglich zur Veranschaulichung.These few utterances are for demonstration purposes only. Eine reale App sollte mindestens 15 Äußerungen mit unterschiedlicher Länge, Wortstellung, Zeitform, grammatikalischer Genauigkeit und Wortanzahl enthalten.A real-world app should have at least 15 utterances of varying length, word order, tense, grammatical correctness, and word count.

Mitarbeiter-ListenentitätEmployee list entity

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

Der primäre, kanonische Name für die einzelnen Elemente ist die Mitarbeiternummer.The primary, canonical, name for each item is the employee number. Für diese Domäne lauten Beispiele für die Synonyme der einzelnen kanonischen Namen wie folgt:For this domain, examples of the synonyms of each canonical name 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
  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

TrainierenTrain

  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öffentlichenPublish

Damit Sie eine LUIS-Vorhersage in einem Chatbot oder einer anderen Clientanwendung empfangen können, muss die App im Endpunkt veröffentlicht werden.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. Klicken Sie im Navigationsbereich oben rechts auf Veröffentlichen.Select Publish in the top right navigation.

    Schaltfläche für das Veröffentlichen von LUIS im Endpunkt im Menü oben rechts

  2. Wählen Sie den Produktionsslot und dann die Schaltfläche Veröffentlichen aus.Select the Production slot and the Publish button.

    Veröffentlichen von LUIS im Endpunkt

  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.

    Veröffentlichen von LUIS im Endpunkt

  4. Wählen Sie den Link Endpunkte in der grünen Statusleiste aus, um zur Seite Schlüssel und Endpunkte zu wechseln.Select the endpoints link in the green status bar to go to the Keys and endpoints page. Die Endpunkt-URLs sind unten aufgeführt.The endpoint URLs are listed at the bottom.

Abrufen von Absicht und Entitäten von einem EndpunktGet intent and entities from endpoint

  1. Wählen Sie auf der Seite Schlüssel und Endpunkte (linkes Menü) im Abschnitt Verwalten (Menü oben rechts) die Endpunkt-URL unten auf der Seite aus.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. Hierdurch wird eine weitere Browserregisterkarte mit der Endpunkt-URL in der Adressleiste geöffnet.This action opens another browser tab with the endpoint URL in the address bar.

    Die Endpunkt-URL sieht etwa so aus: 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. 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.

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

In diesem Tutorial wurden eine neue Absicht erstellt, Beispieläußerungen hinzugefügt und dann eine Listenentität erstellt, um exakte Textübereinstimmungen aus Äußerungen zu extrahieren.This tutorial created a new intent, added example utterances, then created a list entity to extract exact text matches from utterances. Nach dem Trainieren und Veröffentlichen der App hat eine Abfrage des Endpunkts die Absicht identifiziert und die extrahierten Daten zurückgegeben.After training, and publishing the app, a query to the endpoint identified the intention and returned the extracted data.