DE112020005296T5 - Durchsuchen von gesprächsprotokollen eines systems mit virtuellen dialogagenten nach kontrastierenden zeitlichen mustern - Google Patents

Durchsuchen von gesprächsprotokollen eines systems mit virtuellen dialogagenten nach kontrastierenden zeitlichen mustern Download PDF

Info

Publication number
DE112020005296T5
DE112020005296T5 DE112020005296.6T DE112020005296T DE112020005296T5 DE 112020005296 T5 DE112020005296 T5 DE 112020005296T5 DE 112020005296 T DE112020005296 T DE 112020005296T DE 112020005296 T5 DE112020005296 T5 DE 112020005296T5
Authority
DE
Germany
Prior art keywords
contrasting
traces
pattern
dialog
cluster
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112020005296.6T
Other languages
English (en)
Inventor
Shubham Agarwal
Christian Muise
Joseph Kim
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112020005296T5 publication Critical patent/DE112020005296T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9032Query formulation
    • G06F16/90332Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • G06F40/35Discourse or dialogue representation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)
  • Machine Translation (AREA)

Abstract

Es werden ein Computersystem, ein Computerprogrammprodukt und ein auf einer Maschine ausgeführtes Verfahren zum Verbessern der Leistung eines Dialogsystems, das einen automatisierten virtuellen Dialogagenten einsetzt, offenbart. Das Verfahren geht mit einem Zusammenfassen von Traces von Dialog-Gesprächsprotokollen in Sätze und einem Durchsuchen der Traces nach einem oder mehreren kontrastierenden zeitlichen Mustern zwischen den Sätzen einher.

Description

  • HINTERGRUND
  • Die vorliegenden Ausführungsformen betreffen ein System mit virtuellen Dialogagenten, das einen automatisierten virtuellen Dialogagenten wie zum Beispiel einen „Chatbot“, einsetzt, sowie ein zugehöriges Computerprogrammprodukt und ein auf einem Computer ausgeführtes Verfahren. In bestimmten beispielhaften Ausführungsformen werden Gesprächsprotokolldateien des Systems verwendet, um die Leistung des automatisierten virtuellen Dialogagenten zu verbessern.
  • Bei einem Chatbot handelt es sich um ein Computerprogramm, das künstliche Intelligenz (KI) als eine Plattform zum Durchführen einer Transaktion zwischen einem automatisierten virtuellen Dialogagenten und üblicherweise einem Benutzer wie zum Beispiel einem Verbraucher verwendet. Die Transaktion kann mit dem Verkauf von Produkten, dem Kundendienst, der Beschaffung von Informationen oder anderen Arten von Transaktionen einhergehen. Chatbots interagieren mit dem Benutzer durch einen Dialog, der häufig entweder textuell (z.B. online oder per Text) oder akustisch (z.B. per Telefon) erfolgt.
  • KURZDARSTELLUNG
  • Die Ausführungsformen umfassen ein System, ein Computerprogrammprodukt und ein Verfahren zum Verbessern der Leistung eines Dialogsystems, wobei die Verbesserungen in bestimmten Ausführungsformen auf die Leistung eines automatisierten virtuellen Dialogagenten des Systems gerichtet sind.
  • In einem Aspekt wird ein System zur Verwendung mit einem Computersystem bereitgestellt, das eine Verarbeitungseinheit, z.B. einen Prozessor, und eine Plattform für künstliche Intelligenz (KI) umfasst. Die Verarbeitungseinheit ist funktionsmäßig mit einem Speicher verbunden, um eine Mehrzahl von Gesprächsprotokolldateien zu empfangen, die sich auf Interaktionen mit einem automatisierten virtuellen Dialogagenten eines Dialogsystems beziehen, wobei jede der Gesprächsprotokolldateien ein Trace von einem oder mehreren Dialogereignissen aufweist. Die Kl-Plattform tauscht mit der Verarbeitungseinheit Daten aus und umfasst eine Traceverwaltungseinheit, um die Dialogereignisse der Traces der Gesprächsprotokolldateien in eine Mehrzahl von geparsten Ereignissen zu parsen und jeweilige Verhaltensmerkmale aus den Traces zu extrahieren und den Traces jeweilige Verhaltensmerkmalswerte zuzuweisen; eine Clusterverwaltungseinheit, die funktionsmäßig mit der Traceverwaltungseinheit verbunden ist, um die Traces auf der Grundlage der Nähe der jeweiligen Verhaltensmerkmalswerte der Traces zu jeweiligen Ergebniswerten in eine Mehrzahl von Clustern zusammenzufassen, wobei die Mehrzahl von Clustern einen ersten Cluster der Traces mit den jeweiligen Verhaltensmerkmalswerten in der Nähe eines ersten Ergebniswertes, der ein erstes Ergebnis darstellt, und einen zweiten Cluster von Traces mit den jeweiligen Verhaltensmerkmalswerten in der Nähe eines zweiten Ergebniswertes, der ein zweites Ergebnis darstellt, das sich von dem ersten Ergebnis unterscheidet, aufweist; eine Suchverwaltungseinheit, die funktionsmäßig mit der Clusterverwaltungseinheit verbunden ist, um die Mehrzahl von geparsten Ereignissen nach einem kontrastierenden Muster zu durchsuchen, was ein Anwenden einer Musterspezifikation, die eine zeitliche Bedingung enthält, auf mindestens ein geparstes Ereignis aus der Mehrzahl von geparsten Ereignissen umfasst; und ein Ermitteln, für das mindestens eine geparste Ereignis durch die Suchverwaltungseinheit, ob das kontrastierende Muster einen kontrastierenden Schwellenwert erfüllt, wobei das kontrastierende Muster auf einem ersten Anteil der Traces des ersten Clusters, für den die Musterspezifikation gilt, und einem zweiten Anteil der Traces des zweiten Clusters, für den die Musterspezifikation nicht gilt, beruht. Die Ausgabe der Kl-Plattform wird auf den automatisierten virtuellen Dialogagenten in Bezug auf das Dialogereignis angewendet, das dem mindestens einen geparsten Ereignis entspricht, um die Leistung des Dialogsystems zu verbessern.
  • Unter einem anderen Aspekt wird ein Computerprogrammprodukt zum Verbessern der Leistung eines Systems mit virtuellen Dialogagenten bereitgestellt. Das Computerprogrammprodukt umfasst ein durch einen Computer lesbares Speichermedium, auf dem Programmcode enthalten ist. Der Programmcode ist von einem Prozessor ausführbar zum: Empfangen einer Mehrzahl von Gesprächsprotokolldateien, die sich auf Interaktionen mit einem automatisierten virtuellen Dialogagenten eines Dialogsystems beziehen, wobei die Gesprächsprotokolldateien jeweilige Traces aufweisen, die ein oder mehrere Dialogereignisse aufweisen; Anwenden der empfangenen Gesprächsprotokolldateien auf eine Plattform für künstliche Intelligenz (AI), die ein Lernprogramm aufweist, um die Dialogereignisse der Traces der Gesprächsprotokolldateien in eine Mehrzahl von geparsten Ereignissen zu parsen, jeweilige Verhaltensmerkmale aus den Traces zu extrahieren und den Traces jeweilige Verhaltensmerkmalswerte zuzuweisen; Zusammenfassen der Traces zu einer Mehrzahl von Clustern auf der Grundlage der Nähe der jeweiligen Verhaltensmerkmalswerte der Traces zu jeweiligen Ergebniswerten, wobei die Mehrzahl von Clustern einen ersten Cluster der Traces mit den jeweiligen Verhaltensmerkmalswerten in der Nähe eines ersten Ergebniswertes, der ein erstes Ergebnis darstellt, und einen zweiten Cluster von Traces mit den jeweiligen Verhaltensmerkmalswerten in der Nähe eines zweiten Ergebniswertes, der ein zweites Ergebnis darstellt, das sich von dem ersten Ergebnis unterscheidet, aufweist; Durchsuchen der Mehrzahl von geparsten Ereignissen nach einem kontrastierenden Muster, wobei das Durchsuchen ein Anwenden einer Musterspezifikation, die eine zeitliche Bedingung enthält, auf mindestens ein geparstes Ereignis aus der Mehrzahl von geparsten Ereignissen umfasst; und Ermitteln, für das mindestens eine geparste Ereignis durch die Suchverwaltungseinheit, ob das kontrastierende Muster einen kontrastierenden Schwellenwert erfüllt, wobei das kontrastierende Muster auf einem ersten Anteil der Traces des ersten Clusters beruht, für den die Musterspezifikation gilt, und einem zweiten Anteil der Traces des zweiten Clusters, für den die Musterspezifikation nicht gilt. Die Ausgabe der Kl-Plattform wird auf den automatisierten virtuellen Dialogagenten in Bezug auf das Dialogereignis angewendet, das dem mindestens einen geparsten Ereignis entspricht, um die Leistung des Dialogsystems zu verbessern.
  • Unter noch einem anderen Aspekt wird ein auf einem Computer ausgeführtes Verfahren zum Verbessern der Leistung eines Dialogsystems bereitgestellt. Das Verfahren umfasst: Empfangen einer Mehrzahl von Gesprächsprotokolldateien, die sich auf Interaktionen mit einem automatisierten virtuellen Dialogagenten eines Dialogsystems beziehen, durch einen Prozessor einer Datenverarbeitungseinheit, wobei die Gesprächsprotokolldateien jeweilige Traces aufweisen, die ein oder mehrere Dialogereignisse umfassen; und Anwenden der empfangenen Gesprächsprotokolldateien auf eine Plattform für künstliche Intelligenz (KI), die ein Lernprogramm aufweist, durch den Prozessor. Das Anwenden weist auf: Parsen der Dialogereignissen der Traces der Gesprächsprotokolldateien in eine Mehrzahl von geparsten Ereignissen; Extrahieren von jeweiligen Verhaltensmerkmalen aus den Traces und Zuweisen von jeweiligen Verhaltensmerkmalswerten zu den Traces; Zusammenfassen der Traces zu einer Mehrzahl von Clustern auf der Grundlage der Nähe der jeweiligen Verhaltensmerkmalswerte der Traces zu jeweiligen Ergebniswerten, wobei die Mehrzahl von Clustern einen ersten Cluster der Traces mit den jeweiligen Verhaltensmerkmalswerten in der Nähe eines ersten Ergebniswertes, der ein erstes Ergebnis darstellt, und einen zweiten Cluster von Traces mit den jeweiligen Verhaltensmerkmalswerten in der Nähe eines zweiten Ergebniswertes, der ein zweites Ergebnis darstellt, das sich von dem ersten Ergebnis unterscheidet, aufweist; Durchsuchen der Mehrzahl von geparsten Ereignissen nach einem kontrastierenden Muster, wobei das Durchsuchen ein Anwenden einer Musterspezifikation, die eine zeitliche Bedingung enthält, auf mindestens ein geparstes Ereignis aus der Mehrzahl von geparsten Ereignissen umfasst; und Ermitteln, für das mindestens eine geparste Ereignis, ob das kontrastierende Muster einen kontrastierenden Schwellenwert erfüllt, wobei das kontrastierende Muster auf einem ersten Anteil der Traces des ersten Clusters, für den die Musterspezifikation gilt, und einem zweiten Anteil der Traces des zweiten Clusters, für den die Musterspezifikation nicht gilt, beruht. Das Verfahren umfasst darüber hinaus ein Verfeinern des automatisierten virtuellen Dialogagenten in Bezug auf das Dialogereignis, das dem mindestens einen geparsten Ereignis entspricht, um die Leistung des Dialogsystems zu verbessern.
  • Diese und andere Merkmale und Vorteile werden aus der folgenden ausführlichen Beschreibung der vorliegenden beispielhaften Ausführungsform(en) in Verbindung mit den beigefügten Zeichnungen ersichtlich.
  • Figurenliste
  • Die Zeichnungen, auf die hierin Bezug genommen wird, stellen einen Teil der Beschreibung dar und werden durch Bezugnahme in diese aufgenommen. In den Zeichnungen gezeigte Merkmale sind nur zur Veranschaulichung einiger Ausführungsformen und nicht aller Ausführungsformen gedacht, sofern nicht ausdrücklich anders angegeben.
    • 1 zeigt ein Systemschema, das ein Datenverarbeitungssystem für eine Plattform für künstliche Intelligenz in einer Netzwerkumgebung veranschaulicht.
    • 2 zeigt ein Blockschaubild, das die in 1 gezeigten und beschriebenen Werkzeuge der Plattform für künstliche Intelligenz und deren zugehörige Schnittstellen zur Anwendungsprogrammierung veranschaulicht.
    • 3 zeigt einen Ablaufplan, der eine Ausführungsform eines Verfahrens zum Zusammenfassen von Traces von Dialogprotokollen in Gruppen veranschaulicht.
    • 4 zeigt einen Ablaufplan, der eine Ausführungsform eines Verfahrens zum Suchen nach in Gruppen zusammengefassten Traces veranschaulicht.
    • 5 zeigt einen Ablaufplan, der eine Ausführungsform eines Verfahrens zum Ermitteln, ob ein kontrastierender Schwellenwert erreicht wurde, veranschaulicht.
    • 6 zeigt ein Blockschaubild, das ein Beispiel eines Computersystems/Servers eines cloudbasierten Unterstützungssystems veranschaulicht, um das System und die Prozesse umzusetzen, die vorstehend in Bezug auf 1 bis 5 beschrieben sind.
    • 7 zeigt ein Blockschaubild, das eine Cloud-Computing-Umgebung veranschaulicht.
    • 8 zeigt ein Blockschaubild, das einen Satz von funktionalen Abstraktionsmodellschichten veranschaulicht, die von der Cloud-Computing-Umgebung bereitgestellt werden.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Man wird ohne Weiteres verstehen, dass die Komponenten der vorliegenden Ausführungsformen, wie hierin allgemein beschrieben und in den Figuren veranschaulicht, in einer großen Vielfalt unterschiedlicher Konfigurationen angeordnet und ausgeführt werden können. Daher ist die folgende ausführliche Beschreibung der Ausführungsformen der Vorrichtung, des Systems, des Verfahrens und des Computerprogrammprodukts der vorliegenden Ausführungsformen, wie sie in den Figuren dargestellt sind, nicht dazu gedacht, den Umfang der beanspruchten Ausführungsformen einzuschränken, sondern stellt lediglich ausgewählte Ausführungsformen dar.
  • Wenn in dieser Beschreibung von „einer ausgewählten Ausführungsform“, „einer bestimmten Ausführungsform“ oder „einer Ausführungsform“ die Rede ist, bedeutet dies, dass ein bestimmtes Merkmal, eine bestimmte Struktur oder eine bestimmte Eigenschaft, die in Verbindung mit der Ausführungsform beschrieben wird, in mindestens einer Ausführungsform enthalten ist. Daher beziehen sich die Wortfolgen „eine ausgewählte Ausführungsform“, „in einer bestimmten Ausführungsform“ oder „in einer Ausführungsform“ an verschiedenen Stellen in dieser Beschreibung nicht unbedingt auf dieselbe Ausführungsform.
  • Die veranschaulichten Ausführungsformen können am besten unter Bezugnahme auf die Zeichnungen verstanden werden, wobei gleichartige Teile durchgängig durch gleichartige Bezugszahlen angegeben sind. Die folgende Beschreibung ist lediglich als Beispiel gedacht und veranschaulicht einfach bestimmte ausgewählte Ausführungsformen von Einheiten, Systemen und Prozessen, die den hierin beanspruchten Ausführungsformen entsprechen.
  • Im Bereich der künstlich intelligenten Computersysteme verarbeiten natürlichsprachliche Systeme (wie zum Beispiel das künstlich intelligente Computersystem IBM Watson™ oder andere natürlichsprachliche Systeme) natürliche Sprache auf der Grundlage des von dem System erworbenen Wissens. Um natürliche Sprache zu verarbeiten, kann das System mit Daten trainiert werden, die aus einer Datenbank oder einem Wissenskorpus abgeleitet werden, wobei aber das resultierende Ergebnis aus einer Vielzahl von Gründen falsch oder ungenau sein kann.
  • Beim maschinellen Lernen (ML), einem Teilbereich der künstlichen Intelligenz (Kl), werden Algorithmen eingesetzt, um aus Daten zu lernen und auf der Grundlage dieser Daten Prognosen zu erstellen. KI bezieht sich auf die Intelligenz, wenn Maschinen auf der Grundlage von Informationen in der Lage sind, Entscheidungen zu treffen, welche die Erfolgschancen in einem bestimmten Bereich maximieren. Insbesondere ist die KI in der Lage, aus einem Datensatz zu lernen, um Probleme zu lösen und entsprechende Empfehlungen bereitzustellen. Cognitive Computing ist eine Mischung aus Informatik und kognitiver Wissenschaft. Cognitive Computing nutzt selbstlernende Algorithmen, die ein Datenminimum, visuelle Erkennung und natürliche Sprachverarbeitung einsetzen, um Probleme zu lösen und menschliche Prozesse zu optimieren.
  • Im Zentrum der KI und der zugehörigen Schlussfolgerungen steht das Konzept der Ähnlichkeit. Der Prozess des Verstehens von natürlicher Sprache und Objekten erfordert Schlussfolgerungen aus einer beziehungsorientierten Perspektive, was eine Herausforderung darstellen kann. Strukturen, darunter statische und dynamische Strukturen, geben eine bestimmte Ausgabe oder Aktion für eine gegebene bestimmte Eingabe vor. Insbesondere beruht die ermittelte Ausgabe oder Aktion auf einer ausdrücklichen oder innewohnenden Beziehung innerhalb der Struktur. Diese Regelung kann unter bestimmten Umständen und Bedingungen zufriedenstellend sein. Allerdings wird darauf hingewiesen, dass dynamische Strukturen von Natur aus Veränderungen unterworfen sind und die Ausgabe oder Aktion sich entsprechend ändern kann. Bestehende Lösungen zum effizienten Erkennen von Objekten und Verstehen von natürlicher Sprache und zum Verarbeiten von inhaltlichen Reaktionen auf das Erkennen und Verstehen sowie auf Änderungen der Strukturen sind in der Praxis äußerst schwierig umzusetzen.
  • Bei einem Chatbot handelt es sich um ein Programm der künstlichen Intelligenz (Kl), das unter Verwendung von vorab berechneten Wortfolgen und akustischen oder auf Text beruhenden Signalen eine interaktive menschliche Unterhaltung simuliert. Chatbots werden zunehmend auf elektronischen Plattformen für den Kundendienst eingesetzt. In einer Ausführungsform kann der Chatbot als intelligenter virtueller Agent fungieren. Jedes Chatbot-Erlebnis weist einen Satz von Datenübertragungen auf, der sich aus Benutzeraktionen und Dialogsystemaktionen zusammensetzt, wobei das Erlebnis ein unterscheidendes Verhaltensmuster aufweist. Es ist in der Fachwelt anerkannt, dass Chatbot-Dialoge bewertet und einer Diagnose unterzogen werden können, um Elemente des Chatbots zu ermitteln, die Änderungen zum Verbessern zukünftiger Erlebnisse mit dem Chatbot gewährleisten können. Bei derartigen Bewertungen werden Verhaltensmuster erkannt. Durch Untersuchen dieser Muster und insbesondere durch Erkennen verschiedener Merkmale der Muster kann das Chatbot-Programm verfeinert oder geändert werden, um die Chatbot-Metriken und zukünftige Chatbot-Erlebnisse zu verbessern.
  • Ein Aspekt der Chatbot-Bewertung ist auf eine Untersuchung eines zugrunde liegenden Dialogs gerichtet, um zu erkennen, wie sich Sätze von Dialogen im Verhalten unterscheiden. Der Dialog weist eine Reihe von Datenübertragungen auf, in denen ein Dialogtrace, z.B. ein Trace, eine Charakterisierung des Dialogs ist. In einer Ausführungsform werden die Dialoge auf der Grundlage ihres Trace in Gruppen zusammengefasst. Die Untersuchung erzeugt eine entsprechende Erklärung, indem sie logische Spezifikationen entdeckt, die von dem einen Satz von Dialogen, aber nicht von dem anderen Satz von Dialogen vorausgesetzt werden. In einer Ausführungsform kann die Untersuchung Unregelmäßigkeiten in der Chatbot-Plattform erkennen, die beseitigt oder verbessert werden können. Dementsprechend konzentrieren sich das System, das Computerprogrammprodukt und das Verfahren, die hierin mit den entsprechenden Zeichnungen ausführlich beschrieben sind, auf ein Erläutern von Unterschieden zwischen mehreren Dialogen und ein Verfeinern des Dialogprogrammcodes, um Fehler der Chatbot-Plattform abzumildern und das Dialogerlebnis zu verbessern.
  • Unter Bezugnahme auf 1 ist ein schematisches Schaubild einer Plattform für künstliche Intelligenz (AI) und eines entsprechenden Systems (100) dargestellt. Wie gezeigt, wird ein Server (110) bereitgestellt, der mit einer Mehrzahl von Datenverarbeitungseinheiten (180), (182), (184), (186), (188) und (190) über eine Netzwerkverbindung, z.B. ein Computernetzwerk (105), Daten austauscht. Der Server (110) ist mit einer Verarbeitungseinheit, z.B. einem Prozessor, konfiguriert, der über einen Bus Daten mit einem Speicher austauscht. Der Server (110) ist mit einer Kl-Plattform (150) gezeigt, die funktionsmäßig mit einem Dialogsystem (160) verbunden ist, hierin gezeigt mit einem virtuellen Dialogagenten (162), als Chatbot, einer Wissensbasis (170). Eine visuelle Anzeige (130) wie zum Beispiel ein Computerbildschirm oder ein Smartphone wird bereitgestellt, um es dem Benutzer zu ermöglichen, sich mit einer Darstellung eines virtuellen Agenten, z.B. einem Chatbot (132), auf der Anzeige (130) zu verbinden. Wenngleich in 1 eine visuelle Anzeige veranschaulicht ist, sollte klar sein, dass die Anzeige (130) durch (eine) andere Schnittstelle(n) ersetzt oder ergänzt werden kann, wie zum Beispiel durch eine Audio-Schnittstelle (z.B. ein Mikrofon und einen Lautsprecher), eine Audio-Video-Schnittstelle usw.
  • Die Kl-Plattform (150) ist funktionsmäßig mit dem Netzwerk (105) verbunden, um die Interaktion mit dem virtuellen Dialogagenten (162) von einer oder mehreren der Datenverarbeitungseinheiten (180), (182), (184), (186), (188) und (190) aus zu unterstützen. Insbesondere tauschen die Datenverarbeitungseinheiten (180), (182), (184), (186) und (188) untereinander und mit anderen Einheiten oder Komponenten über eine oder mehrere drahtgebundene und/oder drahtlose Datenübertragungsverbindungen Daten aus, wobei jede Datenübertragungsverbindung Drähte, Leitwegrechner, Vermittlungseinheiten, Sender und/oder Empfänger oder dergleichen aufweist. In dieser vernetzten Anordnung ermöglichen der Server (110) und die Netzwerkverbindung (105) ein Erkennen, Erfassen und Auflösen von Datenübertragungen. Andere Ausführungsformen des Servers (110) können mit anderen Komponenten, Systemen, Teilsystemen und/oder Einheiten als den hierin abgebildeten verwendet werden.
  • Die Kl-Plattform (150) wird hierin als funktionsmäßig mit dem Dialogsystem (160) verbunden gezeigt, das so konfiguriert ist, dass es Eingaben (102) aus verschiedenen Quellen empfängt. Zum Beispiel kann das Dialogsystem (160) Eingaben über das Netzwerk (105) empfangen und eine Datenquelle (170) nutzen, die hierin auch als Wissensbasis oder Informationskorpus bezeichnet wird, um Ausgabe- oder Antwortinhalte zu erstellen.
  • Wie gezeigt, ist die Datenquelle (170) mit einer Bibliothek (172A) von Gesprächsprotokolldateien (auch als Datensätze bezeichnet) konfiguriert, wobei jede Protokolldatei Interaktionen mit dem virtuellen Dialogagenten aufzeichnet. Gemäß einer beispielhaften Ausführungsform handelt es sich bei jedem Gesprächsprotokoll, z.B. einer Protokolldatei, um eine Aufzeichnung eines (Verlaufs-) Trace eines Chatbots, das einen Dialog auf einer elektronischen Plattform zwischen einem Benutzer und einem virtuellen Agenten umfasst. Das Trace umfasst ein oder mehrere Dialogereignisse, die auch als Zustandsvariablen bezeichnet werden. Beispielsweise können im Zusammenhang mit einer Chatbot-Plattform zum Buchen eines Urlaubs Dialogereignisse oder Zustandsvariablen ein Feld wie zum Beispiel Datum und Uhrzeit der Abreise enthalten, und bei der Instanziierung der Zustandsvariablen kann es sich um die von dem Benutzer für das Datum und die Uhrzeit der Abreise eingegebenen Informationen oder Daten handeln. Zu den weiteren Zustandsvariablen für einen derartigen Chatbot könnten das Datum und die Uhrzeit der Rückkehr, der Zielort, die Fahrzeuganmietung, die Hotelreservierung usw. gehören.
  • Wie hierin gezeigt, enthält die erste BibliothekA (172) eine Mehrzahl von Protokolldateien, darunter eine Protokolldatei0 (174A,0) und eine Protokolldatei1 (174A,1). Obwohl nur zwei Protokolldateien gezeigt sind, sollte die Anzahl nicht als einschränkend betrachtet werden. In der Tat wird in Betracht gezogen, dass die Bibliothek (172A) Hunderte oder Tausende von Protokolldateien enthalten kann. Die Protokolldateio (174A,0) und die Protokolldatei1 (174A,1) sind mit entsprechenden Traces gezeigt, die hierin als Traceo (176A,0) bzw. Trace1 (176A,1) gezeigt sind. Ebenso umfasst jedes Trace einen Verhaltensmerkmalswert (BCV, behavior characteristic value) und ein oder mehrere Dialogereignisse (darunter Instanziierungen von Zustandsvariablen). Zum Beispiel sind Traceo (176A,0) und Trace1 (176A,1) mit entsprechenden Verhaltensmerkmalswerten BVC0(176A,0,B) bzw. BCV1 (176A,0,B) gezeigt. In 1 ist Traceo (176A,0) mit Dialogereignis(sen)o (178A,0) gezeigt, und Trace1 (176A,1) ist mit Dialogereignis(sen)1 (178A,1) gezeigt. Der automatisierte virtuelle Dialogagent (162) kann dem Benutzer jede der Zustandsvariablen als Frage stellen, wobei der Benutzer eine Antwort in Form einer Instanziierung einer Zustandsvariablen bereitstellt.
  • Wie darüber hinaus in 1 gezeigt ist, ist die Datenquelle (170) mit einer zweiten BibliothekB (172B) und einer dritten BibliothekC (172C) konfiguriert. Obwohl die Datenquelle (170) mit drei Bibliotheken (172A, 172B und 172C) gezeigt ist, sollte klar sein, dass die Bibliotheken zusammengefasst oder in eine beliebige Anzahl von Bibliotheken unterteilt werden können, und dass auf zusätzliche Bibliotheken zugegriffen werden kann. Zum Beispiel können die BibliothekB (172B) und die BibliothekC (172c) zu einer einzelnen Bibliothek zusammengefasst werden. Alternativ können die BibliothekB (172B) oder/und die BibliothekC (172c) eine Mehrzahl von Bibliotheken aufweisen. Die BibliothekB (172B) umfasst eine Mehrzahl von Dateien, die jeweils eine Musterspezifikation und optional einen der Musterspezifikation zugehörigen gewichteten Wert (WV) enthalten. Wie gezeigt, umfasst die BibliothekB (172B) eine Musterspezifikationo (174B,0) mit einem zugehörigen gewichteten Wert WVB,0 (176B,0), eine Musterspezifikation1 (174B,1) mit einem zugehörigen WVB,1 (176B,1) und eine MusterspezifikationN (174B,N) mit einem zugehörigen WVB,N (176B,N). BibliothekC (172c) enthält eine Mehrzahl von Dateien, die Variablenspezifikationen und optional gewichtete Werte (WV) umfassen, die den Variablenspezifikationen zugehören. Wie gezeigt, umfasst die BibliothekC (172C) eine Variablenspezifikationo (174C,0) mit einem zugehörigen WVc,o (176c,o), eine Variablenspezifikation, (174C,1) mit einem zugehörigen WVC,1 (176C,1) und eine VariablenspezifikationN (174C,N) mit einem zugehörigen WVC,N (176C,N). Obwohl drei Dateien gezeigt sind, können die BibliothekB (172B) und die BibliothekC (172C) auch weniger oder mehr Dateien umfassen, darunter zum Beispiel Dutzende, Hunderte oder Tausende von Dateien.
  • Die Musterspezifikationen (z.B. die Musterspezifikationo (174B,0), die Musterspezifikation1 (174B,1), die MusterspezifikationN (174B,N)) der Dateien von BibliothekB (172B) können eine zeitliche Bedingung beinhalten, z.B. eine zeitliche Logik einsetzen. In beispielhaften Ausführungsformen wird eine lineare temporale Logik (LTL) für eine oder mehrere, wenn nicht alle, der Musterspezifikationen (174B,0, 174B,1 ... 174B,N) von BibliothekB (172B) eingesetzt. Zum Beispiel kann es sich bei der LTL um eine Bedingung handeln, die für das Gesprächstrace immer gilt, um eine Bedingung, die auf eine andere Bedingung folgt oder ihr vorausgeht, oder um andere Beispiele für LTL. Die Variablenspezifikationen (174C,0, 174C,1 ... 174C,N) der Dateien von BibliothekC (172C) können Felder mit Informationen (oder Zustandsvariablen) umfassen, die üblicherweise bei einer Interaktion oder Transaktion mit einem virtuellen Agenten wie zum Beispiel einem Chatbot eine Rolle spielen. Die gewichteten Werte (WVs) der Dateien von BibliothekB (172B) und BibliothekC (172C) sind optional. In beispielhaften Ausführungsformen werden verschiedenen Musterspezifikationen und Variablenspezifikationen unterschiedliche gewichtete Werte zugewiesen, je nachdem, wie wichtig die zugehörige Musterspezifikation oder Variablenspezifikation empfunden wird. In einer beispielhaften Ausführungsform liegen die gewichteten Werte in einem Bereich von 0 bis 1, einschließlich jedes Zehntels und/oder Hundertstels dazwischen.
  • Die verschiedenen Datenverarbeitungseinheiten (180), (182), (184), (186), (188) und (190), die mit dem Netzwerk (105) Daten austauschen, können Zugangspunkte zu dem Dialogsystem (160) umfassen. Das Netzwerk (105) kann in verschiedenen Ausführungsformen lokale Netzwerkverbindungen und ferne Verbindungen umfassen, so dass die Kl-Plattform (150) in Umgebungen jeder beliebigen Größe arbeiten kann, darunter lokale und globale Umgebungen wie zum Beispiel das Internet. Außerdem dient die Kl-Plattform (150) als Back-End-System, das eine Vielfalt von Wissen verfügbar machen kann, das aus Dokumenten, über das Netzwerk zugreifbaren Quellen und/oder strukturierten Datenquellen entnommen werden oder darin dargestellt sein kann. Auf diese Weise füllen einige Prozesse die Kl-Plattform (150), wobei die Kl-Plattform (150) auch Eingabeschnittstellen zum Empfangen von Wissensabfragen und zum entsprechenden Antworten beinhaltet.
  • Wie gezeigt, kann der Inhalt in Form einer oder mehrerer Protokolldateien (austauschbar mit „Datensätzen“ verwendet) vorliegen, die über die Wissensbasis (170) funktionsmäßig mit der Kl-Plattform (150) verbunden sind. Benutzer von Inhalten können über eine Netzwerkverbindung oder Internetverbindung mit dem Netzwerk (105) auf die Kl-Plattform (150) und das funktionsmäßig verbundene Dialogsystem (160) zugreifen und Eingaben in natürlicher Sprache an die Kl-Plattform (150) übermitteln, die durch Nutzung der Wissensbasis (170) und der Werkzeuge, welche die Kl-Plattform (150) umfassen, effektiv eine auf die Eingabe bezogene Ausgabeantwort ermitteln kann.
  • Die Kl-Plattform (150) wird hierin mit mehreren Werkzeugen zum Unterstützen des Dialogsystems (160) und des entsprechenden virtuellen Agenten (z.B. Chatbots) (162) gezeigt, und zwar mit den Werkzeugen, die auf ein Verbessern der Leistung des Dialogsystems (160) und des Erlebnisses mit dem virtuellen Agenten (162) ausgerichtet sind. Die Kl-Plattform (150) setzt eine Mehrzahl von Werkzeugen ein, um sich mit dem virtuellen Agenten (162) zu verbinden und dessen Leistungsverbesserung zu unterstützen. Zu den Werkzeugen gehören eine Traceverwaltungseinheit (152), eine Clusterverwaltungseinheit (154), eine Stichprobenentnahme-Verwaltungseinheit (156), eine Suchverwaltungseinheit (158) und eine Ausgabeverwaltungseinheit (164).
  • Die Traceverwaltungseinheit (152) parst die Dialogereignisse der Traces der Gesprächsprotokolldateien in eine Mehrzahl von geparsten Ereignissen, die Instanziierungen von Zustandsvariablen umfassen. Darüber hinaus extrahiert die Traceverwaltungseinheit (152) Verhaltensmerkmale aus den Traces und weist jedem der Traces einen jeweiligen Verhaltensmerkmalswert zu. Wie hierin gezeigt, ist Traceo (176A,0) mit einem entsprechenden Verhaltensmerkmalswert (BCVo) (176A,0,B) gezeigt, und Trace1 (176A,1) ist mit einem entsprechenden Verhaltensmerkmalswert (BCV1) (176A,1,B) gezeigt.
  • Die Traceverwaltungseinheit (154) fasst die Traces auf der Grundlage der Nähe der jeweiligen Verhaltensmerkmalswerte der Traces zu den jeweiligen Ergebniswerten in eine Mehrzahl von Clustern (oder Gruppen) zusammen. Die Mehrzahl von Clustern umfasst einen ersten Cluster, der einem ersten Ergebniswert zugehörig ist, der ein erstes Ergebnis darstellt, und einen zweiten Cluster, der einem zweiten Ergebniswert zugehörig ist, der ein zweites Ergebnis darstellt, das sich von dem ersten Ergebnis unterscheidet (und gegebenenfalls diesem entgegengesetzt ist). Bei dem ersten und zweiten Ergebnis kann es sich zum Beispiel um den erfolgreichen Abschluss einer Interaktion bzw. um den nicht erfolgreichen Abschluss einer Interaktion handeln. Die in dem ersten Cluster in Gruppen zusammengefassten Traces weisen jeweilige Verhaltensmerkmalswerte auf, die in der Nähe des ersten Ergebniswerts liegen (z.B. identisch sind), während die in dem zweiten Cluster in Gruppen zusammengefassten Traces jeweilige Verhaltensmerkmalswerte aufweisen, die in der Nähe des zweiten Ergebniswerts liegen (z.B. identisch sind). Zum Beispiel kann im Fall eines Chatbots, der zum Buchen eines Urlaubs verwendet wird, der erste Ergebniswert ein Ergebnis darstellen, bei dem der Urlaub erfolgreich gebucht wurde (wobei der Verhaltensmerkmalswert gleich 0 ist), während der zweite Ergebniswert ein Ergebnis darstellen kann, bei dem der Urlaub nicht erfolgreich gebucht wurde (wobei der Verhaltensmerkmalswert gleich 1 ist). In einer beispielhaften Ausführungsform sind der erste und der zweite Ergebniswert 0 und 1. Obwohl das vorstehende Ausführungsbeispiel zwei Ergebnisse umfasst, sollte es klar sein, dass Ausführungsformen drei oder mehr Ergebnisse umfassen, z.B. ein drittes Ergebnis, bei dem zwar die Zielunterkunft (z.B. ein Resort) erfolgreich gebucht wurde, die Reisebuchungen (z.B. Flüge) jedoch nicht durchgeführt wurden.
  • Gemäß einer Ausführungsform wählt die Stichprobenentnahme-Verwaltungseinheit (156) eine Teilmenge von Traces des ersten Clusters und eine Teilmenge von Traces des zweiten Clusters zur weiteren Verarbeitung aus. Die Stichprobenentnahme-Verwaltungseinheit (156) ist besonders nützlich, wenn Traces aus einer großen Anzahl von Gesprächsprotokolldateien in Gruppen zusammengefasst werden. Die Stichprobenentnahme-Verwaltungseinheit (156) kann Stichproben unter Verwendung von beliebigen Stichprobenentnahmetechniken, darunter die Stichprobenentnahme nach dem Zufallsprinzip, entnehmen. Stichprobenentnahme-Verwaltungseinheiten sind im Stand der Technik bekannt und werden daher nicht weiter erörtert.
  • Die Suchverwaltungseinheit (158) untersucht die Mehrzahl von geparsten Ereignissen (oder Zustandsvariablen) der als Stichprobe entnommenen Traces. In einer beispielhaften Ausführungsform umfasst die Suchverwaltungseinheit (158) ein Präferenzmodul (158A) und eine Kontrastprüfungseinheit (158B). Das Präferenzmodul (158A) greift auf BibliothekB (172B) zu, um eine Musterspezifikation und einen zugehörigen gewichteten Wert auszuwählen (z.B. die Musterspezifikationo (174B,0) mit zugehörigem WVB,0 (176B,0)) und greift auf Bibliothekc(172c) zu, um eine Variablenspezifikation und einen zugehörigen gewichteten Wert auszuwählen (z.B. die Variablenspezifikationo (174c,o) mit dem zugehörigen WVc,o (176C,0)). Das Präferenzmodul (158A) der Suchverwaltungseinheit (158) wendet die ausgewählte Musterspezifikation, die eine zeitliche Bedingung enthält, und die ausgewählte Variablenspezifikation auf die geparsten Ereignisse der Stichproben-Traces des ersten Clusters an, um einen ersten Anteil der Stichproben-Traces des ersten Clusters zu ermitteln, für den das/die geparste (n) Ereignis(se), das/die der ausgewählten Variablenspezifikation entspricht/entsprechen, die zeitliche Bedingung der ausgewählten Musterspezifikation erfüllt/erfüllen. Das Präferenzmodul (158A) der Suchverwaltungseinheit (158) wendet darüber hinaus dieselbe ausgewählte Musterspezifikation, welche dieselbe zeitliche Bedingung und dieselbe ausgewählte Variablenspezifikation umfasst, auf die geparsten Ereignisse der Stichproben-Traces des zweiten Clusters an, um einen zweiten Anteil der Stichproben-Traces des zweiten Clusters zu ermitteln, für den das/die geparste (n) Ereignis(se), das/die der ausgewählten Variablenspezifikation entspricht/entsprechen, die zeitliche Bedingung der ausgewählten Musterspezifikation nicht erfüllt/erfüllen.
  • Die Kontrastprüfungseinheit (158B) der Suchverwaltungseinheit (158) ermittelt auf der Grundlage des ersten Anteils der Traces des ersten Clusters und des zweiten Anteils der Traces des zweiten Clusters, ob eine kontrastierende Schwelle, üblicherweise ein Wert zwischen 0 und 1 und optional vorher festgelegt durch den Programmierer, einschließlich jedes Zehntels oder Hundertstels dazwischen, erfüllt ist. Die Ermittlung der Erfüllung des kontrastierenden Schwellenwerts geht gemäß einer beispielhaften Ausführungsform mit einem Multiplizieren des ersten und des zweiten Anteils miteinander, um ein Produkt zu berechnen, und mit einem Beurteilen, ob das berechnete Produkt so groß wie oder größer als der kontrastierende Schwellenwert ist, einher. Wenn ein oder mehrere Gewichtungswerte zu berücksichtigen sind, geht die Ermittlung der Erfüllung des kontrastierenden Schwellenwerts gemäß einer anderen beispielhaften Ausführungsform mit einem Multiplizieren des ersten Anteils, des zweiten Anteils und des/der Gewichtungswerte(s) miteinander, um ein gewichtetes Produkt zu berechnen, und mit einem Beurteilen, ob das berechnete gewichtete Produkt so groß wie oder größer als der kontrastierende Schwellenwert ist, einher.
  • Die Ausgabeverwaltungseinheit (164) gemäß einer beispielhaften Ausführungsform stellt eine Ausgabe (164A) zum Auslesen auf der visuellen Anzeige (130) bereit. Gemäß einer anderen Ausführungsform verfeinert die Ausgabeverwaltungseinheit (164) automatisch das Dialogsystem (160) und in einer beispielhaften Ausführungsform den automatisierten virtuellen Dialogagenten (162) des Dialogsystems (160) in Verbindung mit der für die Suche mit der Suchverwaltungseinheit (158) verwendeten Variablenspezifikation. Gemäß einer Ausführungsform geht die Verfeinerung des Dialogsystems damit einher, dass innerhalb des Dialogs selektiv ein Prüfpunkt in Bezug auf die für die Suche mit der Suchverwaltungseinheit (158) verwendeten Variablenspezifikation gesetzt wird. Gemäß einer anderen Ausführungsform geht die Verfeinerung des Dialogsystems (160) mit einem Ändern der von dem virtuellen Agenten (162) gestellten Fragen einher. Die Verfeinerung kann automatisch von der Ausgabeverwaltungseinheit (164) oder von einem Programmierer umgesetzt werden.
  • Wenn die Protokolldatei (ein Datensatz) empfangen wird, kann die Traceverwaltungseinheit (152) eine Vielfalt von Protokollen verwenden, um die Dialogereignisse des entsprechenden Trace der empfangenen Protokolldatei zu parsen, wozu ein Erkennen von Inhalten innerhalb des Trace auf der Grundlage der Beziehung zwischen Signifikanten wie zum Beispiel Wörtern, Wortfolgen, Zeichen und Symbolen, und dem, wofür sie stehen, ihren Bezeichnungen oder Konnotationen gehört. Die Traceverwaltungseinheit (152) ist hierin als ein in die Plattform (150) für künstliche Intelligenz eingebettetes Werkzeug gezeigt und nutzt gemäß einer Ausführungsform Protokolle zur Verarbeitung natürlicher Sprache.
  • Die Traces der empfangenen Protokolldateien können von dem IBM Watson® Server (110) und der entsprechenden Plattform (150) für künstliche Intelligenz verarbeitet werden. Wie hierin gezeigt, führt die Traceverwaltungseinheit (152) eine Analyse der Sprache des Trace unter Verwendung einer Vielfalt von Schlussfolgerungsalgorithmen durch. Es können Hunderte oder sogar Tausende von Schlussfolgerungsalgorithmen angewendet werden, die jeweils eine unterschiedliche Analyse durchführen, z.B. Vergleiche. Zum Beispiel können einige der Schlussfolgerungsalgorithmen ein Übereinstimmen von Begriffen und Synonymen innerhalb der Sprache des empfangenen Trace und den gefundenen Teilen des Datenkorpus untersuchen. In einer Ausführungsform kann die Traceverwaltungseinheit (154) die elektronische Kommunikation in Wortvektordarstellungen verarbeiten, um Merkmale innerhalb der Kommunikation zu erkennen und zu extrahieren. Unabhängig davon, ob die NL-Verwaltungseinheit (152) Wortvektordarstellungen oder eine alternative Plattform für die Verarbeitung elektronischer Datensätze verwendet, verarbeitet sie den elektronischen Datensatz mit dem Ziel, geparste Ereignisse und ein Verhaltensmerkmal des Trace zu erkennen. In einer Ausführungsform erkennt die Plattform grammatikalische Komponenten wie zum Beispiel Substantive, Verben, Adjektive, Zeichensetzung, Satzzeichen usw. in den elektronischen Datensätzen. Ebenso können in einer Ausführungsform ein oder mehrere Schlussfolgerungsalgorithmen zeitliche oder räumliche Merkmale in der Sprache der elektronischen Datensätze untersuchen.
  • In einigen veranschaulichenden Ausführungsformen kann es sich bei dem Server (110) um das System IBM Watson® handeln, das von International Business Machines Corporation, Armonk, New York, erhältlich ist und um die Mechanismen der nachfolgend beschriebenen veranschaulichenden Ausführungsformen erweitert wird.
  • Die Stichprobenentnahme-Verwaltungseinheit (156) veranlasst die Stichprobenentnahme der Traces aus den gebildeten Clustern. Die Stichprobenentnahme kann nach dem Zufallsprinzip erfolgen oder mit jeder beliebigen Stichprobenentnahmetechnik einhergehen, darunter die nach dem Stand der Technik bekannten Techniken. In einer Ausführungsform wird eine erste ausgewählte Menge von Stichproben-Traces dem ersten Cluster zugewiesen, und eine zweite ausgewählte Menge von Stichproben-Traces wird dem zweiten Cluster, Cluster1, zugewiesen.
  • Die Suchverwaltungseinheit (158) beurteilt, ob aus der Clusterbildung und - bewertung gewonnene Informationen einen kontrastierenden Schwellenwert erfüllen. Die Kontrastprüfungseinheit (158B) multipliziert die Anteile des ersten und zweiten Clusters miteinander, um einen Produktwert bereitzustellen. Optional multipliziert die Kontrastprüfungseinheit (158B) den Produktwert mit einem oder mehreren Gewichtungsfaktoren, um ein gewichtetes Produkt zu ermitteln. Gemäß beispielhaften Ausführungsformen liegt jeder der Gewichtungsfaktoren in einem Bereich von 0 bis 1, einschließlich aller Zehntel oder Hundertstel dazwischen. Gemäß einer Ausführungsform handelt es sich bei einem Gewichtungsfaktor um einen Gewichtungsfaktor für die Musterspezifikation, der z.B. auf der Wichtigkeit beruht, die der Musterspezifikation zugewiesen ist. Gemäß einer anderen Ausführungsform handelt es sich bei dem Gewichtungsfaktor um einen Gewichtungsfaktor für die Variablenspezifikation, der z.B. auf der Wichtigkeit beruht, die der Variablenspezifikation zugewiesen ist. Zum Beispiel kann die Variablenspezifikation, die sich auf die Zufriedenheit mit den Abfahrtsdaten bezieht, eine hohe Wichtigkeit für den Programmierer haben und daher einen Gewichtungswert nahe 1 zugewiesen bekommen, wobei die Variablenspezifikation, die sich auf die Zufriedenheit mit einer Fahrzeuganmietung bezieht, eine geringe Wichtigkeit haben kann und daher einen Gewichtungswert nahe 0 zugewiesen bekommen kann. In einer Ausführungsform kann die Gewichtungsanwendung auf die Musterspezifikation und/oder die Variablenspezifikation weggelassen oder auf 1 gesetzt werden. Ebenso kann in einer Ausführungsform ein Wert der Gewichtung konfigurierbar sein.
  • Es wird ein kontrastierender Schwellenwert zugewiesen. Optional weist die Kontrastprüfungseinheit (158B) den kontrastierenden Schwellenwert zu, obwohl er auch von dem Programmierer zugewiesen werden kann. In beispielhaften Ausführungsformen handelt es sich bei dem kontrastierenden Schwellenwert um einen Wert in einem Bereich von 0 bis 1, einschließlich eines beliebigen Inkrements (z.B. Zehntel, Hundertstel usw.) innerhalb des Bereichs von 0 bis 1. Die Kontrastprüfungseinheit (158B) der Suchverwaltungseinheit (158) ermittelt, ob das gewichtete Produkt den kontrastierenden Schwellenwert erfüllt, z.B. so groß wie oder größer als dieser ist.
  • Wenn das gewichtete Produkt den kontrastierenden Schwellenwert erfüllt, erzeugt die Ausgabeverwaltungseinheit (164) eine Ausgabe, die einer Verfeinerung des virtuellen Agenten in Verbindung mit dem/den geparsten Ereignis(sen) entspricht, um die Leistung des Dialogsystems zu verbessern. Erfüllt das gewichtete Produkt hingegen nicht den kontrastierenden Schwellenwert, können die Kl-Plattform (150) oder der Programmierer verschiedene Schritte zum Fortsetzen des Prozesses unternehmen, darunter zum Beispiel ein Zuweisen eines neuen kontrastierenden Schwellenwerts und ein Zurückspringen zu den Schritten (412) und (432); ein Auswählen einer anderen Musterspezifikation und/oder Variablenspezifikation und ein Beendigen des Prozesses.
  • Die Traceverwaltungseinheit (152), die Clusterverwaltungseinheit (154), die Stichprobenentnahme-Verwaltungseinheit (156), die Suchverwaltungseinheit (158) und die Ausgabeverwaltungseinheit (164), die im Folgenden gemeinsam als Kl-Werkzeuge bezeichnet werden, sind als in der Plattform (150) für künstliche Intelligenz des Servers (110) enthalten oder darin integriert gezeigt. Die Kl-Werkzeuge können in einem separaten Datenverarbeitungssystem (z.B. 190) umgesetzt sein, das über das Netzwerk (105) mit dem Server (110) verbunden ist. Sofern enthalten, dienen die Kl-Werkzeuge dazu, Dialogprotokolldatensätze zu bewerten, Dialogereignisse von Traces der Dialogprotokolldatensätze in geparste Ereignisse zu parsen, Verhaltensmerkmale aus den Traces zu extrahieren und den Verhaltensmerkmalen Werte zuzuweisen, die Traces in Gruppen zusammenzufassen, aus den in Gruppen zusammengefassten Traces Stichproben zu entnehmen und zu ermitteln, ob eine kontrastierende Schwelle in Bezug auf die als Stichprobe entnommenen Traces erfüllt ist.
  • In ausgewählten beispielhaften Ausführungsformen kann die Traceverwaltungseinheit (152) so konfiguriert sein, dass sie eine NL-Verarbeitung (Verarbeitung natürlicher Sprache) anwendet, um die Verhaltensmerkmale der Traces der empfangenen Dialogprotokolldatensätze zu erkennen. Zum Beispiel kann die Traceverwaltungseinheit (152) eine Satzstrukturanalyse durchführen, wobei die Analyse ein Parsen des/der betreffenden Satzes/Sätze umfasst und das Parsen grammatikalische Begriffe und Wortarten benennen soll. In einer Ausführungsform kann die Traceverwaltungseinheit (152) einen Slotgrammatiklogik- (SGL-) Parser verwenden, um das Parsen durchzuführen. Die Traceverwaltungseinheit (152) kann auch so konfiguriert sein, dass sie ein oder mehrere Lernverfahren anwendet, um erkannte Inhalte mit bekannten Inhalten abzugleichen und zu entscheiden und dem Verhaltensmerkmal einen Wert zuzuweisen.
  • Arten von Informationsverarbeitungssystemen, welche die Plattform (150) für künstliche Intelligenz nutzen können, reichen von kleinen Handheld-Einheiten wie zum Beispiel ein Handheld-Computer/Mobiltelefon (180) bis hin zu großen Mainframe-Systemen wie zum Beispiel ein Mainframe-Computer (182). Zu Beispielen des Handheld-Computers (180) gehören elektronische Assistenten (PDAs, personal digital assistants), persönliche Unterhaltungsgeräte wie zum Beispiel MP4-Abspielgeräte, tragbare Fernseher und Compact-Disc-Spieler. Zu anderen Beispielen von Informationsverarbeitungssystemen gehören ein Pen- oder Tablet-Computer (184), ein Laptop- oder Notebook-Computer (186), ein Personal Computer-System (188) und ein Server (190). Wie gezeigt, können die verschiedenen Informationsverarbeitungssysteme unter Verwendung des Netzwerks (105) miteinander vernetzt werden. Zu Arten des Computernetzwerks (105), die zum Verbinden der verschiedenen Informationsverarbeitungssysteme verwendet werden können, gehören lokale Netzwerke (LANs), drahtlose lokale Netzwerke (WLANs), das Internet, das öffentliche Telefonnetz (PSTN), andere drahtlose Netzwerke und jede beliebige andere Netzwerktopologie, die zum Verbinden der Informationsverarbeitungssysteme verwendet werden kann. Viele der Informationsverarbeitungssysteme umfassen nichtflüchtige Datenspeicher wie zum Beispiel Festplattenlaufwerke und/oder nichtflüchtigen Speicher. Einige der Informationsverarbeitungssysteme können getrennte nichtflüchtige Datenspeicher verwenden (z.B. nutzt der Server (190) einen nichtflüchtigen Datenspeicher (190A), und der Mainframe-Computer (182) nutzt einen nichtflüchtigen Datenspeicher (182A)). Bei dem nichtflüchtigen Datenspeicher (182A) kann es sich um eine Komponente handeln, die sich außerhalb der verschiedenen Informationsverarbeitungssysteme befindet oder die sich innerhalb eines der Informationsverarbeitungssysteme befinden kann.
  • Das Informationsverarbeitungssystem, das zum Unterstützen der Plattform (150) für künstliche Intelligenz eingesetzt wird, kann viele Formen annehmen, von denen einige in 1 gezeigt sind. Zum Beispiel kann ein Informationsverarbeitungssystem die Form eines Desktops, eines Servers, tragbar, eines Laptops, eines Notebooks oder eines Computers bzw. eines Datenverarbeitungssystems mit anderem Formfaktor annehmen. Außerdem kann ein Informationsverarbeitungssystem andere Formfaktoren wie zum Beispiel einen elektronischen Assistenten (PDA), eine Spieleeinheit, einen Bankautomaten, eine tragbare Telefoneinheit, eine Datenübertragungseinheit oder andere Einheiten, die einen Prozessor und einen Speicher umfassen, annehmen. Zusätzlich muss ein Informationsverarbeitungssystem nicht notwendigerweise die Architektur einer North Bridge/South Bridge-Steuereinheit verkörpern, da selbstverständlich auch andere Architekturen eingesetzt werden können.
  • Unter einer Schnittstelle zur Anwendungsprogrammierung (API) versteht man in der Fachwelt einen Software-Vermittler zwischen zwei oder mehreren Anwendungen. In Bezug auf die in 1 gezeigte und beschriebene Plattform (150) für künstliche Intelligenz können eine oder mehrere APIs genutzt werden, um eines oder mehrere der Werkzeuge (152), (154), (156), (158) und (164) und deren zugehörige Funktionalität zu unterstützen. Unter Bezugnahme auf 2 ist ein Blockschaubild (200) bereitgestellt, das die Werkzeuge (152), (154), (156), (158) und (164) und deren zugehörige APIs veranschaulicht. Wie gezeigt, ist eine Mehrzahl von Werkzeugen in die Kl-Plattform (205) eingebettet, wobei die Werkzeuge die Traceverwaltungseinheit (252), die APlo (212) zugewiesen ist, die Clusterverwaltungseinheit (254), die API1 (222) zugewiesen ist, die Stichprobenentnahme-Verwaltungseinheit (256), die API2 (232) zugewiesen ist, die Suchverwaltungseinheit (258), die API3 (242) zugewiesen ist, und die Ausgabeverwaltungseinheit (264), die API4 (262) zugewiesen ist, umfassen. Jede der APIs kann in einer oder mehreren Sprachen und Schnittstellenvorgaben umgesetzt sein. APlo (212) stellt eine funktionale Unterstützung bereit, um Dialogereignisse der Traces zu parsen und Verhaltensmerkmale der Traces zu ermitteln; API1 (222) stellt eine funktionale Unterstützung bereit, um die Traces in Gruppen zusammenzufassen; API2 (232) stellt eine funktionale Unterstützung bereit, um den Traces Stichproben zu entnehmen; API3 (242) stellt eine funktionale Unterstützung bereit, um die geparsten Ereignisse zu durchsuchen, z.B. zu untersuchen; und API4 (262) stellt eine funktionale Unterstützung für die Ausgabe bereit, wozu ein Verfeinern des Dialogsystems gehört. Wie gezeigt, ist jede der APIs (212), (222), (232), (242) und (262) funktionsmäßig mit einem API-Orchestrator (260) verbunden, der auch als Orchestrierungsschicht bezeichnet wird und nach dem Stand der Technik als Abstraktionsschicht fungiert, um die einzelnen APIs transparent miteinander zu verknüpfen. In einer Ausführungsform kann die Funktionalität der einzelnen APIs zusammengeführt oder kombiniert werden. Von daher sollte die hierin gezeigte Konfiguration der APIs nicht als einschränkend angesehen werden. Dementsprechend kann, wie hierin gezeigt, die Funktionalität der Werkzeuge durch ihre jeweiligen APIs umgesetzt oder unterstützt werden.
  • Unter Bezugnahme auf 3 wird ein Ablaufplan (300) bereitgestellt, um einen Prozess zum Verarbeiten von Gesprächsprotokolldateien (hierin auch als Datensätze bezeichnet) eines Dialogsystems wie zum Beispiel einer Chatbot-Plattform zu veranschaulichen und entsprechende Traces einem Clustering-Prozess zu unterziehen. Wie gezeigt, werden Eingaben in Form von Gesprächsprotokolldateien zur Verarbeitung empfangen (302). Die Gesprächsprotokolldateien können sich auf verschiedene Arten von Transaktionen, Interaktionen und Aktivitäten beziehen, darunter zum Beispiel ein Produktverkauf, der Kauf von Dienstleistungen, Kundendienst, Informationsbeschaffung usw. Gemäß einer beispielhaften Ausführungsform handelt es sich bei jedem Gesprächsprotokoll um eine Aufzeichnung eines Trace eines Chatbots, das einen Dialog auf einer elektronischen Plattform zwischen einem Benutzer und einem virtuellen Agenten umfasst. Die Aufzeichnung kann in verschiedenen Formen erfolgen, wie zum Beispiel als Text, Audio, Video, Audio-Video usw.
  • Das Trace umfasst ein oder mehrere Dialogereignisse, die auch als Instanziierungen (oder Werte) von Zustandsvariablen bezeichnet werden. Beispielsweise kann im Zusammenhang mit einer Chatbot-Plattform für die Buchung eines Urlaubs eine Zustandsvariable ein Feld wie zum Beispiel ein Datum und eine Uhrzeit der Abreise, das Datum und die Uhrzeit der Rückkehr, der Zielort, die Hotelunterkunft, die Fahrzeuganmietung (z.B. ein Auto) usw. sein. Die Traces umfassen Dialogereignisse (oder Instanziierungen von Zustandsvariablen), welche die von dem Benutzer eingegebenen Informationen oder Daten für das Datum und die Uhrzeit der Abreise, das Datum und die Uhrzeit der Rückkehr, den Zielort, Hotelunterkünfte, Fahrzeuganmietungen usw. darstellen. Zum Beispiel kann der automatisierte virtuelle Dialogagent dem Benutzer jede der Zustandsvariablen als Frage stellen, wobei der Benutzer eine Antwort oder Instanziierung bereitstellt.
  • Die Gesprächsprotokolle werden einer Verarbeitung durch eine Plattform für künstliche Intelligenz (Kl) unterzogen (wie zum Beispiel die Kl-Plattform (150) in 1), um die Clusterbildung der Protokolle zu erleichtern und zu ermöglichen. Insbesondere parst die Kl-Plattform gemäß einer beispielhaften Ausführungsform die Dialogereignisse (oder Instanziierungen von Zustandsvariablen) der Traces der Gesprächsprotokolldateien in geparste Ereignisse (304) und extrahiert Verhaltensmerkmale aus den Traces (z.B. aus den geparsten Ereignissen (304) oder aus dem Trace als Ganzes) und weist jedem der Traces (306) einen Verhaltensmerkmalswert zu. Gemäß einer Ausführungsform handelt es sich bei dem Verhaltensmerkmal um einen erfolgreichen Abschluss (oder einen nicht erfolgreichen Abschluss) der Transaktion, Interaktion oder anderen Aktivität.
  • Die Kl-Plattform unterzieht die Traces darüber hinaus einem Prozess des Zusammenfassens in Gruppen (Clustering), beruhend auf der Nähe der Verhaltensmerkmalswerte der Traces zu Ergebniswerten (308). Gemäß einer beispielhaften Ausführungsform wird jeder in Schritt (308) gebildete Cluster mit Gesprächsprotokollen befüllt, welche die gleichen oder ähnliche Verhaltensmerkmalswerte wie ein jeweiliger Ergebniswert eines der Cluster aufweisen. Die Ausgabe besteht aus einer Mehrzahl von Clustern, z.B. Cluster0, Cluster1 ... ClusterN (310). In einer beispielhaften Ausführungsform beträgt die Anzahl von gebildeten Clustern mindestens zwei, vorzugsweise zwei, wobei diese Zahl nicht als einschränkend angesehen werden sollte.
  • Unter Bezugnahme auf 4 wird ein Ablaufplan (400) bereitgestellt, um einen Prozess zum Durchsuchen der in 3 gebildeten Cluster zu veranschaulichen, und zwar zum Beurteilen der geparsten Ereignisse der den Clustern zugewiesenen Traces. Für die Zwecke von 4 werden zwei Cluster gezeigt, nämlich Clustero und Cluster1. Es wird darauf hingewiesen, dass die Menge von Traces, die irgendeinem der gebildeten Cluster zugewiesen sind, sehr umfangreich sein kann, und von daher eine Stichprobenentnahme der Traces für eine Clusteranalyse verwendet werden kann. Von daher wird ein Kl-Lernprogramm eingesetzt, um eine Stichprobenentnahme von Traces jeweils aus Clustero und Cluster1 für die Suchanalyse zu identifizieren (402). In einer beispielhaften Ausführungsform wird die Suchanalyse auf Clustero und Cluster1 gerichtet, die gemäß dem Ablaufplan (300) aus 3 gebildet werden (siehe z.B. Schritt (310)), wobei die Traces oder eine Stichprobe der Traces jedes Clusters der Analyse unterzogen werden. Wie in 4 veranschaulicht, kann die Analyse der Cluster parallel erfolgen. In einer alternativen Ausführungsform kann die Analyse der Cluster nacheinander oder in einer anderen Art und Weise oder Reihenfolge erfolgen, wozu ein abwechselndes oder zufälliges Auswählen und Beurteilen von Traces aus dem ersten und zweiten Cluster gehören.
  • In den Schritten (404) und (424) werden Stichproben der Traces aus den Clustern wie zum Beispiel Clustero und Cluster1 entnommen. Die Stichprobenentnahme kann nach dem Zufallsprinzip erfolgen oder mit jeder beliebigen Stichprobenentnahmetechnik einhergehen, darunter die nach dem Stand der Technik bekannten Techniken. In einer Ausführungsform wird eine erste ausgewählte Menge von Stichproben-Traces dem ersten Cluster, Cluster0, zugewiesen (404), und eine zweite ausgewählte Menge von Stichproben-Traces wird dem zweiten Cluster, Cluster1, zugewiesen (424). In Bezug auf den ersten Cluster wird eine erste Stichproben-Trace-Zählvariable W für die Stichproben-Traces des ersten Clusters, Cluster0, initialisiert (406). Die Menge von dem ersten Cluster, Cluster0, zugewiesenen Stichproben-Traces wird ermittelt und der Variablen WTotal zugewiesen (408). Danach wird eine entsprechende Trace-Bewertungsvariable für den ersten Cluster bei (410) initialisiert. Im Anschluss an Schritt (410) wird eine Musterspezifikationsbewertung für den ersten Cluster durchgeführt, wobei die Variable X die Menge von Stichproben-Traces in dem ersten Cluster darstellt, die der entsprechenden anzuwendenden zeitlichen Logik entsprechen, und die Variable Z die Menge von Stichproben-Traces in dem zweiten Cluster darstellt, die der entsprechenden anzuwendenden zeitlichen Logik nicht entsprechen.
  • Ähnlich wie der erste Cluster wird auch der zweite Cluster einer Verarbeitung unterzogen. Wie gezeigt, wird eine zweite Stichproben-Trace-Zählvariable Y für die Stichproben-Traces des zweiten Clusters, Cluster1, initialisiert (426). Die Menge von dem zweiten Cluster, Cluster1, zugewiesenen Stichproben-Traces wird ermittelt und der Variablen YTotal zugewiesen (428). Dementsprechend werden Traces aus der Stichprobenentnahme den jeweiligen Clustern zugewiesen und entsprechende Cluster- und Logikvariablen definiert und initialisiert.
  • Es gibt zwei Aspekte bei der Bewertung des ersten Clusters in Schritt (412), darunter ein Auswählen einer Musterspezifikation, die eine zeitliche Bedingung und eine Variablenspezifikation umfasst, die einem geparsten Ereignis entspricht, und ein Bewerten des geparsten Ereignisses, das der ausgewählten Variablenspezifikation entspricht, in Bezug auf die zeitliche Bedingung der ausgewählten Musterspezifikation. In einer Ausführungsform setzt die Bewertung in Schritt (412) eine auf Stichprobenentnahme beruhende Schlussfolgerung ein, um eine Bedingung (oder Eigenschaft) in Form einer linearen temporalen Logik (LTL) der ausgewählten Musterspezifikation zu suchen. Die Bewertung der Musterspezifikation in Schritt (412) umfasst die Angabe von Arten von zu extrahierenden zeitlichen Bedingungen, wie zum Beispiel eine Bedingung, die immer während des gesamten Gesprächstrace gilt, eine Bedingung, die auf eine andere Bedingung folgt oder ihr vorausgeht, usw. Die Musterspezifikation kann aus einer Bibliothek von Musterspezifikationen ausgewählt werden. Jeder der Musterspezifikationen in der Bibliothek kann ein gewichteter Wert, z.B. eine Wahrscheinlichkeitsverteilung, zugewiesen sein. Ebenso kann die Variablenspezifikation aus der gleichen oder einer anderen Bibliothek ausgewählt werden. In einer Ausführungsform ist eine Auswahl der zu berücksichtigenden Musterspezifikation und Variablenspezifikation und des zugehörigen gewichteten Wertes (z.B. Günstigkeit), z.B. über eine Wahrscheinlichkeitsverteilung, in den gesuchten Eigenschaften konfigurierbar.
  • In Bezug auf den ersten Cluster, Cluster0, wird in Schritt (412) ermittelt, ob die zeitliche Bedingung der ausgewählten Musterspezifikation für mindestens ein geparstes Ereignis, das der ausgewählten Variablenspezifikation für ein Stichproben-Trace, z.B. Tracew, entspricht, gilt. Zum Beispiel kann die ausgewählte Musterspezifikation, die auf das/die geparste(n) Ereignis(se) angewendet wird, das/die der ausgewählten Variablenspezifikation entspricht/entsprechen, mit einer Umsetzung einer linearen temporalen Logik (LTL) auf das/die geparste(n) Ereignis(se) (oder die Zustandsvariable) einhergehen. Gemäß der Ausführungsform kann die Musterspezifikation darin bestehen, ob eine erste Bedingung wie zum Beispiel der erfolgreiche Abschluss eines Dialogereignisses zu dem Ergebnis des Clusterso führt. Zum Beispiel kann Schritt (412) eine Entscheidung aufweisen, ob die von dem Benutzer angegebene Abfahrtszeit (die Instanziierung der Zustandsvariablen) in Bezug auf das Ergebnis der Stichproben-Traces des ersten Clusters, Cluster0, erfüllt ist, wobei das Ergebnis z.B. eine erfolgreiche Buchung ist. Auf eine positive Antwort auf die Ermittlung in Schritt (412) folgt eine Inkrementierung der Trace-Logik-Zählvariablen X (414), wobei X die Stichproben-Traces von Clustero darstellt, die der Logik der Musterspezifikation entsprechen. Allerdings wird bei einer negativen Antwort auf die Ermittlung in Schritt (412) die Trace-Logik-Zählvariable X in (414) nicht inkrementiert. Nach der negativen Antwort in Schritt (412) oder nach Schritt (414) im Falle einer positiven Antwort in Schritt (412) wird die Trace-Zählvariable W inkrementiert (416). Anschließend wird ermittelt, ob alle Stichproben-Traces in dem ersten Cluster beurteilt wurden (418). Auf eine negative Antwort in Schritt (418) folgt ein Rücksprung zu Schritt (412), um die Verarbeitung der aus dem ersten Cluster, Cluster0 als Stichprobe entnommenen Traces fortzusetzen. Jedoch ist eine positive Antwort in Schritt (418) ein Hinweis darauf, dass die Stichprobenentnahme von Traces, die dem ersten Cluster, Cluster0, zugewiesen sind, im Hinblick auf die Clustermusterspezifikation und die Variablenspezifikation beurteilt wurde. Wie gezeigt, wird ein Anteil, Anteil0, für den ersten Clustero ermittelt (420), der hierin als Quotient aus dem Wert der Menge von Stichproben-Traces, welche die Musterspezifikation X erfüllt haben, und der Menge von Stichproben-Traces, die dem ersten Cluster zugewiesen sind, d.h. X/WTotal, dargestellt ist. In beispielhaften Ausführungsformen liegt der Anteil0 in einem Bereich von 0 bis 1, einschließlich aller Zehntel oder Hundertstel dazwischen.
  • Ähnlich wie bei dem ersten Cluster unterliegen auch die Traces aus dem zweiten Cluster, Cluster1, der gleichen Musterspezifikation und der gleichen Variablenspezifikation wie die Traces des ersten Clusters, Cluster0, wobei in diesem Fall jedoch der Anteil von dem zweiten Cluster, Cluster1, zugewiesenen Stichproben-Traces ermittelt wird, bei denen ein ausgewähltes geparstes Ereignis, das der ausgewählten Variablenspezifikation entspricht, nicht der Musterspezifikation entspricht. In Bezug auf den zweiten Cluster, Cluster1, wird in Schritt (432) eine Ermittlung durchgeführt, um zu beurteilen, ob die ausgewählte Musterspezifikation (d.h. dieselbe Musterspezifikation aus Schritt (412)) nicht für das/die geparste(n) Ereignis(se) gilt, das/die derselben für Schritt (412) ausgewählten Variablenspezifikation entspricht/entsprechen. Zum Beispiel kann die Musterspezifikation, die auf eine ausgewählte Variablenspezifikation angewendet wird, mit einer Umsetzung einer linearen temporalen Logik (LTL) auf das/die geparste(n) Ereignis(se), das/die der ausgewählten Variablenspezifikation entspricht/entsprechen, einhergehen. Gemäß der Ausführungsform kann die Musterspezifikation darin bestehen, ob eine erste Bedingung wie zum Beispiel der erfolgreiche Abschluss eines Dialogereignisses zu dem Ergebnis des Clusters1 führt. Zum Beispiel kann Schritt (432) eine Entscheidung aufweisen, ob die von dem Benutzer angegebene Abfahrtszeit (die Instanziierung der Zustandsvariablen) in Bezug auf das Ergebnis der Stichproben-Traces des zweiten Clusters, Cluster1, nicht erfüllt ist, wobei das Ergebnis z.B. eine nicht erfolgreiche Buchung ist.
  • Auf eine positive Antwort auf die Ermittlung in Schritt (432) (z.B. dass die Erfüllung der Angabe des Abreisedatums des Benutzers in Bezug auf nicht erfolgreiche Buchungsergebnisse nicht zutrifft) folgt eine Inkrementierung der Zählvariable Z der Trace-Logik (434), wobei Z die Stichproben-Traces darstellt, die der Logik der Musterspezifikation nicht entsprechen. Allerdings folgt auf eine negative Antwort auf die Ermittlung in Schritt (432) keine Inkrementierung der Trace-Logik-Zählvariablen Z. Nach einer negativen Antwort in Schritt (432) oder einer Inkrementierung in Schritt (434) wird die Trace-Zählvariable Y inkrementiert (436). Anschließend wird ermittelt, ob alle Stichproben-Traces des zweiten Clusters, Cluster1, beurteilt wurden (438). Auf eine negative Antwort in Schritt (438) folgt ein Rücksprung zu Schritt (432) zur weiteren Verarbeitung der dem zweiten Cluster, Cluster1, zugewiesenen Stichproben-Traces. Jedoch ist eine positive Antwort in Schritt (438) ein Hinweis darauf, dass die aus dem zweiten Cluster als Stichproben entnommenen Traces im Hinblick auf die Clustermusterspezifikation und die Variablenspezifikation beurteilt wurden. Wie gezeigt, wird ein Anteil1 für den zweiten Cluster, Cluster1, beurteilt (440), der hierin als Quotient aus dem Wert der Menge von Stichproben-Traces, welche die ausgewählte Musterspezifikation für die ausgewählte Variablenspezifikation nicht erfüllt haben, und der Menge von Stichproben-Traces, die dem zweiten Cluster, Cluster1, zugewiesen sind, d.h. Z/YTotal, dargestellt ist. In einer beispielhaften Ausführungsform liegt der Anteil1 in einem Bereich von 0 bis 1, einschließlich aller Zehntel oder Hundertstel dazwischen.
  • Der Ablaufplan (400) aus 4 wurde vorstehend in Bezug auf eine ausgewählte Musterspezifikation und eine ausgewählte Variablenspezifikation beschrieben. In einer Ausführungsform können die Schritte des Ablaufplans (400) für andere Kombinationen von Muster- und Variablenspezifikationen wiederholt werden.
  • Unter Bezugnahme auf 5 wird ein Ablaufplan (500) bereitgestellt, um einen Prozess zur Nutzung der Clusterbildung und -bewertung zu veranschaulichen, um zu ermitteln, ob es in den Traces ein kontrastierendes Muster gibt, das einen kontrastierenden Schwellenwert erfüllt, und wenn ja, den virtuellen Dialogagenten zu verfeinern. Das kontrastive Muster weist einen Wert auf, der auf dem ersten Anteil, Anteil0, des ersten Clusters, Cluster0, und dem zweiten Anteil, Anteil1 des zweiten Clusters, Cluster1, wie in 4 beurteilt, beruht. In einer beispielhaften Ausführungsform werden der erste und der zweite Anteil miteinander multipliziert, um einen Produktwert (502) bereitzustellen. In Schritt (504) wird der Produktwert aus Schritt (502) mit einem oder mehreren Gewichtungsfaktoren multipliziert, um ein gewichtetes Produkt zu ermitteln, das einen Wert des kontrastiven Musters darstellt. Gemäß beispielhaften Ausführungsformen liegt jeder der Gewichtungsfaktoren in einem Bereich von 0 bis 1, einschließlich aller Zehntel oder Hundertstel dazwischen. Gemäß einer Ausführungsform handelt es sich bei einem Gewichtungsfaktor um einen Gewichtungsfaktor für die Musterspezifikation, der z.B. auf der Wichtigkeit beruht, die der Musterspezifikation zugewiesen ist. Gemäß einer anderen Ausführungsform handelt es sich bei dem Gewichtungsfaktor um einen Gewichtungsfaktor für die Variablenspezifikation, der z.B. auf der Wichtigkeit beruht, die der Variablenspezifikation zugewiesen ist. Zum Beispiel kann die Variablenspezifikation, die sich auf die Zufriedenheit mit den Abfahrtsdaten bezieht, eine hohe Wichtigkeit für den Programmierer haben und daher einen Gewichtungswert nahe 1 zugewiesen bekommen, wobei die Variablenspezifikation, die sich auf die Zufriedenheit mit einer Fahrzeuganmietung bezieht, eine geringe Wichtigkeit haben kann und daher einen Gewichtungswert nahe 0 zugewiesen bekommen kann. In einer Ausführungsform kann die Gewichtungsanwendung auf die Musterspezifikation und/oder die Variablenspezifikation weggelassen oder auf 1 gesetzt werden. Ebenso kann in einer Ausführungsform ein Wert der Gewichtung konfigurierbar sein.
  • In Schritt (506) wird ein kontrastierender Schwellenwert zugewiesen. In beispielhaften Ausführungsformen wird der kontrastierende Schwellenwert als Wert in einem Bereich von 0 bis 1 gewählt, einschließlich eines beliebigen Inkrements (z.B. Zehntel, Hundertstel usw.) innerhalb des Bereichs von 0 bis 1. Der kontrastierende Schwellenwert kann von dem Programmierer oder von der Kl-Plattform (150) gewählt werden. Anschließend wird ermittelt, ob der Wert des kontrastierenden Musters, der vorstehend in einer beispielhaften Ausführungsform als gewichtetes Produkt beschrieben wurde, den kontrastierenden Schwellenwert erfüllt (508) (z.B. so groß wie oder größer als dieser ist). Auf eine positive Antwort auf die Ermittlung (508) folgt ein Erstellen einer Ausgabe, die einer Verfeinerung des virtuellen Agenten in Verbindung mit dem/den geparsten Ereignis(sen) entspricht, um die Leistung des Dialogsystems zu verbessern (510). Auf eine negative Antwort auf die Ermittlungen in Schritt (508) folgt eine Entscheidung (512) über eine oder mehrere Optionen für das weitere Vorgehen. Zu Optionen gehören zum Beispiel das Zuweisen eines neuen kontrastierenden Schwellenwerts und das Zurückspringen zu Schritt (508); das Auswählen einer anderen Musterspezifikation und/oder Variablenspezifikation und das Zurückspringen zu dem Ablaufplan (400) aus 4; sowie das Beenden des Prozesses.
  • Der kontrastierende Schwellenwert kann auf verschiedenen Faktoren beruhen, darunter zum Beispiel auf Zufriedenheit und Komplexität. Zur Zufriedenheit gehört ein Berechnen eines Grades des Übereinstimmens der gesuchten Eigenschaften mit den eingegebenen Gesprächstraces, und in einer Ausführungsform maximiert sie das Hervorheben jeglicher Unterschiede zwischen den eingegebenen Sätzen. Zusätzlich umfasst die Zufriedenheit ein Überprüfen der Übereinstimmung und Nicht-Übereinstimmung von LTL-Eigenschaften der Eingabetraces. Der Komplexitätsaspekt der Kontrastbeurteilung schafft Anreize für Spezifikationen mit geringerer Komplexität im Sinne einer geringeren Anzahl von Sätzen und fördert außerdem die Prägnanz und Deutbarkeit innerhalb der gesuchten Eigenschaften.
  • Die hierin beschriebenen beispielhaften Verfahren, darunter die in den Ablaufplänen aus 3 bis 5 veranschaulichten Verfahren, erzeugen eine Ausgabe in Form von zeitlichen Eigenschaften, welche die Unterschiede zwischen den Sätzen von Traces beschreiben. Nach den aufgezählten Schritten wird gemäß einer beispielhaften Ausführungsform eine Bestimmung durchgeführt, um die Verfügbarkeit von Fachwissen zu beurteilen, das beschreibt, wie die Traces erzeugt werden, wie etwa eine Planungssprache, z.B. PDDL. Wie vorstehend bereits erörtert, gehen beispielhafte Ausführungsformen mit einem Zuweisen von gewichteten Werten zu Musterspezifikationen und Variablenspezifikationen in Abhängigkeit von der empfundenen Wichtigkeit einher. PDDL ist ein Beispiel für eine Planungssprache, die üblicherweise zum Schreiben von Planungsproblemen verwendet wird. PDDL besteht aus einer Umgebung mit einem Satz von Zuständen, der einen Anfangszustand und einen Zielzustand umfasst. Das Modell zielt darauf ab, einen Weg, z.B. ein Trace, von dem Anfangszustand zu dem Zielzustand zu finden. Dementsprechend werden, wie hierin gezeigt, diskriminierende Muster zwischen Gruppenverhaltensweisen automatisch extrahiert und entsprechende kontrastierende Erklärungen gesucht und auf die Chatbot-Plattform zur gezielten Abänderung angewendet.
  • Die hierin gezeigten und beschriebenen Ausführungsformen können die Form eines Computersystems zur Verwendung mit einer intelligenten Computerplattform zum Verarbeiten und Analysieren von Gesprächsdatensätzen annehmen, insbesondere im Zusammenhang mit einem Verbessern der Leistung eines Dialogsystems. Eine Verarbeitungseinheit ist funktionsmäßig mit einem Speicher verbunden und tauscht mit einer Plattform für künstliche Intelligenz Daten aus.
  • Aspekte der in 1 bis 5 gezeigten Verarbeitung von Gesprächsprotokolldateien und Datensätzen setzen ein oder mehrere funktionale Werkzeuge ein, wie in 1 gezeigt und beschrieben. Aspekte der funktionalen Werkzeuge (152), (154), (156), (158) und (164) und deren zugehörige Funktionalität können in einem Computersystem/Server an einem einzelnen Standort enthalten sein, oder in einer Ausführungsform in einem cloudbasierten System konfiguriert sein, das Datenverarbeitungsressourcen gemeinsam nutzt. Unter Bezugnahme auf 6 wird ein Blockschaubild (600) bereitgestellt, das ein Beispiel für ein/en Computersystem/Server (602) veranschaulicht, das bzw. der nachstehend als Host (602) bezeichnet wird und mit einem cloudbasierten Unterstützungssystem Daten austauscht, um die vorstehend in 3 bis 5 beschriebenen Prozesse umzusetzen. Der Host (602) ist funktionsmäßig mit zahlreichen anderen Universal- oder Spezial-Datenverarbeitungssystem-Umgebungen bzw. - konfigurationen betriebsfähig. Zu Beispielen für allgemein bekannte Datenverarbeitungssysteme, -umgebungen und/oder -konfigurationen, die zur Verwendung mit dem Host (602) geeignet sein können, gehören Personal Computer-Systeme, Server-Computersysteme, Thin Clients, Thick Clients, Handheld- bzw. Laptop-Einheiten, Multiprozessorsysteme, auf Mikroprozessoren beruhende Systeme, Set-Top-Boxen, programmierbare Verbraucherelektronik, Netzwerk-PCs, Minicomputersysteme, Mainframe-Computersysteme und Dateisysteme (z.B. verteilte Speicherumgebungen und verteilte Cloud-Computing-Umgebungen), die irgendeine(s) der vorstehenden Systeme, Einheiten und deren Entsprechungen umfassen, ohne darauf beschränkt zu sein.
  • Der Host (602) kann in dem allgemeinen Kontext von durch Computersysteme ausführbaren Anweisungen wie zum Beispiel Programmmodulen beschrieben werden, die von einem Computersystem ausgeführt werden. Allgemein können zu Programmmodulen Routinen, Programme, Objekte, Komponenten, Logik, Datenstrukturen und so weiter gehören, die bestimmte Aufgaben durchführen bzw. bestimmte abstrakte Datentypen umsetzen. Der Host (602) kann in verteilten Cloud-Computing-Umgebungen ausgeführt werden, wo Aufgaben durch entfernt angeordnete Verarbeitungseinheiten durchgeführt werden, die über ein Datenübertragungsnetzwerk verbunden sind. In einer verteilten Cloud-Computing-Umgebung können sich Programmmodule sowohl in lokalen als auch in entfernt angeordneten Computersystem-Speichermedien befinden, darunter Systemspeichereinheiten.
  • Wie in 6 gezeigt ist, ist der Host (602) in Form einer Universal-Datenverarbeitungseinheit gezeigt. Die Komponenten des Hosts (602) können eine(n) oder mehrere Prozessoren oder Verarbeitungseinheiten (604), z.B. Hardware-Prozessoren, einen Systemspeicher (606) und einen Bus (608) aufweisen, der verschiedene Systemkomponenten, darunter den Systemspeicher (606), mit dem Prozessor (604) verbindet, sind aber nicht darauf beschränkt. Der Bus (608) stellt eine oder mehrere einer beliebigen von mehreren Arten von Busstrukturen dar, darunter ein Speicherbus oder eine Speichersteuereinheit, ein Peripheriebus, ein beschleunigter Grafikanschluss und ein Prozessor- oder lokaler Bus, die eine beliebige aus einer Vielfalt von Busarchitekturen verwenden. Zu derartigen Architekturen gehören als Beispiel und nicht als Einschränkung ein ISA-Bus (Industry Standard Architecture), ein MCA-Bus (Micro Channel Architecture), ein EISA-Bus (Enhanced ISA), ein VESA-Lokalbus (Video Electronics Standards Association) sowie ein PCI-Bus (Peripheral Component Interconnects). Der Host (602) umfasst üblicherweise eine Vielfalt von durch ein Computersystem lesbaren Medien. Bei derartigen Medien kann es sich um jedes beliebige verfügbare Medium handeln, auf welches der Host (602) zugreifen kann, und es umfasst sowohl flüchtige als auch nichtflüchtige Medien, austauschbare und nicht austauschbare Medien.
  • Der Systemspeicher (606) kann durch ein Computersystem lesbare Medien in Form eines flüchtigen Speichers wie zum Beispiel einen Direktzugriffsspeicher (RAM) (630) und/oder Cache (632) umfassen. Lediglich als Beispiel kann das Speichersystem (634) zum Lesen von und zum Schreiben auf ein nicht austauschbares, nichtflüchtiges magnetisches Medium bereitgestellt werden (das nicht gezeigt ist und üblicherweise „Festplattenlaufwerk“ genannt wird). Es können auch ein Magnetplattenlaufwerk zum Lesen von und zum Schreiben auf eine austauschbare, nichtflüchtige Magnetplatte (z.B. eine „Floppy-Diskette“) und ein optisches Plattenlaufwerk zum Lesen von oder zum Schreiben auf eine austauschbare, nichtflüchtige optische Platte wie zum Beispiel eine CD-ROM, DVD-ROM oder ein anderes optisches Medium bereitgestellt werden, auch wenn diese nicht gezeigt sind. In derartigen Fällen können sie jeweils über eine oder mehrere Datenmedienschnittstellen mit dem Bus (608) verbunden sein.
  • Als Beispiel und nicht als Einschränkung können ein Programm/Dienstprogramm (640) mit (mindestens) einem Satz von Programmmodulen (642) sowie ein Betriebssystem, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten in dem Systemspeicher (606) gespeichert sein. Die Betriebssysteme, das eine oder die mehreren Anwendungsprogramme, andere Programmmodule und Programmdaten oder eine beliebige Kombination daraus können jeweils eine Umsetzung einer Netzwerkumgebung aufweisen. Die Programmmodule (642) führen im Allgemeinen die Funktionen und/oder Methodiken von Ausführungsformen aus, um die Logik, z.B. die zeitliche Logik, zu nutzen, um die Leistung des automatisierten virtuellen Dialogagenten zu verbessern. Zum Beispiel kann der Satz von Programmmodulen (642) die Werkzeuge (152), (154), (156), (158) und (164) umfassen, wie in 1 beschrieben.
  • Der Host (602) kann auch Daten austauschen mit: einer oder mehreren externen Einheiten (614) wie zum Beispiel einer Tastatur, einer Zeigeeinheit, einer Anzeige (624) usw.; einer oder mehreren Einheiten, die es einem Benutzer ermöglichen, mit dem Host (602) zu interagieren; und/oder beliebigen Einheiten (z.B. Netzwerkkarten, Modems usw.), die es dem Host (602) ermöglichen, mit einer oder mehreren anderen Datenverarbeitungseinheiten Daten auszutauschen. Ein derartiger Datenaustausch kann über eine oder mehrere E/A-Schnittstellen (622) erfolgen. Außerdem kann der Host (602) über einen Netzwerkadapter (620) mit einem oder mehreren Netzwerken Daten austauschen, wie zum Beispiel einem lokalen Netzwerk (LAN), einem allgemeinen Weitverkehrsnetz (WAN) und/oder einem öffentlichen Netzwerk (z.B. dem Internet). Wie abgebildet ist, tauscht der Netzwerkadapter (620) mit den anderen Komponenten des Hosts (602) über den Bus (608) Daten aus. In einer Ausführungsform tauscht eine Mehrzahl von Knoten eines verteilten Dateisystems (nicht gezeigt) über die E/A-Schnittstelle (622) oder über den Netzwerkadapter (620) mit dem Host (602) Daten aus. Es sollte klar sein, dass andere Hardware- und/oder Software-Komponenten in Verbindung mit dem Host (602) verwendet werden könnten, auch wenn diese nicht gezeigt sind. Zu Beispielen gehören folgende, ohne auf diese beschränkt zu sein: Mikrocode, Einheitentreiber, redundante Verarbeitungseinheiten, externe Festplattenlaufwerk-Arrays, RAID-Systeme, Bandlaufwerke und Speichersysteme zur Datenarchivierung usw.
  • In diesem Dokument werden die Begriffe „Computerprogrammmedium“, „durch einen Computer verwendbares Medium“ und „durch einen Computer lesbares Medium“ verwendet, um sich allgemein auf Medien wie zum Beispiel den Systemspeicher (606), darunter auch der RAM (630), der Cache (632) und das Speichersystem (634) wie zum Beispiel ein Wechselspeicherlaufwerk und eine in einem Festplattenlaufwerk installierte Festplatte zu beziehen.
  • Computerprogramme (auch Computersteuerlogik genannt) werden in dem Systemspeicher (606) gespeichert. Computerprogramme können auch über eine Datenübertragungsschnittstelle wie zum Beispiel den Netzwerkadapter (620) empfangen werden. Derartige Computerprogramme ermöglichen es dem Computersystem, wenn sie ausgeführt werden, die Merkmale der vorliegenden Ausführungsformen, wie hierin besprochen, durchzuführen. Insbesondere ermöglichen es die Computerprogramme der Verarbeitungseinheit (604), wenn sie ausgeführt werden, die Funktionen des Computersystems durchzuführen. Dementsprechend stellen derartige Computerprogramme Steuereinheiten des Computersystems dar.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch ein System zur Ausführung von Anweisungen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine auswechselbare Computerdiskette, eine Festplatte, ein dynamischer oder statischer Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), eine magnetische Speichereinheit, ein auswechselbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch kodierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. Lichtwellenleiterkabel durchlaufende Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
  • Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server umfassen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Ausführungsformen kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie zum Beispiel Java, Smalltalk, C++ oder dergleichen sowie herkömmliche prozedurale Programmiersprachen wie zum Beispiel die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server bzw. Servercluster ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, vor Ort programmierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Ausführungsformen durchzuführen.
  • In einer Ausführungsform handelt es sich bei dem Host (602) um einen Knoten einer Cloud-Computing-Umgebung. Wie im Fachgebiet bekannt ist, ist Cloud-Computing ein Servicebereitstellungsmodell zum Ermöglichen eines problemlosen bedarfsgesteuerten Netzwerkzugriffs auf einen gemeinsam genutzten Pool von konfigurierbaren Datenverarbeitungsressourcen (z.B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Hauptspeicher, Speicher, Anwendungen, virtuelle Maschinen und Dienste), die mit minimalem Verwaltungsaufwand bzw. minimaler Interaktion mit einem Anbieter des Service schnell bereitgestellt und freigegeben werden können. Dieses Cloud-Modell kann mindestens fünf Eigenschaften umfassen, mindestens drei Dienstmodelle und mindestens vier Implementierungsmodelle. Beispiele für derartige Eigenschaften sind folgende:
  • On-Demand Self-Service: Ein Cloud-Nutzer kann einseitig automatisch nach Bedarf für Datenverarbeitungsfunktionen wie Serverzeit und Netzwerkspeicher sorgen, ohne dass eine menschliche Interaktion mit dem Anbieter der Dienste erforderlich ist.
  • Broad Network Access: Es sind Funktionen über ein Netzwerk verfügbar, auf die durch Standardmechanismen zugegriffen wird, welche die Verwendung durch heterogene Thin- oder Thick-Client-Plattformen (z.B. Mobiltelefone, Laptops und PDAs) unterstützen.
  • Resource-Pooling: Die Datenverarbeitungsressourcen des Anbieters werden zusammengeschlossen, um mehreren Nutzern unter Verwendung eines Multi-Tenant-Modells zu dienen, wobei verschiedene physische und virtuelle Ressourcen dynamisch nach Bedarf zugewiesen und neu zugewiesen werden. Es gibt eine gefühlte Standortunabhängigkeit, da der Nutzer allgemein keine Kontrolle bzw. Kenntnis über den genauen Standort der bereitgestellten Ressourcen hat, aber in der Lage sein kann, einen Standort auf einer höheren Abstraktionsschicht festzulegen (z.B. Land, Staat oder Rechenzentrum).
  • Rapid Elasticity: Funktionen können für eine schnelle horizontale Skalierung (scale out) schnell und elastisch bereitgestellt werden, in einigen Fällen auch automatisch, und für ein schnelles Scale-in schnell freigegeben werden. Für den Nutzer erscheinen die für das Bereitstellen verfügbaren Funktionen häufig unbegrenzt und sie können jederzeit in jeder beliebigen Menge gekauft werden.
  • Measured Service: Cloud-Systeme steuern und optimieren die Verwendung von Ressourcen automatisch, indem sie eine Messfunktion auf einer gewissen Abstraktionsschicht nutzen, die für die Art von Dienst geeignet ist (z.B. Speicher, Verarbeitung, Bandbreite sowie aktive Benutzerkonten). Die Nutzung von Ressourcen kann überwacht, gesteuert und gemeldet werden, wodurch sowohl für den Anbieter als auch für den Nutzer des verwendeten Dienstes Transparenz geschaffen wird.
  • Bei den Dienstmodellen handelt es sich um die Folgenden:
  • Software as a Service (SaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, die in einer Cloud-Infrastruktur laufenden Anwendungen des Anbieters zu verwenden. Die Anwendungen sind über eine Thin-Client-Schnittstelle wie einen Web-Browser (z.B. auf dem Web beruhende E-Mail) von verschiedenen Client-Einheiten her zugänglich. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter das Netzwerk, Server, Betriebssysteme, Speicher bzw. sogar einzelne Anwendungsfunktionen, mit der möglichen Ausnahme von eingeschränkten benutzerspezifischen Anwendungskonfigurationseinstellungen.
  • Platform as a Service (PaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, durch einen Nutzer erstellte bzw. erhaltene Anwendungen, die unter Verwendung von durch den Anbieter unterstützten Programmiersprachen und Tools erstellt wurden, in der Cloud-Infrastruktur einzusetzen. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter Netzwerke, Server, Betriebssysteme bzw. Speicher, hat aber die Kontrolle über die eingesetzten Anwendungen und möglicherweise über Konfigurationen des Application Hosting Environment.
  • Infrastructure as a Service (laaS): Die dem Nutzer bereitgestellte Funktion besteht darin, das Verarbeiten, Speicher, Netzwerke und andere grundlegende Datenverarbeitungsressourcen bereitzustellen, wobei der Nutzer in der Lage ist, beliebige Software einzusetzen und auszuführen, zu der Betriebssysteme und Anwendungen gehören können. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, hat aber die Kontrolle über Betriebssysteme, Speicher, eingesetzte Anwendungen und möglicherweise eine eingeschränkte Kontrolle über ausgewählte Netzwerkkomponenten (z.B. Host-Firewalls).
  • Bei den Einsatzmodellen handelt es sich um die Folgenden:
  • Private Cloud: Die Cloud-Infrastruktur wird einzig und allein für eine Organisation betrieben. Sie kann durch die Organisation oder einen Dritten verwaltet werden und kann sich in den eigenen Räumen oder in fremden Räumen befinden.
  • Community Cloud: Die Cloud-Infrastruktur wird von mehreren Organisationen gemeinsam genutzt und unterstützt eine spezielle Benutzergemeinschaft, die gemeinsame Angelegenheiten hat (z.B. Mission, Sicherheitsanforderungen, Richtlinien sowie Überlegungen bezüglich der Einhaltung von Vorschriften). Sie kann durch die Organisationen oder einen Dritten verwaltet werden und kann in den eigenen Räumen oder fremden Räumen stehen.
  • Public Cloud: Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Industriegruppe zur Verfügung gestellt und sie gehört einer Cloud-Dienste verkaufenden Organisation.
  • Hybrid Cloud: Die Cloud-Infrastruktur ist eine Zusammensetzung aus zwei oder mehreren Clouds (privat, Benutzergemeinschaft oder öffentlich), die zwar einzelne Einheiten bleiben, aber durch eine standardisierte oder proprietäre Technologie miteinander verbunden sind, die Daten- und Anwendungsportierbarkeit ermöglicht (z.B. Cloud-Zielgruppenverteilung für den Lastenausgleich zwischen Clouds).
  • Eine Cloud-Computing-Umgebung ist dienstorientiert mit Fokus auf Statusunabhängigkeit, geringer Kopplung, Modularität und semantischer Interoperabilität. Im Herzen von Cloud-Computing liegt eine Infrastruktur, die ein Netzwerk aus zusammengeschalteten Knoten umfasst.
  • Unter Bezugnahme auf 7 ist ein veranschaulichendes Cloud-Computing-Netzwerk (700) abgebildet. Wie gezeigt ist, umfasst das Cloud-Computing-Netzwerk (700) eine Cloud-Computing-Umgebung (750) mit einem oder mehreren Cloud-Computing-Knoten (710), mit denen von Cloud-Nutzern verwendete lokale Datenverarbeitungseinheiten Daten austauschen können. Zu Beispielen für diese lokalen Datenverarbeitungseinheiten gehören ein elektronischer Assistent (PDA) oder ein Mobiltelefon (754A), ein Desktop-Computer (754B), ein Laptop-Computer (754C) und/oder ein Automobil-Computer-System (754N), ohne auf diese beschränkt zu sein. Einzelne Knoten innerhalb der Knoten (710) können darüber hinaus miteinander Daten austauschen. Sie können physisch oder virtuell in ein oder mehrere Netzwerke wie private, Benutzergemeinschafts-, öffentliche oder hybride Clouds gruppiert werden (nicht gezeigt), wie vorstehend beschrieben wurde, oder in eine Kombination daraus. Dies ermöglicht es der Cloud-Computing-Umgebung (700), Infrastruktur, Plattformen und/oder Software als Dienst anzubieten, für die ein Cloud-Nutzer keine Ressourcen auf einer lokalen Datenverarbeitungseinheit vorhalten muss. Es sei darauf hingewiesen, dass die Arten von in 7 gezeigten Datenverarbeitungseinheiten (754A bis N) lediglich veranschaulichend sein sollen und dass die Cloud-Computing-Umgebung (750) über eine beliebige Art Netzwerk und/oder über eine beliebige Art von über ein Netzwerk aufrufbarer Verbindung (z.B. unter Verwendung eines Web-Browsers) mit einer beliebigen Art von computergestützter Einheit Daten austauschen kann.
  • Unter Bezugnahme auf 8 wird ein Satz von funktionalen Abstraktionsschichten (800) gezeigt, die durch das Cloud-Computing-Netzwerk aus 7 bereitgestellt werden. Es sollte von vornherein klar sein, dass die in 8 gezeigten Komponenten, Schichten und Funktionen lediglich veranschaulichend sein sollen und die Ausführungsformen nicht darauf beschränkt sind. Wie abgebildet ist, werden die folgenden Schichten und entsprechenden Funktionen bereitgestellt: eine Hardware- und Softwareschicht (810), eine Virtualisierungsschicht (820), eine Verwaltungsschicht (830) und eine Arbeitslastschicht (840).
  • Die Hardware- und Software-Schicht (810) umfasst Hardware- und Software-Komponenten. Zu Beispielen für Hardware-Komponenten gehören Mainframe-Computer, in einem Beispiel IBM® zSeries®-Systeme, auf der RISC- (Reduced Instruction Set Computer) Architektur beruhende Server, in einem Beispiel IBM pSeries®-Systeme, IBM xSeries®-Systeme, IBM BladeCenter®-Systeme, Speichereinheiten, Netzwerke sowie Netzwerkkomponenten. Zu Beispielen für Software-Komponenten gehören Netzwerk-Anwendungsserver-Software, in einem Beispiel IBM WebSphere®-Anwendungsserver-Software, sowie Datenbank-Software, in einem Beispiel IBM DB2®-Datenbank-Software. (IBM, zSeries, pSeries, xSeries, BladeCenter, WebSphere sowie DB2 sind Marken von International Business Machines Corporation, die in vielen Jurisdiktionen weltweit eingetragen sind).
  • Die Virtualisierungsschicht (820) stellt eine Abstraktionsschicht bereit, aus der die folgenden Beispiele für virtuelle Einheiten bereitgestellt werden können: virtuelle Server, virtueller Speicher, virtuelle Netzwerke, darunter virtuelle private Netzwerke, virtuelle Anwendungen und Betriebssysteme; und virtuelle Clients.
  • In einem Beispiel kann die Verwaltungsschicht (830) die folgenden Funktionen bereitstellen: eine Ressourcen-Bereitstellung, ein Messen und eine Preisfindung, ein Benutzerportal, eine Verwaltung der Dienstebene und ein Planen und Erfüllen von Vereinbarungen zur Dienstebene (SLA, Service Layer Agreement). Die Ressourcen-Bereitstellung stellt die dynamische Beschaffung von Datenverarbeitungsressourcen sowie anderen Ressourcen bereit, die zum Durchführen von Aufgaben innerhalb der Cloud-Computing-Umgebung verwendet werden. Das Messen und die Preisfindung stellen die Kostenverfolgung beim Verwenden von Ressourcen innerhalb der Cloud-Computing-Umgebung sowie die Abrechnung oder Rechnungsstellung für die Inanspruchnahme dieser Ressourcen bereit. In einem Beispiel können diese Ressourcen Anwendungssoftware-Lizenzen umfassen. Eine Sicherheit stellt die Identitätsüberprüfung für Cloud-Nutzer und Aufgaben sowie Schutz für Daten und andere Ressourcen bereit. Das Benutzerportal stellt Nutzern und Systemadministratoren den Zugang zu der Cloud-Computing-Umgebung bereit. Die Verwaltung der Dienstebene stellt die Zuordnung und Verwaltung von Cloud-Computing-Ressourcen bereit, so dass die benötigten Dienstebenen erreicht werden. Ein Planen und Erfüllen von Vereinbarungen zur Dienstebene (SLA) stellt die Anordnung vorab und die Beschaffung von Cloud-Computing-Ressourcen, für die eine zukünftige Anforderung vorausgesehen wird, gemäß einer SLA bereit.
  • Die Arbeitslastschicht (840) stellt Beispiele für die Funktionalität bereit, für welche die Cloud-Computing-Umgebung verwendet werden kann. Zu beispielhaften Arbeitslasten und Funktionen, die von dieser Schicht bereitgestellt werden können, gehören Abbildung und Navigation; Software-Entwicklung und Lebenszyklusverwaltung; Bereitstellung von Ausbildung in virtuellen Klassenzimmern; Datenanalytikverarbeitung; Transaktionsverarbeitung; und Verwaltung von virtuellen Dialogagenten, ohne darauf beschränkt zu sein.
  • Man wird verstehen, dass hierin ein System, ein Verfahren, eine Vorrichtung und ein Computerprogrammprodukt zum Bewerten von Eingaben in natürlicher Sprache, zum Erkennen einer Frage in einer entsprechenden Kommunikation und zum Auflösen der erkannten Frage mit einer Antwort und/oder zum Unterstützen der Inhaltsverarbeitung von Gesprächsprotokolldatensätzen und zum Erzeugen von Ausgaben, die zum Verbessern der Leistung eines Dialogsystems verwendet werden können, offenbart sind.
  • Obwohl bestimmte Ausführungsformen der vorliegenden Ausführungsformen gezeigt und beschrieben wurden, wird dem Fachmann ersichtlich sein, dass beruhend auf den Lehren hierin Änderungen und Abwandlungen vorgenommen werden können, ohne von den Ausführungsformen und deren umfassenderen Aspekten abzuweichen. Deshalb sollen die beigefügten Ansprüche in deren Rahmen sämtliche derartige Änderungen und Abwandlungen umfassen, die in dem wahren Gedanken und Umfang der Ausführungsformen liegen. Des Weiteren sollte klar sein, dass die Ausführungsformen nur durch die beigefügten Ansprüche festgelegt werden. Der Fachmann wird verstehen, dass, falls eine konkrete Anzahl von vorgestellten Anspruchselementen beabsichtigt ist, eine derartige Absicht explizit in dem Anspruch vorgetragen wird, und im Falle des Nichtvorliegens eines derartigen Vortragens keine derartige Beschränkung vorliegt. Für ein nicht einschränkendes Beispiel enthalten die folgenden beigefügten Ansprüche als Verständnishilfe die Verwendung der einführenden Begriffe „mindestens ein/eine/eins“ und „ein/eine/einen oder mehrere“, um Anspruchselemente vorzustellen. Aus der Verwendung derartiger Begriffe darf jedoch nicht abgeleitet werden, dass sie bedeuten, dass die Vorstellung eines Anspruchselements durch die unbestimmten Artikel „ein“ oder „eine“ irgendeinen bestimmten Anspruch, der ein derartiges Anspruchselement enthält, auf Ausführungsformen beschränken, die lediglich ein derartiges Element beinhalten, selbst wenn derselbe Anspruch die einführenden Begriffe „ein/eine/einen oder mehrere“ und unbestimmte Artikel wie „ein“ oder „eine“ beinhaltet; dasselbe gilt für die Verwendung von bestimmten Artikeln in den Ansprüchen.
  • Bei den vorliegenden Ausführungsformen kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Zusätzlich können ausgewählte Aspekte der vorliegenden Ausführungsformen die Form einer vollständigen Hardware-Ausführungsform, einer vollständigen Software-Ausführungsform (darunter Firmware, im Speicher befindliche Software, Mikrocode usw.) oder einer Software- und Hardware-Aspekte kombinierenden Ausführungsform annehmen, die hierin alle allgemein als „Schaltkreis“, „Modul“ oder „System“ bezeichnet sein können. Des Weiteren können Aspekte der vorliegenden Ausführungsformen die Form eines Computerprogrammprodukts annehmen, das in (einem) durch einen Computer lesbaren Speichermedium (oder -medien) enthalten ist, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert ist/sind, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Offenbarung auszuführen. Derart ausgeführt, sind das offenbarte System, ein Verfahren und/oder ein Computerprogrammprodukt in der Lage, die Funktionalität und den Betrieb einer Plattform für künstliche Intelligenz zum Lösen von Fragen mit Absichtserkennung und einer entsprechenden Antwort, welche die erkannte Absicht betrifft, zu verbessern.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch ein System zur Ausführung von Anweisungen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine auswechselbare Computerdiskette, eine Festplatte, ein dynamischer oder statischer Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), eine magnetische Speichereinheit, ein auswechselbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch kodierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. Lichtwellenleiterkabel durchlaufende Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
  • Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server umfassen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Ausführungsformen kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie zum Beispiel Java, Smalltalk, C++ oder dergleichen sowie herkömmliche prozedurale Programmiersprachen wie zum Beispiel die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server bzw. Servercluster ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, vor Ort programmierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Ausführungsformen durchzuführen.
  • Aspekte der vorliegenden Ausführungsformen sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder bzw. Schaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaltbildern bzw. Schaubildern mittels durch einen Computer lesbare Programmanweisungen ausgeführt werden können.
  • Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, so dass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt umfasst, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaltbilder bzw. Schaubilder angegebenen Funktion/Schritts umsetzen.
  • Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, so dass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte umsetzen.
  • Die Ablaufpläne und die Blockschaltbilder bzw. Schaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Ausführungsformen. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaltbildern bzw. Schaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Ausführung der bestimmten logischen Funktion(en) umfassen. In einigen alternativen Ausführungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist darüber hinaus anzumerken, dass jeder Block der Blockschaltbilder bzw. Schaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaltbildern bzw. Schaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
  • Man wird verstehen, dass, obwohl hierin spezifische Ausführungsformen zum Zwecke der Veranschaulichung beschrieben wurden, verschiedene Abänderungen vorgenommen werden können, ohne von dem Sinngehalt und Umfang der Ausführungsformen abzuweichen. Insbesondere kann die Verarbeitung natürlicher Sprache von verschiedenen Datenverarbeitungsplattformen oder über mehrere Einheiten hinweg durchgeführt werden. Des Weiteren kann/können der Datenspeicher und/oder der Korpus lokal, dezentral oder über mehrere Systeme verteilt sein. Dementsprechend wird der Schutzumfang der Ausführungsformen lediglich durch die folgenden Ansprüche und deren Entsprechungen beschränkt.

Claims (18)

  1. Computersystem, aufweisend: eine Verarbeitungseinheit, die funktionsmäßig mit einem Speicher verbunden ist, um eine Mehrzahl von Gesprächsprotokolldateien zu empfangen, die sich auf Interaktionen mit einem automatisierten virtuellen Dialogagenten eines Dialogsystems beziehen, wobei jede der Gesprächsprotokolldateien ein Trace von einem oder mehreren Dialogereignissen aufweist; eine Plattform für künstliche Intelligenz (Kl), die mit der Verarbeitungseinheit Daten austauscht, die Kl-Plattform aufweisend: eine Traceverwaltungseinheit zum: Parsen der Dialogereignisse der Traces der Gesprächsprotokolldateien in eine Mehrzahl von geparsten Ereignissen; und Extrahieren von jeweiligen Verhaltensmerkmalen aus den Traces und Zuweisen von jeweiligen Verhaltensmerkmalswerten zu den Traces; eine Clusterverwaltungseinheit, die funktionsmäßig mit der Traceverwaltungseinheit verbunden ist, um die Traces auf der Grundlage der Nähe der jeweiligen Verhaltensmerkmalswerte der Traces zu jeweiligen Ergebniswerten in eine Mehrzahl von Clustern zusammenzufassen, wobei die Mehrzahl von Clustern einen ersten Cluster der Traces mit den jeweiligen Verhaltensmerkmalswerten in der Nähe eines ersten Ergebniswertes, der ein erstes Ergebnis darstellt, und einen zweiten Cluster von Traces mit den jeweiligen Verhaltensmerkmalswerten in der Nähe eines zweiten Ergebniswertes, der ein zweites Ergebnis darstellt, das sich von dem ersten Ergebnis unterscheidet, aufweist; eine Suchverwaltungseinheit, die funktionsmäßig mit der Clusterverwaltungseinheit verbunden ist, um die Mehrzahl von geparsten Ereignissen nach einem kontrastierenden Muster zu durchsuchen, was ein Anwenden einer Musterspezifikation, die eine zeitliche Bedingung enthält, auf mindestens ein geparstes Ereignis aus der Mehrzahl von geparsten Ereignissen umfasst; und Ermitteln, für das mindestens eine geparste Ereignis durch die Suchverwaltungseinheit, ob das kontrastierende Muster einen kontrastierenden Schwellenwert erfüllt, wobei das kontrastierende Muster auf einem ersten Anteil der Traces des ersten Clusters, für den die Musterspezifikation gilt, und einem zweiten Anteil der Traces des zweiten Clusters, für den die Musterspezifikation nicht gilt, beruht; und Anwenden einer Ausgabe der Kl-Plattform auf den automatisierten virtuellen Dialogagenten in Bezug auf das Dialogereignis, das dem mindestens einen geparsten Ereignis entspricht, um die Leistung des Dialogsystems zu verbessern.
  2. System nach Anspruch 1, wobei die Suchverwaltungseinheit zum Ermitteln, ob das kontrastierende Muster den kontrastierenden Schwellenwert erfüllt, aufweist, dass die Suchverwaltungseinheit so konfiguriert ist, dass sie den ersten Anteil mit dem zweiten Anteil multipliziert, um einen kontrastierenden Musterwert zu berechnen und den berechneten kontrastierenden Musterwert mit dem kontrastierenden Schwellenwert zu vergleichen.
  3. System nach Anspruch 1, wobei die Suchverwaltungseinheit zum Ermitteln, ob das kontrastierende Muster den kontrastierenden Schwellenwert erfüllt, aufweist, dass die Suchverwaltungseinheit so konfiguriert ist, dass sie das Produkt aus dem ersten und zweiten Anteil mit einem Gewichtungswert in einem Bereich von 0 bis 1 multipliziert, um einen kontrastierenden Musterwert zu berechnen und den berechneten kontrastierenden Musterwert mit dem kontrastierenden Schwellenwert zu vergleichen.
  4. System nach Anspruch 1, wobei die Verhaltensmerkmale eine erfolgreiche Transaktion durch das Dialogsystem bzw. eine nicht erfolgreiche Transaktion durch das Dialogsystem aufweisen.
  5. System nach Anspruch 1, wobei der Vorgang, dass die Suchverwaltungseinheit eine Musterspezifikation anwendet, die eine zeitliche Bedingung enthält, umfasst, dass die Suchverwaltungseinheit so konfiguriert ist, dass sie die Musterspezifikation aus einer Mehrzahl von Musterspezifikationen auswählt, wobei die Mehrzahl von Musterspezifikationen in einer ersten Bibliothek gespeichert ist.
  6. System nach Anspruch 5, wobei der Vorgang, dass die Suchverwaltungseinheit eine Musterspezifikation, die eine zeitliche Bedingung enthält, auf mindestens ein geparstes Ereignis aus der Mehrzahl von geparsten Ereignissen anwendet, umfasst, dass die Suchverwaltungseinheit so konfiguriert ist, dass sie eine Variablenspezifikation, die dem mindestens einen geparsten Ereignis entspricht, aus einer Mehrzahl von Variablenspezifikationen, die in einer zweiten Bibliothek gespeichert sind, auswählt, wobei es sich bei der ersten und der zweiten Bibliothek um die gleiche oder um unterschiedliche Bibliotheken handeln kann.
  7. Computerprogrammprodukt zum Verbessern der Leistung eines Systems mit virtuellen Dialogagenten, wobei das Computerprogrammprodukt ein durch einen Computer lesbares Speichermedium aufweist, auf dem Programmcode enthalten ist, wobei der Programmcode durch einen Prozessor ausführbar ist zum: Empfangen einer Mehrzahl von Gesprächsprotokolldateien, die sich auf Interaktionen mit einem automatisierten virtuellen Dialogagenten eines Dialogsystems beziehen, wobei die Gesprächsprotokolldateien jeweilige Traces aufweisen, die ein oder mehrere Dialogereignissen aufweisen; Anwenden der empfangenen Gesprächsprotokolldateien auf eine Plattform für künstliche Intelligenz (KI), die ein Lernprogramm aufweist zum: Parsen der Dialogereignisse der Traces der Gesprächsprotokolldateien in eine Mehrzahl von geparsten Ereignissen; Extrahieren von jeweiligen Verhaltensmerkmalen aus den Traces und Zuweisen von jeweiligen Verhaltensmerkmalswerten zu den Traces; Zusammenfassen der Traces in eine Mehrzahl von Clustern auf der Grundlage der Nähe der jeweiligen Verhaltensmerkmalswerte der Traces zu jeweiligen Ergebniswerten, wobei die Mehrzahl von Clustern einen ersten Cluster der Traces mit den jeweiligen Verhaltensmerkmalswerten in der Nähe eines ersten Ergebniswertes, der ein erstes Ergebnis darstellt, und einen zweiten Cluster von Traces mit den jeweiligen Verhaltensmerkmalswerten in der Nähe eines zweiten Ergebniswertes, der ein zweites Ergebnis darstellt, das sich von dem ersten Ergebnis unterscheidet, aufweist; Durchsuchen der Mehrzahl von geparsten Ereignissen nach einem kontrastierenden Muster, wobei das Durchsuchen ein Anwenden einer Musterspezifikation, die eine zeitliche Bedingung enthält, auf mindestens ein geparstes Ereignis aus der Mehrzahl von geparsten Ereignissen umfasst; und Ermitteln, für das mindestens eine geparste Ereignis, ob das kontrastierende Muster einen kontrastierenden Schwellenwert erfüllt, wobei das kontrastierende Muster auf einem ersten Anteil der Traces des ersten Clusters, für den die Musterspezifikation gilt, und einem zweiten Anteil der Traces des zweiten Clusters, für den die Musterspezifikation nicht gilt, beruht; und Anwenden einer Ausgabe der Kl-Plattform auf den automatisierten virtuellen Dialogagenten in Bezug auf das Dialogereignis, das dem mindestens einen geparsten Ereignis entspricht, um die Leistung des Dialogsystems zu verbessern.
  8. Computerprogrammprodukt nach Anspruch 7, wobei der Programmcode zum Ermitteln, ob das kontrastierende Muster den kontrastierenden Schwellenwert erfüllt, einen durch den Prozessor ausführbaren Programmcode aufweist, um den ersten Anteil mit dem zweiten Anteil zu multiplizieren, um einen kontrastierenden Musterwert zu berechnen und den berechneten kontrastierenden Musterwert mit dem kontrastierenden Schwellenwert zu vergleichen.
  9. Computerprogrammprodukt nach Anspruch 7, wobei der Programmcode zum Ermitteln, ob das kontrastierende Muster den kontrastierenden Schwellenwert erfüllt, einen durch den Prozessor ausführbaren Programmcode aufweist, um das Produkt aus dem ersten und zweiten Anteil mit mindestens einem Gewichtungswert in einem Bereich von 0 bis 1 zu multiplizieren, um einen kontrastierenden Musterwert zu berechnen und den berechneten kontrastierenden Musterwert mit dem kontrastierenden Schwellenwert zu vergleichen.
  10. Computerprogrammprodukt nach Anspruch 7, wobei die Verhaltensmerkmale eine erfolgreiche Transaktion durch das Dialogsystem bzw. eine nicht erfolgreiche Transaktion durch das Dialogsystem aufweisen.
  11. Computerprogrammprodukt nach Anspruch 7, wobei der Programmcode zum Anwenden einer Musterspezifikation, die eine zeitliche Bedingung enthält, einen Programmcode aufweist, der von dem Prozessor ausführbar ist, um die Musterspezifikation aus einer Mehrzahl von Musterspezifikationen auszuwählen, die in einer ersten Bibliothek gespeichert ist.
  12. Computerprogrammprodukt nach Anspruch 11, wobei der Programmcode zum Anwenden einer Musterspezifikation, die eine zeitliche Bedingung enthält, auf mindestens ein geparstes Ereignis aus der Mehrzahl von geparsten Ereignissen einen durch einen Prozessor ausführbaren Programmcode aufweist, um eine Variablenspezifikation, die dem mindestens einen geparsten Ereignis entspricht, aus einer Mehrzahl von Variablenspezifikationen, die in einer zweiten Bibliothek gespeichert sind, auszuwählen, wobei es sich bei der ersten und der zweiten Bibliothek um die gleiche oder um unterschiedliche Bibliotheken handeln kann.
  13. Auf einer Maschine ausgeführtes Verfahren zum Verbessern der Leistung eines Dialogsystems, das Verfahren aufweisend: Empfangen, durch einen Prozessor einer Datenverarbeitungseinheit, einer Mehrzahl von Gesprächsprotokolldateien, die sich auf Interaktionen mit einem automatisierten virtuellen Dialogagenten eines Dialogsystems beziehen, wobei die Gesprächsprotokolldateien jeweilige Traces aufweisen, die ein oder mehrere Dialogereignissen aufweisen; Anwenden der empfangenen Gesprächsprotokolldateien auf eine Plattform für künstliche Intelligenz (KI), die ein Lernprogramm aufweist, durch den Prozessor, das Anwenden aufweisend: Parsen der Dialogereignisse der Traces der Gesprächsprotokolldateien in eine Mehrzahl von geparsten Ereignissen; Extrahieren von jeweiligen Verhaltensmerkmalen aus den Traces und Zuweisen von jeweiligen Verhaltensmerkmalswerten zu den Traces; Zusammenfassen der Traces in eine Mehrzahl von Clustern auf der Grundlage der Nähe der jeweiligen Verhaltensmerkmalswerte der Traces zu jeweiligen Ergebniswerten, wobei die Mehrzahl von Clustern einen ersten Cluster der Traces mit den jeweiligen Verhaltensmerkmalswerten in der Nähe eines ersten Ergebniswertes, der ein erstes Ergebnis darstellt, und einen zweiten Cluster von Traces mit den jeweiligen Verhaltensmerkmalswerten in der Nähe eines zweiten Ergebniswertes, der ein zweites Ergebnis darstellt, das sich von dem ersten Ergebnis unterscheidet, aufweist; Durchsuchen der Mehrzahl von geparsten Ereignissen nach einem kontrastierenden Muster, wobei das Durchsuchen ein Anwenden einer Musterspezifikation, die eine zeitliche Bedingung enthält, auf mindestens ein geparstes Ereignis aus der Mehrzahl von geparsten Ereignissen umfasst; und Erforschen, für das mindestens eine geparste Ereignis, ob das kontrastierende Muster einen kontrastierenden Schwellenwert erfüllt, wobei das kontrastierende Muster auf einem ersten Anteil der Traces des ersten Clusters, für den die Musterspezifikation gilt, und einem zweiten Anteil der Traces des zweiten Clusters, für den die Musterspezifikation nicht gilt, beruht; und Verfeinern des automatisierten virtuellen Dialogagenten in Bezug auf das Dialogereignis, das dem mindestens einen geparsten Ereignis entspricht, um die Leistung des Dialogsystems zu verbessern.
  14. Auf einer Maschine ausgeführtes Verfahren nach Anspruch 13, wobei das Ermitteln, ob das kontrastierende Muster den kontrastierenden Schwellenwert erfüllt, ein Multiplizieren des ersten Anteils mit dem zweiten Anteil, um einen kontrastierenden Musterwert zu berechnen, und ein Vergleichen des berechneten kontrastierenden Musterwerts mit dem kontrastierenden Schwellenwert aufweist.
  15. Auf einer Maschine ausgeführtes Verfahren nach Anspruch 13, wobei das Ermitteln, ob das kontrastierende Muster den kontrastierenden Schwellenwert erfüllt, ein Multiplizieren des Produkts aus dem ersten und dem zweiten Anteil mit einem Gewichtungswert in einem Bereich von 0 bis 1, um einen kontrastierenden Musterwert zu berechnen, und ein Vergleichen des berechneten kontrastierenden Musterwerts mit dem kontrastierenden Schwellenwert aufweist.
  16. Auf einer Maschine ausgeführtes Verfahren nach Anspruch 13, wobei die Verhaltensmerkmale eine erfolgreiche Transaktion durch das Dialogsystem bzw. eine nicht erfolgreiche Transaktion durch das Dialogsystem aufweisen.
  17. Auf einer Maschine ausgeführtes Verfahren nach Anspruch 13, wobei das Anwenden einer Musterspezifikation, die eine zeitliche Bedingung enthält, ein Auswählen der Musterspezifikation aus einer Mehrzahl von Musterspezifikationen aufweist, die in einer ersten Bibliothek gespeichert sind.
  18. Auf einer Maschine ausgeführtes Verfahren nach Anspruch 17, wobei das Anwenden einer Musterspezifikation, die eine zeitliche Bedingung enthält, auf mindestens ein geparstes Ereignis aus der Mehrzahl von geparsten Ereignissen ein Auswählen einer Variablenspezifikation, die dem mindestens einen geparsten Ereignis entspricht, aus einer Mehrzahl von Variablenspezifikationen, die in einer zweiten Bibliothek gespeichert sind, aufweist, wobei es sich bei der ersten und der zweiten Bibliothek um die gleiche oder um unterschiedliche Bibliotheken handeln kann.
DE112020005296.6T 2020-01-15 2020-12-17 Durchsuchen von gesprächsprotokollen eines systems mit virtuellen dialogagenten nach kontrastierenden zeitlichen mustern Pending DE112020005296T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/743,211 2020-01-15
US16/743,211 US11409965B2 (en) 2020-01-15 2020-01-15 Searching conversation logs of a virtual agent dialog system for contrastive temporal patterns
PCT/IB2020/062080 WO2021144638A1 (en) 2020-01-15 2020-12-17 Searching conversation logs of virtual agent dialog system for contrastive temporal patterns

Publications (1)

Publication Number Publication Date
DE112020005296T5 true DE112020005296T5 (de) 2022-08-25

Family

ID=76763341

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112020005296.6T Pending DE112020005296T5 (de) 2020-01-15 2020-12-17 Durchsuchen von gesprächsprotokollen eines systems mit virtuellen dialogagenten nach kontrastierenden zeitlichen mustern

Country Status (8)

Country Link
US (1) US11409965B2 (de)
JP (1) JP2023510241A (de)
KR (1) KR20220103147A (de)
CN (1) CN115004174A (de)
AU (1) AU2020422535B2 (de)
DE (1) DE112020005296T5 (de)
GB (1) GB2607482A (de)
WO (1) WO2021144638A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11768835B2 (en) * 2020-01-31 2023-09-26 Salesforce, Inc. Merging multiple unsynchronized streams of related events and multi-tenant support
WO2023212271A1 (en) * 2022-04-28 2023-11-02 Theai, Inc. Observation-based training of artificial intelligence character models

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6346879B1 (en) 2000-05-05 2002-02-12 Lucent Technologies, Inc. Verification of message sequence charts
US8539359B2 (en) 2009-02-11 2013-09-17 Jeffrey A. Rapaport Social network driven indexing system for instantly clustering people with concurrent focus on same topic into on-topic chat rooms and/or for generating on-topic search results tailored to user preferences regarding topic
US20110161310A1 (en) 2009-12-30 2011-06-30 Wei Tang Database query plan analysis and difference processing
EP2839391A4 (de) 2012-04-20 2016-01-27 Maluuba Inc Konversationsagent
US9390208B2 (en) 2013-06-14 2016-07-12 Synopsys, Inc. Formal verification of temporal properties expressed using local variables
WO2015100362A1 (en) 2013-12-23 2015-07-02 24/7 Customer, Inc. Systems and methods for facilitating dialogue mining
CN104809325B (zh) 2014-01-26 2018-06-01 国际商业机器公司 用于检测事件日志和过程模型之间的区别的方法和装置
KR101594500B1 (ko) 2015-08-12 2016-02-16 주식회사 스캐터랩 채팅내용에 기반하여 필요정보를 제공하는 인공지능 채팅 방법
DE102016124588A1 (de) 2016-12-16 2018-06-21 Vdm Metals International Gmbh Verwendung einer nickel-chrom-molybdän-legierung
CN106997375B (zh) 2017-02-28 2020-08-18 浙江大学 基于深度学习的客服回复推荐方法
US10498898B2 (en) 2017-12-13 2019-12-03 Genesys Telecommunications Laboratories, Inc. Systems and methods for chatbot generation
KR101881744B1 (ko) 2017-12-18 2018-07-25 주식회사 머니브레인 대화형 ai 에이전트 시스템을 위한 계층적 대화 흐름 관리 모델을 자동으로 구축 또는 갱신하는 방법, 컴퓨터 장치 및 컴퓨터 판독가능 기록 매체
CN109986569B (zh) 2017-12-29 2022-08-23 微软技术许可有限责任公司 具有角色化和性格化的聊天机器人
US10515155B2 (en) 2018-02-09 2019-12-24 Digital Genius Limited Conversational agent
US10997222B2 (en) * 2018-06-29 2021-05-04 International Business Machines Corporation Conversational agent dialog flow user interface
CN109002515A (zh) 2018-07-04 2018-12-14 网宿科技股份有限公司 一种智能应答的方法和装置

Also Published As

Publication number Publication date
GB2607482A (en) 2022-12-07
WO2021144638A1 (en) 2021-07-22
AU2020422535B2 (en) 2023-11-23
JP2023510241A (ja) 2023-03-13
AU2020422535A1 (en) 2022-06-09
GB202211294D0 (en) 2022-09-14
CN115004174A (zh) 2022-09-02
KR20220103147A (ko) 2022-07-21
US20210216724A1 (en) 2021-07-15
US11409965B2 (en) 2022-08-09

Similar Documents

Publication Publication Date Title
US10789552B2 (en) Question answering system-based generation of distractors using machine learning
DE102018006962A1 (de) Regelfestlegung für Black-Box-Maschinenlernmodelle
US11263589B2 (en) Generation of automated job interview questionnaires adapted to candidate experience
DE112019001533T5 (de) Erweiterung von trainingsdaten für die klassifikation von natürlicher sprache
DE112018002984T5 (de) Konformitätsbewusste Laufzeiterzeugung auf Grundlage von Anwendungsmustern und Risikobeurteilung
DE112018005167T5 (de) Aktualisieren von trainingsdaten
DE112020005095T5 (de) Automatische trennung und extraktion von tabellendaten unter verwendung von maschinellem lernen
DE112020005253T5 (de) Auflösung von anaphern
DE112019002235T5 (de) Einbinden eines wörterbuch-bearbeitungssystems in ein text mining
DE112021002572T5 (de) Multikriterielles optimieren von anwendungen
DE112020005323T5 (de) Elastische ausführung von machine-learning-arbeitslasten unter verwendung einer anwendungsbasierten profilierung
DE112021002820T5 (de) Dynamische automatisierung einer auswahl von pipeline-artefakten
DE112020000545T5 (de) Deep-forest-modell-entwicklung und -training
US20200134568A1 (en) Cognitive assessment recommendation and evaluation
DE112020005296T5 (de) Durchsuchen von gesprächsprotokollen eines systems mit virtuellen dialogagenten nach kontrastierenden zeitlichen mustern
DE112020005306T5 (de) Implementierung von arbeitslasten in einer multi-cloud-umgebung
DE112021000810T5 (de) Optisches erkennen von zellenstrukturen unter verwendung hierarchischer neuronaler netzwerke und zellengrenzen zum strukturieren von clustern
DE112021001163T5 (de) Dynamisches erstellen von facetten unter verwendung von graphpartitionierung
DE112021004380T5 (de) Maschinelles merkmalslernen zur produktformulierung
US11126646B2 (en) Implicit and explicit cognitive analyses for data content comprehension
DE112021004234T5 (de) Einsetzen von metalernen zum optimieren der automatischen auswahl von pipelinesdes maschinellen lernens
DE112021005230T5 (de) Erzeugen alternativer veränderlicher kennsätze
US10332048B2 (en) Job profile generation based on intranet usage
US20220004718A1 (en) Ontology-Driven Conversational Interface for Data Analysis
DE112019001493T5 (de) Ermitteln der abfrageerkennungsresilienz in virtuellen agentensystemen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R084 Declaration of willingness to licence