Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

Automatische Sprachanpassung

Wenn Sie eine Anfrage zur Intent-Erkennung ausführen, können Sie optional Sprachkontext angeben, um dem Erkennungsmodul Hinweise zu geben. Diese Hinweise können in einem bestimmten Unterhaltungsstatus bei der Erkennung helfen.

Das Feature zur automatischen Sprachanpassung verbessert die Genauigkeit der Spracherkennung Ihres Agents, indem automatisch der Unterhaltungsstatus verwendet wird, um relevante Entitäten und Trainingsformulierungen als Sprachkontexthinweise für alle Anfragen zur Intent-Erkennung zu übergeben. Dieses Feature ist standardmäßig aktiviert.

Automatische Sprachanpassung aktivieren oder deaktivieren

So aktivieren oder deaktivieren Sie die automatische Sprachanpassung:

  1. Rufen Sie die Dialogflow ES-Konsole auf.
  2. Wählen Sie Ihren Agent im oberen Bereich der linken Seitenleiste aus.
  3. Klicken Sie neben dem Namen des Agents auf die Schaltfläche für die Einstellungen.
  4. Wählen Sie den Tab Sprache aus.
  5. Scrollen Sie zum Abschnitt Improve Speech Recognition Quality.
  6. Aktivieren oder deaktivieren Sie die Option Enable Auto Speech Adaptation.

Beispiele für Verbesserungen der Spracherkennung

Wenn die automatische Sprachanpassung aktiviert ist, können Sie den Agent so erstellen, dass die dadurch entstehenden Vorteile genutzt werden können. In den folgenden Abschnitten wird erläutert, wie die Spracherkennung mit bestimmten Änderungen an Trainingsformulierungen, Kontexten und Entitäten Ihres Agents verbessert werden kann.

Trainingsformulierungen und Kontexte

  • Wenn Sie Trainingsformulierungen mit einer Formulierung wie „stuffy nose“ definieren, wird eine ähnlich klingende Nutzeräußerung zuverlässig als „stuffy nose“ und nicht als „stuff he knows“ erkannt.

  • Wenn eine Sitzung aktive Kontexte hat, berücksichtigt die automatische Sprachanpassung vorwiegend Trainingsformulierungen von Intents, in denen alle Eingabekontexte aktiv sind. Beispiel: Bei den beiden aktiven Kontexten „pay-bill“ und „confirmation“ wirken sich die folgenden Intents alle auf die automatische Spracherkennung aus: Intents mit einem einzelnen Eingabekontext „pay-bill“, Intents mit einem einzelnen Eingabekontext „confirmation“ und Intents mit zwei Eingabekontexten „pay-bill“ und „confirmation“.

  • Wenn eine Sitzung keine aktiven Kontexte hat, berücksichtigt die automatische Sprachanpassung vorwiegend die Trainingsformulierungen von Intents ohne Eingabekontexte.

  • Wenn Sie einen erforderlichen Parameter haben, der bei Dialogflow Eingabeaufforderungen zur Slot-Füllung erzwingt, wird die automatische Sprachanpassung vorwiegend die zu füllende Entität berücksichtigen.

In allen Fällen berücksichtigt die automatische Sprachanpassung lediglich die Spracherkennung, ohne sie zu beschränken. Beispiel: Auch wenn Dialogflow einen Nutzer zur Eingabe eines erforderlichen Parameters auffordert, können Nutzer weiterhin andere Intents auslösen, z. B. einen Intent der obersten Ebene „Mit Mitarbeiter sprechen“.

Systementitäten

Wenn Sie eine Trainingsformulierung definieren, in der die Systementität @sys.number verwendet wird und der Endnutzer die Zahl 2 auf Englisch ausspricht („two“), kann dies in der englischen Sprache als „to“, „too“, „2“ oder „two“ erkannt werden.

Wenn die automatische Sprachanpassung aktiviert ist, verwendet Dialogflow bei der Spracherkennung die Entität @sys.number als Hinweis. Der Parameter wird mit größerer Wahrscheinlichkeit als „2“ extrahiert.

Benutzerdefinierte Entitäten

  • Wenn Sie Entitäten für Produkt- oder Dienstleistungsnamen, die von Ihrem Unternehmen angeboten werden, definieren und der Endnutzer diese Begriffe in einer Äußerung erwähnt, werden sie eher erkannt. Die Trainingsformulierung „I love Dialogflow“, wobei „Dialogflow“ als @product-Entität annotiert ist, gibt der automatischen Sprachanpassung vor, sich an „I love Dialogflow“, „I love Cloud Speech“ und anderen Einträgen in der @product-Entität zu orientieren.

  • Es ist besonders wichtig, dass Sie präzise Entitätssynonyme definieren, wenn Sie Dialogflow zur Spracherkennung verwenden. Angenommen, Sie haben zwei @product-Entitätseinträge, „Dialogflow“ und „Dataflow“. Ihre Synonyme für „Dialogflow“ sind beispielsweise „Dialogflow“, „dialogue flow“, „dialogue builder“, „Speaktoit“, „speak to it“, „API.ai“, „API dot AI“. Diese Synonyme sind gut, da sie die gängigsten Varianten abdecken. Sie müssen „the dialogue flow builder“ nicht hinzufügen, da dies von „dialogue flow“ bereits abgedeckt ist.

  • Nutzeräußerungen mit aufeinanderfolgenden, aber separaten Zahlenentitäten können mehrdeutig sein. Beispiel: „I want two sixteen packs“ könnten 2 Pakete mit 16 Sets oder 216 Mengen bedeuten. Durch die Sprachanpassung lassen sich solche Fälle eindeutig unterscheiden, wenn Sie Entitäten mit buchstabierten Werten einrichten:
    • Definieren Sie eine quantity-Entität mit folgenden Einträgen:
      zero
      one
      ...
      twenty
    • Definieren Sie eine product- oder size- Entität mit folgenden Einträgen:
      sixteen pack
      two ounce
      ...
      five liter
    • In der Sprachanpassung werden nur Entitätssynonyme verwendet. Sie können also eine Entität mit dem Referenzwert 1 und dem einzelnen Synonym one definieren, um die Auftragsausführungslogik zu vereinfachen.

RegExp-Entitäten

RegExp-Entitäten können bei korrekter Konfiguration die automatische Sprachanpassung für alphanumerische und Ziffernsequenzen wie „ABC123“ oder „12345“ auslösen. Jeder reguläre Ausdruck lässt sich zum Extrahieren von Entitäten in der NLP verwenden, aber nur bestimmte Ausdrücke geben der automatischen Sprachanpassung vor, vorwiegend buchstabierte alphanumerische oder Ziffernsequenzen zu berücksichtigen.

Wenn Sie diese Sequenzen über Sprache erkennen möchten, müssen Sie alle der folgenden Anforderungen erfüllen:

  1. Mindestens einer Ihrer RegExp-Entitätseinträge folgt allen diesen Regeln:

    • Darf Zeichensätze [] verwenden
    • Darf Wiederholungsquantifizierer wie *, ?, + oder {3,5} verwenden
    • Enthält keine Leerzeichen oder \s, wobei \s* und \s? zulässig sind
    • Enthält keine Erfassungsgruppen ()
    • Enthält keine Sonderzeichen oder Satzzeichen wie ` ~ ! @ # $ % ^ & * ( ) - _ = + , . < > / ? ; ' : " [ ] { } \ |
  2. Markieren Sie in Ihrem Intent die RegExp-Entität als erforderlichen Parameter, damit er während der Slot-Füllung erfasst werden kann. Dadurch kann die automatische Sprachanpassung stark auf die Sequenzerkennung ausgerichtet werden, anstatt zu versuchen, einen Intent und eine Sequenz gleichzeitig zu erkennen. Andernfalls könnte „Wo ist mein Paket für ABC123“ als „Wo ist mein Paket 4ABC123“ falsch erkannt werden.

  3. Wenn die Audioeingabe eine Anrufqualität von 8 kHz hat, müssen Sie erweiterte Sprachmodelle aktivieren, um alphanumerische Sequenzen mit mehr als vier oder fünf Zeichen oder Ziffernsequenzen mit mehr als 10 Zeichen zuverlässig zu erkennen. Sie können auch kleinere Untersequenzen erfassen und sie mit Folge-Intents oder einer erweiterten Webhook-Logik zusammenführen.

Beispielsweise löst eine RegExp-Entität mit einem einzelnen Eintrag ([a-zA-Z0-9]\s?){5,9} nicht die Sprachsequenzerkennung aus, da sie eine Erfassungsgruppe enthält. Fügen Sie einfach einen weiteren Eintrag für [a-zA-Z0-9]{5,9} hinzu, um dieses Problem zu beheben. Nun werden Sie die Sequenzerkennung nutzen, wenn Sie Slot-Füllung für "ABC123" nutzen. Aufgrund der ursprünglichen Regel, die Leerzeichen zulässt, stimmt die NLP trotzdem Eingaben wie "ABC 123" überein.

Die folgenden Beispiele für reguläre Ausdrücke passen sich für alphanumerische Sequenzen an:

^[A-Za-z0-9]{1,10}$
WAC\d+
215[2-8]{3}[A-Z]+
[a-zA-Z]\s?[a-zA-Z]\s?[0-9]\s?[0-9]\s?[0-9]\s?[a-zA-Z]\s?[a-zA-Z]

Die folgenden Beispiele für reguläre Ausdrücke passen sich für Ziffernsequenzen an:

\d{2,8}
^[0-9]+$
2[0-9]{7}
[2-9]\d{2}[0-8]{3}\d{4}

Verwenden Sie außerdem @sys.number-sequence, um eine beliebige Ziffernfolge zu akzeptieren, und @sys.phone-number für die Erkennung einer lokalisierten Telefonnummer. Systementitäten und benutzerdefinierte Nicht-RegExp-Entitäten funktionieren gut mit der automatischen Sprachanpassung, auch außerhalb der erforderlichen Eingabeaufforderungen zur Slot-Füllung.

Beschränkungen

Es gelten folgende Einschränkungen:

  1. Die automatische Sprachanpassung kann für Actions on Google (Google Assistant) nicht verwendet werden, da die Spracherkennung von Actions on Google durchgeführt wird, bevor Daten an Dialogflow gesendet werden.

  2. Das Erkennen langer Zeichensequenzen ist schwierig. Bei Smartphone-Kanälen mit 8 kHz können Sie Sequenzen mit mehr als 16 Ziffern oder 10 alphanumerischen Zeichen nicht erkennen, selbst wenn Sie optimierte Sprachmodelle verwenden. Sehen Sie sich auch die folgenden Alternativen an:

    • Wenn Sie die Sequenz anhand einer Datenbank validieren, sollten Sie Querverweise für andere erfasste Parameter wie Datumsangaben, Namen oder Telefonnummern erstellen, um unvollständige Übereinstimmungen zu ermöglichen. Fragen Sie einen Nutzer beispielsweise nicht nur nach seiner Bestellnummer, sondern auch nach seiner Telefonnummer. Wenn der Webhook nun die Datenbank nach dem Bestellstatus abfragt, kann er sich zuerst auf die Telefonnummer verlassen und dann die am besten übereinstimmende Bestellung für dieses Konto zurückgeben. Dies könnte dazu führen, dass Dialogflow „ABC“ falsch als „AVC“ erkennt, aber dennoch den korrekten Bestellstatus für den Nutzer zurückgibt.
    • Bei extra langen Sequenzen sollten Sie vielleicht einen Ablauf entwerfen, der Endnutzer dazu veranlasst, eine Pause zu machen, sodass der Bot die Eingabe bestätigen kann. In dieser Anleitung finden Sie weitere Informationen.
  3. Die integrierte Unterstützung einer automatischen Sprachanpassung für System- und RegExp-Entitäten variiert je nach Sprache. Unter Sprachklassen-Tokens finden Sie die unterstützten Sprachen $OOV_CLASS_ALPHANUMERIC_SEQUENCE und $OOV_CLASS_DIGIT_SEQUENCE. Ist Ihre Sprache nicht aufgeführt, können Sie diese Einschränkung umgehen. Wenn Sie beispielsweise möchten, dass eine Mitarbeiter-ID, bei der auf drei Buchstaben drei Ziffern folgen, richtig erkannt wird, können Sie den Agent mit den folgenden Entitäten und Parametern erstellen:

    • Definieren Sie eine digit-Entität, die (mit Synonymen) 10 Entitätseinträge enthält:
      0, 0
      1, 1
      ...
      9, 9
    • Definieren Sie eine letter-Entität, die (mit Synonymen) 26 Entitätseinträge enthält:
      A, A
      B, B
      ...
      Z, Z
    • Definieren Sie eine employee-id-Entität, die einen einzigen Entitätseintrag (ohne Synonyme) enthält:
      @letter @letter @letter @digit @digit @digit
    • Verwenden Sie @employee-id als Parameter in einer Trainingsformulierung.
    .