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:
- Kartenentität
- Listenentität
- Zusammengesetzte Entität (eine besondere Art von Listenentität)
- RegExp-Entität
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:
- Öffnen Sie die Dialogflow CX Console.
- Wählen Sie Ihr Google Cloud-Projekt aus.
- Wählen Sie den Agent aus.
- Wählen Sie den Tab Verwalten.
- Klicken Sie auf Entitätstypen.
- 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
aufKIND_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
aufKIND_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
aufKIND_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
aufAUTO_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
auftrue
fest.
Im Log entfernen
Wenn Sie die Entitätsentfernung aktivieren, werden alle zur Laufzeit extrahierten Parameterwerte für den Entitätstyp bei der Protokollierung entfernt.
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.