Erstellen einer zerlegbaren LUIS-Anwendung

Wichtig

LUIS wird am 1. Oktober 2025 eingestellt, und ab dem 1. April 2023 können Sie keine neuen LUIS-Ressourcen erstellen. Wir empfehlen die Migration Ihrer LUIS-Anwendungen zu Conversational Language Understanding, um fortgesetzte Produktunterstützung und mehrsprachige Funktionen zu erhalten.

In diesem Tutorial können Sie eine LUIS-Anwendung zur Telekommunikation erstellen, die verschiedene Benutzerabsichten vorhersagen kann. Am Ende des Tutorials sollten wir über eine Telekommunikationsanwendung verfügen, die Benutzerabsichten anhand von Text vorhersagen kann, der von Benutzern bereitgestellt wird.

Es werden verschiedene Benutzerszenarien (Absichten) behandelt, z. B.:

  • Registrierung für einen neuen Telekommunikationsanschluss
  • Aktualisieren eines vorhandenen Tarifs
  • Bezahlen einer Rechnung

In diesem Lernprogramm lernen Sie Folgendes:

  1. Erstellen einer LUIS-Anwendung
  2. Erstellen von Absichten
  3. Hinzufügen von Entitäten
  4. Hinzufügen von Äußerungen
  5. Bezeichnen von Beispieläußerungen
  6. Trainieren einer App
  7. Veröffentlichen einer App
  8. Abrufen von Vorhersagen vom veröffentlichten Endpunkt

Erstellen einer LUIS-Anwendung

  1. Anmelden beim LUIS-Portal

  2. Erstellen Sie eine neue Anwendung, indem Sie +Neue App auswählen.

    Screenshot: Bildschirm für die Anwendungserstellung

  3. Geben Sie im angezeigten Fenster den Namen „Telecom Tutorial“ ein, und behalten Sie dabei die Standardkultur Englisch bei. Die anderen Felder sind optional, legen Sie diese nicht fest. Wählen Sie Fertigaus.

    Screenshot: Felder der LUIS-Anwendung für die Erstellung

Benutzerintentionen als Absichten

Das erste, was Sie im Abschnitt Erstellen sehen werden, sind die Absichten der App. Absichten stellen eine Aufgabe oder eine Aktion dar, die ein Benutzer ausführen möchte.

Was würde ein Benutzer einer LUIS-Telekommunikationsanwendung benötigen?

Er müsste wahrscheinlich eine Benutzeraktion ausführen oder würde um Hilfe bitten. Ein anderer Benutzer möchte möglicherweise seinen Tarif aktualisieren oder eine Rechnung bezahlen.

Das resultierende Schema sieht wie folgt aus. Lesen Sie die Informationen zu bewährten Methoden zum Planen des Schemas.

Absicht Zweck
UserActions Bestimmen von Benutzeraktionen
Hilfe Hilfe anfordern
UpdateTier Aktuelle Ebene aktualisieren
PayBill Ausstehende Rechnung bezahlen
Keine Ermitteln Sie, ob der Benutzer etwas fragt, das die LUIS-App nicht beantworten kann. Diese Absicht steht im Rahmen der App-Erstellung zur Verfügung und kann nicht gelöscht werden.

Erstellen einer neuen Absicht

Eine Absicht wird verwendet, um Benutzeräußerungen auf der Grundlage der anhand des Texts in natürlicher Sprache bestimmten Benutzerabsicht zu klassifizieren.

Um eine Äußerung klassifizieren zu können, werden Beispiele von Benutzeräußerungen benötigt, die mit dieser Absicht klassifiziert werden sollen.

  1. Klicken Sie im oberen Navigationsmenü auf Erstellen und dann links auf dem Bildschirm auf Absichten. Wählen Sie + Erstellen aus, um eine neue Absicht zu erstellen. Geben Sie den neuen Namen UserAction der Absicht ein, und wählen Sie dann Fertig aus.

    UserAction könnte eine von vielen Absichten sein. Einige Benutzer möchten sich beispielsweise für einen neuen Anschluss registrieren, während andere möglicherweise Informationen abrufen möchten.

  2. Fügen Sie dieser Absicht mehrere voraussichtliche Beispieläußerungen von Benutzern hinzu:

    • Hallo! Ich möchte mich für einen neuen Anschluss registrieren
    • Kann ich mich für einen neuen Anschluss registrieren?
    • Hallo, ich wünsche einen neuen Anschluss
    • Ich habe meine Rufnummer vergessen!
    • Ich wünsche eine neue Rufnummer

    Screenshot: Beispieläußerungen für die Absicht „UserAction“

Dies könnten einige Äußerungen für die Absicht PayBill sein:

  • Ich möchte meine Rechnung bezahlen
  • Begleichen meiner Rechnung
  • Bezahlen meiner Rechnung
  • Ich möchte meinen aktuellen Saldo ausgleichen
  • Komm schon! Ich möchte die aktuelle Rechnung bezahlen

Durch die Bereitstellung von Beispieläußerungen bringen Sie LUIS bei, welche Art von Äußerungen für diese Absicht vorhergesagt werden sollen. Dies sind positive Beispiele. Die Äußerungen in allen anderen Absichten werden für diese Absicht als negative Beispiele behandelt. Im Idealfall sind die Vorhersagen Ihrer App besser, je mehr Beispieläußerungen Sie hinzufügen.

Diese Äußerungen dienen lediglich zur Veranschaulichung. Eine reale App sollte mindestens 15 bis 30 Äußerungen mit unterschiedlicher Länge, Wortstellung, Zeitform, grammatikalischer Genauigkeit, Zeichensetzung und Wortanzahl enthalten.

Erstellen der verbleibenden Absichten

Führen Sie die obigen Schritte aus, um der App die folgenden Absichten hinzuzufügen:

„Help“ (Hilfe)

  • „I need help“ (Ich brauche Hilfe)
  • „I need assistance“ (Ich benötige Unterstützung)
  • „Help please“ (Bitte helfen Sie mir)
  • „Can someone support me?“ (Kann mich jemand unterstützen?)
  • „I'm stuck, can you help me“ (Ich komme nicht weiter, bitte helfen Sie mir)
  • „Can I get help?“ (Könnte ich bitte Hilfe bekommen?)

„UpdateTier“ (Tarif aktualisieren)

  • „I want to update my tier“ (Ich möchte meinen Tarif aktualisieren)
  • „Update my tier“ (Aktualisieren Sie meinen Tarif)
  • „I want to change to VIP tier“ (Ich möchte in den VIP-Tarif wechseln)
  • „Change my subscription to standard tier“ (Ändern Sie mein Abonnement in den Standardtarif)

Beispieläußerungen für die Absicht „None“ (Keine)

Die Clientanwendung muss wissen, ob eine Äußerung für die Anwendung unsinnig oder ungeeignet ist. Die Absicht „None“ wird jeder Anwendung bei ihrer Erstellung hinzugefügt, um zu bestimmen, ob eine Äußerung nicht von der Clientanwendung beantwortet werden sollte.

Wenn LUIS für eine Äußerung die Absicht „None“ zurückgibt, kann Ihre Clientanwendung fragen, ob der Benutzer die Unterhaltung beenden oder weitere Anweisungen zum Fortsetzen der Unterhaltung angeben möchte.

Wenn Sie die Absicht „None“ leer lassen, wird eine Äußerung, die außerhalb der Themendomäne vorhergesagt werden sollte, in einer der vorhandenen Themendomänenabsichten vorhergesagt. Das Ergebnis ist, dass die Clientanwendung, z. B. ein Chatbot, auf der Grundlage einer falschen Vorhersage falsche Vorgänge ausführt.

  1. Klicken Sie im linken Bereich auf Intents (Absichten).

  2. Wählen Sie die Absicht None (Keine) aus. Fügen Sie drei Äußerungen hinzu, die der Benutzer unter Umständen eingibt, die für Ihre Telecom-App jedoch nicht relevant sind. In diesen Beispielen dürfen keine Wörter verwendet werden, die Sie in Ihrer Themendomäne erwarten, beispielsweise „Tier“ (Tarif), „upgrade“ (Upgrade), „Signup“ (Registrierung) oder „bill“ (Rechnung).

    • „When is my flight?“ (Wann startet mein Flug?)
    • „I need to change my pizza order please“ (Ich muss bitte meine Pizzabestellung ändern)
    • „What is the weather like for today?“ (Wie wird das Wetter heute?)

Hinzufügen von Entitäten

Eine Entität ist ein Element, das für die Absicht des Benutzers relevant ist. Entitäten definieren Daten, die aus der Äußerung extrahiert werden können und von entscheidender Bedeutung sind, um die angeforderte Aktion eines Benutzers durchführen zu können.

  1. Wählen Sie im Buildabschnitt Entitäten aus.

  2. Wählen Sie +Erstellen aus, um eine neue Entität hinzuzufügen.

    In diesem Beispiel erstellen wir zwei Entitäten: UpdateTierInfo als durch maschinelles Lernen erlernten Entitätstyp und „Tier“ als Listenentitätstyp. Mit LUIS können Sie auch verschiedene Entitätstypen erstellen.

  3. Geben Sie im angezeigten Fenster UpdateTierInfo ein, und wählen Sie aus den verfügbaren Typen „Durch maschinelles Lernen erworben“ aus. Wählen Sie das Feld Struktur hinzufügen aus, um dieser Entität eine Struktur hinzufügen zu können.

    Screenshot: Entität

  4. Wählen Sie Weiter aus.

  5. Um eine untergeordnete Entität hinzuzufügen, wählen Sie das Symbol „+“ aus, und beginnen Sie mit dem Hinzufügen der untergeordneten Entität. Für unser Entitätsbeispiel UpdateTierInfo benötigen wir drei Dinge:

    • OriginalTier
    • NewTier
    • PhoneNumber

    Screenshot: Subentitäten in der App

  6. Klicken Sie nach dem Hinzufügen aller untergeordneten Entitäten auf Erstellen.

    Wir erstellen eine weitere Entität mit dem Namen Tier, aber dieses Mal handelt es sich um eine Listenentität, die alle Tarife enthält, die wir bereitstellen können: Standard-, Premium- und VIP-Tarif.

  7. Wechseln Sie dazu zur Registerkarte „Entitäten“, klicken Sie auf +Erstellen, und wählen Sie Liste aus den auf dem Bildschirm angezeigten Typen aus.

  8. Fügen Sie der Liste die Elemente hinzu. Optional können Sie Synonyme hinzufügen, um sicherzustellen, dass alle Fälle dieser Erwähnung verstanden werden.

    Screenshot: Listenentität

  9. Wechseln Sie nun zurück zur Entität UpdateTierInfo, und fügen Sie die Entität „tie“" als Feature für die Entitäten OriginalTier und newTier hinzu, die wir zuvor erstellt haben. Der Bericht könnte beispielsweise wie folgt aussehen:

    Screenshot: Features einer Entität

    Wir haben den Tarif als Feature für originalTier und newTier hinzugefügt, und wir haben die Entität Phonenumber hinzugefügt, bei der es sich um einen Regex-Typ handelt. Sie kann auf die gleiche Weise erstellt werden, wie wir eine ML und eine Listenentität erstellt haben.

Nun haben wir erfolgreich Absichten erstellt sowie Beispieläußerungen und Entitäten hinzugefügt. Wir haben vier Absichten (außer der Absicht „None“) und drei Entitäten erstellt.

Bezeichnen von Beispieläußerungen

Die Machine Learning-Entität wird erstellt, und die untergeordneten Entitäten weisen Features auf. Um die Verbesserung der Extraktion abzuschließen, müssen die Beispieläußerungen mit den untergeordneten Entitäten bezeichnet werden.

Es gibt zwei Möglichkeiten, Äußerungen zu beschriften:

  1. Verwenden des Bezeichnungstools

    1. Öffnen Sie die Entitätspalette, und wählen Sie das Symbol „@“ in der kontextbezogenen Symbolleiste aus.
    2. Wählen Sie jede Entitätszeile in der Palette aus, und verwenden Sie anschließend den Palettencursor, um die Entität in jeder Beispieläußerung auszuwählen.
  2. Markieren Sie den Text, indem Sie den Cursor ziehen. Markieren Sie mit dem Cursor den Text, den Sie mit einer Bezeichnung versehen möchten. In der folgenden Abbildung haben wir „vip - tier“ hervorgehoben und die Entität NewTier ausgewählt.

    Screenshot: Bezeichnen von Äußerungen

Trainieren der App

Wählen Sie rechts oben auf der LUIS-Website die Schaltfläche Train (Trainieren) aus.

Stellen Sie vor dem Training sicher, dass für jede Absicht mindestens eine Äußerung vorhanden ist.

Screenshot: Schaltfläche zum Trainieren einer App

Veröffentlichen der App

Damit Sie eine LUIS-Vorhersage in einem Chatbot oder einer anderen Clientanwendung empfangen können, muss die App im Vorhersage-Endpunkt veröffentlicht werden. Zum Veröffentlichen müssen Sie zuerst Ihre Anwendung trainieren.

  1. Wählen Sie im Navigationsbereich rechts oben die Option Veröffentlichen aus.

    Screenshot: Schaltfläche zum Veröffentlichen einer App

  2. Wählen Sie den Slot Produktion und anschließend Fertig aus.

    Screenshot: Selektor für Produktionsslot

  3. Wählen Sie in der Benachrichtigung die Option Access your endpoint URLs (Auf Endpunkt-URLs zugreifen) aus, um zur Seite Azure-Ressourcen zu navigieren. Die URLs werden nur angezeigt, wenn der App eine Vorhersageressource zugeordnet ist. Sie können auch auf die Seite Azure-Ressourcen zugreifen, indem Sie links im Bildschirm auf Verwalten klicken.

    Screenshot: Benachrichtigung für den Endpunktzugriff

Abrufen der Absichtsvorhersage

  1. Klicken Sie im Menü oben rechts auf Verwalten und dann auf der linken Seite auf Azure-Ressourcen.

  2. Kopieren Sie die Beispielabfrage-URL, und fügen Sie sie in eine neue Webbrowserregisterkarte ein.

    Die Endpunkt-URL hat das folgende Format.

    https://YOUR-CUSTOM-SUBDOMAIN.api.cognitive.microsoft.com/luis/prediction/v3.0/apps/YOUR-APP-ID/slots/production/predict?subscription-key=YOUR-KEY-ID&verbose=true&show-all-intents=true&log=true&query=YOUR\_QUERY\_HERE
    
  3. Wechseln Sie in der Adressleiste zum Ende der URL, und ersetzen Sie den Zeichenfolgenparameter query= durch:

    „Hello! I am looking for a new number please.“ (Hallo! Ich hätte gerne eine neue Nummer.)

    Die Äußerungsabfrage wird im URI übergeben. Diese Äußerung ist nicht mit einer der Beispieläußerungen identisch und sollte ein guter Test sein, um zu überprüfen, ob LUIS die Absicht UserAction als Absicht mit der obersten Bewertung vorhersagt.

    {
        "query": "hello! i am looking for a new number please",
        "prediction": 
        {
            "topIntent": "UserAction",
            "intents": 
            {
                "UserAction": {
                "score": 0.8607431},
                "Help":{
                "score": 0.031376917},
                "PayBill": {
                "score": 0.01989629},
                "None": {
                "score": 0.013738701},
                "UpdateTier": {
                "score": 0.012313577}
            },
        "entities": {}
        }
    }
    

Das JSON-Ergebnis identifiziert die am höchsten bewertete Absicht als prediction.topIntent-Eigenschaft. Alle Bewertungen liegen zwischen 1 und 0. Die bessere Bewertung liegt näher bei 1.

Nächste Schritte in der Clientanwendung

In diesem Tutorial wurden eine LUIS-App, Absichten und Entitäten erstellt, Beispieläußerungen für jede Absicht hinzugefügt, Beispieläußerungen zur Absicht „None“ (Keine) hinzugefügt, die App trainiert, veröffentlicht und am Endpunkt getestet. Dies sind die grundlegenden Schritte bei der Erstellung eines LUIS-Modells.

LUIS gibt keine Antworten auf Benutzeräußerungen, es identifiziert lediglich, nach welcher Art Information in natürlicher Sprache gefragt wird. Der Dialoganschluss wird von der Clientanwendung, etwa einem Azure Bot, bereitgestellt.

Bereinigen von Ressourcen

Löschen Sie die LUIS-App, falls Sie sie nicht mehr benötigen. Wählen Sie hierzu im Menü oben links die Option Meine Apps aus. Wählen Sie in der App-Liste rechts vom App-Namen die Auslassungspunkte (...) und dann die Option Löschen aus. Wählen Sie im Popupdialogfeld App löschen die Option OK aus.