Tutorial: Abrufen von gut formatierten Daten aus der ÄußerungTutorial: Get well-formatted data from the utterance

In diesem Tutorial erstellen Sie eine App zum Extrahieren einheitlich formatierter Daten aus einer Äußerung mithilfe der Entität Regulärer Ausdruck.In this tutorial, create an app to extract consistently-formatted data from an utterance using the Regular Expression entity.

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

  • Erstellen einer neuen AppCreate a new app
  • Hinzufügen einer AbsichtAdd intent
  • Hinzufügen einer Entität vom Typ „Regulärer Ausdruck“Add regular expression 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.

RegEx-EntitätenRegular expression entities

In dieser App wird die Entität vom Typ „Regulärer Ausdruck“ verwendet, um gut formatierte Personalformularnummern aus einer Äußerung zu extrahieren.This app's use of the regular expression entity is to pull out well-formatted Human Resources (HR) form numbers from an utterance. Zwar wird die Absicht der Äußerung immer durch Machine Learning bestimmt, doch wird bei diesem spezifischen Entitätstyp kein Machine Learning verwendet.While the utterance's intent is always determined with machine-learning, this specific entity type is not machine-learned.

Hier sehen Sie einige einfache Beispieläußerungen:Example utterances include:

Beispiele für ÄußerungenExample utterances
Wo ist HRF-123456?Where is HRF-123456?
Wer hat HRF-123234 erstellt?Who authored HRF-123234?
Ist HRF-456098 in Französisch veröffentlicht?HRF-456098 is published in French?
HRF-456098HRF-456098
Welches Datum hat HRF-456098?HRF-456098 date?

Ein regulärer Ausdruck ist eine gute Wahl für diese Art von Daten, wenn Folgendes gilt:A regular expression is a good choice for this type of data when:

  • Die Daten sind korrekt formatiert.the data is well-formatted.

Erstellen einer neuen AppCreate a new app

  1. Melden Sie sich beim LUIS-Portal mit der URL https://www.luis.ai an.Sign in to the LUIS portal with the URL of https://www.luis.ai.

  2. Klicken Sie auf Create new app (Neue App erstellen).Select Create new app.

    Screenshot der Seite „Meine Apps“ von Language Understanding (LUIS)Screenshot of Language Understanding (LUIS) My Apps page

  3. Geben Sie im Popupdialogfeld den Namen HumanResources ein, und behalten Sie die Standardkultur Englisch bei.In the pop-up dialog, enter the name HumanResources and keep the default culture, English. Lassen Sie die Beschreibung leer.Leave the description empty.

    Erstellen einer neuen LUIS-App namens „HumanResources“

  4. Wählen Sie Fertigaus.Select Done. Als nächstes zeigt die App die Seite Absichten mit der Absicht Keine an.Next, the app shows the Intents page with the None Intent.

Erstellen einer Absicht zum Finden eines FormularsCreate intent for finding form

  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 FindForm ein, und klicken Sie anschließend auf Fertig.Enter FindForm in the pop-up dialog box then select Done.

    Screenshot: Dialogfeld zum Erstellen einer neuen Absicht mit eingegebenem Suchbegriff

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

    BeispieläußerungenExample utterances
    What is the URL for hrf-123456? (Wie lautet die URL für hrf-123456?)What is the URL for hrf-123456?
    Where is hrf-345678? (Wo ist hrf-345678?)Where is hrf-345678?
    When was hrf-456098 updated? (Wann wurde hrf-456098 aktualisiert?)When was hrf-456098 updated?
    Did John Smith update hrf-234639 last week? (Hat John Smith hrf-234639 letzte Woche aktualisiert?)Did John Smith update hrf-234639 last week?
    How many version of hrf-345123 are there? (Wie viele-Versionen von hrf-345123 gibt es?)How many versions of hrf-345123 are there?
    Who needs to authorize form hrf-123456? (Wer muss das Formular hrf-123456 autorisieren?)Who needs to authorize form hrf-123456?
    How many people need to sign off on hrf-345678? (Wie viele Personen müssen hrf-345678 genehmigen?)How many people need to sign off on hrf-345678?
    hrf-234123 date? (hrf-234123 Datum?)hrf-234123 date?
    author of hrf-546234? (Ersteller von hrf-546234?)author of hrf-546234?
    title of hrf-456234? (Titel von hrf-456234?)title of hrf-456234?

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

    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, Zeichensetzung und Wortanzahl enthalten.A real-world app should have at least 15 utterances of varying length, word order, tense, grammatical correctness, punctuation, and word count.

Verwenden der Entität „Regulärer Ausdruck“ für gut formatierte DatenUse the regular expression entity for well-formatted data

Die Entität vom Typ „Regulärer Ausdruck“ für den Abgleich der Formularnummer lautet hrf-[0-9]{6}.The regular expression entity to match the form number is hrf-[0-9]{6}. Dieser reguläre Ausdruck gleicht die Literalzeichen hrf- ab, ignoriert aber die Groß-/Kleinschreibung sowie kulturelle Varianten.This regular expression matches the literal characters hrf- but ignores case and culture variants. Außerdem werden genau sechs Ziffern (jeweils von 0 bis 9) abgeglichen.It matches digits 0-9, for 6 digits exactly.

HRF steht für human resources form.HRF stands for human resources form.

LUIS tokenisiert die Äußerung, wenn diese einer Absicht hinzugefügt wird.LUIS tokenizes the utterance when it is added to an intent. Bei der Tokenisierung für diese Äußerungen werden vor und nach dem Bindestrich Leerzeichen eingefügt: Where is HRF - 123456?. Der reguläre Ausdruck wird auf die Rohform der Äußerung (vor der Tokenisierung) angewendet.The tokenization for these utterances adds spaces before and after the hyphen, Where is HRF - 123456? The regular expression is applied to the utterance in its raw form, before it is tokenized. Aufgrund der Anwendung auf die Rohform muss der reguläre Ausdruck keine Wortgrenzen berücksichtigen.Because it is applied to the raw form, the regular expression doesn't have to deal with word boundaries.

In den folgenden Schritten erstellen Sie eine Entität vom Typ „Regulärer Ausdruck“, um LUIS mit dem Format von „HRF-number“ vertraut zu machen:Create a regular expression entity to tell LUIS what an HRF-number format is in the following steps:

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

  2. Klicken Sie auf der Seite „Entitäten“ auf die Schaltfläche Create new entity (Neue Entität erstellen).Select Create new entity button on the Entities Page.

  3. Geben Sie im daraufhin angezeigten Popupdialogfeld HRF-number als Name der neuen Entität, RegEx als Entitätstyp und hrf-[0-9]{6} als Wert für RegEx ein, und klicken Sie anschließend auf Fertig.In the pop-up dialog, enter the new entity name HRF-number, select RegEx as the entity type, enter hrf-[0-9]{6} as the Regex value, and then select Done.

    Screenshot: Popupdialogfeld zum Festlegen der Eigenschaften für die neue Entität

  4. Wählen Sie im linken Menü die Option Intents (Absichten) und dann die Absicht FindForm aus, um den gekennzeichneten regulären Ausdruck in den Äußerungen zu sehen.Select Intents from the left menu, then FindForm intent to see the regular expression labeled in the utterances.

    Screenshot: Gekennzeichnete Äußerungen mit vorhandener Entität und RegEx-MusterScreenshot of Label utterance with existing entity and regex pattern

    Da die Entität keine ML-Entität ist, wird die Entität sofort nach der Erstellung auf die Äußerungen angewendet und auf der LUIS-Website angezeigt.Because the entity is not a machine-learned entity, the entity is applied to the utterances and displayed in the LUIS website as soon as it is created.

Hinzufügen von Beispieläußerungen zur Absicht „None“Add example utterances to the None intent

Die Clientanwendung muss wissen, ob eine Äußerung für die Anwendung unsinnig oder ungeeignet ist.The client application needs to know if an utterance is not meaningful or appropriate for the application. Die Absicht None (Keine) wird jeder Anwendung bei ihrer Erstellung hinzugefügt, um zu bestimmen, ob eine Äußerung nicht von der Clientanwendung beantwortet werden kann.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.

Wenn LUIS für eine Äußerung die Absicht None (Keine) zurückgibt, kann Ihre Clientanwendung fragen, ob der Benutzer die Unterhaltung beenden oder weitere Anweisungen zum Fortsetzen der Unterhaltung angeben möchte.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.

Achtung

Belassen Sie die Absicht None (Keine) nicht leer.Do not leave the None intent empty.

  1. Klicken Sie im linken Bereich auf Intents (Absichten).Select Intents from the left panel.

  2. Wählen Sie die Absicht None (Keine) aus.Select the None intent. Fügen Sie drei Äußerungen hinzu, die der Benutzer unter Umständen eingibt, die für Ihre Personalwesen-App jedoch nicht relevant sind:Add three utterances that your user might enter but are not relevant to your Human Resources app:

    Beispiele für ÄußerungenExample utterances
    Bellende Hunde sind nervigBarking dogs are annoying
    Bestell mir eine PizzaOrder a pizza for me
    Pinguine im OzeanPenguins in the ocean

Trainieren der App vor dem Testen oder VeröffentlichenTrain the app before testing or publishing

  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, um sie vom Endpunkt aus abzufragenPublish the app to query from the endpoint

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ätsvorhersage vom EndpunktGet intent and entity prediction 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 When were HRF-123456 and hrf-234567 published in the last year? ein.Go to the end of the URL in the address and enter When were HRF-123456 and hrf-234567 published in the last year?. Der letzte Parameter der Abfragezeichenfolge lautet q (die Äußerung query (Abfrage)).The last querystring parameter is q, the utterance query. Diese Äußerung entspricht keiner der gekennzeichneten Äußerungen. Sie ist daher ein guter Test und sollte die Absicht FindForm mit den beiden Formularnummern HRF-123456 und hrf-234567 zurückgeben.This utterance is not the same as any of the labeled utterances so it is a good test and should return the FindForm intent with the two form numbers of HRF-123456 and hrf-234567.

    {
      "query": "When were HRF-123456 and hrf-234567 published in the last year?",
      "topScoringIntent": {
        "intent": "FindForm",
        "score": 0.9988884
      },
      "intents": [
        {
          "intent": "FindForm",
          "score": 0.9988884
        },
        {
          "intent": "None",
          "score": 0.00204812363
        }
      ],
      "entities": [
        {
          "entity": "hrf-123456",
          "type": "HRF-number",
          "startIndex": 10,
          "endIndex": 19
        },
        {
          "entity": "hrf-234567",
          "type": "HRF-number",
          "startIndex": 25,
          "endIndex": 34
        }
      ]
    }
    

    Durch die Verwendung einer Entität vom Typ „Regulärer Ausdruck“ extrahiert LUIS benannte Daten. Dies ist programmatisch hilfreicher für die Clientanwendung, die die JSON-Antwort erhält.By using a regular expression entity, LUIS extracts named data, which is more programmatically helpful to the client application receiving the JSON response.

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 Entität vom Typ „Regulärer Ausdruck“ erstellt, um korrekt formatierte Daten aus den Äußerungen zu extrahieren.This tutorial created a new intent, added example utterances, then created a regular expression entity to extract well-formatted data from the 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.