DE112016004863T5 - Parametersammlung und automatische Dialogerzeugung in Dialogsystemen - Google Patents

Parametersammlung und automatische Dialogerzeugung in Dialogsystemen Download PDF

Info

Publication number
DE112016004863T5
DE112016004863T5 DE112016004863.7T DE112016004863T DE112016004863T5 DE 112016004863 T5 DE112016004863 T5 DE 112016004863T5 DE 112016004863 T DE112016004863 T DE 112016004863T DE 112016004863 T5 DE112016004863 T5 DE 112016004863T5
Authority
DE
Germany
Prior art keywords
intent
dialog
parameters
dialog system
developer
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.)
Ceased
Application number
DE112016004863.7T
Other languages
English (en)
Inventor
Ilya Gelfenbeyn
Pavel Sirotin
Artem Goncharuk
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 DE112016004863T5 publication Critical patent/DE112016004863T5/de
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1815Semantic context, e.g. disambiguation of the recognition hypotheses based on word meaning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3344Query execution using natural language analysis
    • 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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/487Arrangements for providing information services, e.g. recorded voice services or time announcements
    • H04M3/493Interactive information services, e.g. directory enquiries ; Arrangements therefor, e.g. interactive voice response [IVR] systems or voice portals
    • H04M3/4936Speech interaction details
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/36Input/output arrangements for on-board computers
    • G01C21/3605Destination input or retrieval
    • G01C21/3608Destination input or retrieval using speech input, e.g. using speech recognition
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L2015/088Word spotting
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/223Execution procedure of a spoken command
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2201/00Electronic components, circuits, software, systems or apparatus used in telephone systems
    • H04M2201/40Electronic components, circuits, software, systems or apparatus used in telephone systems using speech recognition
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2203/00Aspects of automatic or semi-automatic exchanges
    • H04M2203/35Aspects of automatic or semi-automatic exchanges related to information services provided via a voice call
    • H04M2203/355Interactive dialogue design tools, features or methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M7/00Arrangements for interconnection between switching centres
    • H04M7/0012Details of application programming interfaces [API] for telephone networks; Arrangements which combine a telephonic communication equipment and a computer, i.e. computer telephony integration [CPI] arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Acoustics & Sound (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Signal Processing (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • User Interface Of Digital Computer (AREA)
  • Machine Translation (AREA)
  • Telephonic Communication Services (AREA)

Abstract

Offenbart werden ein Dialogsystem und Verfahren für natürliche Sprache. In einem Beispiel beinhaltet ein Verfahren ein Identifizieren einer Dialogsystem-Absicht im Zusammenhang mit der Spracheingabe basierend auf mindestens einem vorbestimmten Absichtsschlüsselwort, wobei die Dialogsystem-Absicht erforderliche Absichtsparameter aufweist; ein Bestimmen, ob Daten für alle erforderlichen Absichtsparameter des Dialogsystems verfügbar sind; ein selektives Initiieren, basierend auf der Bestimmung, eines Parametersammlungsdialogs im Zusammenhang mit der Dialogsystem-Absicht, wobei der Parametersammlungsdialog dazu dient, Daten für die erforderlichen Parameter zu sammeln, die der Dialogsystem-Absicht nicht anderweitig zur Verfügung stehen; und ein Erzeugen, basierend auf der Dialogsystem-Absicht und auf einem oder mehreren erforderlichen Parametern, einer Aktionsanweisung.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNGEN
  • Diese Anmeldung beansprucht die Priorität der vorläufigen US-Patentanmeldung mit der Seriennummer 62/244,560 , eingereicht am 21. Oktober 2015, mit dem Titel „Parameter Collection and Automatic Dialog Generation in Dialog Systems“ (Parametersammlung und automatische Dialogerzeugung in Dialogsystemen), die unter Bezugnahme hierin in ihrer Gesamtheit für sämtliche Zwecke aufgenommen ist.
  • HINTERGRUND
  • Dialogsysteme werden häufig in Anwendungen für tragbare Geräte verwendet. Typischerweise beinhaltet ein Dialogsystem einen computerbasierten Agenten, der eine Mensch-Maschine-Schnittstelle zum Zugreifen auf, Verarbeiten von, Verwalten von und Bereitstellen von Informationen aufweist. Dialogsysteme sind auch als Chat-Informationssysteme, Sprachdialogsysteme, Konversationsagenten, Chatter-Roboter, Chatterbots, Chatbots, Chatagenten, digitale persönliche Assistenten, automatisierte Online-Assistenten und dergleichen bekannt.
  • Herkömmlicherweise kann ein Dialogsystem mit einem Menschen unter Verwendung einer natürlichen Sprache interagieren, um eine intelligente Konversation zu simulieren und dem Benutzer personalisierte Unterstützung zu bieten. Ein Benutzer kann das Dialogsystem zum Beispiel fragen „Wie ist das Wetter heute in Alexandria?“ und eine Antwort von dem Dialogsystem in Form von Audio- oder Textnachrichten erhalten. Der Benutzer kann Sprachbefehle für das Dialogsystem bereitstellen, um eine Durchführung bestimmter Operationen, beispielsweise Erzeugen von E-Mails, Tätigen von Anrufen, Suchen nach Informationen, Navigieren, Einstellen von Benachrichtigungen oder Erinnerungen und so weiter, zu veranlassen. Diese und weitere Funktionalitäten machen Dialogsysteme sehr beliebt bei Benutzern, besonders bei Benutzern tragbarer elektronischer Geräte, wie beispielsweise Smartphones und Tablet-Computern.
  • Ein Dialogsystem kann eine Dialogsystem-Engine beinhalten, die dafür verantwortlich ist, Benutzerspracheingaben zu empfangen, diese in Texteingaben umzuwandeln, die Texteingaben zu interpretieren, entsprechende Antworten auf die Texteingaben zu erzeugen und die Antworten an Benutzer zu liefern. Beim Interpretieren von Eingaben und Finden passender Antworten können Künstliche-Intelligenz-Algorithmen genutzt werden. Trotz der steigenden Nachfrage nach Dialogsystemen bleibt eine Erstellung des Dialogsystems somit eine komplexe technische Aufgabe.
  • KURZDARSTELLUNG
  • Ein Dialogsystem für natürliche Sprache kann einen Dialog mit einem Benutzer führen und intelligente Antworten bereitstellen oder in Reaktion auf Benutzeranfragen eine Vielzahl von Aktionen durchführen. Die Benutzeranfragen können durch das Dialogsystem für natürliche Sprache mithilfe von „Absichten“ interpretiert werden, die eine Zuordnung von dem, was ein Benutzer äußert, zu Aktionen, die durch das Dialogsystem für natürliche Sprache ausgeführt werden, ermöglichen. In bestimmten Benutzer-Maschine-Dialogkontexten muss das Dialogsystem für natürliche Sprache, um eine Aktion für eine gegebene Absicht implementieren, um einen oder mehrere Absichtsparameter zu erhalten. Wenn ein Benutzer das Dialogsystem für natürliche Sprache zum Beispiel auffordert, Pizza zu bestellen, muss das Dialogsystem für natürliche Sprache Parameter im Zusammenhang mit der Pizza, wie etwa Größe, Teigart, Belag, einen Lieferanten, eine Zeit und eine Lieferadresse, erfassen.
  • Beispiele gemäß der Offenbarung stellen Systeme und Verfahren zur Sammlung von Absichtsparametern von Benutzern mit einem maschinenimplementierten Parametersammlungsdialog, der einen Dialog in natürlicher Sprache imitiert, bereit. Gegebenenfalls muss eine vorbestimmte Absicht des Benutzers identifiziert werden, damit die Sammlung von Absichtsparametern initiiert wird. Sobald die Absichtsparameter gesammelt sind, implementiert das Dialogsystem für natürliche Sprache eine vorbestimmte Aktion im Zusammenhang mit der Absicht basierend auf den gesammelten Parametern (z. B. Senden einer elektronischen Bestellung an ein Pizza-Restaurant).
  • Beispiele gemäß der Offenbarung können ferner Systeme und Verfahren bereitstellen, die es Softwareentwicklern ermöglichen, Dialogagenten zu erstellen, die konfigurierbar sein können, Parametersammlungsdialoge auszuführen und Absichtsparameter zu sammeln. In einem hierin offenbarten Beispiel ist ein Verfahren zur Absichtsparametersammlung bereitgestellt, das ein Empfangen einer Spracheingabe eines Benutzers, Identifizieren von einer Dialogsystem-Absicht im Zusammenhang mit einer Spracheingabe basierend auf mindestens einem vorbestimmten Absichtsschlüsselwort, wobei die Dialogsystem-Absicht erforderliche Absichtsparameter aufweist; Bestimmen, ob Daten für alle erforderlichen Absichtsparameter des Dialogsystems verfügbar sind; basierend auf der Bestimmung, selektives Initiieren eines Parametersammlungsdialogs im Zusammenhang mit der Dialogsystem-Absicht, wobei der Parametersammlungsdialog dazu dient, Daten für die erforderlichen Parameter zu sammeln, die der Dialogsystem-Absicht nicht anderweitig zur Verfügung stehen; und, basierend auf der Dialogsystem-Absicht und einem oder mehreren erforderlichen Parametern, Erzeugen einer Aktionsanweisung beinhaltet.
  • In einem Beispiel kann das Verfahren ferner ein Identifizieren von mindestens einem der erforderlichen Absichtsparameter in der Spracheingabe und ein Extrahieren des mindestens einen der erforderlichen Absichtsparameter aus der Spracheingabe beinhalten. Das Verfahren kann ferner ein Extrahieren der erforderlichen Absichtsparameter aus der Spracheingabe ohne Initiieren des Parametersammlungsdialogs beinhalten, basierend auf der Bestimmung, dass die Spracheingabe alle fehlenden Absichtsparameter beinhaltet. Der Parametersammlungsdialog kann mindestens eine vorbestimmte Eingabeaufforderung beinhalten.
  • Bei einem Beispiel kann das Verfahren ferner ein Empfangen von mindestens einer weiteren Spracheingabe des Benutzers in Reaktion auf die mindestens eine vorbestimmte Eingabeaufforderung und ein Extrahieren von mindestens einem der erforderlichen Absichtsparameter aus der mindestens einen zusätzlichen Spracheingabe solange, bis alle der fehlenden Absichtsparameter gesammelt sind, beinhalten. Die Absichtsparameter können mindestens eines der folgenden beinhalten: ein numerischer Wert, ein Wort, eine Phrase, ein Ton und ein Bild. Der mindestens eine von den Absichtsparametern kann aus einer Liste vorbestimmter Werte ausgewählt werden.
  • In einem Beispiel kann das Verfahren ferner beinhalten, dass einem Entwickler, durch eine Entwicklerplattform, ermöglicht wird, einen Dialogagenten des Dialogsystems für natürliche Sprache zu erstellen, um eine Sammlung fehlender Absichtsparameter zu automatisieren, wobei der Dialogagent mit einem Entwicklerprofil verbunden ist. Das Verfahren kann ferner ein Bereitstellen, durch die Entwicklerplattform, einer grafischen Oberfläche beinhalten, um dem Entwickler zu ermöglichen, den Dialogagenten zu erstellen und eines oder mehrere der folgenden bereitzustellen: die Dialogsystem-Absicht, mindestens einen Absichtsparameter und eine oder mehrere Eingabeaufforderungen für die Absichtsparameter. Das Verfahren kann ferner Ermöglichen, durch die Entwicklerplattform, dass der Entwickler den Absichtsparametern eine Dialogsystem-Entität oder einen Datentyp zuweist, und Ermöglichen, durch die Entwicklerplattform, dass der Entwickler jedem der Absichtsparameter einen Wertetyp zuweist, beinhalten. Die Aktionsanweisung kann konfiguriert sein, einen Server oder ein Benutzergerät zu veranlassen, eine vorbestimmte Aktion basierend auf der Aktionsanweisung und einem oder mehreren erforderlichen Absichtsparametern zu implementieren. Die Aktionsanweisung kann eine für eine Anwendungsprogrammierschnittstelle (API) spezifische Antwort beinhalten, die konfiguriert ist, einen API-Dienst zu veranlassen. Das Verfahren kann ferner ein Bereitstellen einer Bestätigungsnachricht beinhalten, die es dem Benutzer ermöglicht, die Aktionsanweisung zu bestätigen oder zu präzisieren, wobei die Bestätigungsnachricht einen oder mehrere erforderliche Absichtsparameter wiedergibt.
  • In einem anderen Beispiel gemäß der Offenbarung ist ein Dialogsystem für natürliche Sprache bereitgestellt, das mindestens einen Prozessor und einen Speicher, der prozessorausführbare Codes speichert, beinhaltet. Der Prozessor kann konfiguriert sein, bei Ausführung der prozessorausführbaren Codes die folgenden Operationen zu implementieren: Identifizieren von einer Dialogsystem-Absicht im Zusammenhang mit einer Spracheingabe basierend auf mindestens einem vorbestimmten Absichtsschlüsselwort, wobei die Dialogsystem-Absicht erforderliche Absichtsparameter aufweist; Bestimmen, ob Daten für alle erforderlichen Absichtsparameter des Dialogsystems verfügbar sind; basierend auf der Bestimmung, selektives Initiieren eines Parametersammlungsdialogs im Zusammenhang mit der Dialogsystem-Absicht, wobei der Parametersammlungsdialog dazu dient, Daten für die erforderlichen Parameter zu sammeln, die der Dialogsystem-Absicht nicht anderweitig zur Verfügung stehen; und, basierend auf der Dialogsystem-Absicht und einem oder mehreren erforderlichen Parametern, Erzeugen einer Aktionsanweisung.
  • In einem Beispiel kann der mindestens eine Prozessor ferner konfiguriert sein, alle der fehlenden Absichtsparameter aus der Spracheingabe ohne Initiieren des Parametersammlungsdialogs zu erfassen, basierend auf der Bestimmung, dass die Spracheingabe alle der fehlenden Absichtsparameter beinhaltet. Der mindestens eine Prozessor kann ferner konfiguriert sein, mindestens eine vorbestimmte Eingabeaufforderung für den Parametersammlungsdialog zu erzeugen. Der mindestens eine Prozessor kann ferner konfiguriert sein, bei Ausführung der prozessorausführbaren Codes folgende Operationen zu implementieren: Empfangen von mindestens einer zusätzlichen Spracheingabe des Benutzers in Reaktion auf die mindestens eine vorbestimmte Eingabeaufforderung, und Erfassen von mindestens einem der erforderlichen Absichtsparameter aus der mindestens einen zusätzlichen Spracheingabe solange, bis alle der fehlenden Absichtsparameter gesammelt sind.
  • In einem Beispiel kann der mindestens eine Prozessor konfiguriert sein, bei Ausführung der prozessorausführbaren Codes die folgenden Operationen zu implementieren: Ermöglichen, durch eine Entwicklerplattform, dass ein Entwickler einen Dialogagenten für das Dialogsystem für natürliche Sprache erstellt, um eine Sammlung der erforderlichen Absichtsparameter zu automatisieren, wobei der Dialogagent mit einem Entwicklerprofil verbunden ist. Der mindestens eine Prozessor kann konfiguriert sein, bei Ausführung der prozessorausführbaren Codes folgende Operationen zu implementieren: Bereitstellen, durch die Entwicklerplattform, einer grafischen Oberfläche, um dem Entwickler zu ermöglichen, den Dialogagenten zu erstellen; und Bereitstellen von mindestens einem der Folgenden: die Dialogsystem-Absicht, mindestens einen Absichtsparameter, eine oder mehrere Eingabeaufforderungen für den Parametersammlungsdialog für jeden Absichtsparameter; Ermöglichen, durch die Entwicklerplattform, dass der Entwickler eine Dialogsystem-Entität oder einen Datentyp für die Absichtsparameter bestimmt; und Ermöglichen, durch die Entwicklerplattform dass der Entwickler einen Wertetyp für jeden der Absichtsparameter bestimmt.
  • In einem weiteren Beispiel gemäß der Offenbarung ist ein nicht flüchtiges prozessorlesbares Medium bereitgestellt, das darauf gespeicherte Anweisungen aufweist, die, wenn sie durch einen oder mehrere Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren veranlassen können, ein Verfahren für ein Dialogsystem für natürliche Sprache zu implementieren. Das Verfahren kann beinhalten: Identifizieren einer Dialogsystem-Absicht im Zusammenhang mit der Spracheingabe basierend auf mindestens einem vorbestimmten Absichtsschlüsselwort, wobei die Dialogsystem-Absicht erforderliche Absichtsparameter aufweist; Bestimmen, ob Daten für alle erforderlichen Absichtsparameter des Dialogsystems verfügbar sind; basierend auf der Bestimmung, selektives Initiieren eines Parametersammlungsdialogs im Zusammenhang mit der Dialogsystem-Absicht, wobei der Parametersammlungsdialog dazu dient, Daten für die erforderlichen Parameter zu sammeln, die der Dialogsystem-Absicht nicht anderweitig zur Verfügung stehen; und, basierend auf der Dialogsystem-Absicht und einem oder mehreren erforderlichen Parametern, Erzeugen einer Aktionsanweisung.
  • Dieser Abschnitt ist weder dafür vorgesehen, Schlüsselmerkmale oder wesentliche Merkmale des beanspruchten Gegenstandes zu identifizieren, noch ist er dafür vorgesehen, als Hilfe beim Bestimmen des Schutzumfangs des beanspruchten Gegenstandes verwendet zu werden. Die Details eines oder mehrerer Beispiele des in dieser Spezifikation beschriebenen Gegenstandes werden in den zugehörigen Zeichnungen und in der nachstehenden Beschreibung dargelegt. Andere potenzielle Merkmale, Aspekte und Vorteile des Gegenstandes sind aus der Beschreibung, den Zeichnungen und den Ansprüchen ersichtlich.
  • Figurenliste
  • Ausführungsformen sind beispielhaft und nicht einschränkend in den Figuren der zugehörigen Zeichnungen veranschaulicht, in denen gleiche Bezugszeichen gleiche Elemente anzeigen.
    • 1 veranschaulicht eine Umgebung, in der Systeme und Verfahren zum Erstellen benutzerdefinierter Dialogsystem-Engines für Dialogsystem-Schnittstellen implementiert werden können, gemäß einigen Ausführungsformen der Offenbarung.
    • 2 zeigt ein Prozessablaufdiagramm, das ein Verfahren zum Erstellen benutzerdefinierter Dialogsystem-Engines unter Verwendung einer Plattform und zum Betreiben der Plattform gemäß einer exemplarischen Ausführungsform veranschaulicht.
    • 3 zeigt eine High-Level-Architektur einer Dialogsystem-Engine gemäß einer exemplarischen Ausführungsform der Offenbarung.
    • 4 zeigt eine grafische Benutzeroberfläche (GUI) einer Plattformschnittstelle zum Erstellen einer neuen Dialogsystem-Entität gemäß einer exemplarischen Ausführungsform der Offenbarung.
    • 5 zeigt eine GUI einer Plattformschnittstelle zum Erstellen einer neuen Dialogsystem-Absicht gemäß einer exemplarischen Ausführungsform der Offenbarung.
    • 6 zeigt eine GUI einer Plattformschnittstelle zum Bereitstellen von Protokollen zur Verarbeitung von Anfragen durch ein Dialogsystem gemäß einer exemplarischen Ausführungsform der Offenbarung;
    • 7 zeigt ein Prozessablaufdiagramm, das ein Verfahren zur Sammlung von Absichtsparametern gemäß einer exemplarischen Ausführungsform der Offenbarung zeigt.
    • 8 zeigt eine exemplarische GUI einer Plattformschnittstelle zum Erstellen eines Dialogagenten zur Sammlung von Absichtsparametern durch einen Parametersammlungsdialog gemäß einer exemplarischen Ausführungsform der Offenbarung.
    • 9 zeigt eine exemplarische GUI einer Plattformschnittstelle zum Definieren von Eingabeaufforderungen eines Dialogagenten gemäß einer exemplarischen Ausführungsform der Offenbarung.
    • 10 zeigt ein High-Level-Blockdiagramm, das ein exemplarisches Computergerät veranschaulicht, das zur Implementierung hierin beschriebener Verfahren geeignet ist.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Exemplarische Aspekte der Offenbarung betreffen im Allgemeinen Dialogsysteme für natürliche Sprache (zur Vereinfachung auch als „Dialogsysteme“ bezeichnet), die konfiguriert sind, eine intelligente Mensch-Maschine-Interaktion aufrechtzuerhalten. Die Dialogsysteme können Spracheingaben von Benutzern empfangen, die Spracheingaben in Texteingaben umwandeln und die Texteingaben unter Verwendung von Maschinenlern-, heuristischen oder anderen geeigneten Algorithmen verarbeiten. Das Ergebnis der Verarbeitung kann eine Antwortnachricht für den Benutzer oder eine Aktion, die durch ein Client-Gerät oder einen Server ausgeführt wird, beinhalten. Exemplarische Aktionen können Senden von E-Mails, Vornehmen einer Reservierung, Einstellen von Benachrichtigungen oder Erinnerungen, Buchen eines Hotels, Abrufen einer Wettervorhersage, Navigieren durch Verkehr und so weiter beinhalten.
  • Die Mensch-Maschine-Interaktion kann auf Dialogsystem-Absichten, die Schemata, Regeln oder Zuordnungen von Benutzereingaben zu Aktionen, die durch das Dialogsystem vorgenommen werden sollen, beinhalten können, und insbesondere auf Dialogkontexten basieren. Dialogsystem-Absichten können durch Dialogsysteme im Verlauf einer Mensch-Maschine-Interaktion durch Erkennen vorbestimmter Schlüsselwörter oder Phrasen in Benutzereingaben automatisch identifiziert werden. Eine Absicht kann zum Beispiel identifiziert werden, wenn ein Benutzer ein Dialogsystem bittet, ein Hotel in einer bestimmten Stadt zu buchen. In einem anderen Beispiel kann eine Absicht identifiziert werden, wenn ein Benutzer ein Dialogsystem bittet, eine Textnachricht oder eine E-Mail an einen bestimmten Empfänger zu senden. In einem weiteren Beispiel kann eine Absicht identifiziert werden, wenn ein Benutzer ein Dialogsystem bittet, Pizza aus einem Restaurant zu bestellen.
  • Das Verarbeiten vorbestimmter Dialogsystem-Absichten kann ein Sammeln einer Vielzahl von Absichtsparametern erfordern. Erfordert die Absicht zum Beispiel eine Aktion des Sendens einer Textnachricht an einen Empfänger, können die Absichtsparameter, die erforderlich und ausreichend sind, um diese Absicht auszuführen, einen Inhalt der Textnachricht und einen Namen des Empfängers beinhalten. Für das Beispiel einer Absicht, die bereitgestellt wird, um elektronisch ein Hotel zu buchen, können die erforderlichen Parameter einen Zielort, einen Zimmertyp, ein Ankunftsdatum, ein Abreisedatum und, optional, andere Parameter, wie z. B. eine Hotelbewertung, einen Hotelnamen, Hoteldienstleistungen und dergleichen beinhalten. Anstatt mehrere Absichten zu definieren und diese mittels eines Dialogkontextes zu verknüpfen, stellen hierin offenbarte Beispiele Dialogagenten zur Verwendung in Dialogsystemen bereit, sodass jeder Dialogagent einer einzelnen Dialogsystem-Absicht und einem oder mehreren Absichtsparametern der Dialogsystem-Absicht zugeordnet werden kann.
  • Wenn ein bestimmter Dialogagent aktiviert wird, kann bei Erkennung einer Dialogsystem-Absicht in Benutzerspracheingaben ein Parametersammlungsdialog initiiert werden. Der Parametersammlungsdialog kann Absichtsparameter erkennen, die durch den Benutzer bereits bereitgestellt wurden oder aus anderen Quellen verfügbar sind. Wenn bestimmt wird, dass bestimmte Absichtsparameter fehlen, kann der Parametersammlungsdialog dem Benutzer Eingabeaufforderungsnachrichten bereitstellen, um den Benutzer aufzufordern, zusätzliche Spracheingaben bereitzustellen. Die Eingabeaufforderungsnachrichten können vordefiniert sein oder bei Bedarf erstellt werden und ausgewählt werden, um den Benutzer anzuleiten, fehlende erforderliche Parameter, und in einigen Fällen optionale Parameter, bereitzustellen. Das Dialogsystem kann Absichtsparameter aus einer oder mehreren zusätzlichen Spracheingaben des Benutzers erfassen.
  • in einigen Beispielen können einige Parameter aus vorgespeicherten Daten erhalten werden. Sagt der Benutzer zum Beispiel „Rufe einen Taxidienst an, um mich von dort, wo ich bin, nach Hause zu fahren“, könnte die Wohnadresse des Benutzers aus einem Speicher erhalten werden. Wenn zumindest das Minimum aller Parameter, die für eine bestimmte Absicht erforderlich sind, gesammelt oder festgestellt ist, wird die Parametersammlung abgeschlossen, und das Dialogsystem kann eine Aktionsanweisung basierend auf der Absicht erzeugen. Die Aktionsanweisung kann auf der Absicht und einigen erforderlichen und optionalen Absichtsparametern, die aus den Benutzerspracheingaben gesammelt oder anderswo erhalten werden, basieren. Das Dialogsystem, ein Client-Gerät oder ein Server kann anschließend einen Aktionsbefehl ausführen, um eine Dialogantwort für den Benutzer bereitzustellen oder eine bestimmte Aktion durchzuführen.
  • Äußert ein Benutzer zum Beispiel „Bitte buche ein Hotel für mich in Palo Alto“, kann das Dialogsystem identifizieren, dass die Dialogsystem-Absicht „Hotelbuchung“ ist und einen entsprechenden Parametersammlungsdialog starten. Das Dialogsystem kann zunächst bestimmen, dass einige der erforderlichen Parameter bereits bereitgestellt wurden (d. h. die Stadt ist Palo Alto) oder aus anderen Quellen verfügbar sind. Das Dialogsystem kann ferner bestimmen, dass andere erforderliche Parameter der Absicht „Hotelbuchung“, wie z. B. ein Ankunftsdatum und eine Länge des Aufenthalts, noch fehlen. Das Dialogsystem kann den Benutzer mit Eingabeaufforderungen, wie z. B. „Wann möchten Sie ankommen?“ und „Wie viele Nächte wollen Sie bleiben?“ dazu auffordern, weitere Spracheingaben bereitzustellen. Wenn der Benutzer Antworten bereitstellt, kann das Dialogsystem Absichtsparameter aus den Eingaben erfassen und solange, bis alle fehlenden erforderlichen Absichtsparameter gesammelt sind, weiterhin Eingabeaufforderungen bereitstellen. Darüber hinaus kann das Dialogsystem den Benutzer durch Bereitstellen einer zusammenfassenden Ausgabe, wie beispielsweise „Sie wollen, dass ich für Sie ein Hotel in Palo Alto für zwei Nächte, beginnend nächsten Montag, buche. Ist das korrekt?“ dazu auffordern, die Sammlung der erforderlichen Parameter zu bestätigen. Wenn der Benutzer dies bestätigt, kann das Dialogsystem einen elektronischen Hotelbuchungsauftrag erzeugen, der einen oder mehrere gesammelte Parameter beinhaltet, und diesen an einen entsprechenden Webdienst senden. Andernfalls kann das Dialogsystem den Benutzer fragen, was geändert oder hinzugefügt werden muss.
  • Die hierin offenbarten Beispiele betreffen außerdem eine Entwicklerplattform, die es Softwareentwicklern ermöglicht, benutzerdefinierte Dialogsystem-Engines und Dialogagenten, einschließlich Dialogagenten zum Sammeln von Absichtsparametern wie vorstehend beschrieben, zu erstellen. Dialogsystem-Schnittstellen beinhalten typischerweise Backend-Dienste, die mit benutzerdefinierten Dialogsystem-Schnittstellen zusammenarbeiten. Dialogsystem-Schnittstellen können zumindest als Teil von verschiedenen Software-Anwendungen, mobilen Anwendungen, Middleware-Anwendungen, Firmware-Anwendungen, Webseiten und so weiter implementiert sein. Mit anderen Worten können Dialogsystem-Schnittstellen Computer-Mensch-Schnittstellen bereitstellen, die konfiguriert sind, mindestens Benutzereingaben zu erfassen und Dialogsystem-Ausgaben an die Benutzer zu liefern.
  • Dialogsystem-Engines können die Dialogsystem-Schnittstellen durch Verarbeitung von Benutzereingaben und Erzeugung entsprechender Antworten (oder Befehle) unterstützen. Eine Dialogsystem-Engine und eine Dialogsystem-Schnittstelle können somit, wenn sie miteinander interagieren, ein Dialogsystem bilden. In bestimmten Beispielen kann eine Dialogsystem-Schnittstelle, die auf einem Benutzergerät läuft, als eine „Frontend“-Benutzerschnittstelle bezeichnet werden, wohingegen eine Dialogsystem-Engine, die den Betrieb dieser Dialogsystem-Schnittstelle unterstützt, als ein „Backend“-Dienst bezeichnet werden kann. In einigen Beispielen können die Schnittstelle und Engine ein Client-Server-Modell beinhalten, bei dem beide über eine Netzwerkverbindung kommunizieren. In anderen Beispielen können die Dialogsystem-Engine und eine Dialogsystem-Schnittstelle auf einem einzelnen Gerät betrieben werden, ohne eine Netzwerkverbindung mit einem Server zu erfordern.
  • Eine Entwicklerplattform, gemäß den Beispielen der vorliegenden Offenbarung kann es Softwareentwicklern ermöglichen, benutzerdefinierte Dialogsystem-Engines zu erstellen, die Frontend-Dialogsystem-Schnittstellen unterstützen können. Wenn ein Softwareentwickler eine Dialogsystem-Funktionalität zum Beispiel als eine zusätzliche Funktion in einer mobilen Anwendung integrieren möchte, kann der Entwickler die Plattform verwenden, um eine benutzerdefinierte Dialogsystem-Engine zu erstellen und einzurichten und die benutzerdefinierte Dialogsystem-Engine mit der mobilen Anwendung zu verknüpfen. Die mobile Anwendung kann auch nur eine Dialogsystem-Schnittstelle beinhalten. In diesem Beispiel kann ein Benutzer die Dialogsystem-Schnittstelle durch Interagieren mit der mobilen Anwendung aktivieren. Der Benutzer kann Anfragen an die Dialogsystem-Schnittstelle in Form von Spracheingaben oder Texteingaben stellen. Bei Empfangen einer Benutzeranfrage kann die Dialogsystem-Schnittstelle die Anfrage an die verknüpfte benutzerdefinierte Dialogsystem-Engine, die zuvor unter Verwendung der Entwicklerplattform erstellt wurde, mit oder ohne zusätzliche Vorverarbeitung übertragen. Die benutzerdefinierte Dialogsystem-Engine kann die empfangene Benutzeranfrage interpretieren und eine Antwort auf die Anfrage basierend auf vorbestimmten Regeln und Einstellungen erzeugen. Die Antwort kann anschließend der Dialogsystem-Schnittstelle zur weiteren visuellen oder auditiven Präsentation für Benutzer übergeben werden. Alternativ, wenn die Antwort eine Aktionsanweisung (einen Befehl) beinhaltet, kann die Aktionsanweisung ausgeführt oder zur Ausführung an einen Server, einen Webdienst oder ein Client-Gerät gesendet werden.
  • Dialogsystem-Schnittstellen können durch eine Vielzahl von Software-Anwendungen, die durch ein Benutzergerät, wie einen Personal-Computer oder ein Smartphone, ausführbar sind, oder entfernt auf einem Server oder einer Computer-Cloud-Ressource, sodass die Dialogsysteme Teil der Webseite oder eines Webdienstes sind, ausgeführt werden oder darin integriert sein. Wie erwähnt, können Dialogsystem-Engines auf dem gleichen Benutzergerät wie die Schnittstelle, auf einem Zusatzgerät in Verbindung mit einem Gerät, auf dem die Schnittstelle implementiert ist, (wie z. B. einem Mobiltelefon und einer Smart Watch, die über eine Bluetooth-Verbindung kommunizieren) oder auf einem Server, sodass deren Funktionalitäten für Dialogsystem-Schnittstellen über das Internet, mobile Datennetzwerke oder beliebige andere Kommunikationsnetzwerke verfügbar sind, implementiert sein.
  • 1 zeigt ein High-Level-Blockdiagramm einer exemplarischen Systemumgebung 100, die zur praktischen Ausführung von Beispielen der vorliegenden Offenbarung geeignet sein kann. Insbesondere zeigt 1 eine Plattform 110 zum Erstellen und Verwalten benutzerdefinierter Dialogsystem-Engines. Wie gezeigt, beinhaltet Plattform 110 eine Plattformschnittstelle 112 zur Erstellen benutzerdefinierter Dialogsystem-Engines und einen Backend-Dienst 114 zum Verwalten und Ausführen benutzerdefinierter Dialogsystem-Engines 120. In einigen Aspekten der Offenbarung beinhaltet Plattform 110 eine Entwicklerplattform.
  • Plattformschnittstelle 112 kann eine grafische Benutzeroberfläche (GUI) beinhalten, die in einer Webseite eingebettet und Entwicklern über ein Netzwerk zugänglich ist. In einigen anderen Aspekten der Offenbarung kann Plattformschnittstelle 112 als eine Software-Anwendung implementiert sein, die eine herunterladbare Software-Anwendung oder beliebige andere Software, wie zum Beispiel Middleware oder Firmware, die auf einem elektronischen Gerät, wie z. B. einem Computer oder einem Smartphone, läuft, oder auf die davon aus zugegriffen werden kann, beinhaltet. In dem in 1 gezeigten Beispiel ist Plattformschnittstelle 112 als eine über das Internet zugängliche GUI (nachstehend ausführlicher beschrieben) ausgeführt. Zur Vereinfachung stellt diese Offenbarung lediglich Aspekte bereit, in denen Plattformschnittstelle 112 eine serverbasierte Lösung ist, die über das Internet zugänglich sein soll. Es sollte sich jedoch verstehen, dass die Plattformschnittstelle 112 nicht auf eine solche Implementierung beschränkt ist und eine Erstellung von einer oder mehreren benutzerdefinierten Dialogsystem-Engines 120 oder Dialogagenten über eine Vielzahl von GUI-Tools ermöglichen kann.
  • Unter weiterer Bezugnahme auf 1 kann ein Backend-Dienst 114 dafür verantwortlich sein, benutzerdefinierte Dialogsystem-Engines 120, die beispielsweise durch oder mithilfe von Plattformschnittstelle 112 erstellt werden, zu verwalten und auszuführen. Backend-Dienst 114 kann als ein Webdienst arbeiten, der Funktionalität für benutzerdefinierte Dialogsysteme durch Ermöglichen, dass deren Dialogsystem-Schnittstellen mit benutzerdefinierte Dialogsystem-Engines 120 interagieren, die durch Backend-Dienst 114 auf Plattform 110 verwaltet werden, bereitstellt.
  • Wie vorstehend erläutert, kann eine Dialogsystem-Schnittstelle 130 auf einer Client-Seite 140 bereitgestellt sein. Die Dialogsystem-Schnittstelle 130 kann eine GUI sein, die es Benutzern ermöglicht, Anfragen zu stellen, die anschließend zur Verarbeitung durch entsprechende Dialogsystem-Engines 120 an Backend-Dienst 114 übergeben werden, und Antworten auf die Anfragen zu empfangen, die durch Dialogsystem-Engines 120 erzeugt werden. Die Dialogsystem-Schnittstelle 130 kann als eine eigenständige Software-Anwendung implementiert sein oder in einer anderen Software-Anwendung, einem Webdienst, einer Webseite und dergleichen integriert sein. Es sollte sich verstehen, dass ein Client-Server-Modell nur zu Erläuterungszwecken veranschaulicht wird. Das hierin offenbarte System muss kein Client-Server-System sein, und bei bestimmten Beispielen können sich die Dialogsystem-Schnittstelle 130 und die Dialogsystem-Engines 120 auf dem gleichen (Benutzer-)Gerät befinden.
  • Die Client-Seite 140 kann ein Benutzergerät, ein Client-Gerät, ein Endgerät, ein Portal, eine Benutzerausrüstung, ein Computergerät (z. B. Laptop-Computer, Tablet-Computer, Desktop-Computer, Workstation, Personal-Computer und ein Smartphone), ein persönlicher digitaler Assistent, eine Spielekonsole, eine Fernbedienung, ein Multimedia-System, ein Smart-TV-Gerät, eine Set-Top-Box, ein Infotainmentsystem, ein fahrzeuginternes Computergerät, ein Informationskiosk, ein Roboter und so weiter beinhalten. In diesen Beispielen können eine oder mehrere Dialogsystem-Schnittstellen 130 als Software, Middleware oder Firmware implementiert sein.
  • In zusätzlichen Beispielen kann sich Client-Seite 140 auf eine Netzwerk- oder eine Online-Lösung, wie z. B. einen Server, einen Webhostingdienst, einen Webdienst, eine Webseite, einen Cloud-Dienst und so weiter beziehen. Dialogsystem-Schnittstelle 130 kann zum Beispiel ein Widget oder eine GUI beinhalten, die auf einer oder mehreren Webseiten bereitgestellt sind, um Endbenutzern zu ermöglichen, Anfragen zu stellen und Antworten auf diese zu erhalten. Diese Option kann geeignet sein, wenn ein Entwickler beispielsweise ein Dialogsystem in einer Webseite integrieren möchte, um einen verbesserten Kundenservice anzubieten.
  • Wie aus 1 ersichtlich, erfolgen Interaktionen zwischen den Dialogsystem-Schnittstellen 130 und entsprechenden benutzerdefinierten Dialogsystem-Engines 120 über ein Kommunikationsnetzwerk 150. Kommunikationsnetzwerk 150 kann eines oder mehrere der Folgenden beinhalten: das Internet, ein Intranet, ein mobiles Datennetzwerk, ein lokales Netzwerk, ein Großraumnetzwerk, ein IEEE 802.11-basiertes Netzwerk, ein persönliches Netzwerk (z. B. Bluetooth, Zigbee), Infrarotlicht und so weiter.
  • 1 zeigt außerdem verschiedene Drittanbieter-Webressourcen/-dienste 160, die Informationen für benutzerdefinierte Dialogsystem-Engines 120 oder für Dialogsystem-Schnittstellen 130 als Teil einer Dialogsystem-Antwort bereitstellen oder bestimmte Aktionen oder Operationen durchführen können. Webressourcen/-dienste 160 können E-Mail-Dienste, Wetterdienste, Navigationsdienste, Hotelbuchungsdienste, Taxireservierungsdienste, Online-Shopping-Dienste, e-Commerce-Dienste, Reservierungsdienste, Erinnerungsdienste und dergleichen bereitstellen. Dementsprechend können, wenn ein Benutzer sagt „Wie ist das Wetter heute?“, entsprechende Informationen durch Dialogsystem-Engine 120 automatisch aus einer/einem oder mehreren Drittanbieter-Webressourcen/-diensten 160 erfasst und in einer Dialogsystem-Antwort, die dem Benutzer gegeben werden soll, integriert werden. Wenn der Benutzer sagt „Sende eine E-Mail an John, um ihn zu meiner Party heute Nacht einzuladen“, kann Dialogsystem-Engine 120 eine/-n Drittanbieter-Webressource/-dienst 160 veranlassen, eine E-Mail zu erstellen und die E-Mail an eine dem Empfänger zugeordnete E-Mail-Adresse zu senden.
  • Ein exemplarischer Prozess der Erstellung und Ausführung benutzerdefinierter Dialogsystem-Engines 120 ist nachfolgend unter Bezugnahme auf 1 und andere Zeichnungen beschrieben. Plattform 112 kann insbesondere eine oder mehrere GUIs bereitstellen, die eine Reihe von Tools aufweisen, die es Entwicklern ermöglichen, ein oder mehrere „Dialogsystem-Elemente“ zu erstellen und anzupassen, die als eine Grundlage für eine benutzerdefinierte Dialogsystem-Engine dienen.
  • Gemäß verschiedenen Beispielen beinhalten Dialogsystem-Elemente mindestens „Entitäten“ und „Absichten“. Jede Entität kann eine Reihe von Objekten beinhalten, die im Wesentlichen gleiche oder ähnliche Merkmale aufweisen. Mit anderen Worten können Entitäten Listen von Schlüsselwörtern, die Objekte einer Klasse definieren, beinhalten. In einem Beispiel kann eine Entität ein Schlüsselwort und einen Satz von Synonymen, die dem Schlüsselwort entsprechen, beinhalten. In einem anderen Beispiel kann eine Entität ein Schlüsselwort und einen Satz von Definitionen, die dem Schlüsselwort entsprechen, beinhalten. In einem weiteren Beispiel kann eine Entität eine Liste (z. B. eine Liste von Städten, eine Liste von Namen, eine Liste von Titeln, eine Liste von Marken, eine Liste von Straßennamen) beinhalten. In einigen Beispielen können die Entitäten in einem bestimmten Dialogagenten verwendet werden und von Parameterwerten abhängig sein, die voraussichtlich als Ergebnis einer Funktionalität des Agenten ausgegeben werden.
  • In einigen Beispielen der Offenbarung muss ein Entwickler Entitäten gegebenenfalls nicht für jedes Konzept, das in dem Dialogagenten erwähnt wird, erstellen - nur für solche, die für verwertbare Daten erforderlich sind. Es kann zum Beispiel drei Arten von Entitäten geben. Die erste Art kann Systementitäten, beispielsweise allgemeine Datumsreferenzen, Zeitreferenzen, Anzahlreferenzen und Stadtreferenzen, beinhalten. Die zweite Art kann Entwicklerentitäten, beispielsweise eine beliebige eindeutige Gruppe von Synonymen, die einem Referenzwert zugeordnet sind, beinhalten, sodass ein Entwickler eine Lebensmittelartentität durch Vornehmen eines Eintrags mit einem Referenzwert „vegetarisch“ mit Synonymen „veg“ und „veggie“ erstellen kann. Die dritte Art kann Benutzerentitäten, beispielsweise Entitäten, die für einen spezifischen Endbenutzer definiert sind, wie z. B. eine benutzerpräferenzspezifische Wiedergabeliste, beinhalten. Darüber hinaus kann es sich bei jeder dieser Entitäten um eine Zuordnung (die Referenzwerte aufweist), einen Aufzählungstyp (der keine Referenzwerte aufweist) oder einen Verbund (der andere Entitäten mit Aliasnamen und wiederkehrenden Objekttypwerten enthält) handeln.
  • In einigen Beispielen kann die Liste von Objekten, die der Entität zugeordnet sind, automatisch erweitert werden. Zum Beispiel kann ein Maschinenlemalgorithmus verwendet werden, um ein oder mehrere neue Objekte vorzuschlagen, die der Entität zugeordnet werden sollen. Ein Maschinenlemalgorithmus kann unter Verwendung von langen Texten und/oder Wörterverzeichnissen trainiert werden. Beispielsweise, jedoch nicht einschränkend, kann ein Entwickler einer benutzerdefinierten Dialogsystem-Engine 120 eine Entität @Stadt mit Werten, wie zum Beispiel New York und Los Angeles, definieren. Wenn ein Benutzer der benutzerdefinierten Dialogsystem-Engine die Wörter „Washington D. C.“ äußert oder eingibt, kann die Entität @Stadt automatisch auf New York, Los Angeles und Washington D. C. erweitert werden, da der Maschinenlemalgorithmus bestimmen kann, dass „Washington D. C.“ im Zusammenhang mit Objekten steht, die in der Entität @Stadt aufgelistet sind. In einigen Beispielen kann ein Benutzer aufgefordert werden, zu bestätigen, dass das vorgeschlagene Objekt im Zusammenhang mit der einen oder den mehreren Entitäten steht.
  • In weiteren Beispielen kann eine Entität eine Liste anderer Entitäten beinhalten.
  • Ein Entwickler kann zum Beispiel eine Entität @Auto als eine Liste von Entitäten (@Marke, @Modell) definieren, wobei die Werte @Marke und @Modell auf beliebige Objekte eingestellt sind, denen @Marke und @Modell zugeordnet werden können. Entität @Auto kann zum Beispiel zusammengesetzte Objekte als (Marke: „Honda“; Modell: „Accord“), (Marke: „Ford“; Modell: „Fiesta“) und so weiter beinhalten.
  • Des Weiteren kann jede Absicht ein Dialogsystem-Interaktionsschema oder eine Regel beinhalten, die eine bestimmte Beziehung zwischen einer Benutzeranfrage und einer Dialogsystem-Antwort beschreiben. Mit anderen Worten kann eine Absicht eine Zuordnung von dem, was ein Benutzer sagt, und einer Aktion, die durch die Software-Anwendung vorgenommen werden soll, darstellen. In einem Beispiel kann eine Absicht als ein Muster bestimmt werden, das explizit eine oder mehrere Referenzen für Entitäten beinhaltet. Ein exemplarisches Muster kann „Wie ist das Wetter in @Stadt: Stadt“ beinhalten, wobei „@Stadt: Stadt“ eine Referenz für die Entität @Stadt ist und den Parameter Stadt innerhalb der Entität @Stadt ist. In bestimmten zusätzlichen Beispielen können Entwickler, um die Absicht zu bestimmen, anstatt Muster bereitzustellen, die explizite Referenzen für „Entitäten“ enthalten, lediglich Beispielanfragen (Phrasen) bereitstellen, um Absichten und Entitäten zu veranschaulichen. In diesen Beispielen bestimmt Plattform 110 automatisch, unter Verwendung von Maschinenlemtechniken, welche „Entitäten“ und „Absichten“ in Beispielanfragen impliziert sind.
  • Basierend auf Beispieleingaben kann Plattform 110 entsprechende Aktionen erstellen. Jede Aktion kann einen Namen (Entität) und einen oder mehrere Parameter beinhalten. Eine Anfrage kann zum Beispiel wie folgt eingegeben werden: „Wettervorhersage für Los Angeles“. Eine Maschinenlemtechnik kann eine Aktion mit dem Namen „Wetter“ und den Parameternamen Stadt vom Datentyp @Stadt bestimmen.
  • Entwickler können die Plattformschnittstelle 112 somit verwenden, um mehrere Entitäten und mehrere Absichten zu erzeugen, die beide spezifisch für eine bestimmte Anwendung oder eine Branche sind. Diese mehreren Entitäten können Dialogsystem-Engines 120 bilden und Dialogsystem-Engines 120 ermöglichen, bestimmte Aktionen durchzuführen oder bestimmte Ausgaben in Reaktion auf eine Vielzahl von Endbenutzereingaben zu erzeugen. In bestimmten Beispielen kann die Absicht eine allgemeine Struktur beinhalten, darunter auch: einen Namen der Absicht (nur als Benutzerreferenz), eine Liste von Mustern und/oder Beispielanfragen, einen Namen der Aktion, Parameter, die der Aktion zugeordnet sind, und eine Erfüllung im Zusammenhang mit der Aktion. Die Erfüllung kann einen Text (hervorgehoben auf einem Bildschirm) oder eine Anforderung eines Webdienstes, eine Anfrage an eine Datenbank und so weiter beinhalten. In einigen Beispielen kann Plattform 112 eine Aktion für Entwickler bereitstellen und Entwicklern ermöglichen, benutzerdefiniert Erfüllungen im Zusammenhang mit der Aktion direkt in benutzerdefinierte Dialogsystem-Engines 120 zu integrieren. In bestimmten Beispielen können Entwickler die Aktion (Name der Aktion und Parameter) empfangen und die benutzerdefinierte Erfüllung auf Client-Seite 140 integrieren. Eine benutzerdefinierte Erfüllung kann zum Beispiel eine Anfrage an eine Webseite oder Datenbank beinhalten, um Informationen (z. B. eine Vorhersage, Verkehrsinformationen und Navigation) abzurufen, um einige Operationen eines Gerätes, auf dem die Dialogsystem-Schnittstelle läuft, durchzuführen und dergleichen.
  • In einigen Beispielen können Dialogsystem-Elemente einen oder mehrere Kontexte beinhalten. Diese Kontexte können einen oder mehrere Parameter beinhalten, die Kennzeichnungen, Schlüssel oder Anhaltspunkte für Absichten während einer Sitzung für einen bestimmten Endbenutzer enthalten. Diese Kontexte können Vorbedingungen und boolesche Ausdrücke der Kennzeichnungen beinhalten. Die Absicht kann basierend auf dem Eingabekontext ausgelöst werden. Eine Absicht kann zum Beispiel ausgelöst werden, wenn eine bestimmte Vorbedingung erfüllt ist oder ein boolescher Ausdruck von Vorbedingungen wahr ist. Ausgabekontexte werden für eine Endbenutzersitzung eingestellt, wenn eine Absicht basierend auf einer Benutzeranfrage ausgeführt wird. In verschiedenen Beispielen kann Ausgabekontexten eine bestimmte Lebensdauer innerhalb einer Benutzersitzung zugewiesen werden, die mehrere Benutzeranfragen beinhaltet. In einigen Beispielen kann die Lebensdauer eines Ausgabekontextes als eine Anzahl von Anfragen gemessen werden, die während der Sitzung des Benutzers gestellt werden. In der Benutzersitzung gibt es einen aktuellen Kontextzustand, der vor Ausführung einer Absicht in Reaktion auf die nächste Benutzeranfrage existiert, und einen Kontextzustand nach Ausführung, der nach der Ausführung der Absicht festgelegt wird. Der Kontextzustand nach Ausführung kann basierend auf der Benutzeranfrage und den Ergebnissen der Ausführung der Absicht einen oder mehrere neu hinzugefügte Kontexte beinhalten. Einige der alten Kontexte können aus dem Kontextzustand nach Ausführung basierend auf den Ergebnissen der Ausführung der Absicht oder aufgrund dessen Ablaufs gelöscht werden.
  • Kontexte können Zeichenketten sein, die den aktuellen Kontext einer Benutzeranfrage darstellen. Dies ist hilfreich, um Phrasen, die vage sein können oder unterschiedliche Bedeutungen aufweisen, abhängig von den Präferenzen oder dem geografischen Standort des Benutzers oder dem Thema der Konversation zu differenzieren. Wenn sich ein Benutzer zum Beispiel etwas in einer Musikwiedergabeanwendung anhört und eine Band entdeckt, die er interessant findet, kann er etwa sagen „Ich möchte mehr davon hören“. Ein Entwickler kann den Namen der Band in den Kontext mit der Anfrage einbeziehen, sodass der Dialogagent diese effektiver verarbeiten kann. In einem anderen Beispiel ist ein Entwickler ein Hersteller von Smart-Home-Geräten und besitzt eine mobile Anwendung, die Haushaltsgeräte fernsteuert. Ein Benutzer kann sagen „Schalte das Licht der Haustür ein“, gefolgt von „Schalte es aus“, und die mobile Anwendung wird verstehen, dass sich die zweite Phrase weiterhin auf das Licht bezieht, da sie im gleichen Kontext verwendet wird. Sagt der Benutzer später dann „Schalte die Kaffeemaschine ein“ und anschließend „Schalte sie aus“, resultiert dies, aufgrund des neuen Kontextes, in einer anderen Aktion als zuvor. Kontexte können auch an Benutzersitzungen gebunden sein (z. B. an eine Sitzungskennung, die bei API-Aufrufen übermittelt wird). Wenn ein Benutzerausdruck einer Absicht zugeordnet ist, kann die Absicht anschließend einen Ausgabekontext einstellen, der durch diesen Ausdruck zukünftig weitergegeben werden soll.
  • In weiteren Beispielen können jedem Kontext ein oder mehrere Attribute oder Parameter zugewiesen werden. Die Attribute können während einer Ausführung der Absicht identifiziert und in Aktionen verwendet werden, die der Absicht zugeordnet sind. Die Werte, die aus den Kontexten erfasst werden, können Parameter für die Aktion bilden. Die Attribute können ferner in Ausgabekontexte gebracht werden, die nach Ausführung der Absicht eingestellt werden.
  • 2 zeigt ein Prozessablaufdiagramm, das ein Verfahren 200 zum Erstellen benutzerdefinierter Dialogsystem-Engines unter Verwendung von Plattform 110 und zum Betreiben der Plattform 110 gemäß einem hierin offenbarten Aspekt darstellt. Das Verfahren 200 kann durch Verarbeitungslogik durchgeführt werden, die Hardware (z. B. Entscheidungslogik, dedizierte Logik, programmierbare Logik und Mikrocode), Software (wie z. B. Software, die auf einem Universalcomputersystem oder einer dedizierten Maschine ausgeführt wird) oder eine Kombination von beiden umfassen kann. In einem Beispiel bezieht sich die Verarbeitungslogik auf eine oder mehrere Komponenten von Plattform 110 oder dem in 10 gezeigten Computergerät. Die Schritte von Verfahren 200 können in einer anderen Reihenfolge als beschrieben und in 2 gezeigt, implementiert werden. Zudem kann Verfahren 200 zusätzliche Schritte aufweisen, die hierin nicht dargestellt sind, die für Fachleute auf dem Gebiet jedoch aus der vorliegenden Offenbarung ersichtlich sein können. Das Verfahren 200 kann außerdem weniger Schritte aufweisen, als nachstehend dargelegt und in 2 gezeigt.
  • Das Verfahren 200 kann bei Operation 202 mit einem Ermöglichen, durch einen ersten Server beginnen, der mindestens einen Prozessor und einen Speicher umfasst, der prozessorausführbare Codes speichert, dass sich ein Entwickler auf Plattform 110 registriert und ein Entwicklerprofil erstellt. Für diese Zwecke interagiert der Entwickler mit Plattformschnittstelle 112. Das Entwicklerprofil kann eine benutzerdefinierte Dialogsystem-Engine 120 des Entwicklers virtuell mit einer oder mehreren Dialogsystem-Schnittstellen 130, die auf Client-Seite 140 eingesetzt werden, verknüpfen (zuordnen). Die Verknüpfung kann ein Festlegen von Anwendungsprogrammierschnittstellen(API)-Codes, Interaktionsregeln, Zieladressen und vielen weiteren beinhalten. In bestimmten Beispielen kann auf das Entwicklerprofil durch mehrere Entwickler zugegriffen werden. Bei Operation 202 kann das Verfahren dem Entwickler ermöglichen, ein oder mehrere Dialogsysteme zu erstellen. Jedes Dialogsystem kann einer Zugriffskennung (ID) zugeordnet sein. Die Zugriffs-ID kann verwendet werden, um von der Client-Seite 140 aus über eine Authentifizierung auf das Dialogsystem zuzugreifen. In verschiedenen Beispielen kann die Zugriffs-ID Token, digitale Schlüssel und so weiter beinhalten.
  • Bei Operation 204 kann Plattform 110 eine oder mehrere Dialogsystem-Entitäten von dem Entwickler empfangen und diese in einem Speicher oder einer Datenbank speichern. In einigen Beispielen werden die Entitäten nicht empfangen, sondern durch den Entwickler unter Verwendung von Web-Tools von Plattformschnittstelle 112 erstellt. Die Dialogsystem-Entitäten können ein Schlüsselwort und mindestens ein Synonym für das Schlüsselwort, ein Schlüsselwort und mindestens eine Definition des Schlüsselwortes, eine Liste von Schlüsselwörtern, die Objekte einer Klasse definieren, und so weiter beinhalten. Die Dialogsystem-Entitäten können auch einem oder mehreren Parametern zugeordnet sein oder diese beinhalten.
  • Bei Operation 206 kann Plattform 110 von dem Entwickler eine oder mehrere Dialogsystem-Absichten empfangen und diese in einem Speicher oder einer Datenbank speichern. In einigen Beispielen werden die Dialogsystem-Absichten nicht empfangen, sondern durch den Entwickler unter Verwendung von Tools der Plattformschnittstelle 112 erstellt. Wie vorstehend beschrieben, bilden die Absichten Dialogsystem-Elemente (benutzerdefinierte Logiken, die es der Dialogsystem-Engine ermöglichen, Antworten zu erzeugen, die auf spezifische Anforderungen zugeschnitten sind). Die Dialogsystem-Absichten können ein Dialogsystem-Interaktionsschema, eine Regel, die eine Beziehung zwischen einer Benutzeranfrage und einer Dialogsystem-Antwort definiert, eine Regel der Beziehung zwischen einer bestimmten Aktion und der einen oder den mehreren Dialogsystem-Entitäten und so weiter beinhalten. In einigen Beispielen kann der Entwickler eine oder mehrere Dialogsystem-Entitäten, die in einer oder mehreren Dialogsystem-Absichten verwendet werden sollen, explizit definieren. Zusätzlich oder alternativ kann der Entwickler Beispielanfragen (Phrasen) bereitstellen. Basierend auf den Beispielanfragen kann Plattform 110 eine oder mehrere Dialogsystem-Entitäten vorschlagen. Um die Entitäten vorzuschlagen, kann die Plattform 110 die geeigneten Entitäten zunächst in der Liste von Entitäten, die durch den Entwickler bei Operation 204 bereitgestellt wird, suchen. In einigen Beispielen kann die Plattform 110 neue Dialogsystem-Entitäten über eine Maschinenlemtechnik vorschlagen. Dem Entwickler kann es ermöglicht werden, Parameter der vorgeschlagenen neuen Dialogsystem-Entitäten anzunehmen, zu modifizieren oder zu verändern. Der Entwickler kann zudem einen oder mehrere Parameter der Absichten bereitstellen.
  • Es sollte beachtet werden, dass die Definition einer Entität nicht statisch ist. Im Laufe weiterer Operationen kann Plattform 110 die durch den Entwickler definierten Entitäten dynamisch umdefinieren. Die Entitäten können basierend auf Benutzerprofil, Präferenzen, Benutzeranfragen und dergleichen umdefiniert (erweitert) werden. Die umdefinierten Entitäten werden durch die Plattform 110 bei weiterer Verarbeitung verwendet.
  • Bei Operation 208 kann Plattform 110 eine oder mehrere Dialogsystem-Absichten einer oder mehreren Dialogsystem-Aktionen zuordnen, um eine oder mehrere benutzerdefinierte Dialogsystem-Engines 120 oder Dialogagenten zu erstellen. Die benutzerdefinierte Dialogsystem-Engine 120 steht in Verbindung mit einer oder mehreren Dialogsystem-Schnittstellen 130 des Entwicklers. Jede der Aktionen ist durch einen Namen und einen Satz von Aliasnamen in Verbindung mit den Dialogsystem-Entitäten definiert.
  • Operationen 202-208 stellen einen Einrichtungsprozess für benutzerdefinierte Dialogsystem-Engines 120 (Dialogagenten) dar, wohingegen Operationen 210-218 einen Prozess der Ausführung der benutzerdefinierten Dialogsystem-Engine 120 darstellen. Sobald alle Dialogsystem-Elemente der benutzerdefinierten Dialogsystem-Engine 120 erstellt sind, werden diese insbesondere als ein Backend-Dienst aufrechterhalten und ermöglichen, dass beliebige der verbundenen Dialogsystem-Schnittstellen 130 Benutzern die volle Funktionalität des Dialogsystems gemäß vorbestimmten Einstellungen bereitstellen.
  • Insbesondere kann Plattform 110, bei Operation 210, eine Benutzeranfrage von einer nicht identifizierten Dialogsystem-Schnittstelle 130 empfangen. Bei der Benutzeranfrage kann es sich um eine Stimmeingabe (Sprache) oder Texteingabe handeln. In einigen Beispielen kann die Dialogsystem-Schnittstelle 130 die Benutzereingabe, zum Beispiel durch Erkennung gesprochener Wörter und Umwandlung der Stimmeingabe in eine Texteingabe, vorverarbeiten. In anderen Beispielen kann die Vorverarbeitung eine Verbesserung des Audiosignals, eine Rauschunterdrückung, eine Verschlüsselung/Entschlüsselung und dergleichen beinhalten. In anderen Beispielen wird durch die Dialogsystem-Schnittstelle 130 jedoch keine Vorverarbeitung durchgeführt.
  • Bei Operation 212 verarbeitet Plattform 110 die Benutzeranfrage und identifiziert die Dialogsystem-Schnittstelle 130. Der Identifikationsprozess kann auf einem Abrufen einer Kennung der Dialogsystem-Schnittstelle 130 aus der Benutzeranfrage basieren. Die Benutzeranfrage kann zu dem Zeitpunkt, zu dem die Benutzeranfrage von der Dialogsystem-Schnittstelle 130 an die Plattform 110 gesendet wird, zum Beispiel in Begleitung von einer Kennung sein.
  • Bei der Operation 214 aktiviert die Plattform 110, basierend auf dem Ergebnis der Identifikation bei Operation 212, die benutzerdefinierte Dialogsystem-Engine 120, die mit der identifizierten Dialogsystem-Schnittstelle 130 verbunden ist. Bei derselben Operation 214, kann die Plattform 110 außerdem ein oder mehrere Dialogsystem-Elemente (d. h. eine oder mehrere Entitäten und eine oder mehrere Absichten) basierend auf dem Ergebnis der Identifikation bei Operation 212 abrufen oder identifizieren. Bei Operation 214 kann die Plattform 110 Kontexte (eine oder mehrere Kennzeichnungen, Schlüssel, Anhaltspunkte und logische Ausdrücke davon) im Zusammenhang mit der Benutzeranfrage und einer bestimmten Anfragesitzung identifizieren.
  • Bei der Operation 216 verarbeitet die benutzerdefinierte Dialogsystem-Engine 120 die Benutzeranfrage unter Verwendung der bei Operation 214 abgerufenen Dialogsystem-Elemente (d. h. einer oder mehrerer Entitäten und einer oder mehrerer Absichten). Die Absichten können basierend auf Kontexten ausgelöst werden. Die Kontexte können vordefiniert sein, basierend auf den Benutzeranfragen bestimmt werden und, nachdem ein oder mehrere Absichten ausgelöst werden, weiter verändert werden. Die Kontexte können spezifisch für einen bestimmten Benutzer und eine bestimmte Sitzung des Benutzers sein. Einige Beispiele für eine Dialogsystemverarbeitung sind mit Bezugnahme auf FIG. 3 näher erläutert.
  • Bei Operation 218 kann die benutzerdefinierte Dialogsystem-Engine 120 eine Antwort erzeugen und diese an die Dialogsystem-Schnittstelle 130, die in Verbindung mit der benutzerdefinierten Dialogsystem-Engine 120 steht, senden. Die Antwort kann bestimmte Daten, zum Beispiel eine Textnachricht, und/oder eine oder mehrere Aktionen beinhalten. Jede Aktion kann einen Namen der Aktion und einen Satz von Parametern, die unter Verwendung von einer oder mehreren Absichten und der einen oder den mehreren Entitäten identifiziert werden, beinhalten. Die Dialogsystem-Schnittstelle 130 kann die Textnachricht, abhängig von vorbestimmten Einstellungen, anschließend für den Endbenutzer anzeigen oder wiedergeben. Die Dialogsystem-Schnittstelle 130 kann außerdem eine oder mehrere Operationen durchführen, basierend auf der einen oder den mehreren Aktionen unter Verwendung von Aktionsname und Satz von Parametern und gemäß einer benutzerdefinierten Erfüllung im Zusammenhang mit der Aktion. In einigen Beispielen kann die benutzerdefinierte Dialogsystem-Engine 120 die benutzerdefinierte Erfüllung verarbeiten und die Ergebnisse an die Dialogsystem-Schnittstelle 130 senden. Die Antwort der benutzerdefinierten Dialogsystem-Engine 120 kann sich auch auf eine Aktionsanweisung beziehen, die durch ein Client-Gerät, eine/n Webressource/-dienst 160, Plattform 110 oder einen Remote-Server ausgeführt werden kann.
  • 3 zeigt eine High-Level-Architektur 300 der Dialogsystem-Engine 120 gemäß einem Beispiel. Es sollte beachtet werden, dass jedes Modul von Dialogsystem-Engine 120 oder verbundener Architektur Hardware-Komponenten, Software-Komponenten oder eine Kombination davon beinhaltet. Die Dialogsystem-Engine 120 kann in einem Benutzergerät oder Server eingebettet oder darauf installiert sein oder in Form eines Cloud-Computing-Moduls und/oder eines Distributed-Computing-Moduls vorliegen.
  • In dem in 3 veranschaulichten Beispiel beinhaltet die Dialogsystem-Engine 120 einen automatischen Spracherkenner (ASR) 310, der konfiguriert ist, sprachbasierte Benutzereingaben zu empfangen und zu einer Folge von Parametervektoren zu verarbeiten. ASR 310 wandelt die Folge von Parametervektoren ferner in eine erkannte Eingabe (d. h. eine Texteingabe mit einem/-r oder mehreren Wörtern, Phrasen oder Sätzen) um. ASR 310 beinhaltet einen oder mehrere Spracherkenner, z. B. einen musterbasierten Spracherkenner, einen Freidiktat-Erkenner, einen adressbuchbasierten Erkenner, einen dynamisch erstellten Erkenner und so weiter.
  • Darüber hinaus beinhaltet Dialogsystem-Engine 120 ein Modul 320 für natürliche Sprachverarbeitung (NLP) zum Verstehen einer gesprochenen Spracheingabe. Insbesondere kann NLP-Modul 320 die erkannte Eingabe zerlegen und parsen, um Äußerungen zu erzeugen, die anschließend analysiert werden, beispielsweise unter Verwendung von einer morphologischen Analyse, einer Wortartkennzeichnung, einem oberflächlichem Parsen, neuronalen Netzwerken, einer Maschinenlernklassifizierung, einer musterorientierten Klassifizierung und dergleichen. NLP-Modul 320 kann eine erkannte Eingabe oder Teile davon anschließend mit Bedeutungsdarstellungen abgleichen.
  • Die Dialogsystem-Engine 120 beinhaltet ferner einen Dialogmanager 330, der die Aktivität aller Komponenten koordiniert, den Dialogfluss steuert und mit externen Anwendungen, Geräten, Diensten und Ressourcen kommuniziert. Dem Dialogmanager 330 können zahlreiche Rollen zugewiesen sein, welche eine Diskursanalyse, eine Wissensdatenbankabfrage und eine Systemaktionenvorhersage basierend auf dem Diskurskontext beinhalten. In einigen Beispielen kann der Dialogmanager 330 eine Verbindung zu einem oder mehreren Task-Managern (nicht dargestellt) herstellen, die über Kenntnisse bezüglich spezifischer Task-Domänen verfügen können. In einigen Beispielen kann der Dialogmanager 330 mit verschiedenen Computer-, Logik- oder Speicherressourcen 340 kommunizieren, die zum Beispiel einen Inhaltsspeicher, eine Regeldatenbank, eine Empfehlungsdatenbank, eine Push-Benachrichtigungsdatenbank, ein elektronisches Adressbuch, E-Mail- oder Textagenten, eine Dialogverlaufsdatenbank, eine disparate Wissensdatenbank, eine Kartendatenbank, eine Sehenswürdigkeitendatenbank, einen Einrichtung zum Bestimmen des geografischen Standorts, eine Uhr, einen Drahtlosnetzwerkdetektor, Suchmaschinen, soziale Netzwerkwebseiten, Blogging-Webseiten, News-Feed-Dienste und viele andere beinhalten können. In einigen Beispielen beinhalten Computer- oder Speicherressourcen 340 eine/n oder mehrere vorstehend erläuterte Webressourcen/-dienste 160.
  • Während der Operation (z. B. innerhalb einer Dialogsitzung) kann der Dialogmanager 330 den Dialogfluss gemäß Eingabe- und Ausgabekontexten steuern. Die Eingabekontexte stellen einige der Vorbedingungen für eine Absichtsausführung dar. Eine bestimmte Absicht wird nur dann, wenn bestimmte Eingabekontexte in einer Benutzeranfrage vorliegen, oder als Ergebnis einer Ausführung vorheriger Absichten ausgeführt. Wenn basierend auf dem gleichen Kontext mehrere Absichten ausgelöst werden können, kann eine Entscheidung darüber, welche Absicht ausgeführt werden soll, auf einer Gewichtung der Absicht in Bezug auf den Kontext, Alter des Kontextes und andere in den Einstellungen spezifizierte Parameter basiert sein. Neuerer Kontext kann eine höhere Priorität aufweisen. Ausgabekontexte können bei Übereinstimmung und Ausführung der Absicht eingestellt werden.
  • In verschiedenen Beispielen kann Dialogmanager 330 die Benutzeranfrage an Dialogsysteme übergeben. Die Dialogsysteme können benutzerdefinierte Dialogsysteme beinhalten, die durch einen Entwickler entwickelt werden, wie in 1 und 2 beschrieben. Zugleich können die Benutzeranfragen in einigen Beispielen parallel an Aufgabendomänen gesendet werden. Die Aufgabendomänen sind vorgefertigte Dialogsysteme, die die Anfrage verarbeiten und eine Antwort bereitstellen können. Wenn die benutzerdefinierten Dialogsysteme keine Antwort auf die Benutzeranfrage bereitstellen können, fährt Dialogmanager 330 in einigen Beispielen mit einer Antwort fort, die von den Aufgabendomänen aus empfangen wird.
  • Der Dialogmanager 330 kann mehrere unterschiedliche Ansätze verfolgen, um Ausgaben in Reaktion auf erkannte Eingaben zu erzeugen. Einige Ansätze beinhalten die Verwendung von statistischer Analyse, Maschinenlemalgorithmen (z. B. neuronale Netzwerke), heuristischer Analyse und so weiter. Dialogmanager 330 ist eine von den zentralen Komponenten von Dialogsystem-Engine 120. Die Hauptaufgabe des Dialogmanagers 330 ist es, die korrekten Systemaktionen basierend auf beobachteten Anhaltspunkten und abgeleiteten Dialogzuständen aus den NLP-Ergebnissen (z. B. Dialogakt, Benutzerziel und Diskursverlauf) auszuwählen. Darüber hinaus kann Dialogmanager 330 Fehler behandeln, wenn die Benutzereingabe durch Störgeräusche oder unerwartete Eingaben verursachte ASR- und NLP-Fehler aufweist.
  • Dialogsystem-Engine 120 kann ferner einen Ausgabe-Renderer 350 zum Umwandeln der durch den Dialogmanager 330 ausgewählten Aktion in eine Ausgabe in einer zur Bereitstellung für den Benutzer geeigneten Form oder in Form einer computerimplementierbaren oder prozessorimplementierbaren Anweisung (z. B. API-Code) beinhalten. Der Ausgabe- Renderer 350 kann zum Beispiel eine Sprachsynthese-Engine anwenden oder eine Verbindung zu einer Datenbank für voraufgenommene Audioaufnahmen herstellen, um eine Audionachricht entsprechend der Ausgabe des Dialogmanagers 330 zu erzeugen. In bestimmten Beispielen kann der Ausgabe-Renderer 350 die Ausgabe des Dialogmanagers 330 als eine Textnachricht, ein Bild oder eine Videonachricht zur weiteren Anzeige auf einem Anzeigebildschirm des Benutzergerätes darstellen oder eine Darstellung verursachen.
  • In anderen Beispielen stellt der Ausgabe-Renderer 350 eine ausgewählte Aktion (einen Namen einer Aktion und einen Satz von Parametern) für die Dialogsystem-Schnittstelle 130 auf Client-Seite 140 bereit. Entwickler können die Dialogsystem-Schnittstelle 130 so konfigurieren, dass diese die ausgewählte Aktion verarbeitet und eine oder mehrere Operationen durchführt, z. B. Senden einer Anfrage an einen Webdienst, Datenbankoperationen, Anzeigen einer Textnachricht, Wiedergeben von Audio oder Video auf dem Benutzergerät, Erzeugen eines Textes, Verarbeiten davon über ein Sprachsynthesesystem und so weiter. In einigen Beispielen können Entwickler die benutzerdefinierte Dialogsystem-Engine 120 so konfigurieren, dass diese die Aktion gemäß der Erfüllung im Zusammenhang mit der Aktion bearbeitet und das Ergebnis für die Dialogsystem-Schnittstelle 130 bereitstellt.
  • 4 zeigt eine exemplarische GUI 400 einer Plattformschnittstelle 112 zum Erstellen einer neuen Dialogsystem-Entität, wie vorstehend erläutert. Wenn der Entwickler benutzerdefinierte Dialogsystem-Engines 120 erstellen möchte, kann er Dialogsystem-Entitäten und Absichten unter Verwendung von Web-Tools von Plattformschnittstelle 112, wie z. B. GUI 400, definieren. Unter Verwendung der GUI 400 kann der Entwickler einen Referenzwert 402 für ein Schlüsselwort eingeben und ein Synonym 404 für den bereitgestellten Referenzwert in den entsprechenden Feldern eingeben, die durch die GUI 400 bereitgestellt werden. Die Dialogsystem-Entitäten können ein Schlüsselwort (oder einen Referenzwert) und Synonyme für das Schlüsselwort, ein Schlüsselwort und Definitionen des Schlüsselwortes, eine Liste von Schlüsselwörtern, die Objekte einer Klasse definieren, und so weiter beinhalten. Schlüsselwörter oder Referenzwerte und deren Synonyme und/oder Definitionen bilden eine Dialogsystem-Entität.
  • In einigen Beispielen kann jede Entität einen Titel aufweisen. Zum Beispiel kann eine Entität mit dem Titel „Stadt“ versehen werden und eine Liste von Städten, wie Arlington, Boston, Chicago und so weiter, enthalten. In anderen Beispielen kann eine Entität als ein Schlüsselwort betitelt werden und Synonyme oder Definitionen für dieses Schlüsselwort enthalten. In einem Beispiel kann die Entität mit dem Namen „Musik“ die Begriffe Lied, Sänger, singen, Musiker und so weiter beinhalten. In einem anderen Beispiel kann die Entität mit dem Namen „Künstler“ eine Liste von Musik-Bands, Musik-Gruppen oder Musik-Künstlern beinhalten. In einem anderen Beispiel kann die Entität mit dem Namen „Beatles“ eine Liste möglicher Synonyme, wie z. B. „The Beatles“, „Beatles“, „Fab Four“, „Liverpool Legends“, „John Lennon“ und so weiter, beinhalten. In einem weiteren Beispiel kann es eine Entität mit dem Namen „Künstler“ geben, die verschiedene Künstlernamen, Künstlernamensynonyme, Musik-Band-Namen und so weiter beinhalten kann.
  • 5 zeigt eine exemplarische GUI 500 einer Plattformschnittstelle 112 zum Erstellen einer neuen Dialogsystem-Absicht, wie vorstehend erläutert. Die Dialogsystem-Absicht kann eine Beziehung zwischen einer Benutzeranfrage und einer Dialogsystem-Antwort definieren und kann mit einer Regel verbunden sein, die auf einer Beziehung zwischen einer bestimmten Aktion und einer Entität basiert. Im Allgemeinen kann jede Absicht wie die folgende computerlesbare Prozedur dargestellt werden: „[Aktion] @Entität]“ oder „[Aktion] @Entitäten]“. Unter Verwendung der GUI 500 kann ein Entwickler Benutzerausdrücke 502 (z. B. „Wetter @Stadt“) hinzufügen, um Absichten und Entitäten zu veranschaulichen. Basierend auf dem Benutzerausdruck 502 bestimmt die Plattform 110, unter Verwendung von Maschinenlemtechniken, automatisch, welche Entitäten und Absichten in Beispielanfragen impliziert sind und erstellt eine entsprechende Regel. Der Entwickler kann zum Beispiel lediglich Beispielanfragen, wie z. B. „Wettervorhersage für Los Angeles“, bereitstellen. Die Plattform 110 kann „Los Angeles“ zu vorhandenen (System- oder benutzerdefinierten) Entitäten zuordnen und automatisch entsprechende Regeln „[Aktion] @[Entität]“ erzeugen. Zusätzlich oder alternativ kann der Entwickler eine Beispielanfrage bereitstellen, bei der eine oder mehrere Entitäten explizit dargestellt werden, wie z. B. „Wie ist das Wetter in @say.geo-Stadt:geo-Stadt-us“. In dem Beispiel aus 5 sind „Wetter“ und die Parameter mit der Aktion 506 „geo-Stadt-us“ und „geo-Stadt“ assoziiert. Der Entwickler kann die Aktion 506 ferner modifizieren und eine Erfüllung 508 für die Aktion 506 bereitstellen.
  • Die erstellte Regel bedeutet, dass eine bestimmte Aktion durch Client-Seite 140 (oder einen Server, Webdienst usw.) in Bezug auf die Entität oder mehrere Entitäten durchgeführt werden soll. Eine Absicht kann zum Beispiel als „Suche nach Vorhersage für $geo-Stadt-us“ dargestellt werden. In diesem Beispiel befiehlt die Absicht der Dialogsystem-Engine 120, nach einer Vorhersage für Los Angeles zu suchen.
  • In einigen Beispielen stellt GUI 500 eine Steuerung 510 für maschinelles Lernen bereit. Ein Umschalten eines Maschinenlemalgorithmus kann eine Handhabung von unscharfen Übereinstimmungen ermöglichen, die von harten/festen Übereinstimmungen bis zu weitgefassten unscharfen oder maschinell erlernten Übereinstimmungen reichen.
  • In einigen Beispielen kann die Plattformschnittstelle 112 eine GUI zur Bereitstellung von Anfrageprotokollen und zur Verarbeitung von Absichten in Verbindung mit einem bestimmten Dialogsystem-Endbenutzer oder einer Gruppe von Endbenutzern bereitstellen. 6 zeigt eine exemplarische GUI 600 zur Bereitstellung eines Anfrageprotokolls eines bestimmten Benutzers.
  • In verschiedenen Beispielen kann die Plattformschnittstelle 112 Entwicklern Tools zur statistischen Analyse der Leistungsfähigkeit eines benutzerdefinierten Dialogsystems bereitstellen. Die resultierenden Statistiken können eine Anzahl von Sitzungen, Anzahl von Anfragen, Anzahl klassifizierter Anfragen (für welche mindestens eine Absicht ausgelöst wird), Anzahl nicht klassifizierter Anfragen (für welche keine Absicht ausgelöst wird), Präzision, Recall, F-Scores für Anfragen und dergleichen beinhalten. In einigen Beispielen werden nicht klassifizierte Anfragen basierend auf einer Maschinenlernbündelung in Gruppen unterteilt.
  • In weiteren Beispielen kann die Plattformschnittstelle 112 Tools zum Markieren von Entitäten in nicht klassifizierten Anfragen durch einen Entwickler oder eine Maschinenlemtechnik bereitstellen, um neue Entitäten, Absichten, Aktionen und Erfüllung für die Anfrage zu erzeugen. Die Plattformschnittstelle 112 kann Tools zum Reklassifizieren der Anfrage durch ein oder mehrere benutzerdefinierte Dialogsysteme beinhalten.
  • 7 zeigt ein Prozessablaufdiagramm, das ein Verfahren 700 zum Sammeln von Absichtsparametern und Betreiben eines Dialogsystems gemäß einem Beispiel darstellt. Das Verfahren 700 kann durch Verarbeitungslogik durchgeführt werden, die Hardware (z. B. Entscheidungslogik, dedizierte Logik, programmierbare Logik, anwendungsspezifische integrierte Schaltung (ASIC) und Mikrocode), Software (wie etwa Software, die auf einem Universalcomputersystem oder einer dedizierten Maschine ausgeführt wird) oder eine Kombination von beiden umfassen kann. In einem Beispiel bezieht sich die Verarbeitungslogik auf Plattform 110, Backend-Dienst 114, benutzerdefinierte Dialogsystem-Engine 120, Computergerät 1000 oder eine beliebige Kombination derselben. Die nachstehend angeführten Schritte von Verfahren 700 können in einer anderen Reihenfolge als beschrieben und in der Figur dargestellt implementiert werden. Zudem kann Verfahren 700 zusätzliche Schritte aufweisen, die hierin nicht dargestellt sind, die für Fachleute auf dem Gebiet jedoch aus der vorliegenden Offenbarung ersichtlich sein können. Das Verfahren 700 kann auch weniger Schritte aufweisen, als nachstehend dargelegt und in 7 dargestellt.
  • Das Verfahren 700 kann bei Operation 702 mit einem Empfangen einer Spracheingabe eines Benutzers durch ein Dialogsystem (z. B. die benutzerdefinierte Dialogsystem-Engine 120) beginnen. Die Spracheingabe kann der Client-Seite 140 über die Dialogsystem-Schnittstelle 130 bereitgestellt werden. Die Spracheingabe kann auf Client-Seite 140 oder durch das Dialogsystem verarbeitet werden. Beispielsweise kann die Spracheingabe erkannt und in eine computerlesbare Texteingabe umgewandelt werden.
  • Bei Operation 704 kann das Dialogsystem (z. B. die benutzerdefinierte Dialogsystem-Engine 120) eine Dialogsystem-Absicht im Zusammenhang mit der Spracheingabe basierend auf mindestens einem vorbestimmten Absichtsschlüsselwort der Spracheingabe identifizieren oder bestimmen. Mit anderen Worten kann das Dialogsystem die Spracheingaben verarbeiten, um zu bestimmen, ob sich ein oder mehrere Absichtsschlüsselwörter auf eine der vorbestimmten Absichten beziehen. Die Spracheingabe „Bitte bestelle eine Pizza für mich“ beinhaltet zum Beispiel die Absichtsschlüsselwörter „bestellen“ und „Pizza“, die ein Auslösen oder Erkennen einer vorbestimmten „Pizzabestellungs“-Absicht veranlassen können (welche durch Entwickler zuvor über Plattform 110 erstellt worden sein kann). Die Dialogsystem-Absicht kann einen Einstiegspunkt in einen Parametersammlungsdialog zum Sammeln von Absichtsparametern darstellen. In dem gegebenen Beispiel können Absichtsparameter eine Pizzagröße, Teigart, Auswahl von Belägen, Soßen, eine Lieferadresse, einen Lieferzeitpunkt, Verkäufer und dergleichen beinhalten. Dementsprechend können die Absichtsparameter einem Parameternamen und dessen Wert zugeordnet sein. Der Parameterwert kann einen numerischen Wert, ein Wort, eine Phrase, einen Ton oder ein Bild beinhalten. In einigen Implementierungen können einige oder alle der Absichtsparameter aus einer Liste vorbestimmter Werte ausgewählt werden (z. B. kann ein Absichtsparameter aus einer Liste vorbestimmter Städtenamen ausgewählt werden).
  • Bei Operation 706 kann das Dialogsystem bestimmen, ob die Spracheingabe bereits alle der fehlenden erforderlichen Absichtsparameter beinhaltet. Wenn bestimmt wird, dass alle der fehlenden erforderlichen Absichtsparameter in der bei Operation 702 gegebenen Spracheingabe vorliegen, kann das Verfahren mit Operation 708 fortfahren. Bei Operation 708 kann das Dialogsystem die fehlenden erforderlichen Absichtsparameter aus der Spracheingabe identifizieren und sammeln. Die gesammelten erforderlichen Absichtsparameter können vorübergehend in einem Zwischenspeicher oder einem Speicher gespeichert werden.
  • Bei Operation 710 erzeugt das Dialogsystem, sobald alle der erforderlichen fehlenden Absichtsparameter gesammelt sind, eine Aktionsanweisung im Zusammenhang mit dem Dialogsystem basierend auf der Absicht und den Absichtsparametern. Die Aktionsanweisung kann konfiguriert sein, ein Dialogsystem, einen Server, ein Benutzergerät oder eine Dialogsystem-Schnittstelle zu veranlassen, eine vorbestimmte Aktion basierend auf der Aktionsanweisung und einem oder mehreren erforderlichen Absichtsparametern zu implementieren. In dem vorstehend gegebenen Beispiel kann sich die Aktionsanweisung auf eine elektronische Bestellung beziehen, die an einen vorbestimmten Webdienst 160 zum Bestellen von Pizza basierend auf den zuvor gesammelten Absichtsparametern gesendet wird. Dementsprechend kann die Aktionsanweisung in einigen Beispielen eine API-spezifische Antwort (oder API-Code) beinhalten, die konfiguriert ist, einen API-Dienst zu veranlassen. Der API-Code der Aktionsanweisung kann zum Beispiel in einem JavaScript-Object-Notation(JSON)-Format vorliegen.
  • In einigen Beispielen kann das Dialogsystem, bei Operation 710, vor der Erzeugung der Aktionsanweisung, eine Antwortnachricht erzeugen und diese dem Benutzer präsentieren. Die Antwortnachricht kann einen oder mehrere der gesammelten Absichtsparameter wiederholen und den Benutzer bitten, zu bestätigen, ob die Absichtsparameter korrekt sind. Das Dialogsystem kann beispielsweise eine über Dialogsystem-Schnittstelle 130 zu übergebende Text- oder Audionachricht erzeugen, wie z. B. „Sie wollen eine große Pizza Margherita bestellen, die in einer Stunde zu Ihnen nach Hause geliefert werden soll. Ist das korrekt?“. Wenn der Benutzer dies bestätigt, kann das Dialogsystem mit der Wiedergabe der Aktionsanweisung, wie vorstehend beschrieben, fortfahren. Andernfalls kann das Dialogsystem eine oder mehrere Eingabeaufforderungen bereitstellen, um den Benutzer zu bitten, seine Anfrage zu präzisieren.
  • Wenn bei Operation 706 bestimmt wird, dass die anfängliche Spracheingabe (die bei Operation 702 erfasst wird) nicht alle der fehlenden erforderlichen Absichtsparameter beinhaltet, kann das Verfahren mit Operation 712, wie in 7 dargestellt, fortfahren. Bei Operation 712 kann das Dialogsystem einen vorbestimmten Parametersammlungsdialog im Zusammenhang mit der bei Operation 704 identifizierten Absicht initiieren. Der vorbestimmte Parametersammlungsdialog kann eine Anzahl von Eingabeaufforderungsnachrichten beinhalten, die durch das Dialogsystem gestellt werden können, um fehlende erforderliche Absichtsparameter und, in einigen Beispielen, optionale Absichtsparameter zu erhalten. Folglich kann das Dialogsystem, bei Operation 712, eine oder mehrere Eingabeaufforderungen für den Benutzer bereitstellen, um den Benutzer aufzufordern, einen oder mehrere fehlende Absichtsparameter einzugeben. Das Dialogsystem kann den Benutzer bei Operation 712 zum Beispiel fragen „Welche Pizzagröße wollen Sie - groß, mittel oder klein?“ oder „Sagen Sie mir, welchen Belag sie gerne hätten?“.
  • Bei Operation 714 kann das Dialogsystem eine oder mehrere zusätzliche Spracheingaben von dem Benutzer empfangen, die Antworten auf die bei der vorherigen Operation gegebenen Eingabeaufforderungen beinhalten. Das Dialogsystem kann die erforderlichen Absichtsparameter aus den zusätzlichen Spracheingaben oder aus anderen Quellen erfassen. Bei Operation 716 kann das Dialogsystem bestimmen, ob alle erforderlichen Absichtsparameter verfügbar sind. Wenn bestimmt wird, dass alle der erforderlichen Absichtsparameter verfügbar sind, kann das Verfahren mit Operation 710 fortfahren. Andernfalls, wenn bestimmt wird, dass nicht alle der erforderlichen Absichtsparameter verfügbar sind, kann das Verfahren zu Operation 712, wie in 7 dargestellt, zurückkehren. Die Operationen 712, 714 und 716 können solange wiederholt werden, bis alle der fehlenden erforderlichen Absichtsparameter gesammelt sind.
  • Wie vorstehend erläutert, kann Plattform 110 ermöglichen, dass Entwickler Dialogagenten eines Dialogsystems für natürliche Sprache erstellen oder modifizieren, um die Sammlung aller der erforderlichen Absichtsparameter zu automatisieren. Jeder Entwickler kann ein Entwicklerprofil auf Plattform 110 haben, das alle der benutzerdefinierten Dialogsystem-Engines und Dialogagenten des Entwicklers speichert. 8 zeigt eine exemplarische GUI 800 einer Plattformschnittstelle 112 zum Erstellen eines Dialogagenten zur Sammlung von Absichtsparametern in einem Parametersammlungsdialog gemäß einem Beispiel.
  • Wie in 8 dargestellt, beinhaltet GUI 800 eine betätigbare Schaltfläche 802, die ein Erstellen einer Dialogsystem-Absicht veranlassen kann. Ein Entwickler kann zum Beispiel eine Absicht zum elektronischen Buchen von Hotels erstellen und einen Parametersammlungsdialog für diese Absicht erstellen, um alle der Absichtsparameter zu sammeln, die erforderlich sind, um eine Hotelreservierung ordnungsgemäß zu buchen. Der Entwickler kann der neu erstellten Absicht zunächst einen Namen geben, wie bei der in 8 durch Widget 804 gezeigten Absicht „Buche ein Hotel“. Ferner kann der Entwickler über die Oberfläche der GUI 800 eine oder mehrere Beispielphrasen oder -schlüsselwörter bereitstellen, die eine Aktivierung dieser Absicht auslösen können. Für diese Zwecke kann der Entwickler Beispielphrasen oder -schlüsselwörter über Widget 806 bereitstellen. Einige der Beispielphrasen oder -schlüsselwörter für die Absicht „Buche ein Hotel“ beinhalten „Buche ein Hotel“, „Buche ein Hotel in @sys.geo-Stadt: Stadt“ oder „Buche ein Hotel in @sys.geo-Stadt:Stadt am @sys.Datum:Datum“. @sys.geo-Stadt:Stadt und @sys.Datum:Datum beziehen sich an dieser Stelle jeweils auf die Entitäten „Stadt“ und „Datum“. Mit anderen Worten können Beispielphrasen oder -schlüsselwörter zur Auslösung von Absichten in einigen Beispielen einer oder mehreren Entitäten zugeordnet sein. Durch Klicken auf die Schaltfläche 808 kann der Entwickler zusätzliche Beispielphrasen oder -schlüsselwörter, die dieser Absicht zugeordnet sind, hinzufügen.
  • Darüber hinaus kann der Entwickler eine der vorbestimmten Aktionen auswählen oder eine neue Aktion erstellen, die durchgeführt werden soll, wenn die Absicht durch das Dialogsystem ausgeführt wird. Ein Widget 810 zeigt an dieser Stelle, dass der Entwickler eine der vorbestimmten Aktionen ausgewählt oder eine neue Aktion „Buche Hotel“ erstellt hat, die über eine weitere GUI der Plattformschnittstelle 112 angepasst werden kann. Zudem kann der Entwickler einen oder mehrere Absichtsparameter bereitstellen, die in dem Parametersammlungsdialog gesammelt werden sollen, wenn dieser im Verlauf eines Dialogs mit einem Benutzer aktiviert wird. Die Absichtsparameter können „Stadt“, „Datum“ und so weiter beinhalten. Wie in 8 dargestellt, werden die Absichtsparameter über GUI-Widget 812 bereitgestellt, identifiziert oder modifiziert. Durch Klicken auf Schaltfläche 814 kann der Entwickler einen neuen Absichtsparameter zu der Liste hinzufügen. Jeder der Absichtsparameter kann eine Reihe von Merkmalen aufweisen. Der Entwickler kann zum Beispiel festlegen, ob ein Absichtsparameter erforderlich (obligatorisch) oder optional ist. Ferner kann der Entwickler einen Parameternamen, einen Parameterdatentyp und einen Parameterwert bereitstellen oder modifizieren und eine oder mehrere Eingabeaufforderungsnachrichten bereitstellen. Das Dialogsystem kann die Eingabeaufforderungsnachrichten von jedem der Absichtsparameter während des Parametersammlungsdialogs abfragen, um alle fehlenden Absichtsparameterwerte zu erfassen (z. B. wie vorstehend mit Bezug auf Operation 712 und 714 von Verfahren 700 beschrieben).
  • 9 zeigt eine exemplarische GUI einer Plattformschnittstelle 112 zum Definieren von Eingabeaufforderungen eines Dialogagenten gemäß einem Beispiel. Wie in der Figur dargestellt, kann jeder der Absichtsparameter dem Parameternamen (z. B. Stadt), Parameterdatentyp (z. B. @sys.geo-Stadt), Parameterwert (z. B. $Stadt) und einer oder mehreren Eingabeaufforderungsnachrichten 902 zugeordnet sein. Hier können sich der Parameterdatentyp und Parameterwert auf eine Dialogsystem-Entität beziehen. Darüber hinaus kann sich Eingabeaufforderungsnachrichten 902 auf „Wohin wollen Sie?“ und „Was ist das Ziel?“ beziehen. Der Entwickler kann so viele Eingabeaufforderungen bereitstellen, wie er will. Die Reihenfolge beim Auswählen und Bereitstellen der Eingabeaufforderungen für den Benutzer kann zufällig sein oder durch den Entwickler vorbestimmt werden.
  • Wie vorstehend bereits erläutert, kann es bei einigen Parametern obligatorisch (erforderlich) sein, dass diese beim Benutzer abgefragt werden und dass ihre jeweiligen Werte von dem Benutzer erfasst werden, wohingegen andere Parameter optional sein können. Der „Stadt“-Parameter kann zum Beispiel obligatorisch, der Name der Hotelkette jedoch optional sein.
  • 10 zeigt ein High-Level-Blockdiagramm, das ein Computergerät 1000 veranschaulicht, das zur Implementierung der hierin beschriebenen Verfahren geeignet ist. Insbesondere kann Computergerät 1000 zum Erstellen und Modifizieren von Dialogsystemen durch Entwickler und zum Realisieren von Dialogsystemen verwendet werden. Das Computergerät 1000 kann ein integraler Bestandteil von einem oder mehreren Gerätetypen, wie, unter anderem, einem Universalcomputer, Desktop-Computer, Laptop-Computer, Server, Netbook, Mobiltelefon, Smartphone, Infotainmentsystem oder Smart-TV-Gerät, sein oder diese beinhalten. In einigen Beispielen kann das Computergerät 1000 als eine Instanz eines Client-Gerätes, Servers, einer Plattform 110 oder eines Dialogsystems verstanden werden.
  • Wie in 10 dargestellt, beinhaltet Computergerät 1000 einen oder mehrere Prozessoren 1010, Speicher 1020, einen oder mehrere Massenspeicher 1030, ein oder mehrere Eingabegeräte 1050, ein oder mehrere Ausgabegeräte 1060, eine Netzwerkschnittstelle 1070, ein oder mehrere optionale Peripheriegeräte 1080 und einen Kommunikationsbus 1090 zum betriebsmäßigen Verbinden der vorstehend aufgeführten Elemente miteinander. Die Prozessoren 1010 können konfiguriert sein, Funktionalität zu implementieren und/oder Anweisungen für das Ausführen innerhalb des Computergeräts 1000 zu verarbeiten. Die Prozessoren 1010 können zum Beispiel Anweisungen, die in Speicher 1020 gespeichert sind und/oder Anweisungen, die auf Speichergeräten 1030 gespeichert sind, verarbeiten. Diese Anweisungen können Komponenten eines Betriebssystems oder Software-Anwendungen beinhalten.
  • Der Speicher 1020 ist gemäß einem Beispiel konfiguriert, Informationen während des Betriebs innerhalb von Computergerät 1000 zu speichern. Speicher 1020 kann sich in einigen Beispielen auf ein nicht flüchtiges computerlesbares Speichermedium oder ein computerlesbares Speichergerät beziehen. In einigen Beispielen ist der Speicher 1020 ein temporärer Speicher, was bedeutet, dass der Hauptzweck des Speichers 1020 nicht unbedingt eine Langzeitspeicherung ist. Speicher 1020 kann sich auch auf einen flüchtigen Speicher beziehen, was bedeutet, dass die in Speicher 1020 gespeicherten Inhalte verloren gehen, wenn Speicher 1020 nicht mit Strom versorgt wird. Beispiele von flüchtigen Speichern beinhalten Direktzugriffsspeicher (RAM), dynamischen Direktzugriffsspeicher (DRAM), statischen Direktzugriffsspeicher (SRAM) und andere Formen von flüchtigen Speichern, die im Stand der Technik bekannt sind. In einigen Beispielen wird der Speicher 1020 verwendet, um Programmanweisungen für das Ausführen durch die Prozessoren 1010 zu speichern. In einem Beispiel wird der Speicher 1020 von Software-Anwendungen verwendet. Im Allgemeinen beziehen sich Software-Anwendungen auf Software-Anwendungen, die zur Implementierung mindestens einiger Operationen der Verfahren zum Sammeln von Absichtsparameter und zum Betreiben eines Dialogsystems, wie hierin beschrieben, geeignet sind.
  • Massenspeichergeräte 1030 können auch ein oder mehrere flüchtige oder nicht flüchtige computerlesbare Speichermedien und/oder computerlesbare Speichergeräte beinhalten. In einigen Beispielen können die Speichergeräte 1030 konfiguriert sein, größere Mengen an Informationen als der Speicher 1020 zu speichern. Die Speichergeräte 1030 können außerdem für eine Langzeitspeicherung von Informationen konfiguriert sein. In einigen Beispielen beinhalten die Massenspeichergeräte 1030 nicht flüchtige Speicherelemente. Beispiele für derartige nicht flüchtige Speicherelemente beinhalten magnetische Festplatten, optische Platten, Solid-State-Platten, Flashspeicher, Formen von elektrisch programmierbaren Speichern (EPROM) oder von elektrisch überschreibbaren und programmierbaren Speichern sowie andere Formen von nicht flüchtigen Speichern, die im Stand der Technik bekannt sind.
  • Wie unter weiterer Bezugnahme auf 10 ersichtlich, kann das Computergerät 1000 auch eine oder mehrere Eingabegeräte 1050 beinhalten. Die Eingabegeräte 1050 können konfiguriert sein, eine Eingabe von einem Benutzer über taktile, Audio-, Video- oder biometrische Kanäle zu empfangen. Beispiele für Eingabegeräte 1050 können eine Tastatur, ein Tastenfeld, eine Maus, einen Trackball, einen Touchscreen, ein Touchpad, ein Mikrofon, eine Videokamera, einen Bildsensor, einen Fingerabdrucksensor oder ein beliebiges anderes Gerät beinhalten, das in der Lage ist, eine Eingabe von einem Benutzer oder einer anderen Quelle zu erkennen und die Eingabe an das Computergerät 1000 oder Komponenten derselben weiterzuleiten. Die Ausgabegeräte 1060 können konfiguriert sein, eine Ausgabe für einen Benutzer über visuelle oder akustische Kanäle bereitzustellen. Ausgabegeräte 1060 können eine Videografikadapterkarte, eine Anzeige, wie z. B einen Flüssigkristallanzeige(LCD)-Monitor, einen Leuchtdioden(LED)-Monitor oder einen Monitor mit organischen Leuchtdioden, eine Soundkarte, einen Lautsprecher, ein Beleuchtungsgerät, einen Projektor oder ein beliebiges anderes Gerät beinhalten, das in der Lage ist, eine für den Benutzer verständliche Ausgabe zu erzeugen. Die Ausgabegeräte 1060 können auch einen Touchscreen, eine präsenzempfindliche Anzeige oder andere ein-/ausgabefähige Anzeigen, die im Stand der Technik bekannt sind, beinhalten.
  • Computergerät 1000 kann zudem eine Netzwerkschnittstelle 1070 beinhalten. Netzwerkschnittstelle 1070 kann zum Kommunizieren mit externen Geräten über ein oder mehrere Netzwerke genutzt werden, wie unter anderem z. B. über ein oder mehrere drahtgebundene, drahtlose oder optische Netzwerke, die beispielsweise das Internet, ein Intranet, lokales Netzwerk, Großraumnetzwerk, Mobilfunknetze (z. B. Global-System-for-Mobile-Communication-Netzwerk, Long-Term-Evolution-Kommunikationsnetz, Paketvermittlungskommunikationsnetz, leitungsvermittelndes Kommunikationsnetz), Bluetooth-Funk und ein IEEE 802.11-basiertes Hochfrequenznetzwerk. Die Netzwerkschnittstelle 1070 kann eine Netzwerkschnittstellenkarte, wie z. B. eine Ethernet-Karte, ein optischer Sendeempfänger, ein Hochfrequenz-Sendeempfänger oder eine andere Art von Gerät sein, das Informationen senden und empfangen kann.
  • Ein Betriebssystem von Computergerät 1000 kann eine oder mehrere Funktionalitäten von Computergerät 1000 oder Komponenten desselben steuern. Das Betriebssystem kann beispielsweise mit Software-Anwendungen interagieren und eine oder mehrere Interaktionen zwischen den Software-Anwendungen und den Prozessoren 1010, dem Speicher 1020, den Speichergeräten 1030, Eingabegeräten 1050, Ausgabegeräten 1060 und Netzwerkschnittstelle 1070 ermöglichen. Das Betriebssystem kann mit Software-Anwendungen oder Komponenten derselben interagieren oder anderweitig verbunden sein. In einigen Beispielen können die Software-Anwendungen in dem Betriebssystem enthalten sein.
  • Verfahren und Systeme zur Sammlung von Absichtsparametern in Dialogsystemen wurden demnach beschrieben. Obwohl bestimmte Aspekte mit Bezug auf spezifische Beispiele beschrieben wurden, wird ersichtlich sein, dass verschiedene Modifikationen und Veränderungen an diesen Beispielen vorgenommen werden können, ohne vom weitergefassten Gedanken und Schutzumfang der vorliegenden Anwendung abzuweichen. Dementsprechend sind die Spezifikation und die Zeichnungen in einem veranschaulichenden und nicht in einem einschränkenden Sinne zu betrachten.
  • Die vorstehende ausführliche Beschreibung beinhaltet Verweise auf die zugehörigen Zeichnungen, die Teil der ausführlichen Beschreibung sind. Die in diesem Abschnitt beschriebenen Ansätze stellen keinen Stand der Technik gegenüber den Ansprüchen dieser Anmeldung dar und werden durch Aufnahme in diesen Abschnitt nicht als Stand der Technik anerkannt. Die Zeichnungen zeigen Veranschaulichungen gemäß den hierin offenbarten Beispielen. Diese Beispiele, die hierin auch als „Beispiele“ bezeichnet werden, sind ausführlich genug beschrieben, um Fachleuten auf dem Gebiet zu ermöglichen, den vorliegenden Gegenstand auszuführen. Die Beispiele können kombiniert werden, andere Beispiele können genutzt werden oder es können strukturelle, logische und operative Veränderungen vorgenommen werden, ohne vom Schutzumfang der Ansprüche abzuweichen. Die folgende ausführliche Beschreibung soll daher nicht in einem einschränkenden Sinne verstanden werden, zudem wird der Schutzumfang durch die beigefügten Ansprüche und deren Äquivalente definiert.
  • Die vorstehend bereitgestellten Beispiele sind in den zugehörigen Zeichnungen durch verschiedene Blöcke, Komponenten, Schaltungen, Schritte, Operationen, Prozesse, Algorithmen usw. referenziert, die zusammengefasst als „Elemente“ bezeichnet werden. Diese Elemente können unter Verwendung von elektronischer Hardware, Computersoftware oder einer beliebigen Kombination derselben implementiert sein. Ob diese Elemente als Hardware oder Software implementiert werden, hängt von der bestimmten Anwendung und den Designbeschränkungen ab, die dem Gesamtsystem auferlegt sind.
  • Ein Element oder ein beliebiger Abschnitt eines Elements oder eine Kombination von Elementen kann beispielsweise mit einem „Verarbeitungssystem“ implementiert werden, das einen oder mehrere Prozessoren beinhaltet. Beispiele für Prozessoren beinhalten Mikroprozessoren, Mikrocontroller, zentrale Verarbeitungseinheiten (CPUs), digitale Signalprozessoren (DSPs), feldprogrammierbare Universalschaltkreise (FPGAs), programmierbare Logikbaugruppen (PLDs), Zustandsmaschinen, gategesteuerte Logik, diskrete Hardware-Schaltungen und andere geeignete Hardware, die konfiguriert ist, verschiedene, in der gesamten Offenbarung beschriebene, Funktionen durchzuführen. Ein oder mehrere Prozessoren in dem Verarbeitungssystem können Software, Firmware oder Middleware (die zusammengefasst als „Software“ bezeichnet werden) ausführen. Der Begriff „Software“ ist in einem weitgefassten Sinn auszulegen, der Anweisungen, Anweisungssätze, Code, Codesegmente, Programmcode, Programme, Unterprogramme, Software-Komponenten, Anwendungen, Software-Anwendungen, Softwarepakete, Routinen, Subroutinen, Objekte, ausführbare Dateien, Ausführungsthreads, Prozeduren, Funktionen usw. einschließt, egal ob diese als Software, Firmware, Middleware, Mikrocode, Hardware-Beschreibungssprachen oder anderweitig bezeichnet werden.
  • Dementsprechend können die beschriebenen Funktionen, in einem oder in mehreren Beispielen, in Hardware, Software, oder einer beliebigen Kombination davon implementiert werden. Wenn in Software implementiert, können die Funktionen auf einem nicht flüchtigen computerlesbaren Medium gespeichert oder darauf als eine oder mehrere Anweisungen oder Code codiert sein. Die computerlesbaren Medien beinhalten Computerspeichermedien. Bei den Speichermedien kann es sich um beliebige Medien handeln, auf die durch einen Computer zugegriffen werden kann. Beispielsweise und nicht einschränkend können diese computerlesbaren Medien einen Direktzugriffsspeicher, einen Nur-Lese-Speicher, einen elektrisch löschbaren programmierbaren Nur-Lese-Speicher (EEPROM), einen Compact-Disc-Direktzugriffsspeicher oder andere optische Plattenspeicher, Magnetplattenspeicher, Festkörperspeicher oder ein beliebiges anderes Speichergerät, Kombinationen der vorstehend genannten Arten computerlesbarer Medien oder ein beliebiges anderes Medium umfassen, das verwendet werden kann, um computerausführbaren Code in Form von Anweisungen oder Datenstrukturen zu speichern, auf die ein Computer zugreifen kann.
  • Für die Zwecke dieser Patentschrift bedeuten die Begriffe „oder“ und „und“ „und/oder“, soweit nicht anders angegeben oder durch den Kontext ihrer Verwendung eindeutig anderweitig gemeint. Der Begriff „ein“/„eine“ bedeutet „ein/eine oder mehrere“, soweit nicht anders angegeben oder sofern die Verwendung von „ein/eine oder mehrere“ offensichtlich ungeeignet ist. Die Begriffe „umfassen“, „umfassend“, „beinhalten“ und „beinhaltend“ sind austauschbar und sind in nicht als Einschränkung zu verstehen. Der Begriff „beinhaltend“ ist zum Beispiel so auszulegen, dass er „beinhaltend, jedoch nicht beschränkt auf” bedeutet.
  • Die Begriffe „Dialogsystem für natürliche Sprache“ und „Dialogsystem“ können austauschbar verwendet werden und sind so auszulegen, dass sie ein computerimplementiertes System zur Bereitstellung einer Mensch-Maschine-Dialoginteraktion unter Verwendung von Text, Sprache, Grafiken, Haptik, Gesten, computergenerierten Aktionen und anderen Kommunikationsmodi sowohl auf dem Eingabe- als auch Ausgabekanal bezeichnen, wobei Antworten auf eine Benutzereingabe durch eine(n) oder mehrere Dialogsystem-Agenten oder Dialogsystem-Engines erzeugt werden, und wobei das System eine Schnittstelle zum Empfangen, Verarbeiten, Verwalten und Bereitstellen von Informationen bereitstellt. Die Begriffe „Chat-Informationssystem“, „Sprachdialogsystem“, „Konversationsagent“, „Chatter-Roboter“, „Chatterbot“, „Chatbot“, „Chatagent“, „digitaler persönlicher Assistent“, „automatisierter Online-Assistent“ und dergleichen liegen im Umfang des Begriffes „Dialogsystem“.
  • Die Begriffe „Client-Gerät“ und „Benutzergerät“ sind so auszulegen, dass sie ein beliebiges elektronisches Computergerät auf Client-Seite 140 mit Eingabe- und Ausgabefähigkeiten bezeichnen, z. B. ein Mobilgerät, Handy, Mobiltelefon, Benutzergerät, Benutzerendgerät, Smartphone, einen Tablet-Computer, Laptop-Computer, Desktop-Computer, Server, persönlichen digitalen Assistenten, Musikplayer, Multimediaplayer, ein portables Computergerät, Navigationssystem, einen Fahrzeugcomputer, ein Infotainmentsystem, Spielgerät, eine Spielekonsole, ein Entertainment-System, Fernsehgerät, Netzwerkgerät, Modem, einen Router und so weiter.
  • Der Begriff „Benutzer“ bezeichnet einen Benutzer eines „Client-Gerätes“ und „Benutzergerätes“. Der Begriff „Entwickler“ ist so auszulegen, dass er einen Softwareentwickler, Ingenieur oder Besitzer von Dialogsystem-Engines (Agenten), die über Plattform 110 erstellt und verwaltet werden können, bezeichnet.
  • Die Begriffe „Dialogsystem-Agent“ und „Dialogsystem-Engine“ können austauschbar verwendet werden und können so ausgelegt werden, dass sie eine computerimplementierbare Schnittstelle zur Verarbeitung von Benutzereingaben basierend auf einer oder mehreren vorbestimmten Regeln oder Kriterien, wie z. B. Dialogsystem-Elemente, die Dialogsystem-Absichten und Dialogsystem-Entitäten beinhalten, bezeichnen.
  • Hierin offenbarte technische Wirkungen können Verbesserungen für Dialogsysteme für natürliche Sprache bezüglich der Verarbeitung von Benutzeranfragen und der Sammlung von mehreren Parametern (oder Parameterwerten) im Zusammenhang mit Benutzeranfragen, um eine computerimplementierte Aktion basierend auf den mehreren Parametern zu erstellen, bereitstellen.
  • Weitere hierin offenbarte technische Wirkungen können durch Reduzierung der Speicheraufrufe zum Suchen nach Attributen Verbesserungen der Hardware-Leistung bereitstellen, womit die Latenz reduziert und die Akkulaufzeit verbessert wird und Schritte, Schnittstellen und Speicheraufrufe, die zur Einrichtung von Sprachaktionen erforderlich sind, reduziert werden und so weiter.
  • In Situationen, in denen hierin erläuterte Systeme oder Verfahren personenbezogene Informationen über einen Benutzer sammeln oder personenbezogene Informationen nutzen können, kann dem Benutzer eine Möglichkeit eingeräumt werden, die Sammlung und/oder Nutzung dieser personenbezogenen Informationen zu steuern, wodurch eine Sammlung dieser Daten teilweise oder vollständig eingeschränkt wird. Wenn eine Verwendung des Kontextes zur Identifikation von Parametern zur Verfügung steht, kann dem Benutzer beispielsweise die Möglichkeit gegeben werden, die Sammlung einiger oder aller Kontextdaten einzuschränken. Zusätzlich können gewisse Daten auf eine oder mehrere Weisen behandelt werden, bevor sie gespeichert oder verwendet werden, sodass personenbezogene Informationen entfernt oder weggelassen werden. Zum Beispiel kann die Identität eines Benutzers so behandelt werden, dass keine personenbezogenen Informationen für den Benutzer bestimmt werden können, oder ein geografischer Standort eines Benutzers verallgemeinert werden kann, sodass ein bestimmter Standort des Benutzers nicht bestimmt werden kann. Somit kann dem Benutzer die Kontrolle darüber gegeben werden, wie Informationen über den Benutzer gesammelt und von den hierin offenbarten Systemen und Verfahren verwendet werden.
  • Während diese Offenbarung einige Einzelheiten beinhaltet, sollen diese nicht als Beschränkungen des Umfangs der Offenbarung oder dessen, was beansprucht wird, ausgelegt werden, sondern vielmehr als Beschreibungen von Merkmalen exemplarischer Implementierungen der Offenbarung. Bestimmte Merkmale, die in dieser Offenbarung im Kontext separater Implementierungen beschrieben sind, können auch in Kombination in einer einzelnen Implementierung bereitgestellt werden. Umgekehrt können verschiedene im Kontext einer einzelnen Implementierung beschriebene Merkmale auch in mehreren Implementierungen separat oder in einer beliebigen geeigneten Teilkombination bereitgestellt werden. Außerdem können, auch wenn die Merkmale weiter oben ggf. als in bestimmten Kombinationen wirkend beschrieben und sogar zunächst als solche beansprucht werden, in einigen Fällen ein oder mehrere Merkmale einer beanspruchten Kombination aus der Kombination entnommen und die beanspruchte Kombination auf eine Teilkombination oder eine Variante einer Teilkombination gerichtet sein.
  • Gleichermaßen, obwohl Operationen in den Zeichnungen in einer bestimmten Reihenfolge dargestellt werden, sollte dies jedoch nicht als Anforderung verstanden werden, dass solche Operationen in der bestimmten dargestellten Reihenfolge oder in einer aufeinanderfolgenden Reihenfolge ausgeführt werden müssen, oder dass alle dargestellten Operationen ausgeführt werden müssen, um erwünschte Ergebnisse zu erzielen. Unter bestimmten Umständen können Multitasking und Parallelverarbeitung von Vorteil sein. Darüber hinaus sollte die Trennung verschiedener Systemkomponenten in den vorstehend beschriebenen Implementierungen nicht als in allen Implementierungen erforderlich ausgelegt werden und es sollte sich verstehen, dass die beschriebenen Programmkomponenten und Systeme im Allgemeinen in einem einzelnen Software-Produkt integriert oder in mehreren Software-Produkten gebündelt sein können.
  • Bestimmte Implementierungen der vorliegenden Offenbarung wurden demnach beschrieben. Andere Implementierungen liegen innerhalb des Schutzumfangs der folgenden Ansprüche. Die in den Ansprüchen ausgeführten Aktionen können beispielsweise in einer anderen Reihenfolge durchgeführt werden und dennoch wünschenswerte Ergebnisse erzielen. Es wurde eine Reihe von Implementierungen beschrieben. Dennoch versteht es sich, dass verschiedene Modifikationen durchgeführt werden können, ohne vom Erfindungsgedanken und Schutzumfang der Offenbarung abzuweichen. Zum Beispiel können verschiedene Formen der vorstehend dargestellten Abläufe verwendet und Schritte neu geordnet, hinzugefügt oder entfernt werden. Dementsprechend liegen andere Implementierungen im Geltungsbereich der folgenden Ansprüche.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 62/244560 [0001]

Claims (21)

  1. Beansprucht wird Folgendes:
  2. Verfahren zur Absichtsparametersammlung, das Verfahren umfassend: Empfangen einer Spracheingabe eines Benutzers; Identifizieren einer Dialogsystem-Absicht im Zusammenhang mit der Spracheingabe basierend auf mindestens einem vorbestimmten Absichtsschlüsselwort, wobei die Dialogsystem-Absicht erforderliche Absichtsparameter aufweist; Bestimmen, ob Daten für alle erforderlichen Absichtsparameter des Dialogsystems verfügbar sind; selektives Initiieren, basierend auf der Bestimmung, eines Parametersammlungsdialogs im Zusammenhang mit der Dialogsystem-Absicht, wobei der Parametersammlungsdialog dazu dient, Daten für die erforderlichen Parameter zu sammeln, die der Dialogsystem-Absicht nicht anderweitig zur Verfügung stehen; und Erzeugen, basierend auf der Dialogsystem-Absicht und einem oder mehreren erforderlichen Parametern, einer Aktionsanweisung.
  3. Verfahren nach Anspruch 1, ferner umfassend: Identifizieren von mindestens einem der erforderlichen Absichtsparameter in der Spracheingabe; und Extrahieren des mindestens einen der erforderlichen Absichtsparameter aus der Spracheingabe.
  4. Verfahren nach Anspruch 1, das ferner ein Extrahieren der erforderlichen Absichtsparameter aus der Spracheingabe ohne Initiieren des Parametersammlungsdialogs basierend auf der Bestimmung, dass die Spracheingabe alle fehlenden Absichtsparameter beinhaltet, umfasst.
  5. Verfahren nach Anspruch 1, wobei der Parametersammlungsdialog mindestens eine vorbestimmte Eingabeaufforderung umfasst.
  6. Verfahren nach Anspruch 4, ferner umfassend: Empfangen von mindestens einer weiteren Spracheingabe des Benutzers in Reaktion auf die mindestens eine vorbestimmte Eingabeaufforderung; und Extrahieren von mindestens einem der erforderlichen Absichtsparameter aus der mindestens einen zusätzlichen Spracheingabe solange, bis alle der fehlenden Absichtsparameter gesammelt sind.
  7. Verfahren nach Anspruch 1, wobei mindestens einer von den Absichtsparametern mindestens eines der folgenden beinhaltet: einen numerischen Wert, ein Wort, eine Phrase, einen Ton und ein Bild.
  8. Verfahren nach Anspruch 1, wobei mindestens einer der Absichtsparameter aus einer Liste vorbestimmter Werte ausgewählt wird.
  9. Verfahren nach Anspruch 1, das ferner ein Ermöglichen, durch die Entwicklerplattform, dass ein Entwickler einen Dialogagenten des Dialogsystems für natürliche Sprache erstellt, um eine Sammlung fehlender Absichtsparameter zu automatisieren, umfasst, wobei der Dialogagent mit einem Entwicklerprofil verbunden ist.
  10. Verfahren nach Anspruch 8, das ferner ein Bereitstellen, durch die Entwicklerplattform, einer grafischen Oberfläche umfasst, um dem Entwickler zu ermöglichen: den Dialogagenten zu erstellen; und eines oder mehrere der folgenden bereitzustellen: die Dialogsystem-Absicht, mindestens einen Absichtsparameter und eine oder mehrere Eingabeaufforderungen für die Absichtsparameter.
  11. Verfahren nach Anspruch 9, ferner umfassend: Ermöglichen, durch die Entwicklerplattform, dass der Entwickler eine Dialogsystem-Entität oder einen Datentyp für die Absichtsparameter bestimmt; und Ermöglichen, durch die Entwicklerplattform, dass der Entwickler einen Wertetyp für jeden der Absichtsparameter bestimmt.
  12. Verfahren nach Anspruch 1, wobei die Aktionsanweisung konfiguriert ist, einen Server oder ein Benutzergerät zu veranlassen, eine vorbestimmte Aktion basierend auf der Aktionsanweisung und auf einem oder mehreren erforderlichen Absichtsparametern zu implementieren.
  13. Verfahren nach Anspruch 1, wobei die Aktionsanweisung eine für eine Anwendungsprogrammierschnittstelle (API) spezifische Antwort beinhalten, die konfiguriert ist, einen API-Dienst zu veranlassen.
  14. Verfahren nach Anspruch 1, das ferner ein Bereitstellen einer Bestätigungsnachricht umfasst, die es dem Benutzer ermöglicht, die Aktionsanweisung zu bestätigen oder zu präzisieren, wobei die Bestätigungsnachricht einen oder mehrere erforderliche Absichtsparameter wiedergibt.
  15. Dialogsystem für natürliche Sprache, das mindestens einen Prozessor und einen Speicher, der prozessorausführbare Codes speichert, umfasst, wobei der mindestens eine Prozessor konfiguriert ist, bei Ausführen des prozessorausführbaren Codes folgende Operationen zu implementieren: Identifizieren einer Dialogsystem-Absicht im Zusammenhang mit der Spracheingabe basierend auf mindestens einem vorbestimmten Absichtsschlüsselwort, wobei die Dialogsystem-Absicht erforderliche Absichtsparameter aufweist; Bestimmen, ob Daten für alle erforderlichen Absichtsparameter des Dialogsystems verfügbar sind; selektives Initiieren, basierend auf der Bestimmung, eines Parametersammlungsdialogs im Zusammenhang mit der Dialogsystem-Absicht, wobei der Parametersammlungsdialog dazu dient, Daten für die erforderlichen Parameter zu sammeln, die der Dialogsystem-Absicht nicht anderweitig zur Verfügung stehen; und Erzeugen, basierend auf der Dialogsystem-Absicht und einem oder mehreren erforderlichen Parametern, einer Aktionsanweisung.
  16. System nach Anspruch 14, wobei der mindestens eine Prozessor ferner konfiguriert ist, alle der fehlenden Absichtsparameter aus der Spracheingabe ohne Initiieren des Parametersammlungsdialogs zu erfassen, basierend auf der Bestimmung, dass die Spracheingabe alle der fehlenden Absichtsparameter beinhaltet.
  17. System nach Anspruch 14, wobei der mindestens eine Prozessor ferner konfiguriert ist, mindestens eine vorbestimmte Eingabeaufforderung für den Parametersammlungsdialog zu erzeugen.
  18. System nach Anspruch 16, wobei der mindestens eine Prozessor ferner konfiguriert ist, bei Ausführen der prozessorausführbaren Codes die folgenden Operationen zu implementieren: Empfangen von mindestens einer zusätzlichen Spracheingabe des Benutzers in Reaktion auf die mindestens eine vorbestimmte Eingabeaufforderung; und Erfassen von mindestens einem der erforderlichen Absichtsparameter aus der mindestens einen zusätzlichen Spracheingabe solange, bis alle der fehlenden Absichtsparameter gesammelt sind.
  19. System nach Anspruch 14, wobei der mindestens eine Prozessor konfiguriert ist, bei Ausführen der prozessorausführbaren Codes die folgenden Operationen zu implementieren: Ermöglichen, durch eine Entwicklerplattform, dass ein Entwickler einen Dialogagenten für das Dialogsystem für natürliche Sprache erstellt, um eine Sammlung der erforderlichen Absichtsparameter zu automatisieren, wobei der Dialogagent mit einem Entwicklerprofil verbunden ist.
  20. System nach Anspruch 18, wobei der mindestens eine Prozessor konfiguriert ist, bei Ausführen der prozessorausführbaren Codes die folgenden Operationen zu implementieren: Bereitstellen, durch die Entwicklerplattform, einer grafischen Oberfläche, um: dem Entwickler zu ermöglichen, den Dialogagenten zu erstellen und eines oder mehrere der folgenden bereitzustellen: die Dialogsystem-Absicht, mindestens einen Absichtsparameter und eine oder mehrere Eingabeaufforderungen für den Parametersammlungsdialog für jeden der Absichtsparameter; Ermöglichen, durch die Entwicklerplattform, dass der Entwickler eine Dialogsystem-Entität oder einen Datentyp für die Absichtsparameter bestimmt; und Ermöglichen, durch die Entwicklerplattform, dass der Entwickler einen Wertetyp für jeden der Absichtsparameter bestimmt.
  21. Nicht flüchtiges prozessorlesbares Medium, das darauf gespeicherte Anweisungen aufweist, die, wenn sie durch einen oder mehrere Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren veranlassen, ein Verfahren für ein Dialogsystem für natürliche Sprache zu implementieren, das Verfahren umfassend: Identifizieren einer Dialogsystem-Absicht im Zusammenhang mit der Spracheingabe basierend auf mindestens einem vorbestimmten Absichtsschlüsselwort, wobei die Dialogsystem-Absicht erforderliche Absichtsparameter aufweist; Bestimmen, ob Daten für alle erforderlichen Absichtsparameter des Dialogsystems verfügbar sind; selektives Initiieren, basierend auf der Bestimmung, eines Parametersammlungsdialogs im Zusammenhang mit der Dialogsystem-Absicht, wobei der Parametersammlungsdialog dazu dient, Daten für die erforderlichen Parameter zu sammeln, die der Dialogsystem-Absicht nicht anderweitig zur Verfügung stehen; und Erzeugen, basierend auf der Dialogsystem-Absicht und einem oder mehreren erforderlichen Parametern, einer Aktionsanweisung.
DE112016004863.7T 2015-10-21 2016-10-21 Parametersammlung und automatische Dialogerzeugung in Dialogsystemen Ceased DE112016004863T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201562244560P 2015-10-21 2015-10-21
US62/244,560 2015-10-21
PCT/US2016/058193 WO2017070522A1 (en) 2015-10-21 2016-10-21 Parameter collection and automatic dialog generation in dialog systems

Publications (1)

Publication Number Publication Date
DE112016004863T5 true DE112016004863T5 (de) 2018-07-19

Family

ID=57209944

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112016004863.7T Ceased DE112016004863T5 (de) 2015-10-21 2016-10-21 Parametersammlung und automatische Dialogerzeugung in Dialogsystemen

Country Status (9)

Country Link
US (3) US10170106B2 (de)
EP (1) EP3341933A1 (de)
JP (2) JP6960914B2 (de)
KR (2) KR102189855B1 (de)
CN (2) CN108701454B (de)
DE (1) DE112016004863T5 (de)
GB (1) GB2557532A (de)
RU (1) RU2018113724A (de)
WO (1) WO2017070522A1 (de)

Families Citing this family (165)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US8676904B2 (en) 2008-10-02 2014-03-18 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US20120311585A1 (en) 2011-06-03 2012-12-06 Apple Inc. Organizing task items that represent tasks to perform
US9634855B2 (en) 2010-05-13 2017-04-25 Alexander Poltorak Electronic personal interactive device that determines topics of interest using a conversational agent
US10417037B2 (en) 2012-05-15 2019-09-17 Apple Inc. Systems and methods for integrating third party services with a digital assistant
US10199051B2 (en) 2013-02-07 2019-02-05 Apple Inc. Voice trigger for a digital assistant
US10652394B2 (en) 2013-03-14 2020-05-12 Apple Inc. System and method for processing voicemail
US10748529B1 (en) 2013-03-15 2020-08-18 Apple Inc. Voice activated device for use with a voice-based digital assistant
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
EP3480811A1 (de) 2014-05-30 2019-05-08 Apple Inc. Verfahren zur eingabe von mehreren befehlen mit einer einzigen äusserung
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US10200824B2 (en) 2015-05-27 2019-02-05 Apple Inc. Systems and methods for proactively identifying and surfacing relevant content on a touch-sensitive device
US20160378747A1 (en) 2015-06-29 2016-12-29 Apple Inc. Virtual assistant for media playback
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US10740384B2 (en) 2015-09-08 2020-08-11 Apple Inc. Intelligent automated assistant for media search and playback
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10331312B2 (en) 2015-09-08 2019-06-25 Apple Inc. Intelligent automated assistant in a media environment
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10956666B2 (en) 2015-11-09 2021-03-23 Apple Inc. Unconventional virtual assistant interactions
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
US10083451B2 (en) 2016-07-08 2018-09-25 Asapp, Inc. Using semantic processing for customer support
US10453074B2 (en) 2016-07-08 2019-10-22 Asapp, Inc. Automatically suggesting resources for responding to a request
US10891152B2 (en) * 2016-11-23 2021-01-12 Amazon Technologies, Inc. Back-end task fulfillment for dialog-driven applications
US10565989B1 (en) * 2016-12-16 2020-02-18 Amazon Technogies Inc. Ingesting device specific content
US10109275B2 (en) 2016-12-19 2018-10-23 Asapp, Inc. Word hash language model
US10740373B2 (en) * 2017-02-08 2020-08-11 International Business Machines Corporation Dialog mechanism responsive to query context
US11171892B2 (en) * 2017-02-27 2021-11-09 Ncr Corporation Service assistance and integration
US10332505B2 (en) * 2017-03-09 2019-06-25 Capital One Services, Llc Systems and methods for providing automated natural language dialogue with customers
US10796088B2 (en) * 2017-04-21 2020-10-06 International Business Machines Corporation Specifying a conversational computer agent and its outcome with a grammar
KR102388539B1 (ko) 2017-04-30 2022-04-20 삼성전자주식회사 사용자 발화를 처리하는 전자 장치
US10679011B2 (en) 2017-05-10 2020-06-09 Oracle International Corporation Enabling chatbots by detecting and supporting argumentation
US11373632B2 (en) * 2017-05-10 2022-06-28 Oracle International Corporation Using communicative discourse trees to create a virtual persuasive dialogue
US10817670B2 (en) * 2017-05-10 2020-10-27 Oracle International Corporation Enabling chatbots by validating argumentation
US10796102B2 (en) 2017-05-10 2020-10-06 Oracle International Corporation Enabling rhetorical analysis via the use of communicative discourse trees
US11960844B2 (en) * 2017-05-10 2024-04-16 Oracle International Corporation Discourse parsing using semantic and syntactic relations
US10599885B2 (en) 2017-05-10 2020-03-24 Oracle International Corporation Utilizing discourse structure of noisy user-generated content for chatbot learning
US11586827B2 (en) 2017-05-10 2023-02-21 Oracle International Corporation Generating desired discourse structure from an arbitrary text
US11615145B2 (en) 2017-05-10 2023-03-28 Oracle International Corporation Converting a document into a chatbot-accessible form via the use of communicative discourse trees
US10839154B2 (en) 2017-05-10 2020-11-17 Oracle International Corporation Enabling chatbots by detecting and supporting affective argumentation
US11386274B2 (en) 2017-05-10 2022-07-12 Oracle International Corporation Using communicative discourse trees to detect distributed incompetence
DK180048B1 (en) 2017-05-11 2020-02-04 Apple Inc. MAINTAINING THE DATA PROTECTION OF PERSONAL INFORMATION
US10726832B2 (en) 2017-05-11 2020-07-28 Apple Inc. Maintaining privacy of personal information
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
DK201770428A1 (en) 2017-05-12 2019-02-18 Apple Inc. LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
US10275651B2 (en) * 2017-05-16 2019-04-30 Google Llc Resolving automated assistant requests that are based on image(s) and/or other sensor data
US20180336892A1 (en) 2017-05-16 2018-11-22 Apple Inc. Detecting a trigger of a digital assistant
US20180336275A1 (en) 2017-05-16 2018-11-22 Apple Inc. Intelligent automated assistant for media exploration
US11043206B2 (en) 2017-05-18 2021-06-22 Aiqudo, Inc. Systems and methods for crowdsourced actions and commands
WO2018213788A1 (en) 2017-05-18 2018-11-22 Aiqudo, Inc. Systems and methods for crowdsourced actions and commands
US11056105B2 (en) * 2017-05-18 2021-07-06 Aiqudo, Inc Talk back from actions in applications
US11340925B2 (en) 2017-05-18 2022-05-24 Peloton Interactive Inc. Action recipes for a crowdsourced digital assistant system
US11436265B2 (en) * 2017-06-13 2022-09-06 Microsoft Technology Licensing, Llc System for presenting tailored content based on user sensibilities
US10839161B2 (en) 2017-06-15 2020-11-17 Oracle International Corporation Tree kernel learning for text classification into classes of intent
US11100144B2 (en) 2017-06-15 2021-08-24 Oracle International Corporation Data loss prevention system for cloud security based on document discourse analysis
CN107342078B (zh) * 2017-06-23 2020-05-05 上海交通大学 对话策略优化的冷启动系统和方法
US10388285B2 (en) 2017-08-31 2019-08-20 International Business Machines Corporation Generating chat bots from web API specifications
US11182412B2 (en) 2017-09-27 2021-11-23 Oracle International Corporation Search indexing using discourse trees
US11809825B2 (en) 2017-09-28 2023-11-07 Oracle International Corporation Management of a focused information sharing dialogue based on discourse trees
CN117114001A (zh) 2017-09-28 2023-11-24 甲骨文国际公司 基于命名实体的解析和识别确定跨文档的修辞相互关系
EP3688626A1 (de) 2017-09-28 2020-08-05 Oracle International Corporation Befähigung von autonomen agenten zur unterscheidung zwischen fragen und anfragen
US10431219B2 (en) * 2017-10-03 2019-10-01 Google Llc User-programmable automated assistant
KR102348124B1 (ko) * 2017-11-07 2022-01-07 현대자동차주식회사 차량의 기능 추천 장치 및 방법
DE102017128651A1 (de) * 2017-12-02 2019-06-06 Tobias Rückert Dialogsystem und Verfahren zur Umsetzung von Anweisungen eines Nutzers
US10497004B2 (en) 2017-12-08 2019-12-03 Asapp, Inc. Automating communications using an intent classifier
US10599640B2 (en) * 2017-12-19 2020-03-24 At&T Intellectual Property I, L.P. Predictive search with context filtering
CN109949800B (zh) * 2017-12-20 2021-08-10 北京京东尚科信息技术有限公司 语音打车方法及系统
KR101944353B1 (ko) * 2017-12-20 2019-04-17 주식회사 카카오 챗봇 빌더 사용자 인터페이스 제공 방법 및 장치
WO2019133689A1 (en) 2017-12-29 2019-07-04 DMAI, Inc. System and method for selective animatronic peripheral response for human machine dialogue
US11024294B2 (en) 2017-12-29 2021-06-01 DMAI, Inc. System and method for dialogue management
WO2019133706A1 (en) * 2017-12-29 2019-07-04 DMAI, Inc. System and method for learning preferences in dialogue personalization
US11222632B2 (en) 2017-12-29 2022-01-11 DMAI, Inc. System and method for intelligent initiation of a man-machine dialogue based on multi-modal sensory inputs
US10489792B2 (en) 2018-01-05 2019-11-26 Asapp, Inc. Maintaining quality of customer support messages
US11010428B2 (en) * 2018-01-16 2021-05-18 Google Llc Systems, methods, and apparatuses for providing assistant deep links to effectuate third-party dialog session transfers
CN111670435A (zh) 2018-01-30 2020-09-15 甲骨文国际公司 使用交流话语树来检测对解释的请求
US11537645B2 (en) 2018-01-30 2022-12-27 Oracle International Corporation Building dialogue structure by using communicative discourse trees
CN108376543B (zh) * 2018-02-11 2021-07-13 深圳创维-Rgb电子有限公司 一种电器设备的控制方法、装置、设备和存储介质
US10210244B1 (en) * 2018-02-12 2019-02-19 Asapp, Inc. Updating natural language interfaces by processing usage data
WO2019160613A1 (en) 2018-02-15 2019-08-22 DMAI, Inc. System and method for dynamic program configuration
KR102445365B1 (ko) * 2018-03-19 2022-09-20 현대자동차주식회사 대화 시스템, 이를 포함하는 차량 및 대화 처리 방법
EP3718041A1 (de) * 2018-03-21 2020-10-07 Google LLC Datenübertragung in sicheren verarbeitungsumgebungen
US10818288B2 (en) 2018-03-26 2020-10-27 Apple Inc. Natural assistant interaction
EP3776246A1 (de) 2018-04-19 2021-02-17 Google LLC Abhängigkeitsgraphkonvertierungsmodellierung zur verwendung bei der durchführung von mensch-zu-computer-dialogsitzungen mit einem computerimplementierten automatisierten assistenten
US10169315B1 (en) 2018-04-27 2019-01-01 Asapp, Inc. Removing personal information from text using a neural network
US10679622B2 (en) 2018-05-01 2020-06-09 Google Llc Dependency graph generation in a networked system
US11145294B2 (en) 2018-05-07 2021-10-12 Apple Inc. Intelligent automated assistant for delivering content from user experiences
US10928918B2 (en) 2018-05-07 2021-02-23 Apple Inc. Raise to speak
EP3791292A1 (de) 2018-05-09 2021-03-17 Oracle International Corporation Konstruktion von imaginary-discourse-bäumen zur verbesserung der beantwortung konvergenter fragen
US10572232B2 (en) 2018-05-17 2020-02-25 International Business Machines Corporation Automatically converting a textual data prompt embedded within a graphical user interface (GUI) to a widget
US11520989B1 (en) * 2018-05-17 2022-12-06 Workday, Inc. Natural language processing with keywords
EP3576084B1 (de) * 2018-05-29 2020-09-30 Christoph Neumann Effiziente dialoggestaltung
CN110556102B (zh) * 2018-05-30 2023-09-05 蔚来(安徽)控股有限公司 意图识别和执行的方法、设备、车载语音对话系统以及计算机存储介质
US11455494B2 (en) 2018-05-30 2022-09-27 Oracle International Corporation Automated building of expanded datasets for training of autonomous agents
DK180639B1 (en) 2018-06-01 2021-11-04 Apple Inc DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT
DK179822B1 (da) 2018-06-01 2019-07-12 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
US10892996B2 (en) 2018-06-01 2021-01-12 Apple Inc. Variable latency device coordination
US11157704B2 (en) * 2018-06-18 2021-10-26 DataChat.ai Constrained natural language processing
US11645459B2 (en) 2018-07-02 2023-05-09 Oracle International Corporation Social autonomous agent implementation using lattice queries and relevancy detection
US10824658B2 (en) 2018-08-02 2020-11-03 International Business Machines Corporation Implicit dialog approach for creating conversational access to web content
US10915588B2 (en) * 2018-08-02 2021-02-09 International Business Machines Corporation Implicit dialog approach operating a conversational access interface to web content
US11216510B2 (en) 2018-08-03 2022-01-04 Asapp, Inc. Processing an incomplete message with a neural network to generate suggested messages
US10839159B2 (en) * 2018-09-28 2020-11-17 Apple Inc. Named entity normalization in a spoken dialog system
US11462215B2 (en) 2018-09-28 2022-10-04 Apple Inc. Multi-modal inputs for voice commands
KR20210062704A (ko) * 2018-10-10 2021-05-31 후아웨이 테크놀러지 컴퍼니 리미티드 인간-컴퓨터 상호작용 방법 및 전자 장치
US11100407B2 (en) * 2018-10-10 2021-08-24 International Business Machines Corporation Building domain models from dialog interactions
US11562135B2 (en) 2018-10-16 2023-01-24 Oracle International Corporation Constructing conclusive answers for autonomous agents
CN111104490B (zh) * 2018-10-25 2023-06-06 阿里巴巴集团控股有限公司 参数的删除方法及装置
US11501656B2 (en) * 2018-10-29 2022-11-15 Sestek Ses Ve Iletisim Bilgisayar Tek. San Ve Tic A.S. Interactive and automated training system using real interactions
US10747957B2 (en) 2018-11-13 2020-08-18 Asapp, Inc. Processing communications using a prototype classifier
US11551004B2 (en) 2018-11-13 2023-01-10 Asapp, Inc. Intent discovery with a prototype classifier
US11416785B2 (en) * 2018-12-04 2022-08-16 International Business Machines Corporation Automated interactive support
CN109739481A (zh) * 2018-12-11 2019-05-10 北京奇点机智科技有限公司 生成交互式应用程序的方法及系统
CN109783608B (zh) * 2018-12-20 2021-01-05 出门问问信息科技有限公司 目标假设的确定方法、装置、可读存储介质和电子设备
US11164574B2 (en) 2019-01-03 2021-11-02 International Business Machines Corporation Conversational agent generation
TW202046159A (zh) * 2019-02-08 2020-12-16 美商艾提史畢克斯有限責任公司 用於開發智能工業助理之對話範本的方法、系統及電腦程式產品
US11321536B2 (en) 2019-02-13 2022-05-03 Oracle International Corporation Chatbot conducting a virtual social dialogue
US11348573B2 (en) 2019-03-18 2022-05-31 Apple Inc. Multimodality in digital assistant systems
WO2020191093A1 (en) * 2019-03-19 2020-09-24 Liveperson, Inc. Dynamic communications routing to disparate endpoints
JP2022529276A (ja) 2019-04-17 2022-06-20 テンパス・ラボズ・インコーポレイテッド コラボレーティブ人工知能の方法およびシステム
CN110046227B (zh) * 2019-04-17 2023-07-18 腾讯科技(深圳)有限公司 对话系统的配置方法、交互方法、装置、设备和存储介质
US11637792B2 (en) * 2019-04-19 2023-04-25 Oracle International Corporation Systems and methods for a metadata driven integration of chatbot systems into back-end application services
US11307752B2 (en) 2019-05-06 2022-04-19 Apple Inc. User configurable task triggers
DK201970509A1 (en) 2019-05-06 2021-01-15 Apple Inc Spoken notifications
CN110096583B (zh) * 2019-05-09 2021-05-14 思必驰科技股份有限公司 多领域对话管理系统及其构建方法
US11140099B2 (en) 2019-05-21 2021-10-05 Apple Inc. Providing message response suggestions
US10671941B1 (en) 2019-05-23 2020-06-02 Capital One Services, Llc Managing multifaceted, implicit goals through dialogue
DK201970510A1 (en) 2019-05-31 2021-02-11 Apple Inc Voice identification in digital assistant systems
DK180129B1 (en) 2019-05-31 2020-06-02 Apple Inc. USER ACTIVITY SHORTCUT SUGGESTIONS
US11468890B2 (en) 2019-06-01 2022-10-11 Apple Inc. Methods and user interfaces for voice-based control of electronic devices
CA3045132C (en) * 2019-06-03 2023-07-25 Eidos Interactive Corp. Communication with augmented reality virtual agents
US20220414346A1 (en) * 2019-07-29 2022-12-29 Artificial Intelligence Robotics Pte. Ltd. Stickering method and system for linking contextual text elements to actions
US11449682B2 (en) 2019-08-29 2022-09-20 Oracle International Corporation Adjusting chatbot conversation to user personality and mood
CN110798506B (zh) * 2019-09-27 2023-03-10 华为技术有限公司 执行命令的方法、装置及设备
US11425064B2 (en) 2019-10-25 2022-08-23 Asapp, Inc. Customized message suggestion with user embedding vectors
WO2021096382A2 (ru) * 2019-11-15 2021-05-20 Федеральное Государственное Автономное Образовательное Учреждение Высшего Образования "Московский Физико-Технический Институт" (Национальный Исследовательский Университет) (Мфти) Способ и система управления диалоговым агентом в канале взаимодействия с пользователем
US11775772B2 (en) 2019-12-05 2023-10-03 Oracle International Corporation Chatbot providing a defeating reply
KR20210113488A (ko) 2020-03-05 2021-09-16 삼성전자주식회사 사용 로그 분석에 의한 보이스 에이전트의 새 기능을 자동적으로 추출하는 방법 및 장치
US11501211B2 (en) 2020-03-13 2022-11-15 Hong Kong Applied Science And Technology Research Institute Co., Ltd Chatbot system with model lifecycle management
CN111312254A (zh) * 2020-03-26 2020-06-19 镁佳(北京)科技有限公司 语音对话方法和装置
US11482223B2 (en) 2020-03-31 2022-10-25 Pricewaterhousecoopers Llp Systems and methods for automatically determining utterances, entities, and intents based on natural language inputs
US11580112B2 (en) 2020-03-31 2023-02-14 Pricewaterhousecoopers Llp Systems and methods for automatically determining utterances, entities, and intents based on natural language inputs
US11095579B1 (en) 2020-05-01 2021-08-17 Yseop Sa Chatbot with progressive summary generation
US11061543B1 (en) 2020-05-11 2021-07-13 Apple Inc. Providing relevant data items based on context
US11043220B1 (en) 2020-05-11 2021-06-22 Apple Inc. Digital assistant hardware abstraction
US11755276B2 (en) 2020-05-12 2023-09-12 Apple Inc. Reducing description length based on confidence
AU2020356799B2 (en) * 2020-06-18 2022-09-08 Citrix Systems, Inc. Autonomous learning of entity values in artificial intelligence conversational systems
US20220019195A1 (en) * 2020-07-15 2022-01-20 Automation Anywhere, Inc. Robotic process automation with conversational user interface
US11539650B2 (en) 2020-07-16 2022-12-27 International Business Machines Corporation System and method for alerts for missing coverage of chatbot conversation messages
US11490204B2 (en) 2020-07-20 2022-11-01 Apple Inc. Multi-device audio adjustment coordination
US11438683B2 (en) 2020-07-21 2022-09-06 Apple Inc. User identification using headphones
CN111914075A (zh) * 2020-08-06 2020-11-10 平安科技(深圳)有限公司 基于深度学习的客户标签确定方法、装置、设备及介质
US11816437B2 (en) * 2020-12-15 2023-11-14 International Business Machines Corporation Automatical process application generation
JP2022147362A (ja) * 2021-03-23 2022-10-06 株式会社リコー サービス提供システム、情報処理装置、情報処理方法、及びプログラム
US11533279B2 (en) 2021-03-30 2022-12-20 International Business Machines Corporation Method for electronic messaging using image based noisy content
US11683283B2 (en) 2021-03-30 2023-06-20 International Business Machines Corporation Method for electronic messaging
US20220334709A1 (en) 2021-04-14 2022-10-20 DataChat.ai User interface for data analytics systems
JP6954549B1 (ja) * 2021-06-15 2021-10-27 ソプラ株式会社 エンティティとインテントとコーパスの自動生成装置及びプログラム
CN114265920B (zh) * 2021-12-27 2022-07-01 北京易聊科技有限公司 一种基于信号和场景的智能机器人对话方法及系统

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6078886A (en) * 1997-04-14 2000-06-20 At&T Corporation System and method for providing remote automatic speech recognition services via a packet network
IL142363A0 (en) * 1998-10-02 2002-03-10 Ibm System and method for providing network coordinated conversational services
US6868385B1 (en) * 1999-10-05 2005-03-15 Yomobile, Inc. Method and apparatus for the provision of information signals based upon speech recognition
US9076448B2 (en) * 1999-11-12 2015-07-07 Nuance Communications, Inc. Distributed real time speech recognition system
AU2001259446A1 (en) * 2000-05-02 2001-11-12 Dragon Systems, Inc. Error correction in speech recognition
JP3949356B2 (ja) * 2000-07-12 2007-07-25 三菱電機株式会社 音声対話システム
US7308404B2 (en) * 2001-09-28 2007-12-11 Sri International Method and apparatus for speech recognition using a dynamic vocabulary
US6999930B1 (en) * 2002-03-27 2006-02-14 Extended Systems, Inc. Voice dialog server method and system
US7302383B2 (en) * 2002-09-12 2007-11-27 Luis Calixto Valles Apparatus and methods for developing conversational applications
US7228275B1 (en) * 2002-10-21 2007-06-05 Toyota Infotechnology Center Co., Ltd. Speech recognition system having multiple speech recognizers
US7548858B2 (en) * 2003-03-05 2009-06-16 Microsoft Corporation System and method for selective audible rendering of data to a user based on user input
US8311835B2 (en) * 2003-08-29 2012-11-13 Microsoft Corporation Assisted multi-modal dialogue
US7266537B2 (en) * 2004-01-14 2007-09-04 Intelligent Results Predictive selection of content transformation in predictive modeling systems
US8024196B1 (en) * 2005-09-19 2011-09-20 Sap Ag Techniques for creating and translating voice applications
US9009046B1 (en) * 2005-09-27 2015-04-14 At&T Intellectual Property Ii, L.P. System and method for disambiguating multiple intents in a natural language dialog system
US8332218B2 (en) * 2006-06-13 2012-12-11 Nuance Communications, Inc. Context-based grammars for automated speech recognition
US9318108B2 (en) * 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US7752043B2 (en) * 2006-09-29 2010-07-06 Verint Americas Inc. Multi-pass speech analytics
JP4451435B2 (ja) * 2006-12-06 2010-04-14 本田技研工業株式会社 言語理解装置、言語理解方法、及び、コンピュータプログラム
US20110060587A1 (en) * 2007-03-07 2011-03-10 Phillips Michael S Command and control utilizing ancillary information in a mobile voice-to-speech application
US8140335B2 (en) * 2007-12-11 2012-03-20 Voicebox Technologies, Inc. System and method for providing a natural language voice user interface in an integrated voice navigation services environment
US8874443B2 (en) * 2008-08-27 2014-10-28 Robert Bosch Gmbh System and method for generating natural language phrases from user utterances in dialog systems
US8700389B2 (en) * 2010-12-23 2014-04-15 Sap Ag Systems and methods for model-based processing of linguistic user inputs using annotations
US9082402B2 (en) * 2011-12-08 2015-07-14 Sri International Generic virtual personal assistant platform
US8892419B2 (en) * 2012-04-10 2014-11-18 Artificial Solutions Iberia SL System and methods for semiautomatic generation and tuning of natural language interaction applications
US9575963B2 (en) * 2012-04-20 2017-02-21 Maluuba Inc. Conversational agent
US10096316B2 (en) * 2013-11-27 2018-10-09 Sri International Sharing intents to provide virtual assistance in a multi-person dialog
WO2014209157A1 (en) 2013-06-27 2014-12-31 Obschestvo S Ogranichennoy Otvetstvennostiyu "Speaktoit" Generating dialog recommendations for chat information systems
US10811004B2 (en) * 2013-03-28 2020-10-20 Nuance Communications, Inc. Auto-generation of parsing grammars from a concept ontology
US9110889B2 (en) * 2013-04-23 2015-08-18 Facebook, Inc. Methods and systems for generation of flexible sentences in a social networking system
US9633317B2 (en) * 2013-06-20 2017-04-25 Viv Labs, Inc. Dynamically evolving cognitive architecture system based on a natural language intent interpreter
US20150242395A1 (en) * 2014-02-24 2015-08-27 Transcriptic, Inc. Systems and methods for equipment sharing
CN107112013B (zh) 2014-09-14 2020-10-23 谷歌有限责任公司 用于创建可定制对话系统引擎的平台
CN104360897B (zh) * 2014-10-29 2017-09-22 百度在线网络技术(北京)有限公司 对话处理方法和对话管理系统

Also Published As

Publication number Publication date
GB2557532A (en) 2018-06-20
KR102112814B1 (ko) 2020-05-19
JP2019503526A (ja) 2019-02-07
GB201805212D0 (en) 2018-05-16
CN108701454B (zh) 2023-05-30
EP3341933A1 (de) 2018-07-04
US20170116982A1 (en) 2017-04-27
CN108701454A (zh) 2018-10-23
KR102189855B1 (ko) 2020-12-11
US20190139538A1 (en) 2019-05-09
JP2020161153A (ja) 2020-10-01
US20200111486A1 (en) 2020-04-09
WO2017070522A1 (en) 2017-04-27
JP6960914B2 (ja) 2021-11-05
RU2018113724A (ru) 2019-11-21
KR20180070684A (ko) 2018-06-26
US10170106B2 (en) 2019-01-01
US10490186B2 (en) 2019-11-26
JP6942841B2 (ja) 2021-09-29
KR20200054338A (ko) 2020-05-19
CN116628157A (zh) 2023-08-22
US10733983B2 (en) 2020-08-04

Similar Documents

Publication Publication Date Title
DE112016004863T5 (de) Parametersammlung und automatische Dialogerzeugung in Dialogsystemen
DE102016125508B4 (de) Auffindbarkeitssystem für Sprachaktionen
CN111033492B (zh) 为自动化助手提供命令束建议
CN107112013B (zh) 用于创建可定制对话系统引擎的平台
DE102017122358A1 (de) Bedingte Bereitstellung von Zugriff durch interaktive Assistentenmodul
DE102012019178A1 (de) Verwendung von Kontextinformationen zum Erleichtern der Verarbeitung von Befehlen bei einem virtuellen Assistenten
JP2019503526A5 (de)
DE202016008260U1 (de) Erlernen von Aussprachen einer personalisierten Entität
DE112020004504T5 (de) Kontoverbindung mit Gerät
DE102016125801A1 (de) Nichtdeterministische Aufgabeninitiierung durch ein persönliches Assistenzmodul
DE112014003653T5 (de) Automatisch aktivierende intelligente Antworten auf der Grundlage von Aktivitäten von entfernt angeordneten Vorrichtungen
DE102017125196A1 (de) Proaktive Aufnahme von nicht angefordertem Inhalt in Mensch-Computer-Dialoge
CN113168305A (zh) 通过预测用户响应来加快与数字助理的交互
DE102014109122A1 (de) Systeme und Verfahren für ergebnisbezogene Arbitrierung in Sprachdialogsystemen
DE102016125823B4 (de) Unterstützung bei der semantischen offline-bearbeitung durch ein gerät mit begrenzten möglichkeiten
DE102015109379A1 (de) Systeme und Verfahren für ein Navigationssystem, das eine Suche mit Diktieren und Teilübereinstimmung verwendet
CN113421561B (zh) 语音控制方法、语音控制装置、服务器和存储介质
CN110196927A (zh) 一种多轮人机对话方法、装置及设备
DE112022000504T5 (de) Interaktive Inhaltsausgabe
DE112021003407T5 (de) Verarbeitung natürlicher sprache
DE112020002288T5 (de) Verfahren, System und Vorrichtung zum Verstehen und Generieren menschlicher Konversations-Cues
DE102019218918A1 (de) Dialogsystem, elektronisches gerät und verfahren zur steuerung des dialogsystems
DE102019217751A1 (de) Verfahren zum Betreiben eines Sprachdialogsystems und Sprachdialogsystem
DE202017105719U1 (de) Kontext-Hotwords
DE112022003216T5 (de) Frühzeitiger Aufruf zur Kontextdatenverarbeitung

Legal Events

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

Representative=s name: VENNER SHIPLEY LLP, DE

Representative=s name: BETTEN & RESCH PATENT- UND RECHTSANWAELTE PART, DE

R082 Change of representative

Representative=s name: VENNER SHIPLEY GERMANY LLP, DE

Representative=s name: VENNER SHIPLEY LLP, DE

R016 Response to examination communication
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final