CM/Machine Learning

Einführung in Machine Learning mit ConSol CM

CM/Machine Learning ist ein ConSol CM-Add-on, mit dem Sie Ihre vorhandenen Daten zur Prozessautomatisierung nutzen können. Mit Machine Learning können Sie die Produktivität erhöhen, indem Sie Routineanfragen erkennen und automatisieren. Manuelle Schritte können übersprungen werden und Sie können neue Erkenntnisse über Ihre vorhandenen Daten gewinnen.

Die folgende Abbildung zeigt die Textklassifizierung mit Machine Learning:

Abbildung 58: Prinzip der Textklassifizierung mit Machine Learning

Die Verwendung von Machine Learning zur Textklassifizierung umfasst folgende Schritte:

  1. Legen Sie fest, welches Feld als Kategorie verwendet wird. Dies ist ein Datenfeld des Typs enum.
  2. Exportieren Sie die vorhandenen Vorgänge. Dabei wird eine Datendatei erzeugt, die für jeden Vorgang einen Eintrag enthält. Die einzelnen Einträge setzen sich aus dem Vorgangstext, d. h. den Kommentaren und E-Mails, und dem Wert des Kategoriefeldes zusammen.
  3. CM/Machine Learning wandelt die Datendatei in ein Modell um, das später abgefragt werden kann.
  4. Neue Vorgänge, die klassifiziert werden sollen, haben schon Text, z. B. den initialen Kommentar oder die E-Mail, aber ihre Kategorie ist noch nicht bekannt. Zur Bestimmung der Kategorie wird das Machine-Learning-Modell abgefragt, um anhand des verfügbaren Vorgangstextes eine Vorhersage der Kategorie zu treffen.

Konzepte, Begriffe und Definitionen

Konzept

Andere Begriffe

Definition

CM/Machine Learning

 

Name des ConSol CM-Add-ons, das Machine-Learning-Funktionen bietet

Machine Learning

ML

Verfahren, mit dem Informationen aus vorhandenen Daten gewonnen und auf neue Daten angewendet werden, um Prozesse zu automatisieren

 

Training

 

Prozess, mit dem Informationen aus vorhandenen Daten gewonnen und in einem Modell, das später abgefragt werden kann, gespeichert werden

Modell

 

Binärdatei, die die Trainingsergebnisse enthält und abgefragt werden kann

Konfidenz

 

Wert zwischen 0 und 1, der angibt, wie sicher sich der Algorithmus ist, dass seine Vorhersage wahr ist. Dieser Wert hängt von der Anzahl der Kategorien, der Qualität der Trainingsdaten und dem verwendeten Algorithmus ab. Die Konfidenz wird normalerweise verwendet, um Schwellenwerte für auf Vorhersagen basierende automatische Aktionen zu definieren.

Zweck und Verwendung

CM/Machine Learning ermöglicht die automatische Klassifizierung von Vorgängen anhand vorhandener Daten. Die Klassifizierung kann die Sprache, Stimmung oder die Kategorie der Vorgänge beinhalten. Als Kategorie kann ein beliebiges Datenfeld aus dem definierten Datenmodell dienen, z. B. die Kategorie, Priorität oder das Produkt eines Vorgangs.

CM/Machine Learning läuft lokal innerhalb Ihres ConSol CM-Systems. Es werden keine Daten an externe Anbieter übertragen.

CM/Machine Learning muss separat lizenziert werden.

Verfügbare Machine-Learning-Funktionen

CM/Machine Learning umfasst drei Funktionen:

Prozess zur Einführung von Machine-Learning

Der Prozess zur Verwendung von Machine Learning besteht aus zwei Phasen:

  1. Evaluierung:
    Zuerst wird das bestehende ConSol CM-System analysiert, um sein Potential für Machine Learning zu bestimmen. Wenn einige mögliche Anwendungsfälle gefunden wurden, wird eine Evaluierung von Kosten und Nutzen durchgeführt und ein ungefährer ROI geschätzt.
  2. Implementierung:
    Die Implementierung hängt von den genutzten Funktionen ab. Die Algorithmen zur Sprach- und Stimmungserkennung können direkt genutzt werden, d. h. sie müssen nicht für Ihr ConSol CM-System trainiert werden. Wenn Sie die Textklassifizierung, die mächtigste Machine-Learning-Funktion, nutzen, müssen Sie ein Training durchführen und ein Modell erstellen:
    1. Trainingsdaten vorbereiten: Legen Sie fest, welche Datenfelder und Texte für das Training verwendet werden sollen und exportieren Sie die Daten.
    2. Modell trainieren: Teilen Sie die Trainingsdaten auf, sodass ein Teil der Trainingsdaten nicht für das Training genutzt wird, sondern für den Test des erstellten Modells reserviert ist. Dann erstellen Sie ein Task-Skript, um das Modell mit den Trainingsdaten zu trainieren. Normalerweise werden mehrere Iterationen durchgeführt, d. h. nach dem Trainieren des Modells werden die Trainingsdaten anhand der Testergebnisse angepasst.
    3. Machine Learning integrieren: Wenn Sie ein zufriedenstellendes Modell haben, können Sie Machine Learning in die Workflows integrieren. Im ersten Schritt werden normalerweise Daten vorbelegt, die von den Benutzern geprüft werden müssen, bevor Aktionen ausgeführt werden. Wenn die Genauigkeit der Vorhersagen ausreicht, kann der Prüfschritt weggelassen werden, um die entsprechenden Prozesse zu automatisieren.

Erweiterte Aufgaben

Verwenden der Spracherkennung

Die wichtigste Methode für die Arbeit mit Spracherkennung ist createLanguageDetector() in der Klasse nlpService. Mit ihr können Sie die Sprache eines Textes (Strings) bestimmen. Die Sprache wird als ISO 639-3-Code zurückgegeben.

Das folgende Beispiel zeigt ein Skript, das Spracherkennung nutzt:

LanguageDetector languageDetector = nlpService.createLanguageDetector();

DetectedLanguage detectedLanguage = languageDetector.detectLanguage("hello world");

String language = detectedLanguage.getLanguage();

switch (language) {

case "eng":

// do something

break;

case "deu":

// do something

break;

}

double confidence = detectedLanguage.getConfidence();

Verwenden von Stimmungserkennung

Die wichtigste Methode für die Arbeit mit Stimmungserkennung ist createSentimentDetector() der Klasse nlpService. Mit ihr können Sie die Stimmung eines Textes (Strings) bestimmen. Die zurückgegebene Stimmung ist NEGATIVE, NEUTRAL oder POSITIVE. Die Stimmungserkennung wird nur für Deutsch unterstützt.

Das folgende Beispiel zeigt ein Skript, in dem Stimmungserkennung verwendet wird:

boolean html = true;

NormalizeLanguage normalizeLanguage = NormalizeLanguage.GERMAN; // only GERMAN language is supported

SentimentDetector sentimentDetector = nlpService.createSentimentDetector(normalizeLanguage, html);

DetectedSentiment detectedSentiment = sentimentDetector.detectSentiment("<p>text</p>");

Sentiment sentiment = detectedSentiment.getSentiment();

switch (sentiment) {

case NEGATIVE:

// do something

break;

case NEUTRAL:

// do something

break;

case POSITIVE:

// do something

break;

}

double confidence = detectedSentiment.getConfidence();

Wenn Sie die Ausführungsschritte des Algorithmus nachverfolgen möchten, können Sie die Methode detectSentiment mit einem zusätzlichen Boolean-Parameter aufrufen:

boolean recordDetails = true;

DetectedSentiment detectedSentiment = sentimentDetector.detectSentiment("<p>text</p>", recordDetails);

String details = detectedSentiment.getDetails();

Verwenden von Textklassifizierung

Die wichtigsten Klassen für die Arbeit mit Textklassifizierung sind MLTicketTextClassifierService und MLTicketTextClassifierSpec. Sie müssen folgende Schritte durchführen:

  1. Erstellen Sie eine Training-Spezifikation (Klasse MLTicketTextClassifierSpec). Sie können das Modell so trainieren, dass es entweder die Queue eines Vorgangs oder den Wert eines Vorgangsfelds des Typs enum bestimmt.
    • Verwenden Sie die Methode classifyToQueueName, um das Modell so zu trainieren, dass die Vorgangs-Queue bestimmt wird, oder verwenden Sie die Methode classifyToEnumFieldValueName, um zu entscheiden, welches Vorgangsfeld des Typs enum die Kategorie bildet, für die das Modell trainiert werden soll.
    • Entscheiden Sie, welche Vorgänge zum Trainieren des Modells verwendet werden sollen, z. B. Vorgänge in einer bestimmten Queue, Vorgänge, bei denen ein bestimmter Wert in einem bestimmten enum-Feld gesetzt ist, oder Vorgänge, für die eine bestimmte Aktivität noch nicht ausgeführt wurde.
    • Entscheiden Sie, welche Art von Protokolleinträgen zum Trainieren des Modells genutzt werden soll, z. B. nur Kommentare, nur eingehende oder ausgehende E-Mails.
    • Begrenzen Sie die Anzahl der verarbeiteten Vorgänge und Protokolleinträge.
  2. Trainieren Sie das Modell (Klasse MLTicketTextClassifierService). Verwenden Sie die Methode train, um eine Datei des Typs bin mit den Trainingsergebnissen zu erstellen. Sie müssen die erstellte Trainingsspezifikation angeben.
  3. Fragen Sie das Modell ab, um neue Vorgänge zu klassifizieren (Klasse MLTicketTextClassifierService). Verwenden Sie die Methode predict, um die vorhergesagte Klassifizierung zu erhalten. Sie müssen das Modell und den Vorgangstext angeben.

Details über die verfügbaren Methoden und Einstellungen finden Sie in der ConSol CM-API-Dokumentation.

Das folgende Beispiel zeigt, wie ein Modell für das Feld helpdesk_standard.priority trainiert wird.

// this method will replace old ticket_priority.bin MLFile with new one

MLTicketTextClassifierTrainingSummary summary = mlTicketTextClassifierService.train("ticket_priority.bin",

MLTicketTextClassifierSpec

.classifyToEnumFieldValueName("helpdesk_standard", "priority")

.limitNumberOfTicketsPerEnumFieldValue(10000)

.limitNumberOfContentEntriesPerTicket(1)

.trainUsingTexts()

.trainUsingOnlyClosedTickets()

.trainUsingOnlyTicketsFromQueues("ml_test")

);

 

log.info("Training summary :" + summary)

Das folgende Beispiel zeigt, wie das erzeugte Modell abgefragt wird:

mlTicketTextClassifierService.predict("ticket_priority.bin", "This is the initial email sent by the customer to create a ticket.")

Es ist möglich, die Daten, die für das Training verwendet werden, in eine CSV-Datei zu exportieren, die die Kategorie und den Text enthält. Sie können die Datei überprüfen und editieren, bevor Sie sie zum Erstellen eines Modells nutzen.

Das folgende Beispiel zeigt, wie Sie eine CSV-Datei mit den für das Training verwendeten Daten erstellen können:

// export file from source system / production system

mlFileService.exportWithMetaData(dataset.getId(), new FileOutputStream("/tmp/ticket_priority.csv.jar"));

mlFileService.delete(dataset.getId());

 

// use created file on training system (note that the data set may change name if file ticket_priority.csv already exists)

MLFile dataset = mlFileService.importWithMetaData(new FileInputStream("/tmp/ticket_priority.csv.jar"));

Anpassen von CM/Machine Learning

Es gibt zwei System-Properties, mit denen das Machine-Learning-Modul angepasst werden kann: