Entitätsoptionen

Es gibt mehrere Entitätsoptionen, die das Verhalten des Entitätsabgleichs und der Datenextraktion ändern. Diese Optionen sind für Systementitäten vorkonfiguriert, sodass Sie diese nicht für Systementitäten ändern können. Sie können sie jedoch für Ihre eigenen benutzerdefinierten Entitäten ändern. Je nachdem, welche Optionen Sie auswählen, können Sie verschiedene Arten von Entitäten erstellen:

Es gibt andere Optionen, die nicht die Art der Entität bestimmen, sondern das Verhalten des Entitätsabgleichs beeinflussen:

In diesem Dokument werden die Optionen jeweils beschrieben.

Wo finde ich diese Daten?

In der Regel erstellen Sie Agents mit der Dialogflow CX-Konsole (Dokumentation ansehen, Konsole öffnen). Die folgende Anleitung bezieht sich auf die Konsole. So greifen Sie auf Daten zu Entitätsoptionen zu:

  1. Öffnen Sie die Dialogflow CX Console.
  2. Wählen Sie Ihr Google Cloud-Projekt aus.
  3. Wählen Sie den Agent aus.
  4. Wählen Sie den Tab Verwalten.
  5. Klicken Sie auf Entitätstypen.
  6. Sehen Sie sich die folgenden Optionen für vorhandene Entitäten an. Einige davon sind möglicherweise erst nach dem Maximieren der Erweiterten Optionen sichtbar:
    • Nur Entitäten (keine Synonyme)
    • RegExp-Entitäten
    • Entitäten automatisch hinzufügen
    • Ungenaue Übereinstimmung
    • Im Log entfernen
    • Entitätsausschlüsse

Wenn Sie statt der Konsole die API zum Erstellen eines Agents verwenden, sehen Sie sich den Typ EntityType an. Die Bezeichnungen der API-Felder und der Felder in der Konsole sind weitgehend gleich. In der folgenden Anleitung werden alle wichtigen Unterschiede zwischen der Konsole und der API aufgezeigt.

Wählen Sie ein Protokoll und eine Version für die EntityType-Referenz:

Protokoll V3 V3beta1
REST EntityType-Ressource EntityType-Ressource
RPC EntityType-Schnittstelle EntityType-Schnittstelle
C++ EntityTypesClient Nicht verfügbar
C# EntityTypesClient Nicht verfügbar
Go EntityTypesClient Nicht verfügbar
Java EntityTypesClient EntityTypesClient
Node.js EntityTypesClient EntityTypesClient
PHP Nicht verfügbar Nicht verfügbar
Python EntityTypesClient EntityTypesClient
Ruby Nicht verfügbar Nicht verfügbar

Kartenentität

Kartenentitäten stellen eine Karte von Referenzwerten zu Synonymen für jeden Referenzwert bereit. Jeder Eintrag der Kartenentität enthält einen einzelnen Referenzwert und eine Liste mit Synonymen. Optional können Sie auch für jede Entität ein DTMF-Muster festlegen.

Alle der folgenden Zeilen sind beispielsweise Entitätseinträge für den Entitätstyp size:

Entität Synonyme DTMF-Muster
S S, klein, winzig, kurz
M M, mittelgroß, durchschnittlich
L L, groß, riesig, enorm

Beachten Sie, dass der Referenzwert für jeden Entitätseintrag oben in der Synonymliste enthalten ist. Damit ein Referenzwert zugeordnet werden kann, muss er selbst als Synonym angegeben werden. Wenn Sie in der Konsole zuerst einen Referenzwert eingeben, wird dieser automatisch als Synonym hinzugefügt.

Wenn eines der Synonyme mit einem Teil der Endnutzereingabe übereinstimmt, wird der zugeordnete Referenzwert für die Übereinstimmung extrahiert und zur Auflösung des zugeordneten Parameterwerts verwendet.

Es ist in Ordnung, wenn ein Referenzwert in der Synonymliste ausgelassen wird. Das bedeutet nur, dass er nicht mit einem Teil der Endnutzereingabe abgeglichen wird. Er wird jedoch als extrahierter Wert verwendet, wenn eines seiner Synonyme übereinstimmt. Dies ist wünschenswert, wenn Sie spezielle Strings für Referenzwerte verwenden, die von Endnutzern nicht eingegeben oder gesprochen werden.

Viele Systementitäten sind Kartenentitäten. Beispiel: Die Systementität @sys.date stimmt mit gängigen Datumseingaben wie "1. Januar 2015" oder "Erster Januar 2015" überein. Beide Eingaben werden einem Referenzwert im ISO 8601-Format zugeordnet: "2015-01-01T12:00:00-03:00".

So erstellen Sie eine Kartenentität:

  • Deaktivieren Sie in der Konsole die Option RegExp-Entitäten und deaktivieren Sie die Option Nur Entitäten.
  • Legen Sie mit der API das Feld EntityType.kind auf KIND_MAP fest.

Listenentität

Listenentitäten stellen eine Liste von Einzelwert-Entitätseinträgen bereit. Sie haben keine Referenzwerte und Synonyme. Alle der folgenden Zeilen sind beispielsweise Entitätseinträge für den Entitätstyp material:

Wert
Stoff
Holz
Metall

Wenn ein Wert mit einem Teil der Endnutzereingabe übereinstimmt, wird der Wert für die Übereinstimmung extrahiert und zur Auflösung des zugeordneten Parameterwerts verwendet.

Viele Systementitäten sind Listenentitäten. Beispiel: Die Systementität @sys.color ordnet häufig verwendete Farbeingaben wie "Rot" oder "Blau" zu. Wenn eine Farbe übereinstimmt, wird der extrahierte Wert keinem Referenzwert zugeordnet. Zum Beispiel werden Rottöne wie "scarlet" (Scharlachrot) oder "crimson" (Karmesinrot) nicht "Rot" zugeordnet und als ursprüngliche Werte "scarlet" (Scharlachrot) und "crimson" (Karmesinrot) extrahiert.

So erstellen Sie eine Listenentität:

  • Deaktivieren Sie in der Konsole die Option RegExp-Entitäten und klicken Sie die Option Nur Entitäten an.
  • Legen Sie mit der API das Feld EntityType.kind auf KIND_LIST fest.

Zusammengesetzte Entität

Eine zusammengesetzte Entität ist eine besondere Art von Listenentität. Entitätseinträge für Listenentitäten enthalten in der Regel einfache Wörter oder Wortgruppen, sie können jedoch auch andere Entitätstypen enthalten. Wenn in einem Entitätstyp auf einen anderen Entitätstyp verwiesen wird, wird die Referenz als Alias bezeichnet. Wenn eine Listenentität Aliasse für andere Entitätstypen enthält, wird dies als zusammengesetzte Entität bezeichnet.

Beim Erstellen eines Alias geben Sie den Namen des Entitätstyps an, auf den verwiesen wird, sowie einen Attributnamen Ihrer Wahl. Wenn eine zusammengesetzte Entität zur Laufzeit zugeordnet wird, wird der extrahierte Wert als JSON-Objekt zurückgegeben, wobei Alias-Attributnamen als JSON-Attributnamen verwendet werden. Das Format für die Eingabe eines Alias lautet:

@entity-name:property-name

Sie könnten beispielsweise den Entitätstyp place erstellen, der entweder einer Stadt oder einem Bundesstaat mit folgenden Entitätseinträgen zugeordnet ist:

Wert
@sys.geo-city:city
@sys.geo-state:state

Wenn ein Teil des Endnutzerausdrucks „Nashville“ enthält, wird der Entitätstyp place zugeordnet. Der extrahierte Wert wird so zurückgegeben: {"city": "Nashville"}.

Sie können auch mehrere Entitätsaliasse in einem Entitätseintrag verwenden. Betrachten Sie den folgenden benutzerdefinierten Entitätstyp move, der Aliasse für den Entitätstyp direction und den Systementitätstyp @sys.number enthält:

Benutzerdefinierter Kartenentitätstyp mit Richtung:

Referenzwert Synonyme
vorwärts vorwärts, nach vorn
zurück zurück, nach hinten, rückwärts

Benutzerdefinierter Listenentitätstyp mit Bewegung:

Wert
@sys.number:steps steps @direction:direction

Wenn die Entität move einer Endnutzereingabe zugeordnet wird, die „five steps backward“ (fünf Schritte zurück) enthält, wird die Entität move zugeordnet. Der extrahierte Wert wird so zurückgegeben: {"steps": 5, "direction": "back"}.

Viele Systemeinheiten sind zusammengesetzte Entitäten. Beispiel: Die Systemeinheit @sys.unit-currency wird verwendet, um Geldbeträge einem Währungsnamen zuzuordnen. Sie ordnet Endnutzereingaben wie „50 Euro“ oder „zwanzig Dollar und 5 Cent“ zu. Der extrahierte Wert wird als JSON-Objekt zurückgegeben, z. B.: {"amount": 50, "currency": "EUR"}

RegExp-Entität

Mit RegExp-Entitäten können Sie reguläre Ausdrücke für die Zuordnung bereitstellen. Weitere Informationen finden Sie unter RegExp-Entitäten.

So erstellen Sie eine RegExp-Entität:

  • Aktivieren Sie in der Konsole die Option Regexp entity.
  • Legen Sie mit der API das Feld EntityType.kind auf KIND_REGEXP fest.

Automatische Erweiterung (Entitäten automatisch hinzufügen)

Sie können die automatische Erweiterung für einen benutzerdefinierten Entitätstyp aktivieren. Wenn diese Option aktiviert ist, kann der Agent Werte erkennen, die nicht explizit angegeben wurden. Betrachten Sie beispielsweise einen Einkaufslisten-Entitätstyp:

Wert
Brot
Butter
Milch
Apfel
Eiscreme

Wenn die Endnutzereingabe „Ich muss Karotten kaufen“ lautet, wird „Karotten“ diesem Entitätstyp zugeordnet, auch wenn er nicht bereitgestellt wird. Der Agent erkennt, dass "Karotten" kontextbezogen anderen Werten ähnelt.

Orientieren Sie sich an den Best Practices, wenn Sie die automatische Erweiterung in Betracht ziehen:

  • Durch die Aktivierung der automatischen Erweiterung wird die Entitätenextraktion nicht garantiert. Bei einer endlichen Liste sollten Sie die vollständige Liste angeben, anstatt eine unvollständige Liste bereitzustellen und die automatische Erweiterung zu aktivieren.
  • Wenn Sie die automatische Erweiterung bei mehr als einer Entität aktivieren, kann dies zu Konflikten und unerwarteten Klassifizierungsergebnissen führen.
  • Für eine bessere Qualität der Parameterextraktion ist es wichtig, unterschiedliche Trainingsdaten bereitzustellen, die alle Anwendungsfälle abdecken, in denen eine bestimmte Entität im Traffic des erwarteten Agents gefunden werden kann. Wenn nicht genügend Beispiele vorhanden sind, funktioniert die automatische Entitätenerweiterung möglicherweise nicht wie erwartet.

So aktivieren Sie die automatische Erweiterung:

  • Aktivieren Sie in der Konsole die Option Entitäten automatisch hinzufügen.
  • Legen Sie mit der API das Feld EntityType.autoExpansionMode auf AUTO_EXPANSION_MODE_DEFAULT fest.

Ungenaue Übereinstimmung

Sie können die ungenaue Übereinstimmung für eine benutzerdefinierte Entität aktivieren. Bei aktivierter ungenauer Übereinstimmung spielt die Reihenfolge der Wörter in einem Wert oder Synonym keine Rolle. Weitere Informationen finden Sie unter Ungenaue Übereinstimmung.

So aktivieren Sie die ungenaue Übereinstimmung:

  • Aktivieren Sie in der Konsole die Option Fuzzy matching.
  • Legen Sie mit der API das Feld EntityType.enableFuzzyExtraction auf true fest.

Im Log entfernen

Wenn Sie das Entfernen von Entitäten aktivieren, alle zur Laufzeit extrahierten Parameterwerte für den Entitätstyp werden beim Logging reduziert.

Alternativ können Sie einzelne Parameter entfernen.

Entitätsausschlüsse

Sie können Entitätsausschlüsse hinzufügen. Das sind Wortgruppen, die nicht abgeglichen werden sollten. Wenn Sie beispielsweise einen Entitätstyp „Größe“ mit der Entität riesig (ein Adjektiv) haben, können Sie Riesen (ein Substantiv) als Ausschluss hinzufügen.