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 auch zwei 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 ES-Konsole (Dokumentation ansehen, Konsole öffnen). Die folgende Anleitung bezieht sich auf die Konsole. So greifen Sie auf Daten zu Entitätsoptionen zu:

  1. Rufen Sie die Dialogflow ES-Konsole auf.
  2. Wählen Sie einen Agent aus.
  3. Wählen Sie im Menü der linken Seitenleiste Entities aus.
  4. Wählen Sie den für Ihren Agent definierten Tab Custom für benutzerdefinierte Entitäten oder den Tab System für Systementitäten aus, die von Ihrem Agent verwendet werden.
  5. Die folgenden Kästchenoptionen stehen für vorhandene Entitäten zur Verfügung:
    • Define synonyms
    • Regexp entity (RegExp-Entität) (nur benutzerdefinierte Entität)
    • Allow automated expansion (Automatische Erweiterung zulassen) (nur benutzerdefinierte Entität)
    • Fuzzy matching (Ungenaue Übereinstimmung) (nur benutzerdefinierte Entität)

Wenn Sie statt der Konsole die API zur Erstellung eines Agents verwenden, finden Sie Informationen dazu in der EntityTypes-Referenz. 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 hervorgehoben.

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. Alle der folgenden Zeilen sind beispielsweise Entitätseinträge für den Entitätstyp size:

Referenzwert Synonyme
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 des Endnutzerausdrucks ü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 des Endnutzerausdrucks 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 entity und aktivieren Sie die Option Define synonyms.
  • 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 des Endnutzerausdrucks ü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 entity und deaktivieren Sie die Option Define synonyms.
  • 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 eines Endnutzerausdrucks 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 Endnutzerausdrücke 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

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 der Endnutzerausdruck "Ich muss Karotten kaufen" lautet, wird "Karotten" diesem Entitätstyp zugeordnet, auch wenn er nicht bereitgestellt wird. Der Agent erkennt, dass "Karotten" 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 Allow automated expansion.
  • 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.