- API-Dokumentation
- Einleitung
- Verwenden der API
- API-Tutorial
- Zusammenfassung
- Quellen
- Datasets
- Anmerkungen
- Anhänge (Attachments)
- Vorhersagen
- Erstellen Sie einen Stream
- Aktualisieren Sie einen Stream
- Rufen Sie einen Stream nach Namen ab
- Rufen Sie alle Streams ab
- Löschen Sie einen Stream
- Ergebnisse aus Stream abrufen
- Kommentare aus einem Stream abrufen (Legacy)
- Bringen Sie einen Stream vor
- Einen Stream zurücksetzen
- Kennzeichnen Sie eine Ausnahme
- Entfernen Sie das Tag einer Ausnahme
- Prüfungsereignisse
- Alle Benutzer abrufen
- CLI
- Integrationsleitfäden
- Exchange Integration mit einem Azure-Dienstbenutzer
- Exchange-Integration mit der Azure-Anwendungsauthentifizierung
- Echtzeit-Automatisierung
- Abrufen von Daten für Tableau mit Python
- Elasticsearch-Integration
- Selbst gehostete EWS-Integration
- UiPath Automatisierungs-Framework
- UiPath Marketplace-Aktivitäten
- offizielle UiPath-Aktivitäten
- Blog
- Wie Maschinen lernen, Wörter zu verstehen: eine Anleitung zu Einbettungen in NLP
- Eingabeaufforderungsbasiertes Lernen mit Transformers
- Ef Robots II: Wissensdegesterration und Feinabstimmung
- Effiziente Transformer I: Warnmechanismen
- Tief hierarchische, nicht überwachte Absichtsmodellierung: Nutzen ohne Trainingsdaten
- Beheben der Anmerkungsverzerrung durch Communications Mining
- Aktives Lernen: Bessere ML-Modelle in weniger Zeit
- Auf Zahlen kommt es an – Bewertung der Modellleistung mit Metriken
- Darum ist Modellvalidierung wichtig
- Vergleich von Communications Mining und Google AutoML für die Ermittlung von Konversationsdaten
Communications Mining-Entwicklerhandbuch
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.
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 allgemeinen Felder 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"]
}
}
labels
ein Array sein. Wenn ein oder mehrere allgemeine Feldtypen für das Dataset konfiguriert wurden, enthält ein Kommentar außerdem null, ein oder mehrere allgemeine Felder jedes allgemeinen Feldtyps. 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"
).
Zum Abrufen der Daten empfehlen wir die Verwendung des . ( Hier finden Sie eine Übersicht über alle verfügbaren Methoden zum Herunterladen von Daten.) Beim Erstellen eines Streams sollten Sie die Schwellenwerte für jede Beschriftung festlegen, sodass Beschriftungen mit Konfidenzwerten unter dem Schwellenwert verworfen werden. Am einfachsten ist dies über die Communications Mining-UI, indem Sie zur Seite „Streams“ eines Datasets wechseln. Nachdem Sie die Konfidenzbewertungen verwendet haben, um zu bestimmen, ob eine Beschriftung zutrifft, können Sie dann nur die Beschriftungsnamen in Elasticsearch importieren. (Im Abschnitt Beschriftungen für Analytics finden Sie eine Diskussion darüber, wann wir empfehlen, die Konfidenzwerte für Beschriftungen wegzulassen oder beizubehalten.)
Allgemeine Felder haben keine Konfidenzbewertungen, sodass keine spezielle Behandlung erforderlich ist.
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, die Vorhersagen verwenden, konsistent bleiben, sollten Sie Vorhersagen für historische Daten mit der aktualisierten Modellversion erneut erfassen. Dies ist möglich, indem Sie bis zum Zeitstempel vor Ihrem ältesten Kommentar streamen und die Daten von Anfang an erneut erfassen.
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:(.+) > .*")
Balkendiagramm
Kreisdiagramm