Communications Mining
Neuestes
False
Communications Mining-Entwicklerhandbuch
Last updated 17. Mai 2024

Elasticsearch-Integration

Communications Mining bietet eine Vielzahl integrierter Analysetools. Manchmal ist es jedoch erforderlich, die Vorhersagen aus Communications Mining mit Daten zu verbinden, die nicht als Teil von Communications Mining-Kommentare hochgeladen werden können. In diesen Fällen besteht eine gängige Lösung darin, die Communications Mining-Vorhersagen und alle zusätzlichen Daten in Elasticsearch zu indizieren und ein Tool wie Kibana zu verwenden, um die Analyse voranzutreiben. In diesem Tutorial wird beschrieben, wie Communications Mining-Daten in Elasticsearch importiert und in Kibana visualisiert werden.

Die Daten, die in den Beispielen in diesem Tutorial verwendet werden, sind generierte Dummy-E-Mails aus der Versicherungsdomäne.

Speichern von Daten in Elasticsearch

Definieren wir zunächst die Daten, die wir in Elasticsearch importieren möchten. Die Communications Mining-API stellt den Kommentartext, die Kommentarmetadaten, die vorhergesagten Beschriftungen und die vorhergesagten Entitäten in einem verschachtelten JSON-Objekt bereit. Nachfolgend finden Sie ein Beispiel für einen unformatierten Kommentar, der von der Communications Mining API bereitgestellt wird. (Beachten Sie, dass Sie unterschiedliche Metadatenfelder sehen können, je nachdem, wie Ihre Daten in Communications Mining aufgenommen wurden.) Weitere Informationen zu Kommentarobjektfeldern finden Sie hier.

{
  "comment": {
    "id": "c7a1c529-3f57-4be6-9102-c9f892b81ae51",
    "uid": "49ba2c56a945386c.c7a1c529-3f57-4be6-9102-c9f892b81ae51",
    "timestamp": "2021-03-29T08:36:25.607Z",
    "messages": [
      {
        "body": {
          "text": "The policyholder has changed their address to the new address: 19 Essex Gardens, SW17 2UL"
        },
        "subject": {
          "text": "Change of address - Policy SFG48807871"
        },
        "from": "CPX8460080@broker.com",
        "to": ["underwriter@insurer.com"],
        "sent_at": "2021-03-29T08:36:25.607Z"
      }
    ]
    // (... more properties ...)
  },
  "labels": [
    {
      "name": ["Admin"],
      "probability": 0.9995054006576538
    },
    {
      "name": ["Admin", "Change of address"],
      "probability": 0.9995054006576538
    }
  ],
  "entities": [
    {
      "name": "address-line-1",
      "formatted_value": "19 Essex Gardens",
      "span": {
        "content_part": "body",
        "message_index": 0,
        "char_start": 63,
        "char_end": 79,
        "utf16_byte_start": 126,
        "utf16_byte_end": 158
      }
    },
    {
      "name": "post-code",
      "formatted_value": "SW17 2UL",
      "span": {
        "content_part": "body",
        "message_index": 0,
        "char_start": 81,
        "char_end": 89,
        "utf16_byte_start": 162,
        "utf16_byte_end": 178
      }
    },
    {
      "name": "policy-number",
      "formatted_value": "SFG48807871",
      "span": {
        "content_part": "subject",
        "message_index": 0,
        "char_start": 27,
        "char_end": 38,
        "utf16_byte_start": 54,
        "utf16_byte_end": 76
      }
    }
  ]
}{
  "comment": {
    "id": "c7a1c529-3f57-4be6-9102-c9f892b81ae51",
    "uid": "49ba2c56a945386c.c7a1c529-3f57-4be6-9102-c9f892b81ae51",
    "timestamp": "2021-03-29T08:36:25.607Z",
    "messages": [
      {
        "body": {
          "text": "The policyholder has changed their address to the new address: 19 Essex Gardens, SW17 2UL"
        },
        "subject": {
          "text": "Change of address - Policy SFG48807871"
        },
        "from": "CPX8460080@broker.com",
        "to": ["underwriter@insurer.com"],
        "sent_at": "2021-03-29T08:36:25.607Z"
      }
    ]
    // (... more properties ...)
  },
  "labels": [
    {
      "name": ["Admin"],
      "probability": 0.9995054006576538
    },
    {
      "name": ["Admin", "Change of address"],
      "probability": 0.9995054006576538
    }
  ],
  "entities": [
    {
      "name": "address-line-1",
      "formatted_value": "19 Essex Gardens",
      "span": {
        "content_part": "body",
        "message_index": 0,
        "char_start": 63,
        "char_end": 79,
        "utf16_byte_start": 126,
        "utf16_byte_end": 158
      }
    },
    {
      "name": "post-code",
      "formatted_value": "SW17 2UL",
      "span": {
        "content_part": "body",
        "message_index": 0,
        "char_start": 81,
        "char_end": 89,
        "utf16_byte_start": 162,
        "utf16_byte_end": 178
      }
    },
    {
      "name": "policy-number",
      "formatted_value": "SFG48807871",
      "span": {
        "content_part": "subject",
        "message_index": 0,
        "char_start": 27,
        "char_end": 38,
        "utf16_byte_start": 54,
        "utf16_byte_end": 76
      }
    }
  ]
}

Das Schema der unformatierten Kommentare, die von der Communications Mining-API zurückgegeben werden, ist unpraktisch zum Filtern und Abfragen dieser Daten in Elasticsearch. Daher sollten Sie das Schema ändern, bevor Sie die Daten in Elasticsearch aufnehmen. Im Folgenden finden Sie ein Beispiel für ein abgeflachtes Schema, das Sie verwenden können. Sie sollten alle Felder hinzufügen, die Sie für Ihren Anwendungsfall benötigen.

{
  "id": "c7a1c529-3f57-4be6-9102-c9f892b81ae51",
  "uid": "49ba2c56a945386c.c7a1c529-3f57-4be6-9102-c9f892b81ae51",
  "timestamp": "2021-03-29T08:36:25.607Z",
  "subject": "Change of address - Policy SFG48807871",
  "body": "The policyholder has changed their address to the new address: 19 Essex Gardens, SW17 2UL",
  // (... more fields ...)
  "labels": ["Admin", "Admin > Change of address"],
  "entities": {
    "policy_number": ["SFG48807871"],
    "address-line-1": ["19 Essex Gardens"],
    "post-code": ["SW17 2UL"]
  }
}{
  "id": "c7a1c529-3f57-4be6-9102-c9f892b81ae51",
  "uid": "49ba2c56a945386c.c7a1c529-3f57-4be6-9102-c9f892b81ae51",
  "timestamp": "2021-03-29T08:36:25.607Z",
  "subject": "Change of address - Policy SFG48807871",
  "body": "The policyholder has changed their address to the new address: 19 Essex Gardens, SW17 2UL",
  // (... more fields ...)
  "labels": ["Admin", "Admin > Change of address"],
  "entities": {
    "policy_number": ["SFG48807871"],
    "address-line-1": ["19 Essex Gardens"],
    "post-code": ["SW17 2UL"]
  }
}
Beachten Sie, dass ein Kommentar null, eine oder mehrere Beschriftungen haben kann, deshalb muss das Feld labels ein Array sein. Wenn ein oder mehrere Entitätstypen für das Dataset konfiguriert wurden, enthält ein Kommentar außerdem null, eine oder mehrere Entitäten jedes Entitätstyps. Die hierarchischen Bezeichnungsnamen in der unformatierten API-Antwort sind selbst Arrays (["Admin", "Change of address"]) und sollten in Strings konvertiert werden ("Admin > Change of address").

Abrufen von Daten

Um die Daten abzurufen, empfehlen wir die Verwendung der Stream-API. (Eine Übersicht über alle verfügbaren Methoden zum Herunterladen von Daten finden Sie hier .) Beim Erstellen eines Streams sollten Sie die Schwellenwerte für jede Bezeichnung festlegen, sodass Bezeichnungen mit Konfidenzwerten unter dem Schwellenwert verworfen werden. Dies ist am einfachsten über die Communications Mining-Benutzeroberfläche der Seite „Streams“ eines Datasets. Nachdem Sie die Konfidenzbewertungen verwendet haben, um zu bestimmen, ob eine Bezeichnung zutrifft, können Sie dann nur die Bezeichnungsnamen in Elasticsearch importieren. (Im Abschnitt Beschriftungen für Analytics finden Sie eine Diskussion darüber, wann wir empfehlen, die Konfidenzbewertungen für Beschriftungen zu lassen oder beizubehalten.)

Entitäten haben keine Konfidenzbewertungen, sodass keine spezielle Behandlung erforderlich ist.

Hinweis:

Verwalten der Modelländerungen

Beim Erstellen eines Streams geben Sie eine Modellversion an. Diese Modellversion wird verwendet, um Vorhersagen beim Abrufen von Kommentaren aus dem Stream bereitzustellen. Auch wenn Benutzer neue Modellversionen in der Plattform weiter trainieren, verwendet Ihr Stream die von Ihnen angegebene Modellversion, was Ihnen determinierte Ergebnisse liefert.

Um auf eine neue Modellversion zu aktualisieren, müssen Sie einen neuen Stream erstellen, der diese Modellversion verwendet, und dann Ihren Code aktualisieren, um den neuen Stream zu verwenden. (Aus diesem Grund empfehlen wir, den Streamnamen in Ihrem Code konfigurierbar zu machen.) Um sicherzustellen, dass Analysen mit Vorhersagen konsistent bleiben, sollten Sie Vorhersagen für historische Daten mithilfe der aktualisierten Modellversion erneut erfassen. Das können Sie tun, indem Sie den Stream auf den Zeitstempel vor Ihrem ältesten Kommentar zurücksetzen und die Daten von Anfang an erneut erfassen.

Visualisieren von Daten in Kibana

Sobald Sie die Daten in Elasticsearch indiziert haben, können Sie mit dem Erstellen von Visualisierungen beginnen. Dieser Abschnitt enthält einfache Beispiele für eine Reihe gängiger Visualisierungstools in Kibana.

Timeout

Sie können den folgenden Ausdruck verwenden, um ein Diagramm der fünf gängigsten Beschriftungen im Zeitverlauf zu erstellen. Beachten Sie, dass hier sowohl Kategorie- als auch Unterkategoriebeschriftungen der obersten Ebene angezeigt werden.

.es(index=example-data,split=labels:5,timefield=@timestamp)
    .label("$1", "^.* > labels:(.+) > .*").es(index=example-data,split=labels:5,timefield=@timestamp)
    .label("$1", "^.* > labels:(.+) > .*")
Abbildung 1. Top 5 der Beschriftungen in einem Dataset, das im Laufe der Zeit aufgezeichnet wurde.

Balkendiagramm

Dieses Balkendiagramm zeigt die 20 wichtigsten E-Mail-Adressen der Absender im Dataset. E-Mail-Adressen von Absendern und Empfängern sind Teil von Kommentarmetadaten in E-Mail-basierten Datasets.
Abbildung 2. Top 20 der E-Mail-Adressen der Absender.

Kreisdiagramm

Dieses Kreisdiagramm zeigt Unterkategoriebezeichnungen unter der übergeordneten Beschriftung „Anspruch“ an. Die Bezeichnungskategorien werden vom Benutzer definiert, der das Modell trainiert.
Abbildung 3. Unterkategorien des Labels Anspruch.

War diese Seite hilfreich?

Hilfe erhalten
RPA lernen – Automatisierungskurse
UiPath Community-Forum
UiPath Logo weiß
Vertrauen und Sicherheit
© 2005-2024 UiPath. All rights reserved.