Language UnderstandingLanguage Understanding

gilt für: SDK v4APPLIES TO: SDK v4

Bots können eine Vielzahl von Unterhaltungsstilen verwenden, von strukturiert und geführt bis zur freien Form und offenem Ende.Bots can use a variety of conversational styles, from the structured and guided to the free-form and open-ended. Ein Bot muss basierend auf dem, was der Benutzer gesagt hat, entscheiden, was er als nächstes in seinem Gesprächsfluss sagen soll, und in einer Unterhaltung mit offenem Ende gibt es eine große Auswahl an Benutzerantworten.A bot needs to decide what to do next in its conversation flow, based on what the user said, and in an open-ended conversation, there is a wider range of user replies.

GeführtGuided ÖffnenOpen
Ich bin der Reisebot.I'm the travel bot. Wählen Sie eine der folgenden Optionen aus: Flüge suchen, Hotels suchen, Mietwagen suchen.Select one of the following options: find flights, find hotels, find rental car. Ich kann Sie beim Buchen von Reisen unterstützen.I can help you book travel. Was möchten Sie?What would you like to do?
Benötigen Sie noch etwas anderes?Do you need anything else? Klicken Sie auf „Ja“ oder „Nein“.Click yes or no. Benötigen Sie noch etwas anderes?Do you need anything else?

Die Interaktion zwischen Benutzern und Bots erfolgt häufig in freier Form, und Bots müssen Sprache auf natürliche Weise und kontextabhängig verstehen.The interaction between users and bots is often free-form, and bots need to understand language naturally and contextually. Dieser Artikel erläutert, wie Sie mithilfe von Language Understanding (LUIS) feststellen können, was Benutzer wollen, Konzepte und Entitäten in Sätzen identifizieren und schließlich Ihren Bots erlauben, mit der entsprechenden Aktion zu reagieren.This article explains how Language Understanding (LUIS) help you to determine what users want, to identify concepts and entities in sentences, and ultimately to allow your bots to respond with the appropriate action.

Erkennen der AbsichtRecognize intent

LUIS hilft Ihnen dabei, die Absicht des Benutzers zu bestimmen, was er tun möchte, und das, was er sagt, damit Ihr Bot entsprechend reagieren kann.LUIS helps you by determining the user's intent, which is what they want to do, from what they say, so your bot can respond appropriately. LUIS ist besonders hilfreich, wenn das, was sie ihrem Bot sagen, nicht einer vorhersagbaren Struktur oder einem bestimmten Muster folgt.LUIS is especially helpful when what they say to your bot doesn't follow a predictable structure or a specific pattern. Wenn ein Bot eine Unterhaltungsbenutzeroberfläche aufweist, in die der Benutzer spricht oder eine Antwort eingibt, kann es endlose Variationen von Äußerungen geben, die die gesprochene oder Texteingabe des Benutzers sind.If a bot has a conversational user interface, in which the user speaks or types a response, there can be endless variations on utterances, which are the spoken or textual input from the user.

Betrachten Sie zum Beispiel die zahlreichen Möglichkeiten, wie ein Benutzer eines Reisebots einen Flug buchen kann.For example, consider the many ways a user of a travel bot can ask to book a flight.

Verschiedene unterschiedliche formulierte Äußerungen für eine Flugbuchung

Diese Äußerungen können unterschiedliche Strukturen haben und verschiedene Synonyme für "Flight" enthalten, an die Sie sich noch nicht gedacht haben.These utterances can have different structures and contain various synonyms for "flight" that you haven't thought of. In Ihrem Bot kann es eine Herausforderung sein, die Programmlogik zu schreiben, die alle Äußerungen berücksichtigt und sie dennoch von anderen Absichten unterscheidet, die dieselben Wörter enthalten.In your bot, it can be challenging to write the logic that matches all the utterances, and still distinguishes them from other intents that contain the same words. Darüber hinaus muss Ihr Bot Entitäten extrahieren, die weitere wichtige Wörter (z.B. Orte und Zeiten) sind.Additionally, your bot needs to extract entities, which are other important words like locations and times. LUIS vereinfacht diesen Vorgang durch Identifizieren von Absichten und Entitäten im Kontext.LUIS makes this process easy by contextually identifying intents and entities for you.

Wenn Sie Ihren Bot für die Eingabe in natürlicher Sprache entwerfen, bestimmen Sie, welche Absichten und Entitäten Ihr Bot erkennen muss, und überlegen sich, wie diese mit Aktionen verbunden werden, die Ihr Bot ausführt.When you design your bot for natural language input, you determine what intents and entities your bot needs to recognize, and think about how they'll connect to actions that your bot takes. In luis.ai definieren Sie benutzerdefinierte Absichten und Entitäten und geben ihr Verhalten an, indem Sie Beispiele für jede Absicht bereitstellen und die Entitäten damit kennzeichnen.In luis.ai, you define custom intents and entities and you specify their behavior by providing examples for each intent and labeling the entities within them.

Ihr Bot verwendet die Absicht, die von LUIS erkannt wurde, um das Unterhaltungsthema zu bestimmen oder einen Gesprächsfluss zu beginnen.Your bot uses the intent recognized by LUIS to determine the conversation topic, or begin a conversation flow. Wenn ein Benutzer z.B. sagt „Ich möchte einen Flug buchten“, erkennt Ihr Bot die BookFlight-Absicht und ruft den Gesprächsfluss zum Starten einer Suche nach Flügen auf.For example, when a user says "I'd like to book a flight", your bot detects the BookFlight intent and invokes the conversation flow for starting a search for flights. LUIS erkennt Entitäten wie den Zielort und das Abreisedatum, sowohl in der ursprünglichen Äußerung, die die Absicht auslöst, als auch später im Gesprächsfluss.LUIS detects entities like the destination city and the departure date, both in the original utterance that triggers the intent and later in the conversation flow. Sobald der Bot über alle Informationen verfügt, die er benötigt, kann er der Absicht des Benutzers nachkommen.Once the bot has all the information it needs, it can fulfill the user's intent.

Eine Unterhaltung mit einem Bot wird durch die BookFlight-Absicht ausgelöst.

Erkennen der Absicht in gängigen SzenarienRecognize intent in common scenarios

Um Entwicklungszeit einzusparen, bietet LUIS vorab trainierte Sprachmodelle, die gängige Äußerungen für gängige Kategorien von Bots erkennen.To save development time, LUIS provides pre-trained language models that recognize common utterances for common categories of bots.

Vordefinierte Domänen sind vorab trainierte, gebrauchsfertige Sammlungen von Absichten und Entitäten, die für gängige Szenarien wie Termine, Erinnerungen, Verwaltung, Fitness, Unterhaltung, Kommunikation, Reservierungen und vieles mehr gut zusammen funktionieren.Prebuilt domains are pre-trained, ready-to-use collections of intents and entities that work well together for common scenarios like appointments, reminders, management, fitness, entertainment, communication, reservations, and more. Die vordefinierte Domäne Utilities (Hilfsprogramme) unterstützt Ihren Bot bei allgemeinen Aufgaben wie Stornieren, Bestätigungen, Hilfe, Wiederholen und Beenden.The Utilities prebuilt domain helps your bot handle common tasks like Cancel, Confirm, Help, Repeat, and Stop. Sehen Sie sich die vordefinierten Domänen von LUIS an.Take a look at the prebuilt domains that LUIS offers.

Vordefinierte Entitäten helfen Ihrem Bot dabei, gängige Arten von Informationen wie Datum, Uhrzeit, Zahlen, Temperatur, Währung, Geografie und Alter zu erkennen.Prebuilt entities help your bot recognize common types of information like dates, times, numbers, temperature, currency, geography, and age. Unter Verwenden vordefinierter Entitäten finden Sie Hintergrundinformationen zu den Typen, die von LUIS erkannt werden.See use prebuilt entities for background on the types that LUIS can recognize.

Abrufen von Nachrichten aus LUIS durch den BotHow your bot gets messages from LUIS

Nachdem Sie LUIS eingerichtet und eine Verbindung damit hergestellt haben, kann Ihr Bot die Nachricht an Ihre LUIS-App senden, die eine JSON-Antwort mit den Absichten und Entitäten zurückgibt.Once you have set up and connected LUIS, your bot can send the message to your LUIS app, which returns a JSON response that contains the intents and entities. Anschließend können Sie den Durchlaufkontext im Durchlaufhandler Ihres Bots verwenden, um den Konversationsfluss basierend auf der Absicht in der LUIS-Antwort zu steuern.Then, you can use the turn context in your bot's turn handler to route the conversation flow based on the intent in the LUIS response.

Übergeben von Absichten und Entitäten an Ihren Bot

Informationen zum Einstieg in die Nutzung einer LUIS-App mit Ihrem Bot finden Sie unter Verwenden von LUIS für Language Understanding.To get started using a LUIS app with your bot, check out using LUIS for language understanding.

Bewährte Methoden für Language UnderstandingBest practices for Language Understanding

Ziehen Sie beim Entwerfen eines Sprachmodells für Ihren Bot die folgenden Methoden in Betracht.Consider the following practices when designing a language model for your bot.

Berücksichtigen der Anzahl der AbsichtenConsider the number of intents

LUIS-Apps erkennen die Absicht durch die Zuordnung einer Äußerung zu einer von mehreren Kategorien.LUIS apps recognize intent by classifying an utterance into one of multiple categories. Das natürliche Ergebnis ist, dass die Bestimmung der richtigen Kategorie aus einer großen Anzahl von Absichten die Fähigkeit einer LUIS-App verringern kann, zwischen ihnen zu unterscheiden.A natural result is that determining the correct category from among a large number of intents can reduce a LUIS app's ability to distinguish between them.

Eine Möglichkeit zur Verringerung der Anzahl der Absichten besteht in der Verwendung eines hierarchischen Entwurfs.One way of reducing the number of intents is to use a hierarchical design. Betrachten wir den Fall eines persönlichen Assistentenbots, der drei Absichten in Bezug auf das Wetter, drei Absichten in Bezug auf die Automatisierung des Hauses und drei weitere Hilfsprogrammabsichten hat, nämlich Hilfe, Stornieren und Begrüßen.Consider the case of a personal assistant bot that has three intents related to weather, three intents related to home automation, and three other utility intents which are Help, Cancel and Greeting. Wenn Sie alle Absichten in der gleichen LUIS-App verwenden, sind es bereits 9, und wenn Sie dem Bot Features hinzufügen, können es am Ende Dutzende sein.If you put all the intents in the same LUIS app, you already have 9, and as you add features to the bot, you could end up with dozens. Stattdessen können Sie den Bot Framework Orchestrator verwenden, um zu bestimmen, ob die Anforderung des Benutzers für Wetter, Gebäudeautomatisierung oder Hilfsprogramm bestimmt wird, und dann die LUIS-App für die Kategorie aufrufen, die Orchestrator bestimmt.Instead, you can use the Bot Framework Orchestrator to determine whether the user's request is for weather, home automation, or utility, then call the LUIS app for the category that Orchestrator determines. In diesem Fall beginnt jede der LUIS-Apps mit nur 3 Absichten.In this case each of the LUIS apps only starts with 3 intents.

Verwenden einer None-AbsichtUse a None intent

Es ist häufig der Fall, dass Benutzer Ihres Bots etwas unerwartetes oder nicht relevantes sagen, das sich nicht auf den aktuellen Gesprächsfluss bezieht.It's often the case that users of your bot will say something unexpected or unrelated to the current conversation flow. Die None-Absicht wird bereitgestellt, um diese Nachrichten zu verarbeiten.The None intent is provided for handling those messages.

Wenn Sie keine Absicht für die Behandlung der Fallback-, Standard- oder „Nichts von alledem“-Fälle trainieren, kann Ihre LUIS-App nur Nachrichten in die für sie definierten Absichten klassifizieren.If you don't train an intent for handling the fallback, default or "none of the above" cases, your LUIS app can only classify messages into the intents it has defined. Nehmen wir beispielsweise an an, Sie verwenden eine LUIS-App mit zwei Absichten: HomeAutomation.TurnOn und HomeAutomation.TurnOff.So for example, let's say you have a LUIS app with two intents: HomeAutomation.TurnOn and HomeAutomation.TurnOff. Wenn dies die einzigen Absichten sind und die Eingabe ganz anders lautet (z.B. „Termin am Freitag vereinbaren“), hat Ihre LUIS-Anwendung keine andere Wahl, als diese Nachricht entweder als HomeAutomation.TurnOn oder HomeAutomation.TurnOff zu klassifizieren.If those are the only intents, and the input is something unrelated like "schedule an appointment on Friday", your LUIS app has no choice but to classify that message as either HomeAutomation.TurnOn or HomeAutomation.TurnOff. Wenn Ihre LUIS-App über eine None-Absicht mit einigen Beispielen verfügt, können Sie Fallbacklogik in Ihrem Bot zum Behandeln von unerwarteten Äußerungen bereitstellen.If your LUIS app has a None intent with a few examples, you can provide some fallback logic in your bot to handle unexpected utterances.

Die None-Absicht ist hilfreich, wenn Sie die Erkennungsergebnisse verbessern möchten.The None intent is very useful for improving recognition results. In diesem Szenario zur Gebäudeautomatisierung kann „Termin am Freitag vereinbaren“ die HomeAutomation.TurnOn-Absicht mit niedriger Zuverlässigkeit erzeugen, sodass sie von Ihrem Bot abgelehnt werden sollte.In this home automation scenario, "schedule an appointment on Friday" may produce the HomeAutomation.TurnOn intent with a low confidence, and your bot should reject it. Sie können Ihrem Modell solche Ausdrücke unter der None-Absicht hinzufügen, damit sie korrekt in None aufgelöst werden.You can add such phrases to your model under the None intent, so that they resolve correctly to None.

Überprüfen der Äußerungen, die die LUIS-App empfängtReview the utterances that LUIS app receives

LUIS-Apps bieten ein Feature zur Verbesserung der App-Leistung, indem sie Nachrichten überprüfen, die Benutzer an sie gesendet haben.LUIS apps provide a feature for improving your app performance, by reviewing messages that users sent to it. Eine exemplarische Schritt-für-Schritt-Vorgehensweise finden Sie unter Überprüfen von Endpunktäußerungen.See suggested utterances for a step-by-step walkthrough.

Integrieren mehrerer LUIS-Apps und QnA-Dienste in OrchestratorIntegrate multiple LUIS apps and QnA services with Orchestrator

Wenn Sie einen Mehrzweckbot erstellen, der mehrere Konversationsthemen versteht, können Sie damit beginnen, Dienste für jede Funktion separat zu entwickeln und diese dann zu integrieren.When building a multi-purpose bot that understands multiple conversational topics, you can start to develop services for each function separately, and then integrate them together. Zu diesen Diensten können Language Understanding -Apps (LUIS) und QnA Maker gehören.These services can include Language Understanding (LUIS) apps and QnA Maker services. Im Folgenden finden Sie einige Beispielszenarien, in denen ein Bot mehrere LUIS-Apps, QnA Maker Dienste oder eine Kombination aus beiden kombinieren kann:Here are a few example scenarios in which a bot might combine multiple LUIS apps, multiple QnA Maker services, or a combination of the two:

  • Ein persönlicher Assistentenbot ermöglicht dem Benutzer, eine Vielzahl von Befehlen aufzurufen.A personal assistant bot lets the user invoke a variety of commands. Jede Kategorie von Befehlen bildet eine „Fertigkeit“, die separat entwickelt werden kann, und für jede Fertigkeit ist eine LUIS-App vorhanden.Each category of commands form a "skill" that can be developed separately, and each skill has a LUIS app.
  • Ein Bot durchsucht viele Wissensdatenbanken, um Antworten auf häufig gestellte Fragen (FAQs) zu finden.A bot searches many knowledge bases to find answers to frequently asked questions (FAQs).
  • Ein Bot für ein Unternehmen verfügt über LUIS-Apps zum Erstellen von Kundenkonten und Aufgeben von Bestellungen sowie außerdem über einen QnAMaker-Dienst für die häufig gestellten Fragen.A bot for a business has LUIS apps for creating customer accounts and placing orders, and also has a QnAMaker service for its FAQ.

Bot Framework Orchestrator CLIBot Framework Orchestrator CLI

Mit der Orchestrator-CLI können Sie mehrere LUIS-Apps und QnA Maker-Dienste in Ihren Bot integrieren, indem Sie eine Orchestrator-Momentaufnahmedatei erstellen, die zur Laufzeit zum Routen von Nachrichten an die entsprechenden LUIS- und QnAMaker-Dienste verwendet wird.The Orchestrator CLI helps you integrate multiple LUIS apps and QnA Maker services with your bot, by creating an Orchestrator snapshot file, which is used at run time to route messages to the appropriate LUIS and QnAMaker services. Im Orchestrator-Tutorial finden Sie ein schrittweises Tutorial, in dem mehrere LUIS-Apps und QnA Maker in einem Bot kombiniert werden.See the Orchestrator tutorial for a step-by-step tutorial that combines multiple LUIS apps and QnA Maker in one bot.

Verwenden von LUIS zur Verbesserung der SpracherkennungUse LUIS to improve speech recognition

Für einen Bot, mit dem Benutzer sprechen, kann die Integration in LUIS Ihrem Bot helfen, Wörter zu identifizieren, die bei der Umwandlung von Sprache in Text ggf. missverstanden werden können.For a bot that users will speak to, integrating it with LUIS can help your bot identify words that might be misunderstood when converting speech to text. In einem Schachszenario könnte ein Benutzer z.B. sagen: „Move knight to A7“ (Springer auf A7).For example, in a chess scenario, a user might say: "Move knight to A 7". Ohne Kontext für die Absicht des Benutzers wird die Äußerung ggf. so erkannt: „Move night 287“.Without context for the user's intent, the utterance might be recognized as: "Move night 287". Indem Sie Entitäten erstellen, die Schachfiguren und Koordinaten darstellen und sie in Äußerungen bezeichnen, stellen Sie einen Kontext für die Spracherkennung zur Verfügung, um sie zu identifizieren.By creating entities that represent chess pieces and coordinates and labeling them in utterances, you provide context for speech recognition to identify them.

Zusätzliche RessourcenAdditional resources

Weitere Informationen finden Sie in der Dokumentation zu Cognitive Services.Refer to Cognitive Services documentation for more information.