DE102017121780B4 - Hierarchische Annotation von Dialogakten - Google Patents

Hierarchische Annotation von Dialogakten Download PDF

Info

Publication number
DE102017121780B4
DE102017121780B4 DE102017121780.0A DE102017121780A DE102017121780B4 DE 102017121780 B4 DE102017121780 B4 DE 102017121780B4 DE 102017121780 A DE102017121780 A DE 102017121780A DE 102017121780 B4 DE102017121780 B4 DE 102017121780B4
Authority
DE
Germany
Prior art keywords
annotation
dialog
node
identifier
record
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.)
Active
Application number
DE102017121780.0A
Other languages
English (en)
Other versions
DE102017121780A1 (de
Inventor
David Elson
Benjamin Ross
David Eisenberg
Raj Agarwal
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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of DE102017121780A1 publication Critical patent/DE102017121780A1/de
Application granted granted Critical
Publication of DE102017121780B4 publication Critical patent/DE102017121780B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/167Audio in a user interface, e.g. using voice commands for navigating, audio feedback
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/169Annotation, e.g. comment data or footnotes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • G06F40/35Discourse or dialogue representation
    • 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/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • G06F16/322Trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/137Hierarchical processing, e.g. outlines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L13/00Speech synthesis; Text to speech systems
    • G10L13/02Methods for producing synthetic speech; Speech synthesisers
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1822Parsing for meaning understanding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Multimedia (AREA)
  • Databases & Information Systems (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Acoustics & Sound (AREA)
  • Machine Translation (AREA)
  • User Interface Of Digital Computer (AREA)
  • Document Processing Apparatus (AREA)

Abstract

Verfahren, umfassend:Erzeugen eines ersten Annotationsbaums für einen annotierten Dialogakt, wobei der erste Annotationsbaum einen Wurzelknoten für den Dialogakt und Blattknoten für jedes Annotationstag von nicht Null für den Dialogakt enthält, wobei der Dialogakt mit einem Gesprächsidentifizierer assoziiert ist und wobei die Blattknoten jeweils einen Knoten für einen vorherigen Diskurs entsprechend einem Tag für einen vorherigen Diskurs im annotierten Dialogakt enthalten;Erzeugen eines Annotationsidentifizierers für jeden Knoten im ersten Annotationsbaum, wobei die Annotationsidentifizierer innerhalb des Gesprächsidentifizierers eindeutig sind; undSchreiben einer Annotationsaufzeichnung für jeden Knoten, wobei:einer Aufzeichnung für den Wurzelknoten ein Elternidentifizierer fehlt,eine Aufzeichnung für Nichtwurzelknoten einen Elternidentifizierer enthält, wobei der Elternidentifizierer auf den Annotationsidentifizierer der Eltern Bezug nimmt, unddie Aufzeichnung für den Knoten entsprechend dem Knoten für einen vorherigen Diskurs einen Annotationsidentifizierer für eine entsprechende Aufzeichnung für einen nachfolgenden Diskurs enthält, wobei die Aufzeichnung für einen nachfolgenden Diskurs entsprechend einem Blattknoten in einem zweiten Annotationsbaum auch mit dem Gesprächsidentifizierer assoziiert ist,wobei das Verfahren ferner umfasst:Zugreifen auf die Annotationsaufzeichnung, um Trainingsbeispiele für eine Dialogmanagementmaschine (122) zu erzeugen; undTrainieren der Dialogmanagementmaschine (122) unter Verwendung der Trainingsbeispiele, wobei die Dialogmanagementmaschine (122) einen maschinellen Lernalgorithms enthält, der ausgelegt ist, mit einem Benutzer über eine Dialogeingabevorrichtung (110) und eine Dialogausgabevorrichtung (110) eine Konversation zu führen.

Description

  • ZUGEHÖRIGE ANMELDUNG
  • Diese Anmeldung beansprucht die Priorität der provisorischen US-Anmeldung Nr. 62/403,932 , eingereicht am 4. Oktober 2016, mit dem Titel ´´Hierarchical Annotations of Dialog Acts´´, deren Offenbarung hierin durch Bezugnahme enthalten ist.
  • HINTERGRUND
  • Computervorrichtungen können einen elektronischen Assistenten enthalten, der auf verbale Kommunikationen eines Anwenders der Computervorrichtung auf eine dialogorientierte Weise reagiert. Bei einer solchen Vorrichtung kann der Anwender irgendetwas sprechen, auf das der elektronische Assistent antwortet, z. B. über eine synthetisierte Sprache unter Verwendung einer Audioausgabe. Die Antwort durch den elektronischen Assistenten kann eine Frage enthalten, damit der Anwender darauf antwortet. Somit können sich der Anwender und die Computervorrichtung auf ein Gespräch einlassen. Das Gespräch kann darin resultieren, dass der elektronische Assistent eine Aufgabe durchführt oder nur interaktional sein kann (z. B. einen Witz erzählen oder einen Einblick ermöglichen). Die US 2010/0131274 A1 offenbart ein System und ein Verfahren zur Dialogmodellierung.
  • ZUSAMMENFASSUNG
  • Implementierungen stellen ein System zum Annotieren von Gesprächen bzw. Dialogen zwischen einem Anwender und einem elektronischen Assistenten auf hierarchische Weise zur Verfügung; das verwendet werden kann, um die Qualität des elektronischen Assistenten im Verlaufe der Zeit zu verbessern (z. B. durch Verbessern von Rangordnungssignalen, die bei einem maschinellen Lernen verwendet werden). Implementierungen stellen eine flexible hierarchische Struktur zum Beschreiben des Gesprächs und zugehöriger Dialogakte - von sowohl dem Anwender als auch dem elektronischen Assistenten - über den Verlauf des Gesprächs hinweg zur Verfügung. Jeder Dialogakt kann als ein separater Baum im Gespräch mit Annotationen dargestellt werden, die als Knoten im Baum und Bogen, die Knoten in unterschiedlichen Bäumen verbinden, die eine Wechselbeziehung haben, modelliert sind. Bei der hierarchischen Struktur zum Annotieren von Dialogakten identifizieren Kindknoten Elternknoten. Dies ermöglicht Implementierungen, um die individuellen Elemente als eine ungeordnete Liste zu speichern und um Annotationen und Bögen dynamisch, d. h. in Echtzeit, hinzuzufügen. Einige Implementierungen können ein Nachverarbeiten der Annotationsaufzeichnungen enthalten, d. h. einen Offline-Modus, um den Annotationsaufzeichnungen Information hinzuzufügen, die in einem Online-Modus nicht verfügbar ist, d. h. wenn die Aufzeichnungen in der hierarchischen Struktur erzeugt werden. Solche Information kann die Verbindungen zwischen Antworten und Anfragen enthalten, die nicht mit Information gemacht werden können, die in Echtzeit verfügbar ist.
  • Gemäß bestimmten Aspekten der Offenbarung kann ein Verfahren ein Erzeugen eines ersten Annotationsbaums für einen annotierten Dialogakt enthalten. Der erste Annotationsbaum enthält einen Wurzelknoten für den Dialogakt und Blattknoten für jedes Annotationstag von Nicht-Null für den Dialogakt. Der Dialogakt ist mit einem Gesprächsidentifizierer assoziiert. Die Blattknoten des ersten Annotationsbaums enthalten einen Knoten für einen vorherigen Diskurs entsprechend einem Tag für einen vorherigen Diskurs im annotierten Dialogakt. Das Verfahren enthält auch ein Erzeugen eines Annotationsidentifizierers für jeden Knoten im ersten Annotationsbaum, wobei die Annotationsidentifizierer innerhalb des Gesprächsidentifizierers eindeutig sind. Das Verfahren kann auch ein Schreiben einer Annotationsaufzeichnung für jeden Knoten enthalten. Bei den Annotationsaufzeichnungen fehlt einer Aufzeichnung für den Wurzelknoten ein Elternidentifizierer; eine Aufzeichnung für Nichtwurzelknoten enthält einen Elternidentifizierer, wobei der Elternidentifizierer auf den Annotationsidentifizierer der Eltern Bezug nimmt; und die Aufzeichnung für den Knoten für einen vorherigen Diskurs enthält einen Annotationsidentifizierer für einen entsprechenden Knoten für einen nachfolgenden Diskurs, wobei der Knoten für einen nachfolgenden Diskurs ein Blattknoten in einem zweiten Annotationsbaum ist, der auch mit dem Gesprächsidentifizierer assoziiert ist.
  • Ein Erzeugen des Annotationsbaums für den annotierten Dialogakt kann enthalten: Bestimmen, dass ein erster untergeordneter Dialogakt und ein zweiter untergeordneter Dialogakt ein gemeinsames Tag und gemeinsame Eltern gemeinsam nutzen; und Einfügen im Annotationsbaum eines Knotens, der ein Kind eines Knotens für die gemeinsamen Eltern ist und Eltern eines Knotens für den ersten untergeordneten Dialogakt ist, eines Knotens für den zweiten untergeordneten Dialogakt und eines Knotens für das gemeinsame Tag, wobei dem Knoten für den ersten untergeordneten Dialogakt und dem Knoten für den zweiten untergeordneten Dialogakt jeweils ein Kindknoten entsprechend dem gemeinsamen Tag fehlt. Das Verfahren kann weiterhin ein Zugreifen auf die Annotationsaufzeichnungen in Antwort auf eine Anfrage und ein Zurückbringen von Annotationsaufzeichnungen, für die bestimmt ist, dass sie auf die Anfrage reagieren, umfassen. Das Verfahren kann weiterhin ein Zugreifen auf die Annotationsaufzeichnungen umfassen, um Trainingsbeispiele für eine Dialogmanagementmaschine zu erzeugen; und ein Trainieren der Dialogmanagementmaschine unter Verwendung der Trainingsbeispiele. Das Verfahren kann weiterhin ein Zugreifen auf die Annotationsaufzeichnungen umfassen, um Fehlermuster zu identifizieren. Die Annotationsaufzeichnung für jeden Knoten kann Text entsprechend dem Knoten enthalten. Die Annotationsaufzeichnungen können in einer ungeordneten Liste gespeichert werden. Der erste Annotationsbaum kann eine erste Runde im Gespräch darstellen und der zweite Annotationsbaum kann eine zweite Runde im Gespräch darstellen, und die erste Runde und die zweite Runde können durch wenigstens eine intervenierende Runde getrennt sein. Die Aufzeichnung für den Wurzelknoten kann eine Indizierung eines Sprechers für den Dialogakt enthalten. Die Aufzeichnung für den Wurzelknoten und wenigstens einiges von der Vielzahl von Nichtwurzelaufzeichnungen können weiterhin eine Indizierung eines Sprechers für den Dialogakt enthalten. Das Annotationstag kann aus der Gruppe ausgewählt werden, die einen nachfolgenden Diskurstag, einen Dialogakt-Typ und ein vorheriges Diskurstag enthält. Das Annotationstag kann aus der Gruppe ausgewählt werden, die ein nachfolgendes Diskurstag, einen Dialogakt-Typ, einen Dialogfehler-Typ und ein vorheriges Diskurstag enthält. Nichtwurzelaufzeichnungen mit einem Annotationstag, das ein vorheriges Diskurstag kann weiterhin einen Annotationsidentifizierer von einer weiteren Annotationsaufzeichnung enthalten, wobei die andere Aufzeichnung ein Annotationstag hat, das ein nachfolgendes Diskurstag darstellt. Wenigstens einige der Nichtwurzelaufzeichnungen enthalten weiterhin ein Annotationstag. Wenigstens einige der Annotationstags können einen Textbereich darstellen. Wenigstens einer der Dialogakte kann eine Betriebsaktion darstellen, die durch einen Anwender durchgeführt ist. Das Verfahren kann weiterhin ein Empfangen von eingegebenen Dialogakten von einer Dialogeingabevorrichtung und ein Empfangen von ausgegebenen Dialogakten zur Ausgabe über eine Dialogausgabevorrichtung umfassen.
  • Gemäß bestimmten Aspekten der Offenbarung umfasst ein System: wenigstens einen Prozessor; eine Dialogeingabevorrichtung; eine Dialogausgabevorrichtung; und einen Speicher, der Anweisungen speichert, die dann, wenn sie durch den wenigstens einen Prozessor ausgeführt werden, Operationen durchführen, die enthalten: Empfangen von eingegebenen Dialogakten von der Dialogeingabevorrichtung und Empfangen von ausgegebenen Dialogakten zur Ausgabe über die Dialogausgabevorrichtung und Erzeugen von hierarchischen Annotationsaufzeichnungen für Annotationen der eingegebenen Dialogakte und für Annotationen der ausgegebenen Dialogakte, wobei die hierarchischen Annotationsaufzeichnungen für einen Dialogakt enthalten: eine Wurzelaufzeichnung, die einen Gesprächsidentifizierer und einen Annotationsidentifizierer spezifiziert, wobei eine Vielzahl von Nichtwurzelaufzeichnungen enthält: einen Annotationsidentifizierer und einen Elternidentifizierer, wobei der Elternidentifizierer ein Annotationsidentifizierer einer anderen Aufzeichnung ist, wobei wenigstens einiges der Nichtwurzelaufzeichnungen weiterhin ein Annotationstag enthält.
  • Die Wurzelaufzeichnung kann weiterhin eine Indizierung bzw. Anzeige eines Sprechers für den Dialogakt enthalten. Die Wurzelaufzeichnung und wenigstens einiges der Vielzahl von Nichtwurzelaufzeichnungen können weiterhin eine Anzeige eines Sprechers für den Dialogakt enthalten. Das Annotationstag kann aus der Gruppe ausgewählt werden, die ein Tag für einen nachfolgenden Diskurs, einen Dialogakttyp und ein Tag für einen vorherigen Diskurs enthält. Das Annotationstag kann aus der Gruppe ausgewählt werden, die ein Tag für einen nachfolgenden Diskurs, einen Dialogakttyp, einen Dialogfehler und ein Tag für einen vorherigen Diskurs enthält. Die Nichtwurzelaufzeichnungen können ein Annotationstag haben, das ein Tag für einen vorherigen Diskurs darstellt, und enthalten weiterhin einen Annotationsidentifizierer einer anderen Annotationsaufzeichnung, wobei die andere Aufzeichnung ein Annotationstag hat, das ein Tag für einen nachfolgenden Diskurs darstellt. Wenigstens einige der Annotationstags können einen Textbereich darstellen. Wenigstens einer der Dialogakte kann eine durch einen Anwender des Systems durchgeführte Betriebsaktion darstellen. Die Operationen können auch ein Bestimmen umfassen, dass eine erste Nichtwurzelaufzeichnung, die mit einer Wurzelaufzeichnung für einen ersten Gesprächsidentifizierer assoziiert ist, mit einer zweiten Nichtwurzelaufzeichnung verbindet, die mit einer Wurzelaufzeichnung für einen zweiten Gesprächsidentifizierer assoziiert ist, ein Erzeugen einer ersten Nichtwurzelaufzeichnung, die die zweite Nichtwurzelaufzeichnung im Elternidentifizierer identifiziert und ein Annotationstag hat, das einen nachfolgenden Diskurs darstellt, und Erzeugen einer zweiten neuen Nichtwurzelaufzeichnung, die die erste Nichtwurzelaufzeichnung im Elternidentifizierer identifiziert, ein Annotationstag hat, das einen vorherigen Diskurs darstellt, und den Annotationsidentifizierer für die erste neue Nichtwurzelaufzeichnung identifiziert, wobei der erste Gesprächsidentifizierer und die zweiten Gesprächsidentifizierer nicht sequentiell sind.
  • Gemäß bestimmten Aspekten der Offenbarung enthält ein System wenigstens einen Prozessor, eine Dialogeingabevorrichtung, eine Dialogausgabevorrichtung und einen Datenspeicher von hierarchischen Annotationsaufzeichnungen. Die hierarchischen Annotationsaufzeichnungen enthalten Wurzelaufzeichnungen und Nichtwurzelaufzeichnungen. Jede Wurzelaufzeichnung spezifiziert einen Gesprächsidentifizierer und einen Annotationsidentifizierer. Jede Nichtwurzelaufzeichnung enthält einen Annotationsidentifizierer und einen Eltemidentifizierer, wobei der Elternidentifizierer ein Annotationsidentifizierer einer anderen Aufzeichnung ist. Wenigstens einige der Nichtwurzelaufzeichnungen enthalten weiterhin ein Annotationstag. Das System enthält auch einen Speicher, der Anweisungen speichert, die dann, wenn sie durch den wenigstens einen Prozessor ausgeführt werden, Operationen durchführen. Die Operationen können ein Empfangen eines eingegebenen Dialogakts von der Dialogeingabevorrichtung enthalten, ein Erzeugen einer ersten neuen Wurzelaufzeichnung und von ersten Nichtwurzelaufzeichnungen für den eingegebenen Dialogakt, ein Empfangen eines ausgegebenen Dialogakts zur Ausgabe über die Dialogausgabevorrichtung, die auf den eingegebenen Dialogakt antwortet, und ein Erzeugen einer zweiten neuen Wurzelaufzeichnung und von zweiten Nichtwurzelaufzeichnungen für den ausgegebenen Dialogakt, wobei wenigstens eine der zweiten Nichtwurzelaufzeichnungen ein Annotationstag enthält, das zurück zu einer Aufzeichnung der ersten Nichtwurzelaufzeichnungen verbindet. Ein Zurückverbinden zu einer Aufzeichnung der ersten Nichtwurzelaufzeichnungen kann ein Erzeugen der Aufzeichnung mit einem Tag für einen nachfolgenden Diskurs enthalten, wobei die Aufzeichnung einen Elternidentifizierer einer existierenden ersten Nichtwurzelaufzeichnung hat. Das Annotationstag kann aus der Gruppe ausgewählt werden, die ein Tag für einen nachfolgenden Diskurs, einen Dialogakttyp und ein Tag für einen vorherigen Diskurs enthält. Wenigstens einige der ersten Nichtwurzelknoten können ein Tag enthalten, das einen Textbereich des eingegebenen Dialogakts darstellt.
  • Bei einem allgemeinen Aspekt enthält ein Computerprogrammprodukt, das auf einer computerlesbaren Speichervorrichtung enthalten ist, Anweisungen, die dann, wenn sie durch wenigstens einen in einem Substrat ausgebildeten Prozessor ausgeführt werden, veranlassen, dass eine Computervorrichtung irgendetwas der offenbarten Verfahren, Operationen oder Prozesse durchführt. Bei einem weiteren allgemeinen Aspekt umfasst ein System wenigstens einen Prozessor und einen Speicher, der Anweisungen speichert, die dann, wenn sie durch den wenigstens einen Prozessor ausgeführt werden, Operationen gemäß den Verfahren, Operationen oder Prozessen durchführen, wie sie oben offenbart sind. Ein weiterer allgemeiner Aspekt enthält ein System und/oder ein Verfahren zum Annotieren von Dialogakten, wie es im Wesentlichen gezeigt ist in, und/oder beschrieben ist in Verbindung mit, wenigstens einer der Figuren und wie es in den Ansprüchen vollständiger dargelegt ist.
  • Eine oder mehrere der Implementierungen des hierin beschriebenen Gegenstands können implementiert werden, um einen oder mehrere der folgenden Vorteile zu realisieren. Beispielsweise können, weil die Annotationsstruktur eher Elternidentifizierer als Kinder enthält, zusätzliche Annotationen in Echtzeit hinzugefügt werden und können die Dialogakte in einer ungeordneten Liste gespeichert werden. Die zusätzlichen Annotationen können mit einem Gespräch verbinden, das über eine lange Periode, z.B. Tage, hinweg stattfindet. Weil die Liste ungeordnet ist, können Annotationen durch mehrere Aufrufe eines Dialogmanagers hinzugefügt werden, was die Struktur flexibel macht. Die Struktur unterstützt auch ein Anfragen über Annotationstags, weil das System Wechselbeziehungen zwischen dem System und einem Anwender auf eine äußerst strukturierte Weise erfasst. Somit können beispielsweise die Annotationsaufzeichnungen für alle Fragen angefragt werden, die mit einer Antwort von „ja/nein“ beantwortet sind, wobei der Anwender auch ein verbales Seufzen ausdrückte (was in einem Annotationstag erfasst werden kann), und können, unter Verwendung der Elternverbindungen, die Dialogakte in Bezug auf diese Antworten schnell identifiziert und zurückgebracht werden. Als ein weiteres Beispiel kann eine Anfrage die Aufzeichnungen verwenden, um alle aufgegebenen Gespräche zu identifizieren, z.B. ein Tag für einen nachfolgenden Diskurs, das kein Tag für einen vorherigen Diskurs hat. Diese Gespräche können zu einem Modell geliefert werden, das ein Muster für die Gespräche identifiziert. Das Muster kann zu Entwicklern geliefert werden, um Bereiche zu identifizieren, wo die Dialogakte des elektronischen Assistenten verbessert werden können.
  • Als ein weiteres Beispiel stellt die hierarchische Struktur durch Vermeiden einer Duplizierung von Annotationen einen geringeren Speicherbedarf zur Verfügung. Beispielsweise kann eine Annotation, die für mehrere Kinder im Baum gilt, eher einmal bei den gemeinsamen Eltern als bei jedem Knoten gespeichert werden. Als ein weiteres Beispiel sind die hierarchischen Annotationsaufzeichnungen theoretisch fehlerfrei und semantisch korrekt. Dies lässt zu, dass Implementierungen robust gegenüber irgendeiner Art von Dialog sind, was entgegengesetzt dazu ist, auf systembetriebene Dialoge beschränkt zu sein. Anders ausgedrückt ermöglichen die hierin offenbarten hierarchischen Annotationsaufzeichnungen, die maschinenlesbare Semantiken an Dialogakte anhängen, eine Verarbeitung von Gesprächen mit hoher Genauigkeit. Beispielsweise ermöglicht die hierarchische Struktur, dass das System Teile des Dialogakts genau bestimmt, die spezifischen Annotationen entsprechen. Somit können beispielsweise unterschiedliche Teile eines komplexen, zusammengesetzten Dialogakts präzis annotiert werden. Diese Präzision erstreckt sich auf die Fähigkeit, vorherige Annotationen zu identifizieren, auf welche sich ein Teil des Dialogakts bezieht. Darüber hinaus können die Annotationen frei definiert werden. Anders ausgedrückt kann, während das System Annotationen basierend auf theoretischen Definitionen unterstützt, es auch Annotationen unterstützen, die durch einen spezifischen Dialogmanager erzeugt sind, was sie flexibel und auf Kundenbedürfnisse anpassbar macht, was ein flexibles Anfragen und Trainieren unterstützt. Als ein weiteres Beispiel lässt das hierarchische Annotationsschema auch zu, dass verschiedene Annotationen rückwärtsverbunden werden, was eine einfachere Nachverarbeitung und Datensammlung ermöglicht. Dies kontrastiert mit einer Dialogmetrikverfolgung, die auf einer Runde-für-Runde-Basis unter der Annahme durchgeführt wird, dass Dialogakte sequentiell sind, z.B. ein Dialogakt bei der N+1-Runde ist direkt bezogen auf den Dialogakt der N-Runde. Die ungeordnete Listennatur von offenbarten Implementierungen lässt zu, dass ein Dialogakt bei der N+1-Runde mit irgendeiner Runde < N (z.B. nicht sequentiell) verbunden wird. Dies ermöglicht eine Erzeugung von quantitativen Metriken für Konzepte, wie beispielsweise „Auf welche vorherige Interaktion bezieht sich der aktuelle Dialogakt eines Anwenders?“ und „Wie lange ist diese Bezugnahme her?“ in Echtzeit, sowie um Vorwärtsreferenzen in einer Retrospektive zu analysieren, z.B. ein Identifizieren für irgendeinen historischen Dialogakt von nachfolgenden Dialogakten, die auf den historischen Akt insgesamt oder teilweise bezogen sind. Solche Vorwärtsreferenzen sind aufgrund der ungeordneten Listennatur von offenbarten Implementierungen möglich.
  • Als ein weiteres Beispiel bieten Implementierungen ein hohes Maß an Präzision, was zum richtigen Messen von Qualität wichtig ist. Es wird auch erkannt werden, dass eine verbesserte Vorrichtungsleistungsfähigkeit eine Facette der obigen Beschreibung ist. Beispielsweise macht die hierarchische Organisation von Annotationen für einen Dialog den Dialog durchsuchbar, z.B. über eine Suchanfrage über den Baum, und reduziert die Notwendigkeit, große Körper eines Dialogs für solche Annotationen zu durchsuchen. Eine hierarchische Annotation von Dialogakten stellt auch ein Kontextframework für diese Annotationen zur Verfügung, dessen Entwicklung sonst für den Vorrichtungsprozessor nicht möglich wäre. Dies reduziert Anforderungen an Rechenressourcen, eine Speichernutzung und eine Batterienutzung in einer Client-Vorrichtung oder einer lokalen Vorrichtung. In Fällen, in welchen eine Vorrichtung in einem Client-Servermodus betrieben wird, reduziert dies auch die Anforderung an eine Client-Server-Kommunikation und eine Datennutzung.
  • Die Details von einer oder mehreren Implementierungen sind in den beigefügten Zeichnungen und der nachstehenden Beschreibung dargelegt. Andere Merkmale werden aus der Beschreibung und den Zeichnungen und aus den Ansprüchen offensichtlich werden.
  • Figurenliste
    • 1 ist ein Blockdiagramm, das ein beispielhaftes System gemäß dem offenbarten Gegenstand darstellt.
    • 2 ist ein Blockdiagramm, das ein weiteres beispielhaftes System gemäß dem offenbarten Gegenstand darstellt.
    • 3 ist ein Blockdiagramm, das ein Beispiel von anfänglichen Annotationsbäumen für zwei Dialogakte bei einem Gespräch gemäß dem offenbarten Gegenstand darstellt.
    • 4 ist ein Blockdiagramm, das ein Beispiel von schließlichen Annotationsbäumen für die Dialogakte der 3 gemäß dem offenbarten Gegenstand darstellt.
    • 5 ist ein Blockdiagramm, das beispielhafte hierarchische Annotationsaufzeichnungen, die aus der schließlichen baumbasierten Annotation der 4 erzeugt sind, gemäß dem offenbarten Gegenstand darstellt.
    • 6 stellt ein Ablaufdiagramm eines beispielhaften Prozesses zum Erzeugen von Aufzeichnungen in einer hierarchischen Annotationsstruktur von Gesprächs-Dialogakten gemäß offenbarten Implementierungen dar.
    • 7 zeigt ein Beispiel einer Computervorrichtung, die verwendet werden kann, um die beschriebenen Techniken zu implementieren.
    • 8 zeigt ein Beispiel einer verteilten Computervorrichtung, die verwendet werden kann, um die beschriebenen Techniken zu implementieren.
  • Gleiche Bezugszeichen in den verschiedenen Zeichnungen zeigen gleiche Elemente an.
  • DETAILLIERTE BESCHREIBUNG
  • Implementierungen enthalten Systeme und Verfahren, die hierarchische Annotationen für Dialogakte bei einem Gespräch zwischen einem Anwender und einem elektronischen Assistenten erzeugen, der ein Suchen und eine Verbesserung der Qualitätsaspekte des elektronischen Assistenten ermöglicht, wie beispielsweise eine Rangbildung, ein Bestimmen von Engpässen und ein Bestimmen davon, welche durch das System gelieferten Dialogakte veranlassen, dass der Anwender das Gespräch beendet, z.B. um aufgrund von Frustration auszusteigen. 1 ist ein Blockdiagramm eines dialogorientierten hierarchischen Annotationssystems gemäß einer beispielhaften Implementierung. Das System 100 kann verwendet werden, um Annotationsaufzeichnungen in einem flexiblen hierarchischen Schema zu erzeugen. Die Darstellung des Systems 100 in 1 ist eine einzige Computervorrichtung, aber Implementierungen können auch einige der Komponenten zu einem Server bewegen, was das System 100 zu einem Client-Server-System macht, wie es detaillierter in 2 dargestellt ist. Zusätzlich können eine oder mehrere Komponenten in ein einziges Modul oder eine einzige Maschine kombiniert werden und können einige Fähigkeiten der dargestellten Komponenten durch separate Maschinen durchgeführt werden. Bei einigen Implementierungen kann ein Anwender der Computervorrichtung anzeigen, dass Teilbereiche der Verarbeitung bei einem Server durchgeführt werden. Der Anwender kann auch kontrollieren, ob die hierarchischen Annotationsaufzeichnungen gespeichert werden und wo eine solche Speicherung erfolgt. Somit sind Implementierungen nicht auf die dargestellten exakten Konfigurationen beschränkt.
  • Das hierarchische Annotationssystem 100 enthält eine Computervorrichtung 105. Die Computervorrichtung kann in einem Personalcomputer implementiert sein, wie beispielsweise einem Laptop-Computer, einem Smartphone, einem Tablet, einem Desktop-Computer, einer tragbaren Vorrichtung, einem Haushaltsgerät, etc. Die Computervorrichtung 105 kann ein Beispiel einer Computervorrichtung 700 sein, wie es in 7 gezeigt ist. Die Computervorrichtung 105 kann einen oder mehrere in einem Substrat (nicht dargestellt) ausgebildete Prozessoren enthalten, die konfiguriert sind, um eine oder mehrere maschinenausführbare Anweisungen oder Teilstücke von Software, Firmware oder einer Kombination davon auszuführen. Die Prozessoren können auf einem Halbleiter basieren - das heißt, dass die Prozessoren Halbleitermaterial enthalten können, das eine digitale Logik durchführen kann. Die Computervorrichtung 105 kann auch einen oder mehrere Computerspeicher enthalten. Die Speicher, wie beispielsweise ein Hauptspeicher, können konfiguriert sein, um ein oder mehrere Teilstücke von Daten entweder temporär, permanent, semipermanent oder aus einer Kombination davon zu speichern. Die Speicher können irgendeinen Typ einer Speichervorrichtung enthalten, die Information in einem Format speichert, das durch den einen oder die mehreren Prozessoren gelesen und/oder ausgeführt werden kann. Die Speicher können einen flüchtigen Speicher, einen nichtflüchtigen Speicher oder eine Kombination davon enthalten und Module oder Maschinen speichern, die dann, wenn sie durch den einen oder die mehreren Prozessoren ausgeführt werden, bestimmte Operationen durchführen. Bei einigen Implementierungen können die Module in einer externen Speichervorrichtung gespeichert sein und in den Speicher der Computervorrichtung 105 geladen werden.
  • Die Computervorrichtung 105 kann eine Dialog-Eingabe/AusgabeVorrichtung (Dialog-Eingabe/Ausgabe-Vorrichtungen) 110 enthalten. Die Dialog-Eingabe/Ausgabe-Vorrichtungen 110 können Hardware enthalten, die ermöglicht, dass der elektronische Assistent 120 eine Eingabe vom Anwender 180 empfängt oder eine Antwort zum Anwender 180 liefert. Eine Eingabe vom Anwender kann vokal sein, z.B. in der Form von Sprache. Eine Eingabe vom Anwender kann auch nicht vokal sein, z.B. Text, der durch den Anwender geliefert ist. Die Ausgabe kann gleichermaßen sprachbasiert oder textbasiert sein. Allgemeine Dialog-Eingabe/Ausgabe-Vorrichtungen enthalten ein Mikrofon und einen Lautsprecher, und/oder eine Tastatur (virtuell oder physikalisch) und eine Anzeige. Das hierarchische Annotationssystem 100 wird primär im Zusammenhang mit einer gesprochenen Konversation unter Verwendung eines Mikrofons und eines Lautsprechers diskutiert, aber Implementierungen enthalten andere dialogorientierte Moden, wie beispielsweise diejenigen, die in einer Nachrichtenübermittlungsanwendung gehalten sind.
  • Die Module des hierarchischen Annotationssystems 100 können einen elektronischen Assistenten 120 enthalten. Der elektronische Assistent 120 kann konfiguriert sein, um eine Eingabe von den Dialog-Eingabe/Ausgabe-Vorrichtungen 110 zu erhalten, um die Eingabe zu verarbeiten, und um eine Antwort zu den Dialog-Eingabe/Ausgabe-Vorrichtungen 110 zu liefern. Der elektronische Assistent 120 kann eine Dialogmanagementmaschine 122, eine Sprachmaschine 124 und eine Dialogannotationsmaschine 126 enthalten. Die Sprachmaschine 124 kann einen geeigneten Sprache-zu-Text-Prozess verwenden, um empfangene vokale Eingaben in eine Textkette umzuwandeln. Eine nicht vokale Eingabe, die als Text empfangen ist, kann auch zur Sprachmaschine 124 weitergereicht werden (z.B. über ein Tippen einer anderen Textauswahl). Bei einigen Implementierungen kann die nicht vokale Eingabe Text sein, der in einem Bild erkannt wird. Beispielsweise kann ein Anwender 180 eine Fotografie unter Verwendung einer Kamera (nicht dargestellt) aufnehmen, die kommunikativ mit der Computervorrichtung 105 verbunden ist, und das Bild kann zur Sprachmaschine 124 geliefert werden. Beispielsweise kann die Sprachmaschine 124 eine Erkennung auf dem Bild durchführen, um Text zu entdecken, um als Eingabe verwendet zu werden. Bei einigen Implementierungen kann die nicht vokale Eingabe eine Entität sein, die im Bild erkannt wird. Beispielsweise kann die Sprachmaschine 124 eine Entitätserkennung auf dem Bild durchführen, um eine Entität aus einer Wissensbasis zu bestimmen, die im Bild enthalten ist, und eine Beschreibung der Entität als Texteingabe verwenden. Die Eingabe, gleichgültig ob vokal oder nicht vokal, wird Dialogakt genannt. Ein Dialogakt enthält eine vokale Eingabe, eine nicht vokale Eingabe oder eine Kombination aus vokaler und nicht vokaler Eingabe. Ein Dialogakt kann auch Betriebsaktionen enthalten, die durch einen Anwender durchgeführt sind. Beispielsweise kann eine Ausschalttaste ein Dialogakt sein. Eine durch den elektronischen Assistenten 120 gelieferte Ausgabe ist auch ein Dialogakt. Die Sprachmaschine 124 kann den ausgegebenen Dialogakt zu einer Klangdatei umwandeln, die durch die Eingabe/Ausgabe-Vorrichtungen 110 abgespielt werden kann, oder kann Text des Dialogakts zur Anzeige auf den Eingabe/Ausgabe-Vorrichtungen 110 liefern.
  • Die Dialogmanagementmaschine 122 kann einen oder mehrere Dialoge managen. Dies enthält ein Beibehalten eines Zustands des Dialogs, z.B. welche Frage gerade beantwortet wird, so dass der elektronische Assistent 120 empfangenes Audio, das mit dem Dialog assoziiert ist, richtig interpretieren kann. Insbesondere kann die Genauigkeit des elektronischen Assistenten 120 beim richtigen Interpretieren von empfangenem Audio durch ein Wissen diesbezüglich verbessert werden, welcher Typ von Antwort durch den Anwender 180 angefordert ist. Beispielsweise kann die Dialogmanagementmaschine 122 bestimmen, dass der Anwender angefordert hat, dass eine Aufgabe durchgeführt wird. Die Dialogmanagementmaschine 122 kann auch einen Maschinenlernalgorithmus enthalten, der ein Gespräch mit dem Anwender führen kann, z.B. durch Erzeugen einer dialogorientierten Antwort, die nicht auf eine spezifische Aufgabe reagiert bzw. antwortet. Die Dialogmanagementmaschine 122 kann herkömmliche oder später entwickelte Techniken verwenden, um eine Antwort zum Anwender zu erzeugen. Wie es oben angezeigt ist, wird die Antwort auch als ein Dialogakt angesehen.
  • Gleichgültig, ob ein Dialogakt vom Anwender 180 oder von der Dialogmanagementmaschine 122 ist, annotiert der elektronische Assistent 120 den Dialogakt, um wichtige Charakteristiken des Dialogakts zu markieren, wie beispielsweise, ob der Dialogakt eine Anfrage, eine Behauptung, eine Antwort auf eine Anfrage, nicht verständlich, etc. ist. Ein Beispiel eines Systems zum Annotieren von Dialogen ist DAMSL (Dialog Act Markup in Several Layers = Dialogaktmarkierung in mehreren Schichten). Das Folgende stellt zwei Dialogakte von einem Probedialog zwischen einem Anwender und einem elektronischen Assistenten dar:
    • [Anwender] Wie geht es Dir heute?
    • [ea] Ausgezeichnet. Es geht mir gut. Wie geht es Dir?
  • Der elektronische Assistent 120 kann die Dialogakte wie folgt annotieren:
 U:[Wie geht es Dir heute?]
      DAE:<>
      DAT: AUFGABE 



      SD: INFO_ANFRAGE
      PD: <>
 EA:[Ausgezeichnet. Es geht mir gut. Wie geht es Dir?]
      EA:[Ausgezeichnet]
            DAE:<>
            DAT:AUFGABE
            SD:AUSSAGE_AKTIVIEREN
            PD:ANTWORT
      EA:[Es geht mir gut.]
            DAE:<>
            DAT:AUFGBE
            SD: AUSSAGE_REAKTIVIEREN
            PD:ANTWORT
      EA:[Wie geht es Dir?]
            DAE:<>
            DAT:AUFGABE
            SD:INFO_ANFRAGE
            PD:<>
  • Beim obigen Annotationsbeispiel stellt DAE ein Dialogaktfehler-Tag dar, das Fehlerinformation aufzeichnet, wie beispielsweise, ob der Dialogakt verständlich ist und ob der Dialogakt erfolgreich beendet wurde. DAT stellt ein Dialogakttyp-Tag dar, das den Semantikinhalt des Dialogakts charakterisiert. SD ist ein Tag für einen nachfolgenden Diskurs, das den Effekt erfasst, den der Dialogakt auf nachfolgende Interaktionen haben kann, und/oder die zukünftigen Vorstellungen und Aktionen der Teilnehmer beschränkt. PD ist ein Tag für einen vorherigen Diskurs, das eine Anzeige davon ist, wie der aktuelle Dialogakt auf einen vorherigen Diskurs bezogen ist. Bei der obigen Annotation kann jeder Dialogakt (auf den auch als Äußerung Bezug genommen wird, obwohl der Dialogakt nicht auf vokale Eingaben beschränkt ist und maschinengeschriebene oder Erkennungseingaben enthalten kann, wie es oben beschrieben ist) in einen oder mehrere untergeordnete Dialogakte (z.B. Unteräußerung) basierend auf den Charakteristiken von unterschiedlichen Teilbereichen des Dialogakts aufgeteilt sein. Somit ist beispielsweise die Antwort des elektronischen Assistenten in drei untergeordnete Dialogakte aufgeteilt. Der erste ist eine aktivierte bzw. nachdrückliche Aussage, der zweite ist eine reaktivierte bzw. wieder behauptete Aussage und der dritte ist eine Informationsanfrage.
  • Implementierungen können irgendein Annotationsschema verwenden und sind nicht auf die Verwendung der Annotationstags oder des dargestellten Annotationsschemas beschränkt. Beispielsweise können Implementierungen interne Information darüber enthalten, wie das System eine Antwort für den elektronischen Assistenten erzeugte. Implementierungen können auch Annotationen enthalten, die Verbindungen zu externen Ressourcen darstellen, die verwendet wurden, wenn die Anwendereingabe interpretiert ist oder wenn die Systemantwort erzeugt ist. Annotationen können Attribute über die Umgebung enthalten, z.B. ob es laut oder ruhig war, ob die Eingabe vokal oder nicht vokal war, etc. Annotationen können irgendein Tag- und Wertepaar sein, das auf das gesamte oder einen Teilbereich des Dialogakts abgebildet ist. Annotationen (das Tag und seine möglichen Werte) können eindeutig für einen bestimmten Dialogmanager innerhalb des elektronischen Assistenten 120 und durch diesen definiert sein. Bei einigen Implementierungen können unterschiedliche Dialogmanager, die mit dem elektronischen Assistenten 120 arbeiten, unterschiedliche Annotationen definieren.
  • Der elektronische Assistent 120 kann eine Dialogannotationsmaschine 126 enthalten, die die Annotationen verwenden kann, um eine hierarchische Darstellung zu erzeugen, die in einer maschinenlesbaren Form als hierarchische Annotationsaufzeichnungen 140 gespeichert werden kann. Diese hierarchische Darstellung kann verwendet werden, um Einblicke für den elektronischen Assistenten 120 abzuleiten, um die Qualität der Dialogakte, die durch den elektronischen Assistenten 120 geliefert sind, im Verlaufe der Zeit zu verbessern. Der Betrieb der Dialogannotationsmaschine 126 kann durch den Anwender 180 gesteuert werden. Beispielsweise kann die Dialogannotationsmaschine 126 nur mit einer Erlaubnis des Anwenders arbeiten. Die mit der Erlaubnis des Anwenders erzeugten hierarchischen Annotationsaufzeichnungen 140 können verwendet werden, um die Dialogmanagementmaschine 122 zu trainieren, was eine personalisierte Maschine erzeugt, die spezifisch für den Anwender ist und seine oder ihre Art eines Interagierens mit dem elektronischen Assistenten erkennt. Ein solches personalisiertes Trainieren der Dialogmanagementmaschine 122 liefert Antworten höherer Qualität vom elektronischen Assistenten 120. Beispielsweise können die hierarchischen Annotationsaufzeichnungen 140 verwendet werden, um Dialoge zu identifizieren, bei welchen Anwender häufig mehrere klärende Fragen vor einem Fortschreiten fragen. Ein Identifizieren von solchen „Gefahrenherden“ kann zu einem Verbessern der Benutzerführung des elektronischen Assistenten führen, so dass die klärenden Fragen nicht nötig sind. Bei einigen Implementierungen können annotierte Dialogaufzeichnungen zu einem Maschinenlernalgorithmus geliefert werden, der trainiert ist, um solche „Gefahrenherde“ zu identifizieren und eine geeignete Lösung für die Benutzerführung vorzuschlagen oder zu erzeugen. Bei einigen Implementierungen kann ein Maschinenlernalgorithmus verwendet werden, um Vorwärtsreferenzen zu identifizieren, z.B. für einen bestimmten Dialogakt, ein oder mehrere nachfolgende Dialogakte, die sich insgesamt oder teilweise auf den bestimmten Dialogakt zurückbeziehen. Das System 100 kann auch hierarchische Annotationsaufzeichnungen 140 quer über viele Anwender anhäufen bzw. vereinigen, um allgemeine Qualitätsverbesserungen voranzutreiben. Das System 100 kann auch die hierarchischen Annotationsaufzeichnungen 140 verwenden, um eine hilfreichere graphische Anwenderschnittstelle zu erzeugen, die dem Anwender anzeigt, dass es für einen Teil der Systemantwort beabsichtigt ist, dass sie sich auf einen vorherigen Dialogakt zurückbezieht, selbst wenn er nicht direkt der Antwort vorangegangen war.
  • Um die hierarchischen Annotationsaufzeichnungen 140 zu erzeugen, kann die Dialogannotationsmaschine 126 mit der annotierten Äußerung starten und einen Knoten für jede Äußerung, jede Unteräußerung und jedes Annotations-Flag zu erzeugen. Dies erzeugt eine baumbasierte Struktur für die Äußerung. 3 stellt ein Blockdiagramm eines beispielhaften Annotationsbaums 305 der beispielhaften Anwenderäußerung und einen Annotationsbaum 320 für die Äußerung des elektronischen Assistenten dar, die oben offenbart sind. Beim Beispiel der 3 sind alle Annotationstags als Blattknoten der Äußerung oder der Unteräußerung aufgelistet, zu denen sie gehören. Die Dialogannotationsmaschine 126 kann irgendwelche Blattknoten entsprechend Annotationstags von Null abschneiden. Beim Beispiel der 3 sind alle DAE-Annotationstags leer und ihre entsprechenden Knoten würden entfernt werden oder würden niemals erzeugt werden. Gleichermaßen sind die Tags für einen vorherigen Diskurs (PD), die mit dem Äußerungsknoten 310 und dem Unteräußerungsknoten 340 assoziiert sind, Null und würden abgeschnitten werden. Zusätzlich kann die Dialogannotationsmaschine 126 irgendwelche Blattknoten für Annotationstags, die für alle Kinder gemeinsam sind, zu den Eltern bewegen. Weil das DAT-Tag für Unteräußerungsknoten 330, 335 und 340 für jedes Kind gilt, kann die Dialogannotationsmaschine 126 den Blattknoten bis zu einer Ebene zum Elternäußerungsknoten 325 bewegen. Bei einigen Implementierungen kann die Dialogannotationsmaschine 126 eine Unteräußerung erzeugen, wenn einige, aber nicht alle, Kinder ein Annotations-Flag gemeinsam haben. Beispielsweise nutzen der Unteräußerungsknoten 330 und der Unteräußerungsknoten 335 beide ein Tag für einen vorherigen Diskurs gemeinsam, der sich zurück auf denselben Untersuchungsknoten bezieht. Bei einigen Implementierungen kann die Dialogannotationsmaschine 126 eine Ebene zum Baum hinzufügen, was den Knoten 330 und den Knoten 335 zu Kindern an einem gemeinsamen Elternunteräußerungsknoten macht, der ein Kind des Knotens 325 ist. Das gemeinsame Tag, PD, kann ein Blattknoten des gemeinsamen Elternknotens werden. Die schließlichen Annotationsbäume 305 und 320 sind in 4 dargestellt.
  • Wie es in 4 dargestellt ist, hat der Elternknoten 325 des Baums 320 einen DAT-Tag-Knoten als einen Blattknoten, was bedeutet, dass er für alle Unteräußerungsknoten für die Eltern gilt. Der Unteräußerungsknoten 345 ist eingefügt worden und steht für die Eltern der Unteräußerungsknoten 330 und 335. Der Blattknoten für das Tag für einen vorherigen Diskurs ist mit dem Unteräußerungsknoten 345 assoziiert, so dass es für sowohl den Unteräußerungsknoten 330 als auch den Unteräußerungsknoten 335 gilt. Alle Blattknoten entsprechend Null oder leeren Tags sind entfernt worden. Zusätzlich hat die Dialogannotationsmaschine 126 eine Verbindung 405 vom Knoten für einen vorherigen Diskurs zum Knoten für einen nachfolgenden Diskurs, der ihm entspricht, hinzugefügt. Somit hat die Dialogannotationsmaschine 126 die zwei Bäume in dem Zusammenhang des Gesprächs verbunden. Natürlich würde dann, wenn die Unteräußerung 335 demselben Knoten für einen nachfolgenden Diskurs als Unteräußerung 330 nicht entsprach, der Knoten 345 nicht erzeugt werden und würden der Knoten 330 und der Knoten 335 ihre jeweiligen PD-Knoten halten. Bei diesem Beispiel fügt die Dialogannotationsmaschine 126 eine zweite Verbindung hinzu, die den PD-Knoten des Unteräußerungsknotens 335 mit seinem entsprechenden SD-Knoten verbindet. Wie es die Annotationsbäume der 3 und 4 darstellen, zeigen die Pfeile von den Kindern zu den Eltern nach oben. Diese Bezugnahme auf Eltern lässt zu, dass die Annotationen als eine ungeordnete Liste aufbewahrt werden. Dies wird durchgeführt, um die Fähigkeit für Annotationen zu unterstützen, in Echtzeit hinzugefügt zu werden, und um die Fähigkeit zu unterstützen, auf andere Annotationen zu zeigen, wie z.B. die Verbindung 405. Wenn jeder Knoten eine Bezugnahme auf die Kinder enthielt, würden diese Merkmale nicht verfügbar sein. Die Wurzel eines Annotationsbaums ist ein Knoten ohne Eltern.
  • Die Dialogannotationsmaschine 126 kann die Annotationsbäume verwenden, um eine angeordnete Liste von Annotationsaufzeichnungen zu erzeugen. 5 ist ein Blockdiagramm, das beispielhafte hierarchische Annotationsaufzeichnungen darstellt, die von der schließlichen baumbasierten Annotation der 4 gemäß dem offenbarten Gegenstand erzeugt sind. Die hierarchischen Annotationsaufzeichnungen der 5 sind Beispiele von hierarchischen Annotationsaufzeichnungen 140 der 1 und der 2. Jede Aufzeichnung kann in Abhängigkeit von ihrer Funktion im Baum unterschiedliche Attribute haben. Bei einigen Implementierungen können die Aufzeichnungen, die den Wurzelknoten (z.B. ID={1111} und ID={1112}) eines Annotationsbaums darstellen, einen Gesprächsidentifizierer 505 enthalten. Der Gesprächsidentifizierer kann durch den elektronischen Assistenten 120 zu Beginn des Gesprächs erzeugt werden. Dieser Identifizierer kann für die Lebensdauer des Gesprächs verwendet werden. Ein Gespräch kann unterschiedlich durch unterschiedliche elektronische Assistenten definiert sein und kann kontextbasiert sein. Die Dialogannotationsmaschine 126 verwendet den durch den elektronischen Assistenten 120 gelieferten Gesprächsidentifizierer. Die Dialogannotationsmaschine 126 protokolliert den Gesprächsidentifizierer einmal für jede Runde. Somit kann der Gesprächsidentifizierer im Wurzelknoten des Annotationsbaums enthalten sein, weil der Annotationsbaum eine Runde im Gespräch darstellt. Der Gesprächsidentifizierer könnte auch in jeder Annotationsaufzeichnung gespeichert werden, obwohl dies zusätzliche Speicherressourcen verwendet, aber einige Anfragen beschleunigen könnte. Bei einigen Implementierungen ist der Gesprächsidentifizierer nicht in irgendwelchen Annotationsaufzeichnungen enthalten.
  • Jeder Wurzelknoten kann auch eine Anzeige des Sprechers enthalten. Jeder Baum stellt eine Runde oder einen Dialogakt dar, der durch einen der Sprecher beim Gespräch genommen ist. Um Speicher zu sparen, kann der Sprecheridentifizierer nur im Wurzelknoten enthalten sein, der den gesamten Dialogakt darstellt, obwohl der Sprecher bei einigen Implementierungen in untergeordneten Akten ebenso gut identifiziert werden kann. Ein Enthaltensein des Sprechers in jedem Knoten verwendet mehr Speicherressourcen, kann aber in einer verbesserten Anfrageverarbeitungsgeschwindigkeit resultieren. Ob der Sprecher oder andere Charakteristiken allgemein bzw. gemeinsam eher in jedem Knoten enthalten sein sollen als im Elternknoten, ist ein Kompromiss zwischen einer Speichemutzung und einer Anfragegeschwindigkeit. Jeder Knoten im Annotationsbaum (z.B. Äußerung, Unteräußerung oder Tag) empfängt auch einen eindeutigen Identifizierer, der nur innerhalb des Gesprächs eindeutig sein muss. Somit hat jede Annotationsaufzeichnung einen ID, der für die Aufzeichnung eindeutig ist. Dieser Identifizierer wird in Echtzeit erzeugt, z.B. wenn das Gespräch andauert, und auf ihn wird als der Annotationsidentifizierer Bezug genommen. Aufzeichnungen für Knoten, die nicht der Wurzelknoten sind, haben jeweils einen Elternidentifizierer, der den Annotationsidentifizierer des Elternknotens enthält. Schließlich enthält jede Aufzeichnung, die nicht ein Wurzelknoten ist, Attribute, die den Knoten identifizieren. Beispielsweise zeigt die Aufzeichnung mit einem Annotationsidentifizierer 1113 an, dass der Knoten für ein DAT-Tag ist, und enthält den Wert des DAT-Tags. Gleichermaßen zeigt die Aufzeichnung mit einem Annotationsidentifizierer 1116 an, dass der Knoten für ein Tag für einen vorherigen Diskurs (PD) ist, und enthält den Wert für dieses Tag. Zusätzlich enthält der Knoten den Annotationsidentifizierer des Knotens für einen nachfolgenden Diskurs, der dem Tag für einen vorherigen Diskurs entspricht. Anders ausgedrückt wird die Verbindung 405 der 4 zwischen der Antwort (PD) und der Anfrage (SD) im PD-Knoten als der Annotationsidentifizierer des entsprechenden SD-Knotens aufgezeichnet. Auf diese Weise erzeugt die Dialogannotationsmaschine 126 eine Struktur, die die Annotationsbäume verbindet und einen Kontext für das Gespräch liefert. Dieser Kontext kann dem elektronischen Assistenten dabei helfen, zu lernen, wie dem Anwender besser zu antworten ist. Wenn beispielsweise ein Anwender auf eine Frage durch den elektronischen Assistenten mit einer Frage antwortet, kann dies ein Anzeichen dafür sein, dass die Frage unklar war. Dieses Wissen kann verwendet werden, um den Dialogfluss in zukünftigen Dialogen zu ändern. Bei einigen Implementierungen kann der Textbereich entsprechend einem Dialogaktknoten oder einem Knoten für einen untergeordneten Dialogakt in der Annotationsaufzeichnung enthalten sein. Ein solches Enthaltensein ist optional. Wie es in 5 dargestellt ist, ist keine Reihenfolge in den Annotationsaufzeichnungen angenommen. Anders ausgedrückt sind die Annotationsaufzeichnungen eine ungeordnete Liste. Das Enthaltensein des Elternidentifizierers ist das, was die hierarchische Struktur entdeckbar macht. Die Annotationsaufzeichnungen können zusätzliche Information enthalten, die nicht in 5 dargestellt ist. Beispielsweise kann ein bestimmter Dialogmanager Information in einem oder mehreren von den Knoten für einen Dialogakt oder einen untergeordneten Dialogakt als Teil einer Erweiterung zum Annotationsschema enthalten. Somit ist die Struktur für verschiedene Dialogaufgaben an Kundenbedürfnisse anpassbar.
  • Wendet man sich wieder der 1 zu, kann die Dialogannotationsmaschine die Annotationsaufzeichnungen, z.B. die in 5 dargestellten Aufzeichnungen, zu einer Datenspeichervorrichtung speichern, wie beispielsweise hierarchische Annotationsaufzeichnungen 140. Die hierarchischen Annotationsaufzeichnungen können dann zum Anfragen oder Trainieren von Modellen für den elektronischen Assistenten 120 verfügbar sein.
  • 2 ist ein Blockdiagramm, das ein weiteres beispielhaftes System gemäß dem offenbarten Gegenstand darstellt. Beim Beispiel der 2 wird irgendetwas von der in Bezug auf 1 oben beschriebenen Funktionalität eher durch einen Server als auf der Computervorrichtung durchgeführt. Das beispielhafte hierarchische Annotationssystem 100 der 2 enthält eine Client-Vorrichtung 205 und einen Server 207. Die Client-Vorrichtung 205 ist ähnlich der Computervorrichtung 105 der 1, enthält aber eher einen Client für einen elektronischen Assistenten 210 als den vollständig funktionsfähigen elektronischen Assistenten 120. Der Client für einen elektronischen Assistenten 210 kann einiges der Funktionalität des elektronischen Assistenten 120 enthalten, wie beispielsweise eine Sprachmaschine 124, die eine Audioeingabe vom Anwender 180 in Text umwandelt. Der Client für eine elektronische Vorrichtung 210 kann die Eingabe vom Anwender zum Server 207 über ein Netzwerk liefern, wie beispielsweise ein Netzwerk 250. Das Netzwerk 250 kann beispielsweise das Internet sein oder das Netzwerk 250 kann ein verdrahtetes oder drahtloses lokales Netz (LAN), ein Weitverkehrsnetz (WAN), etc. sein, das unter Verwendung von beispielsweise Gateway-Vorrichtungen, Bridges, Switches und/oder so weiter implementiert ist. Das Netzwerk 250 kann auch ein zellulares Kommunikationsnetzwerk darstellen. Über das Netzwerk 250 kann der Server 207 mit Client-Vorrichtungen 205 und 208 kommunizieren und Daten zu/von diesen übertragen, und die Client-Vorrichtung 205 kann mit anderen Client-Vorrichtungen 208 (nicht gezeigt) kommunizieren. Die Client-Vorrichtung 208 kann Komponenten ähnlich denjenigen enthalten, die in Bezug auf die Client-Vorrichtung 205 beschrieben sind.
  • Der Server 207 kann eine Computervorrichtung oder -vorrichtungen sein, die die Form einer Anzahl von unterschiedlichen Vorrichtungen annehmen können, wie beispielsweise ein Standardserver, eine Gruppe von solchen Servern oder ein Rackserversystem. Beispielsweise kann der Server 207 auf eine verteilte Weise über mehrere Computervorrichtungen implementiert sein. Zusätzlich kann der Server 207 in einem Personalcomputer implementiert sein, wie beispielsweise einem Laptop-Computer. Der Server 207 kann ein Beispiel einer Computervorrichtung 700 sein, wie sie in 7 gezeigt ist, oder eines Systems 800, wie es in 8 gezeigt ist.
  • Der Server 207 kann einen elektronischen Assistenten 220 enthalten, der wenigstens einiges der Funktionalität des elektronischen Assistenten 120 der 1 enthält. Beispielsweise kann der elektronische Assistent 220 die Dialogannotationsmaschine 126 und die Dialogmanagementmaschine 122 enthalten. Zusätzlich kann der Server 207 die hierarchischen Annotationsaufzeichnungen 140 speichern. Der Server 207 kann über das Netzwerk 250 in Kommunikation mit mehreren Client-Vorrichtungen sein, z.B. der Client-Vorrichtung 205 und der Client-Vorrichtung 208.
  • Das hierarchische Annotationssystem 100 stellt eine beispielhafte Konfiguration dar und Implementierungen können andere Konfigurationen enthalten. Beispielsweise können einigen Implementierungen eine oder mehrere der Komponenten der Dialogannotationsmaschine 126, der Dialogmanagementmaschine 122 und der Sprachmaschine 124 in einem einzigen Modul oder einer einzigen Maschinen kombinieren. Weiterhin können eine oder mehrere der Komponenten des elektronischen Assistenten 220 die Dialogannotationsmaschine 126, die Dialogmanagementmaschine 122, die Sprachmaschine 124 und/oder der Client für einen elektronischen Assistenten 220 in eine einzige Maschine kombiniert sein. Zusätzlich können die hierarchischen Annotationsaufzeichnungen über mehrere Computervorrichtungen verteilt sein oder können bei der Client-Vorrichtung 205 gespeichert sein. Somit sind Implementierungen nicht auf die dargestellten exakten Konfigurationen beschränkt.
  • Insoweit das hierarchische Annotationssystem 100 anwenderspezifische Daten sammelt und speichert oder Verwendung von persönlicher Information machen kann, kann den Anwendern eine Gelegenheit zur Verfügung gestellt werden, zu kontrollieren, ob Programme oder Merkmale die Anwenderinformation sammeln, oder zu kontrollieren, ob und/oder wie Inhalt zu empfangen ist, der für den Anwender relevanter sein kann. Zusätzlich können bestimmte Daten auf eine oder mehrere Arten behandelt werden, bevor sie gespeichert oder verwendet werden, so dass persönlich identifizierbare Information entfernt wird. Beispielsweise können Suchaufzeichnungen so behandelt werden, dass keine persönlich identifizierbare Information bestimmt werden kann, und/oder kann ein geographischer Standort eines Anwenders verallgemeinert werden, wo Standortinformation erhalten wird (wie beispielsweise eine Stadt, eine Postleitzahl oder eine Staatenzugehörigkeit), so dass ein bestimmter Standort eines Anwenders nicht bestimmt werden kann. Somit kann der Anwender eine Kontrolle darüber haben, wie Information über den Anwender gesammelt und durch ein hierarchisches Annotationssystem 100 verwendet wird.
  • 6 stellt ein Ablaufdiagramm eines beispielhaften Prozesses 600 zum Erzeugen von Aufzeichnungen in einer hierarchischen Annotationsstruktur von dialogorientierten Dialogakten gemäß offenbarten Implementierungen dar. Der Prozess 600 kann durch ein hierarchisches Annotationssystem durchgeführt werden, wie beispielsweise das System 100 der 1 oder das System 200 der 2. Der Prozess 600 kann verwendet werden, um hierarchische Annotationsaufzeichnungen für einen Dialog zu erzeugen, die einfach gesucht und verwendet werden können, um die Qualität eines elektronischen Assistenten zu verbessern, der an einem Gespräch mit dem Anwender beteiligt ist. Die Reihenfolge der Schritte im Prozess 600 ist beispielhaft und die Reihenfolge kann neu angeordnet werden, einige Schritte können kombiniert werden und einige Schritte können optional sein.
  • Der Prozess 600 kann mit einem annotierten Dialogakt beginnen (605). Der Dialogakt stellt eine Runde dar, die durch einen Sprecher genommen ist, der eine Partei bei einem Gespräch ist. Der Dialogakt kann von einem Anwender oder von einem elektronischen Assistenten entstehen. Die Annotation enthält Tags, die das gesamte oder einen Teil des Dialogakts charakterisieren. Bei einer Implementierung ist die Annotation ähnlich dem DAMSL-Dialogannotationsprotokoll. Das System kann einen Knoten in einem Annotationsbaum für jeden Dialogakt und für jeden untergeordneten Dialogakt erzeugen, was den untergeordneten Dialogakt mit seinen Eltern verbindet (610). Jedem Wurzelknoten kann ein Gesprächsidentifizierer zugeteilt werden, der das Gespräch identifiziert, zu welchem der Dialogakt gehört. Das System kann auch einen Blattknoten für einiges oder alles der Annotationstags erzeugen. Die Annotationstag-Knoten zeigen zu dem Dialogakt oder dem untergeordneten Dialogakt, für welche sie gelten. Das System kann dann, wenn es Knoten für Tags von Null erzeugte, diese Tags vom Annotationsbaum ausschneiden (615). Tags von Null befördern typischerweise keine nützliche Information und müssen nicht verfolgt werden. Das System kann Blattknoten für Annotationstags identifizieren, die für mehr als einen Knoten für einen untergeordneten Dialogakt gelten, und kann den Blattknoten von den Kindern zu den Eltern bewegen (620), um dadurch die Anzahl von Blattknoten zu reduzieren. Wenn beispielsweise jeder untergeordnete Dialogakt einen Knoten hat, der dasselbe Tag und denselben Wert für das Tag darstellt, kann das System den Knoten für das Tag von jedem Kindknoten entfernen und einen jeweiligen Knoten erzeugen, der von dem Elternknoten abhängt. Somit wird beispielsweise der DAT-Knoten von jedem der Knoten für einen untergeordneten Dialogakt 330, 335 und 340 der 3 entfernt, und ein DAT-Knoten wird zum Blatt eines Knotens für einen Dialogakt 325 gemacht, wie es in 4 dargestellt ist. Als ein weiteres Beispiel kann das System einen neuen Knoten für einen untergeordneten Dialogakt erzeugen, wenn zwei oder mehr, aber weniger als alle Kinder eines Knotens für einen Dialogakt oder einen untergeordneten Dialogakt ein Annotationstag mit demselben Wert gemeinsam nutzen. Somit erzeugt das System beispielsweise einen Knoten für einen untergeordneten Dialogakt 345 der 4 und macht den Knoten für einen untergeordneten Dialogakt 330 und den Knoten für einen untergeordneten Dialogakt 345 zu Kindern des Knotens 345, während es auch den PD-Knoten von den Knoten 330 und 335 zum Knoten 345 im Annotationsbaum 320 der 4 bewegt.
  • Das System kann einen Annotationsidentifizierer zu jedem Knoten zuordnen (625), der innerhalb des Gesprächs eindeutig ist. Das System kann auch einen Kindknoten auf seine Eltern abbilden (630), z.B. durch Aufzeichnen des Eltern-Annotationsidentifizierers in Attributen des Kindknotens. Das System kann auch irgendwelche Knoten für einen vorherigen Diskurs mit ihren entsprechenden Knoten für einen nachfolgenden Diskurs in einem anderen Annotationsbaum verbinden (635). Das System kann eine Annotationsaufzeichnung für jeden Knoten erzeugen (640), was die Annotationsaufzeichnungen in einem Datenspeicher speichert. Bei einigen Implementierungen kann das System einen Prozess enthalten, der periodisch läuft, um Information zu den Annotationsaufzeichnungen hinzuzufügen. Beispielsweise kann das System nicht alles der Information haben, das es in Echtzeit benötigt, um die Verbindungen von den Antworten (z.B. den Knoten für einen vorherigen Diskurs) auf ihre entsprechenden Anfragen (z.B. SD-Knoten) herzustellen. Dies kann beispielsweise dann auftreten, wenn ein Anwender einen Kontext in einem Gespräch umschaltet, aber dann zum ursprünglichen Kontext zurückkehrt. Ein Finden der richtigen Anfrage kann mehr Verarbeitungszeit erfordern, als es eine Echtzeit-Verbindung zulassen würde, oder kann in Echtzeit unmöglich sein. Beispielsweise kann sich ein Anwender bei einem aktuellen Dialog auf eine Aufgabe zurückbeziehen, die in einem Dialogakt von der vorherigen Woche enthalten ist. Zu der Zeit, zu welcher die Annotationsaufzeichnung für den Dialogakt der vorherigen Woche geschrieben wurde, kann das SD-Tag (nachfolgender Diskurs) Null gewesen sein oder unterschiedlich charakterisiert gewesen sein. Nur im Nachhinein kann das SD-Tag zum älteren Annotationsbaum hinzugefügt werden. Dieses Beispiel stellt auch die Vorteile der Annotationsaufzeichnungen dar, die eine ungeordnete Liste sind. Weil die Liste ungeordnet ist, kann der periodisch laufende Prozess zusätzliche Annotationen hinzufügen, die im Nachhinein entdeckt sind. Somit kann das System bei einigen Implementierungen eine zusätzliche Analyse auf einer periodischen Basis durchführen (z.B. nächtlich, stündlich, wöchentlich), und zwar in einem „Offline“- oder „Batch“-Modus, um die Verbindungen zu den Annotationsaufzeichnungen hinzuzufügen (Schritt 635). Solche zusätzliche Information kann Annotationen enthalten, die zusätzliche Aktionen anzeigen, die durch den Anwender vorgenommen sind, wie beispielsweise ein Drücken einer Ausschalttaste, um das Gespräch zu beenden. Solche zusätzliche Information kann ein Hinzufügen oder Ändern der Tags für einen Dialogakt enthalten, z.B. ein Hinzufügen eines SD-Tags im Nachhinein. Zusätzlich kann das System bei einigen Implementierungen Probe-Annotationsaufzeichnungen für ein Gespräch zu einem menschlichen Bewerter liefern, der verifiziert, dass die Verbindungen geeignet sind.
  • Die Offline- oder Batch-Verarbeitung kann auch Teil eines Qualitätsanalyseprozesses sein, der Bereiche einer Verbesserung beim durch das System erzeugten Dialog identifiziert, wenn Anwender eine Erlaubnis für eine solche Analyse gegeben haben. Die Labels und die hierarchische Natur der Annotationsaufzeichnungen lassen gezielte, spezifische Anfragen der Aufzeichnungen zu. Beispielsweise können die hierarchischen, ungeordneten Annotationsaufzeichnungen angefragt werden, bestimmte Bereiche eines Fehlers zu identifizieren. Als ein spezifisches Beispiel können die Annotationsaufzeichnungen angefragt werden, die am häufigsten korrigierten Informationsfelder bei einer Aktion zu identifizieren, z.B. aus zehn Datenfeldern in einer Restaurantreservierung zu identifizieren, welches Informationsfeld am häufigsten als Teil der Reservierungsaktion korrigiert wird. Als ein weiteres Beispiel kann die Annotationsaufzeichnungen angefragt werden, Situationen zu identifizieren, wo der Anwender auf eine Frage eher mit einer Frage als einer Aussage antwortet oder mit einer Antwort antwortet, aber in einer Folgefrage fragt. Beispielsweise kann der elektronische Assistent nach einer Reservierungszeit für ein Restaurant fragen und antwortet der Anwender „6 h am Abend, aber haben Sie hohe Stühle?“. Dies zeigt an, dass der Anwender Information über hohe Stühle wünschen kann, die in zukünftigen Reservierungen enthalten ist, insbesondere dann, wenn diese für den Anwender mehr als einmal auftritt. Bei einigen Implementierungen kann eine solche Analyse auf der Anwendervorrichtung stattfinden. Bei einigen Implementierungen können, mit einer Anwendererlaubnis, Annotationsaufzeichnungen, nach einem Entfernen von irgendwelcher persönlich identifizierenden Information, mit einem Server geteilt bzw. gemeinsam genutzt werden, so dass Muster über Anwender hinweg identifiziert werden können. Bei einigen Implementierungen können die Annotationsaufzeichnungen zu maschinengelernten Modellen geliefert werden, um Muster eines Fehlers zu identifizieren, z.B. Assistentenantworten, die zu Fragen, einer Aufgabe bzw. einem Abbruch, oder verbalen Anzeichen eines Ärgers (z.B. ein Seufzen) führen. Ein Identifizieren von diesem Engpass und Fehlermustern kann Entwicklern des elektronischen Assistenten helfen, spezifische Funktionalität im elektronischen Assistenten zu identifizieren und zu verbessern, was Dialogantworten und Interaktionen mit dem Anwender verbessert. Die Verbindungen in den Annotationsaufzeichnungen machen eine solche Analyse möglich.
  • 7 zeigt ein Beispiel einer generischen Computervorrichtung 700, die als Server 110 und/oder Client 150 der 1 betrieben werden kann, welche mit den hier beschriebenen Techniken verwendet werden kann. Die Computervorrichtung 700 soll verschiedene beispielhafte Formen von Computervorrichtungen darstellen, wie beispielsweise Laptops, Desktops, Workstations, persönliche digitale Assistenten, zellulare Telefone, Smartphones, Tablets, Server und andere Computervorrichtungen, einschließlich tragbarer Vorrichtungen. Die hier gezeigten Komponenten, ihre Verbindungen und Beziehungen und ihre Funktionen haben die Bedeutung, dass sie nur Beispiele sind, und haben nicht die Bedeutung, Implementierungen der Erfindungen zu beschränken, die in diesem Dokument beschrieben und/oder beansprucht sind.
  • Die Computervorrichtung 700 enthält einen Prozessor 702, einen Speicher 704, eine Speichervorrichtung 706 und Erweiterungsports 710, die über eine Schnittstelle 708 verbunden sind. Bei einigen Implementierungen kann die Computervorrichtung 700 einen Transceiver 746, eine Kommunikationsschnittstelle 744 und ein GPS-(Globales Positioniersystem-)Empfängermodul 748 unter anderen Komponenten enthalten, die über die Schnittstelle 708 verbunden sind. Die Vorrichtung 700 kann drahtlos über eine Kommunikationsschnittstelle 744 kommunizieren, die eine digitale Signalverarbeitungsschaltung enthalten kann, wo es nötig ist. Jede der Komponenten 702, 704, 706, 708, 710, 740, 744, 746 und 748 kann auf einer gemeinsamen Hauptplatine oder auf andere Weisen, wie es geeignet ist, angebracht sein.
  • Der Prozessor 702 kann Anweisungen zur Ausführung innerhalb der Computervorrichtung 700 verarbeiten, einschließlich Anweisungen, die im Speicher 704 oder auf der Speichervorrichtung 706 gespeichert sind, um graphische Information für eine GUI auf einer externen Eingabe/Ausgabe-Vorrichtung anzuzeigen, wie beispielsweise eine Anzeige 716. Die Anzeige 716 kann ein Monitor oder eine flache Berührungsbildschirmanzeige sein. Bei einigen Implementierungen können mehrere Prozessoren und/oder mehrere Busse verwendet werden, wie es geeignet ist, zusammen mit mehreren Speichern und Typen eines Speichers. Ebenso können mehrere Computervorrichtungen 700 verbunden werden, wobei jede Vorrichtung Teilbereiche der nötigen Operationen zur Verfügung stellt (z.B. als eine Serverbank, eine Gruppe von Bladeservern oder ein Mehrprozessorsystem).
  • Der Speicher 704 speichert Information innerhalb der Computervorrichtung 700. Bei einer Implementierung ist der Speicher 704 eine flüchtige Speichereinheit oder flüchtige Speichereinheiten. Bei einer anderen Implementierung ist der Speicher 704 eine nichtflüchtige Speichereinheit oder nichtflüchtige Speichereinheiten. Der Speicher 704 kann auch eine andere Form eines computerlesbaren Mediums sein, wie beispielsweise eine magnetische oder optische Platte. Bei einigen Implementierungen kann der Speicher 704 einen Erweiterungsspeicher enthalten, der durch eine Erweiterungsschnittstelle zur Verfügung gestellt ist.
  • Die Speichervorrichtung 706 kann einen Massenspeicher für die Computervorrichtung 700 zur Verfügung stellen. Bei einer Implementierung kann die Speichervorrichtung 706 ein computerlesbares Medium sein oder ein solches enthalten, wie beispielsweise eine Floppydisk-Vorrichtung, eine Festplattenvorrichtung, eine optische Plattenvorrichtung oder eine Bandvorrichtung, einen Flash-Speicher oder eine andere ähnliche Festkörperspeichervorrichtung, oder eine Gruppe von Vorrichtungen, einschließlich Vorrichtungen in einem Speicherbereichsnetzwerk oder anderen Konfigurationen. Ein Computerprogrammprodukt kann greifbar in einem solchen computerlesbaren Medium verkörpert sein. Das Computerprogrammprodukt kann auch Anweisungen enthalten, die dann, wenn sie ausgeführt werden, ein oder mehrere Verfahren durchführen, wie beispielsweise diejenigen, die oben beschrieben sind. Das computer- oder maschinenlesbare Medium ist eine Speichervorrichtung, wie beispielsweise der Speicher 704, die Speichervorrichtung 706 oder ein Speicher auf dem Prozessor 702.
  • Die Schnittstelle 708 kann eine Hochgeschwindigkeits-Steuerung sein, die bandbreitenintensive Operationen für die Computervorrichtung 700 managt, oder eine Niedergeschwindigkeits-Steuerung, die Operationen mit weniger Bandbreitenintensität managt, oder eine Kombination von solchen Steuerungen. Eine externe Schnittstelle 740 kann vorgesehen sein, um eine Nahbereichskommunikation der Vorrichtung 700 mit anderen Vorrichtungen zu ermöglichen. Bei einigen Implementierungen kann die Steuerung 708 mit der Speichervorrichtung 706 und dem Erweiterungsport 714 gekoppelt sein. Das Erweiterungsport, das verschiedene Kommunikationsports (z.B. USB, Bluetooth, Ethernet, drahtloses Ethernet) enthalten kann, kann mit einer oder mehreren Eingabe/Ausgabe-Vorrichtungen gekoppelt sein, wie beispielsweise einer Tastatur, einer Zeigevorrichtung, einem Scanner oder einer Netzwerkbildungsvorrichtung, wie beispielsweise einem Switch oder einem Router, z.B. über einen Netzwerkadapter.
  • Die Computervorrichtung 700 kann auf eine Anzahl von unterschiedlichen Formen implementiert sein, wie es in der Figur gezeigt ist. Sie kann beispielsweise als ein Standardserver 730 implementiert sein, oder mehrere Male in einer Gruppe von solchen Servern. Sie kann auch als Teil eines Rackserversystems implementiert sein. Zusätzlich kann sie in einer Computervorrichtung implemontiert sein, wie beispielsweise einem Laptop-Computer 732, einem Personalcomputer 734 oder einem Tablet/Smartphone 736. Ein gesamtes System kann aus mehreren Computervorrichtungen 700 aufgebaut sein, die miteinander kommunizieren. Andere Konfigurationen sind möglich.
  • 8 zeigt ein Beispiel einer generischen Computervorrichtung 800, die ein Server 110 der 1 sein kann, der mit den hier beschriebenen Techniken verwendet werden kann. Die Computervorrichtung 800 soll verschiedene beispielhafte Formen von groß bemaßten Datenverarbeitungsvorrichtungen darstellen, wie beispielsweise Server, Bladeserver, Datenzentren, Großrechner und andere groß bemaßte Computervorrichtungen. Die Computervorrichtung 800 kann ein verteiltes System sein, das mehrere Prozessoren hat, möglicherweise einschließlich an einem Netzwerk angebrachter Speicherknoten, die durch ein oder mehrere Kommunikationsnetzwerke miteinander verbunden sind. Die hier gezeigten Komponenten, ihre Verbindungen und Beziehungen und ihre Funktionen haben die Bedeutung, dass sie nur Beispiele sind, und haben nicht die Bedeutung, Implementierungen der in diesem Dokument beschriebenen und/oder beanspruchten Erfindungen zu beschränken.
  • Ein verteiltes Computersystem 800 kann irgendeine Anzahl von Computervorrichtungen 880 enthalten. Die Computervorrichtungen 880 können einen Server oder Rackserver, Großrechner, etc. enthalten, die über ein lokales Netz oder ein Weitverkehrsnetz, bestimmte optische Verbindungen, Modems, Bridges, Router, Swiches, verdrahtete oder drahtlose Netzwerke, etc. kommunizieren.
  • Bei einigen Implementierungen kann jede Computervorrichtung mehrere Racks enthalten. Beispielsweise enthält die Computervorrichtung 880a mehrere Racks 858a-858n. Jedes Rack kann einen oder mehrere Prozessoren enthalten, wie beispielsweise Prozessoren 852a-852n und 862a-862n. Die Prozessoren können Datenprozessoren enthalten, an einem Netzwerk angebrachte Speichervorrichtungen und andere computergesteuerte Vorrichtungen. Bei einigen Implementierungen kann ein Prozessor als ein Master-Prozessor arbeiten und die Zeitplanungs- und Datenverteilungsaufgaben steuern. Prozessoren können durch einen oder mehrere Rack-Switches 858 miteinander verbunden sein, und ein oder mehrere Racks können durch den Switch 878 verbunden sein. Der Switch 878 kann Kommunikationen zwischen mehreren verbundenen Computervorrichtungen 880 handhaben.
  • Jedes Rack kann einen Arbeitsspeicher enthalten, wie beispielsweise einen Arbeitsspeicher 854 und einen Arbeitsspeicher 864, und einen Speicher, wie beispielsweise 856 und 866. Der Speicher 856 und 866 kann einen Massenspeicher zur Verfügung stellen und kann einen flüchtigen oder nichtflüchtigen Speicher enthalten, wie beispielsweise am Netzwerk angebrachte Platten, eine Floppydisk, Festplatten, optische Platten, Bänder, einen Flash-Speicher oder andere ähnliche Festkörperspeichervorrichtungen oder eine Gruppe von Vorrichtungen, einschließlich von Vorrichtungen in einem Speicherbereichsnetzwerk oder anderen Konfigurationen. Der Speicher 856 oder 866 kann zwischen mehreren Prozessoren, mehreren Racks oder mehreren Computervorrichtungen gemeinsam genutzt werden und kann ein computerlesbares Medium enthalten, das Anweisungen speichert, die durch einen oder mehrere der Prozessoren ausführbar sind. Der Arbeitsspeicher 854 und 864 kann z.B. eine flüchtige Speichereinheit oder flüchtige Speichereinheiten, eine nichtflüchtige Speichereinheit oder nichtflüchtige Speichereinheiten und/oder andere Formen von computerlesbaren Medien enthalten, wie beispielsweise magnetische oder optische Platten, einen Flash-Speicher, einen Cache, einen Direktzugriffsspeicher (RAM), einen Nurlesespeicher (ROM) und Kombinationen davon. Ein Arbeitsspeicher, wie beispielsweise der Arbeitsspeicher 854, kann auch zwischen den Prozessoren 852a-852n gemeinsam genutzt werden. Datenstrukturen, wie beispielsweise ein Index, können beispielsweise quer über den Speicher 856 und den Arbeitsspeicher 854 gespeichert werden. Die Computervorrichtung 880 kann andere Komponenten enthalten, die nicht gezeigt sind, wie beispielsweise Steuerungen, Busse, Eingabe/Ausgabe-Vorrichtungen, Kommunikationsmodule, etc.
  • Ein gesamtes System, wie beispielsweise das System 100, kann aus mehreren Computervorrichtungen 880 aufgebaut sein, die miteinander kommunizieren. Beispielsweise kann die Vorrichtung 880a mit den Vorrichtungen 880b, 880c und 880d kommunizieren und diese können gemeinsam als System 100 bekannt sein. Als ein weiteres Beispiel kann das System 100 der 1 eine oder mehrere Computervorrichtungen 880 enthalten. Einige der Computervorrichtungen können geographisch nahe zueinander lokalisiert sein und andere können geographisch entfernt lokalisiert sein. Die Gestaltung des Systems 800 ist nur ein Beispiel und das System kann andere Gestaltungen oder Konfigurationen annehmen.
  • Verschiedene Implementierungen können eine Implementierung in einem oder mehreren Computerprogrammen enthalten, die auf einem programmierbaren System ausführbar und/oder interpretierbar sind, das wenigstens einen programmierbaren Prozessor, der speziell oder allgemein sein kann, gekoppelt, um Daten und Anweisungen von einem Speichersystem zu empfangen und diese dorthin zu senden, wenigstens eine Eingabevorrichtung und wenigstens eine Ausgabevorrichtung enthält.
  • Diese Computerprogramme (die auch als Programme, Software, Softwareanwendungen oder Code bekannt sind) enthalten Maschinenanweisungen für einen programmierbaren Prozessor und können in einer höheren verfahrens- und/oder objektorientierten Programmiersprache und/oder in Assembler/Maschinen-Sprache implementiert sein. Wie sie hierin verwendet sind, beziehen sich die Ausdrücke „maschinenlesbares Medium“, „computerlesbares Medium“ auf irgendein nichtflüchtiges Computerprogrammprodukt, ein Gerät und/oder eine Vorrichtung (z.B. magnetische Platten, optische Platten, einen Speicher (einschließlich eines Direktzugriffsspeichers), programmierbare Logikvorrichtungen (PLDs)), die verwendet werden, um Maschinenanweisungen und/oder Daten zu einem programmierbaren Prozessor zu liefern.
  • Die hier beschriebenen Systeme und Techniken können in einem Computersystem implementiert sein, das eine Backend-Komponente (z.B. als Datenserver) enthält oder das eine Middleware-Komponente (z.B. einen Anwendungsserver) enthält oder das eine Frontend-Komponente (z.B. einen Client-Computer mit einer graphischen Anwenderschnittstelle oder einem Web-Browser, über welchem ein Anwender mit einer Implementierung der hier beschriebenen Systeme und Techniken interagieren kann) enthält, oder irgendeine Kombination von solchen Backend-, Middleware- oder Frontend-Komponenten. Die Komponenten des Systems können durch irgendeine Form oder ein Medium einer digitalen Datenkommunikation miteinander verbunden sein (z.B. ein Kommunikationsnetzwerk). Beispiele von Kommunikationsnetzwerken enthalten ein lokales Netz („LAN“), ein Weitverkehrsnetz („WAN“) und das Internet.
  • Das Computersystem kann Clients und Server enthalten. Ein Client und ein Server sind allgemein entfernt voneinander und interagieren typischerweise über ein Kommunikationsnetzwerk. Die Beziehung von Client und Server entsteht mittels Computerprogrammen, die auf den jeweiligen Computern laufen und eine Client-Server-Beziehung zueinander haben.
  • Gemäß beispielhaften Ausführungsformen sind Systeme und Verfahren zum Annotieren von Gesprächen zwischen einem Anwender und einem elektronischen Assistenten auf hierarchische Weise offenbart. Ein beispielhaftes System enthält einen Datenspeicher von hierarchischen Annotationsaufzeichnungen. Die hierarchischen Annotationsaufzeichnungen enthalten Wurzelaufzeichnungen und Nichtwurzelaufzeichnungen. Jede Wurzelaufzeichnung hat einen Gesprächsidentifizierer und einen Annotationsidentifizierer. Jede Nichtwurzelaufzeichnung enthält einen Annotationsidentifizierer und einen Elternidentifizierer, wobei der Elternidentifizierer ein Annotationsidentifizierer einer anderen Aufzeichnung ist. Wenigstens einige der Nichtwurzelaufzeichnungen enthalten weiterhin ein Annotationstag. Das System erzeugt eine erste neue Wurzelaufzeichnung und erste Nichtwurzelaufzeichnungen für einen eingegebenen Dialogakt und erzeugt eine zweite neue Wurzelaufzeichnung und zweite Nichtwurzelaufzeichnungen für einen ausgegebenen Dialogakt, der auf den eingegebenen Dialogakt antwortet bzw. reagiert. Wenigstens eine der zweiten Nichtwurzelaufzeichnungen enthält ein Annotationstag, das zu einer Aufzeichnung der ersten Nichtwurzelaufzeichnungen zurückverbindet.
  • Eine Anzahl von Implementierungen ist beschrieben worden. Nichtsdestoweniger können verschiedene Modifikationen durchgeführt werden, ohne vom Sinngehalt und Schutzumfang der Erfindung abzuweichen. Zusätzlich erfordern die in den Figuren gezeigten logischen Abläufe nicht die gezeigte bestimmte Reihenfolge oder sequentielle Reihenfolge, um erwünschte Ergebnisse zu erreichen. Zusätzlich können andere Schritte zur Verfügung gestellt werden oder können Schritte eliminiert werden von den beschriebenen Abläufen und können andere Komponenten hinzugefügt werden zu oder entfernt werden von den beschriebenen Systemen. Demgemäß sind andere Implementierungen innerhalb des Schutzumfangs der folgenden Ansprüche.
  • Claims (14)

    1. Verfahren, umfassend: Erzeugen eines ersten Annotationsbaums für einen annotierten Dialogakt, wobei der erste Annotationsbaum einen Wurzelknoten für den Dialogakt und Blattknoten für jedes Annotationstag von nicht Null für den Dialogakt enthält, wobei der Dialogakt mit einem Gesprächsidentifizierer assoziiert ist und wobei die Blattknoten jeweils einen Knoten für einen vorherigen Diskurs entsprechend einem Tag für einen vorherigen Diskurs im annotierten Dialogakt enthalten; Erzeugen eines Annotationsidentifizierers für jeden Knoten im ersten Annotationsbaum, wobei die Annotationsidentifizierer innerhalb des Gesprächsidentifizierers eindeutig sind; und Schreiben einer Annotationsaufzeichnung für jeden Knoten, wobei: einer Aufzeichnung für den Wurzelknoten ein Elternidentifizierer fehlt, eine Aufzeichnung für Nichtwurzelknoten einen Elternidentifizierer enthält, wobei der Elternidentifizierer auf den Annotationsidentifizierer der Eltern Bezug nimmt, und die Aufzeichnung für den Knoten entsprechend dem Knoten für einen vorherigen Diskurs einen Annotationsidentifizierer für eine entsprechende Aufzeichnung für einen nachfolgenden Diskurs enthält, wobei die Aufzeichnung für einen nachfolgenden Diskurs entsprechend einem Blattknoten in einem zweiten Annotationsbaum auch mit dem Gesprächsidentifizierer assoziiert ist, wobei das Verfahren ferner umfasst: Zugreifen auf die Annotationsaufzeichnung, um Trainingsbeispiele für eine Dialogmanagementmaschine (122) zu erzeugen; und Trainieren der Dialogmanagementmaschine (122) unter Verwendung der Trainingsbeispiele, wobei die Dialogmanagementmaschine (122) einen maschinellen Lernalgorithms enthält, der ausgelegt ist, mit einem Benutzer über eine Dialogeingabevorrichtung (110) und eine Dialogausgabevorrichtung (110) eine Konversation zu führen.
    2. Verfahren nach Anspruch 1, wobei ein Erzeugen des Annotationsbaums für den annotierten Dialogakt enthält: Bestimmen, dass ein erster untergeordneter Dialogakt und ein zweiter untergeordneter Dialogakt ein gemeinsames Tag und gemeinsame Eltern gemeinsam nutzen; und Einfügen, in den Annotationsbaum, eines Knotens, der ein Kind eines Knotens für die gemeinsamen Eltern ist und Eltern eines Knotens für den ersten untergeordneten Dialogakt ist, eines Knotens für den zweiten untergeordneten Dialogakt und eines Knotens für das gemeinsame Tag, wobei dem Knoten für den ersten untergeordneten Dialogakt und dem Knoten für den zweiten untergeordneten Dialogakt jeweils ein Kindknoten entsprechend dem gemeinsamen Tag fehlt.
    3. Verfahren nach Anspruch 1 oder 2, weiterhin umfassend: Zugreifen auf die Annotationsaufzeichnungen in Antwort auf eine Anfrage; und Zurückbringen von Annotationsaufzeichnungen, für die bestimmt ist, dass sie auf die Anfrage antworten.
    4. Verfahren nach einem der Ansprüche 1 bis 3, wobei die Annotationsaufzeichnung für jeden Knoten Text entsprechend dem Knoten enthält.
    5. Verfahren nach einem der Ansprüche 1 bis 4, wobei die Annotationsaufzeichnungen in einer ungeordneten Liste gespeichert sind.
    6. Verfahren nach einem der Ansprüche 1 bis 5, wobei der erste Annotationsbaum eine erste Runde im Gespräch darstellt oder der zweite Annotationsbaum eine zweite Runde im Gespräch darstellt, wobei die erste Runde und die zweite Runde durch wenigstens eine intervenierende Runde getrennt sind.
    7. System, umfassend: wenigstens einen Prozessor; eine Dialogeingabevorrichtung; eine Dialogausgabevorrichtung; und einen Speicher, der Anweisungen speichert, die dann, wenn sie durch den wenigstens einen Prozessor ausgeführt werden, Operationen durchführen, die enthalten: Empfangen von eingegebenen Dialogakten von der Dialogeingabevorrichtung (110) und Empfangen von ausgegebenen Dialogakten zur Ausgabe über die Dialogausgabevorrichtung (110); und Erzeugen von hierarchischen Annotationsaufzeichnungen (140) für Annotationen der eingegebenen Dialogakte und für Annotationen der ausgegebenen Dialogakte, Zugreifen auf die Annotationsaufzeichnungen (140), um Trainingsbeispiele für eine Dialogmanagementmaschine (122) zu erzeugen; und Trainieren der Dialogmanagementmaschine (122) unter Verwendung der Trainingsbeispiele, wobei die Dialogmanagementmaschine (122) einen maschinellen Lernalgorithmus umfasst, der ausgelegt ist, mit einem Benutzer über die Dialogeingabevorrichtung (110) und die Dialogausgabevorrichtung (110) eine Konversation zu führen, wobei die hierarchischen Annotationsaufzeichnungen (140) für einen Dialogakt enthalten: eine Wurzelaufzeichnung, die einen Gesprächsidentifizierer und einen Annotationsidentifizierer spezifiziert, eine Vielzahl von Nichtwurzelaufzeichnungen, die enthalten: einen Annotationsidentifizierer, und einen Elternidentifizierer, wobei der Elternidentifizierer ein Annotationsidentifizierer einer anderen Aufzeichnung ist, wobei wenigstens einige der Nichtwurzelaufzeichnungen weiterhin ein Annotationstag enthalten, wobei Nichtwurzelaufzeichnungen mit einem Annotationstag, das ein vorheriges Diskurstag darstellt, weiterhin einen Annotationsidentifizierer einer weiteren Annotationsaufzeichnung enthalten, wobei die weitere Aufzeichnung ein Annotationstag aufweist, das ein Tag für einen nachfolgenden Diskurs darstellt.
    8. System nach Anspruch 7, wobei der Wurzelknoten weiterhin eine Indizierung eines Sprechers für den Dialogakt enthält.
    9. System nach Anspruch 7 oder 8, wobei die Wurzelaufzeichnung und wenigstens eine der Vielzahl von Nichtwurzelaufzeichnungen weiterhin eine Indizierung eines Sprechers für den Dialogakt enthält.
    10. System nach einem der Ansprüche 7 bis 9, wobei das Annotationstag aus der Gruppe ausgewählt ist, die ein Tag für einen nachfolgenden Diskurs, einen Dialogakttyp und ein Tag für einen vorherigen Diskurs enthält.
    11. System nach einem der Ansprüche 7 bis 10, wobei das Annotationstag aus der Gruppe ausgewählt ist, die ein Tag für einen nachfolgenden Diskurs, einen Dialogakttyp, einen Dialogfehler und ein Tag für einen vorangehenden Diskurs enthält.
    12. System nach einem der Ansprüche 7 bis 11, wobei wenigstens einige der Annotationstags einen Textbereich darstellen.
    13. System nach einem der Ansprüche 7 bis 12, wobei wenigstens einer der Dialogakte eine durch einen Anwender des Systems durchgeführte Betriebsaktion darstellt.
    14. System nach einem der Ansprüche 7 bis 13, wobei der Speicher weiterhin Anweisungen speichert, die dann, wenn sie durch den wenigstens einen Prozessor ausgeführt werden, veranlassen, dass das System Operationen durchführt, die enthalten: Bestimmen, dass die erste Nichtwurzelaufzeichnung, die mit einer Wurzelaufzeichnung für einen ersten Gesprächsidentifizierer assoziiert ist, mit einer zweiten Nichtwurzelaufzeichnung verbindet, die mit einer Wurzelaufzeichnung für einen zweiten Gesprächsidentifizierer assoziiert ist; Erzeugen einer ersten neuen Nichtwurzelaufzeichnung, die die zweite Nichtwurzelaufzeichnung im Elternidentifizierer identifiziert und die ein Annotationstag hat, das einen nachfolgenden Diskurs darstellt; und Erzeugen einer zweiten neuen Nichtwurzelaufzeichnung, die die erste Nichtwurzelaufzeichnung im Elternidentifizierer identifiziert, ein Annotationstag hat, das einen vorherigen Diskurs darstellt, und den Annotationsidentifizierer für die erste neue Nichtwurzelaufzeichnung identifiziert, wobei der erste Gesprächsidentifizierer und die zweiten Gesprächsidentifizierer nicht sequentiell sind.
    DE102017121780.0A 2016-10-04 2017-09-20 Hierarchische Annotation von Dialogakten Active DE102017121780B4 (de)

    Applications Claiming Priority (2)

    Application Number Priority Date Filing Date Title
    US201662403932P 2016-10-04 2016-10-04
    US62/403,932 2016-10-04

    Publications (2)

    Publication Number Publication Date
    DE102017121780A1 DE102017121780A1 (de) 2018-04-05
    DE102017121780B4 true DE102017121780B4 (de) 2023-06-15

    Family

    ID=60244389

    Family Applications (2)

    Application Number Title Priority Date Filing Date
    DE202017105695.3U Active DE202017105695U1 (de) 2016-10-04 2017-09-20 Hierarchische Annotation von Dialogakten
    DE102017121780.0A Active DE102017121780B4 (de) 2016-10-04 2017-09-20 Hierarchische Annotation von Dialogakten

    Family Applications Before (1)

    Application Number Title Priority Date Filing Date
    DE202017105695.3U Active DE202017105695U1 (de) 2016-10-04 2017-09-20 Hierarchische Annotation von Dialogakten

    Country Status (3)

    Country Link
    CN (1) CN107894829B (de)
    DE (2) DE202017105695U1 (de)
    GB (1) GB2555945A (de)

    Families Citing this family (1)

    * Cited by examiner, † Cited by third party
    Publication number Priority date Publication date Assignee Title
    CN117059102A (zh) * 2023-10-12 2023-11-14 广州市零脉信息科技有限公司 一种智能儿童玩具对话系统

    Citations (1)

    * Cited by examiner, † Cited by third party
    Publication number Priority date Publication date Assignee Title
    US20100131274A1 (en) 2008-11-26 2010-05-27 At&T Intellectual Property I, L.P. System and method for dialog modeling

    Family Cites Families (2)

    * Cited by examiner, † Cited by third party
    Publication number Priority date Publication date Assignee Title
    CA2614653A1 (en) * 2005-07-15 2007-01-25 Think Software Pty Ltd Method and apparatus for providing structured data for free text messages
    CN104462024B (zh) * 2014-10-29 2018-07-13 百度在线网络技术(北京)有限公司 生成对话动作策略模型的方法和装置

    Patent Citations (1)

    * Cited by examiner, † Cited by third party
    Publication number Priority date Publication date Assignee Title
    US20100131274A1 (en) 2008-11-26 2010-05-27 At&T Intellectual Property I, L.P. System and method for dialog modeling

    Also Published As

    Publication number Publication date
    GB201715647D0 (en) 2017-11-08
    CN107894829A (zh) 2018-04-10
    GB2555945A (en) 2018-05-16
    CN107894829B (zh) 2021-09-10
    DE102017121780A1 (de) 2018-04-05
    DE202017105695U1 (de) 2018-01-10

    Similar Documents

    Publication Publication Date Title
    US11321535B2 (en) Hierarchical annotation of dialog acts
    DE102017125001A1 (de) Streaming-Dialogmanagement in Echtzeit
    DE69326431T2 (de) Spracherkennungs-Schnittstellensystem, das als Fenstersystem und Sprach-Postsystem verwendbar ist
    DE112017000169T5 (de) Gerätekennungsabhängige vorgangsverarbeitung von paketbasierter datenkommunikation
    DE69810457T2 (de) System und verfahren zum dynamischen verarbeiten eines index zum erzeugen eines abfragesatzes
    DE112017000122T5 (de) Natürliche Sprachverarbeitung für den Sitzungsaufbau mit Serviceprovidern
    DE212017000329U1 (de) Selektives Sensorabfragen
    DE102017122200A1 (de) Bilden einer Chatbot-Ausgabe auf der Grundlage eines Anwenderzustandes
    DE102017122515A1 (de) Aufgaben-Initiierung unter Verwendung von langen Sprachbefehlen
    DE202016008230U1 (de) Sprachwiedererkennung mit externen Datenquellen
    DE112017000131T5 (de) Rückmeldungssteuerung für Datenübertragungen
    DE102013212215A1 (de) System und Verfahren zum Feststellen von Fachkenntnissen durch Sprachanalyse
    DE112017000139T5 (de) Modulation von paketierten Audiosignalen
    DE102016013632A1 (de) Visuelle Analyse von Clickstreams auf Grundlage von Maximalsequenzmustern
    DE112020003306T5 (de) Unterscheiden von sprachbefehlen
    DE10348337A1 (de) Inhaltsverwaltungsportal und Verfahren zum Kommunizieren von Informationen
    DE102016125823B4 (de) Unterstützung bei der semantischen offline-bearbeitung durch ein gerät mit begrenzten möglichkeiten
    DE112017000177T5 (de) Authentifizierung von paketierten Audiosignalen
    CN111009245B (zh) 一种指令执行方法、系统及存储介质
    DE202015009292U1 (de) Erzeugung eines Aktivitätsflusses
    DE212017000068U1 (de) Einrichten von audio-basierten Netzwerksitzungen mit nicht registrierten Ressourcen
    CN106487805A (zh) 一种远程过程调用跟踪方法及装置
    DE102020128250A1 (de) Fahrzeugbasierte gebärdensprachkommunikationssysteme und -verfahren
    DE102020211679A1 (de) Computer-implementiertes system und verfahren mit einem digitalen zwilling und einer graphen-basierten struktur
    DE102017121780B4 (de) Hierarchische Annotation von Dialogakten

    Legal Events

    Date Code Title Description
    R012 Request for examination validly filed
    R082 Change of representative

    Representative=s name: VENNER SHIPLEY GERMANY LLP, DE

    Representative=s name: VENNER SHIPLEY LLP, DE

    R016 Response to examination communication
    R079 Amendment of ipc main class

    Free format text: PREVIOUS MAIN CLASS: G10L0015220000

    Ipc: G10L0015060000

    R018 Grant decision by examination section/examining division
    R020 Patent grant now final