DE112021003407T5 - Verarbeitung natürlicher sprache - Google Patents

Verarbeitung natürlicher sprache Download PDF

Info

Publication number
DE112021003407T5
DE112021003407T5 DE112021003407.3T DE112021003407T DE112021003407T5 DE 112021003407 T5 DE112021003407 T5 DE 112021003407T5 DE 112021003407 T DE112021003407 T DE 112021003407T DE 112021003407 T5 DE112021003407 T5 DE 112021003407T5
Authority
DE
Germany
Prior art keywords
data
action
natural language
declarative
state
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112021003407.3T
Other languages
English (en)
Inventor
Qiaozi Gao
Divyanshu Brijmohan Verma
Govindarajan Sundaram Thattai
Qing Ping
Joel Joseph Chengottusseriyil
Ivan Vitomir Stojanovic
Feiyang Niu
Gokhan Tur
Charles J. Allen
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.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies Inc
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
Priority claimed from US16/907,680 external-priority patent/US12008985B2/en
Application filed by Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of DE112021003407T5 publication Critical patent/DE112021003407T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1815Semantic context, e.g. disambiguation of the recognition hypotheses based on word meaning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/167Audio in a user interface, e.g. using voice commands for navigating, audio feedback
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • G06F40/35Discourse or dialogue representation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/26Speech to text systems
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L13/00Speech synthesis; Text to speech systems
    • G10L13/08Text analysis or generation of parameters for speech synthesis out of text, e.g. grapheme to phoneme translation, prosody generation or stress or intonation determination
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1822Parsing for meaning understanding
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/223Execution procedure of a spoken command
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/225Feedback of the input speech
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/226Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics
    • G10L2015/227Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics of the speaker; Human-factor methodology
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/226Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics
    • G10L2015/228Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics of application context

Landscapes

  • Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Acoustics & Sound (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Machine Translation (AREA)
  • Stored Programmes (AREA)

Abstract

Im Allgemeinen werden Vorrichtungen und Techniken zum Erlernen personalisierter Antworten auf deklarative Eingaben in natürlicher Sprache beschrieben. In verschiedenen Beispielen kann eine erste Eingabe in natürlicher Sprache empfangen werden. Die erste Eingabe in natürlicher Sprache kann Absichtsdaten entsprechen, die einer deklarativen Benutzereingabe entsprechen. In einigen Beispielen kann eine Dialogsitzung mit dem ersten Benutzer initiiert werden. Eine vom ersten Benutzer beabsichtigte Aktion für die erste Eingabe in natürlicher Sprache kann zumindest teilweise basierend auf der Dialogsitzung bestimmt werden. In verschiedenen Beispielen können erste Daten, die die Aktion darstellen, in Verbindung mit zweiten Daten gespeichert werden, die einen Zustand darstellen, der durch mindestens einen Teil der ersten Eingabe in natürlicher Sprache beschrieben wird.

Description

  • ALLGEMEINER STAND DER TECHNIK
  • Automatische Spracherkennung (automatic speech recognition - ASR) in Kombination mit Sprachverarbeitungstechniken kann es einer Computervorrichtung ermöglichen, Befehle von einem Benutzer basierend auf den gesprochenen Befehlen des Benutzers abzurufen und zu verarbeiten. Die Verarbeitung natürlicher Sprache kann verwendet werden, um die gesprochenen Anforderungen in semantische Interpretationen des gesprochenen Befehls zu übersetzen. Ausführbare Anweisungen werden basierend auf der semantischen Interpretation des gesprochenen Befehls erzeugt. Die ausführbaren Anweisungen werden ausgeführt, und eine entsprechende Aufgabe wird ausgeführt. Solch eine Sprachverarbeitung und Sprachsteuerung kann von Personalcomputern, Handvorrichtungen, Telefoncomputersystemen und einer breiten Vielfalt anderer Computervorrichtungen verwendet werden, um Mensch-Computer-Interaktionen zu verbessern und verschiedene Systeme zu steuern.
  • Figurenliste
    • 1 ist ein Diagramm eines Systems, das dazu konfiguriert ist, eine ausführbare Aktion in Reaktion auf eine deklarative Eingabe in natürlicher Sprache zu bestimmen, gemäß verschiedenen Ausführungsformen der vorliegenden Offenbarung.
    • 2 zeigt zwei beispielhafte Dialogsitzungen, die verwendet werden können, um eine ausführbare Aktion in Reaktion auf eine deklarative Eingabe in natürlicher Sprache zu bestimmen, gemäß verschiedenen Ausführungsformen der vorliegenden Offenbarung.
    • 3 ist ein Blockdiagramm, das ein beispielhaftes Sprachverarbeitungssystem, das eine Konzepteinlernkomponente zum Lernen ausführbarer Aktionen in Reaktion auf deklarative Benutzereingaben aufweist, gemäß Ausführungsformen der vorliegenden Offenbarung veranschaulicht.
    • 4 zeigt ein Blockdiagramm, das ein Beispiel der Ausführung einer zuvor eingelernten Aktion in Reaktion auf eine deklarative Eingabe in natürlicher Sprache gemäß verschiedenen Aspekten der vorliegenden Offenbarung veranschaulicht.
    • 5 ist ein Blockdiagramm, das eine beispielhafte Architektur einer Computervorrichtung, die verwendet werden kann, um Antworten in natürlicher Sprache auf deklarative Eingaben in natürlicher Sprache zu erzeugen, gemäß verschiedenen hierin beschriebenen Ausführungsformen darstellt.
    • 6 ist ein Diagramm, das ein beispielhaftes System zum Senden und Bereitstellen von Daten veranschaulicht, das gemäß der vorliegenden Offenbarung verwendet werden kann.
    • 7 zeigt ein Flussdiagramm, das einen beispielhaften Prozess zum Lernen einer benutzerspezifischen Aktion, die in Reaktion auf eine deklarative Eingabe in natürlicher Sprache auszuführen ist, gemäß verschiedenen Aspekten der vorliegenden Offenbarung darstellt.
    • 8 zeigt ein Flussdiagramm, das einen beispielhaften Prozess zum Ausführen einer benutzerspezifischen Aktion in Reaktion auf eine deklarative Eingabe in natürlicher Sprache gemäß verschiedenen Aspekten der vorliegenden Offenbarung darstellt.
  • DETAILLIERTE BESCHREIBUNG
  • In der folgenden Beschreibung wird auf die beigefügten Zeichnungen Bezug genommen, die mehrere Beispiele der vorliegenden Erfindung veranschaulichen. Es versteht sich, dass andere Beispiele verwendet und verschiedene betriebliche Änderungen vorgenommen werden können, ohne vom Schutzumfang der vorliegenden Offenbarung abzuweichen Die folgende detaillierte Beschreibung ist nicht als einschränkend zu verstehen, und der Schutzumfang der Ausführungsformen der vorliegenden Erfindung wird nur durch die Ansprüche des erteilten Patents definiert.
  • Die automatische Spracherkennung (ASR) ist ein Gebiet der Informatik, künstlichen Intelligenz und Linguistik, das sich mit der Umwandlung von Audiodaten, die mit Sprache verbunden sind, in Textdaten und/oder andere ASR-Ausgabedaten befasst, die diese Sprache darstellen. Natural Language Understanding (NLU - Verstehen natürlicher Sprache) ist ein Gebiet der Informatik, künstlichen Intelligenz und Linguistik, das sich damit befasst, Computer in die Lage zu versetzen, Bedeutungen aus Texteingaben abzuleiten, die natürliche Sprache enthalten. In vielen Beispielen können die Eingabedaten natürlicher Sprache (z. B. eine Benutzeräußerung und/oder Eingabetext) zu spezifischen semantischen Absichtsdaten führen, die eine semantische Interpretation des Textes darstellen. In einigen Beispielen können die semantischen Absichtsdaten zum Veranlassen des Systems zur Verarbeitung natürlicher Sprache und/oder einer Anwendung zur Verarbeitung natürlicher Sprache (z. B. ein „Skill“, ein „Speechlet“ usw.) zum Ausführen einer Aktion umgesetzt werden. Beispielsweise können die semantischen Absichtsdaten ausführbare Befehle oder andere Arten von Anweisungen aufweisen. Danach können eine oder mehrere der semantischen Absichten zur Weiterverarbeitung und/oder Ausgabe durch das NLU-System ausgewählt werden. Beispielsweise kann die semantische Absicht, die mit dem höchsten Konfidenzwert unter den verschiedenen erzeugten semantischen Absichten assoziiert ist, zur Weiterverarbeitung und/oder Ausgabe ausgewählt werden.
  • In einigen Beispielen kann es unterschiedliche Domänen der Verarbeitung natürlicher Sprache geben. Eine Domäne zur Verarbeitung natürlicher Sprache kann beispielsweise ein Satz von Absichten zur Verarbeitung natürlicher Sprache und/oder Speechlets, NLU-Modellen sein, die als eine Domäne zusammengefasst sind, um eine spezifische Art von Aufgabe zur Verarbeitung natürlicher Sprache zu handhaben. Beispielsweise kann es eine Einkaufsdomäne geben, die sich auf das Tätigen von Einkäufen und/oder Navigieren in einem E-Commerce-System unter Verwendung von Befehlen in natürlicher Sprache bezieht. In einem anderen Beispiel kann es eine Musikdomäne geben, die sich auf die Steuerung von Musikwiedergabe unter Verwendung von Befehlen in natürlicher Sprache bezieht. Verschiedene andere Domänen können gemäß der spezifischen Implementierung des Systems zur Verarbeitung natürlicher Sprache verwendet werden.
  • In verschiedenen Beispielen können domänenspezifische Absichten für Eingaben in natürlicher Sprache definiert werden, die deklarativer Natur sind und die keine Aktion anfordern, die vom System zur Verarbeitung natürlicher Sprache direkt verstanden wird. Beispielsweise kann eine deklarative Eingabe in natürlicher Sprache eine Eingabe sein, die keine spezifische zu beantwortende Frage und/oder keinen spezifischen Befehl enthält, der vom System zur Verarbeitung natürlicher Sprache in seinem aktuellen Zustand ausgeführt werden kann. In einigen Beispielen können deklarative Benutzeräußerungen wie „Computer, hier ist es kalt“ und/oder „Computer, ich bin müde“ Beispiele für Eingaben in natürlicher Sprache sein, die nicht direkt umsetzbar sind. Beispielsweise gibt es möglicherweise keine angeforderte Aktion und/oder keinen Befehl, die/der in der deklarativen Aussage „hier ist es kalt“ enthalten ist. Dementsprechend kann die semantische Absicht für eine solche Benutzeraussage nicht mit einer ausführbaren Aktion assoziiert sein. Domänenspezifische Absichten können für solche Eingaben in natürlicher Sprache, die nicht direkt umsetzbar sind, definiert und/oder gelernt werden.
  • In verschiedenen hierin beschriebenen Beispielen können domänenspezifische Absichten, die deklarativen Eingaben in natürlicher Sprache entsprechen, als „deklarative Absichten“ bezeichnet werden. Ferner können in verschiedenen Beispielen deklarative Eingaben in natürlicher Sprache als „deklarative Äußerungen“ bezeichnet werden. Wie hierin verwendet, können „deklarative Äußerungen“ sich jedoch auf jede Eingabe in natürlicher Sprache (z. B. Benutzersprache, Benutzertext, Tastatur- und/oder Joystick-Eingaben, haptische Eingaben, durch Bewegung aktivierte Eingaben usw.) beziehen, die vor der Implementierung der verschiedenen hierin beschriebenen Techniken nicht umsetzbar ist.
  • In Reaktion auf einen Aufruf einer deklarativen Absicht durch eine eingegebene deklarative Äußerung kann ein Zustand bestimmt werden, der mit der deklarativen Absicht assoziiert ist. Während des Trainings können deklarative Absichten mit Zustandsdaten assoziiert werden, die Zustände beschreiben, die durch die deklarative Benutzereingabe angegeben werden. Beispielsweise können die Zustandsdaten für die Aussage „hier ist es zu kalt“ den Zustand „kalt“ darstellen. Dementsprechend kann ein Zustand eine Bedingung wie etwa eine Idee, eine Umgebungsbedingung, ein Befindlichkeitszustand des Benutzers, ein Geisteszustand des Benutzers usw. sein, der durch die deklarative Benutzereingabe beschrieben und/oder einbezogen wird.
  • Wenn eine deklarative Absicht über eine eingegebene deklarative Äußerung aufgerufen wird, werden die mit der deklarativen Absicht assoziierten Zustandsdaten bestimmt und in eine Konzepteinlernkomponente eingegeben, die zum Lernen benutzerspezifischer relevanter Aktionen für die spezifischen Zustandsdaten in der Lage ist. Die Konzepteinlernkomponente kann eine Zielzustandsvorhersagekomponente umfassen. Die Zielzustandsvorhersagekomponente kann ein maschinelles Lernmodell (z. B. ein Klassifikator) sein, das ein Ziel vorhersagen kann, das mit den Zustandsdaten in Beziehung stehen kann. Beispielsweise können für die deklarative Absicht „hier ist es zu kalt“ die Zustandsdaten „kalt“ in die Zielzustandsvorhersagekomponente eingegeben werden. In Reaktion darauf kann die Zielzustandsvorhersagekomponente die Zieldaten „Temperatur erhöhen“ vorhersagen. Die Zieldaten können für ein anderes maschinelles Lernmodell (z. B. eine Aktionsvorhersagekomponente) bereitgestellt werden, das zum Vorhersagen einer spezifischen ausführbaren Aktion in der Lage sein kann, die zum Erfüllen der vorhergesagten Zieldaten verwendet wird. Beispielsweise kann die Aktionsvorhersagekomponente die Zieldaten „Temperatur erhöhen“ empfangen und die ausführbare Aktion „Heizung einschalten“ spezifisch für eine Smart-Home-Domäne vorhersagen. In einigen Beispielen können zusätzlich zu den Zustandsdaten auch Kontextdaten wie Benutzerkontodaten, Vorrichtungskennungsdaten, globale Kontextdaten (z. B. Datum, Uhrzeit, geografischer Standort, Vorrichtungsstandort, Benutzereinstellungen) usw. als Eingabe in das maschinelle Lernmodell der Aktionsvorhersagekomponente und/oder der Zielzustandsvorhersagekomponente zum Vorhersagen der Aktion und/oder des Ziels verwendet werden.
  • Nach der Ausgabe einer vorhergesagten Aktion durch die Aktionsvorhersagekomponente kann die Konzepteinlernkomponente eine Dialogsitzung mit dem Benutzer initiieren. Beispielsweise kann die Konzepteinlernkomponente Textdaten in natürlicher Sprache (z. B. eine Aufforderung in natürlicher Sprache) erzeugen, die als Ausgabedaten verwendet werden können, die verwendet werden, um den Benutzer zu fragen, ob die von der Aktionsvorhersagekomponente vorhergesagte Aktion ausgeführt werden sollte. Wie nachstehend ausführlicher beschrieben, können die verschiedenen Ausgaben der Dialogsitzung, die von der Konzepteinlernkomponente erzeugt werden, als Text erzeugt werden, der auf einem Bildschirm in der Nähe des Benutzers angezeigt werden kann. In einem weiteren Beispiel können die verschiedenen Ausgaben der Dialogsitzung, die von der Konzepteinlernkomponente erzeugt werden, als Text erzeugt werden, der als Audio über eine Text-zu-Sprache(text to speech - TTS)-Komponente (nachstehend ausführlicher beschrieben) ausgegeben werden kann. In verschiedenen Beispielen kann die Dialogsitzung rundenbasiert sein. In einer rundenbasierten Dialogsitzung kann eine Runde eine Ausgabe durch das System zur Verarbeitung natürlicher Sprache und eine Eingabe durch den Benutzer umfassen (obwohl nicht notwendigerweise in dieser Reihenfolge).
  • Während der Dialogsitzung kann der Benutzer bestätigen, dass die vorhergesagte Aktion ausgeführt werden sollte, und/oder er kann stattdessen eine andere ausführbare Aktion und/oder eine weitere deklarative Äußerung angeben. Wenn der Benutzer eine andere Aktion vorschlägt, kann die Konzepteinlernkomponente unter Verwendung einer Komponente zur Verarbeitung natürlicher Sprache bestätigen, dass die vom Benutzer vorgeschlagene Aktion verstanden werden kann und/oder dass die vom Benutzer vorgeschlagene Aktion einer umsetzbaren Absicht entspricht.
  • In einigen weiteren Beispielen kann eine Dialogsitzung mehrere Runden umfassen, die durch die Konzepteinlernkomponente vorgeschlagene ausführbare Aktionen und klärende Aussagen durch den Endbenutzer umfassen, bis eine vom Benutzer gewünschte Aktion bestimmt wird. Wie nachstehend ausführlicher beschrieben, kann die Konzepteinlernkomponente die Dialogsitzung (sowie Kontextdaten in Bezug auf die Tageszeit, den Ort, die Vorrichtung, mit der der Benutzer interagiert, usw.) verwenden, um in Reaktion auf die Zustandsdaten, die in der deklarativen Äußerung des Benutzers dargestellt sind, zu lernen, welche Aktion der Benutzer bevorzugt. Beim Bestimmen der vom Benutzer gewünschten ausführbaren Aktion in Reaktion auf die deklarative Äußerung kann die Konzepteinlernkomponente Konzepteinlernartefaktdaten speichern, die die vom Benutzer bevorzugte ausführbare Aktion in Verbindung mit den Zustandsdaten und/oder den relevanten Kontextdaten an einem benutzerkontospezifischen Ort im Speicher (z. B. in einer benutzerspezifischen Datenbank) identifizieren. Wenn der Benutzer danach eine deklarative Äußerung mit denselben Zustandsdaten (z. B. „Computer, es ist eiskalt!“, die mit den Zustandsdaten „kalt“ assoziiert werden können) und/oder denselben Kontextdaten eingibt, können die Zustandsdaten und/oder die Kontextdaten von der Konzepteinlernkomponente verwendet werden, um das Konzepteinlernartefakt nachzuschlagen. Die zuvor erlernte ausführbare Aktion kann danach ausgeführt werden. Es ist zu beachten, dass die spezifische Benutzereingabe nicht mit der Benutzereingabe identisch sein muss, die anfänglich von der Konzepteinlernkomponente verwendet wurde, um das Konzepteinlernartefakt zu erlernen. Wenn stattdessen die Eingabe in natürlicher Sprache mit denselben Zustandsdaten (z. B. „kalt“) assoziiert ist, kann die erlernte Aktion unter Verwendung des Konzepteinlernartefakts sichtbar gemacht werden.
  • Vorteilhafterweise ermöglichen die hierin beschriebenen Konzepteinlerntechniken einem System zur Verarbeitung natürlicher Sprache, personalisierte ausführbare Aktionen zu erlernen, die in Reaktion auf deklarative Äußerungen auszuführen sind. Im Gegensatz dazu verwenden auf maschinellem Lernen basierende Personalisierungstechniken große Datenmengen, um eine vorhergesagte Aktion im Laufe der Zeit schrittweise zu erlernen. Unter Verwendung der hierin beschriebenen Techniken kann ein Benutzer die bevorzugte Aktion sofort erneut aufrufen, indem er die deklarative Äußerung tätigt, unmittelbar nachdem er dem System zur Verarbeitung natürlicher Sprache die Assoziation zwischen der ausführbaren Aktion und der deklarativen Äußerung beigebracht hat.
  • Text-to-Speech (TTS) ist ein Gebiet der Informatik, künstlichen Intelligenz und Linguistik, das sich damit befasst, Computern die Ausgabe synthetisierter Sprache zu ermöglichen. ASR, NLU und TTS können zusammen als Teil eines Systems zur Verarbeitung natürlicher Sprache verwendet werden. In einigen Beispielen können andere Arten von Eingaben abgesehen von gesprochenen Äußerungen von einem System zur Verarbeitung natürlicher Sprache empfangen werden. Zum Beispiel können Texte, visuelle Eingaben (z. B. Gesichtserkennung und/oder Handerkennung), haptische Eingaben und/oder andere Arten von Eingaben von einem System zur Verarbeitung natürlicher Sprache empfangen und/oder verarbeitet werden.
  • Spoken Language Understanding (SLU - Verstehen gesprochener Sprache) ist ein Gebiet der Informatik, künstlichen Intelligenz und/oder Linguistik, wobei gesprochene Sprache als Eingabe empfangen wird, die Eingabe interpretiert wird und ausführbare Befehle erzeugt werden, die von einer oder mehreren anderen Computervorrichtungen und/oder Sprachverarbeitungskomponenten ausgeführt werden können. In verschiedenen Beispielen kann das Verstehen gesprochener Sprache eine Kombination aus ASR-Systemen und NLU-Systemen sein, während in anderen Beispielen das Verstehen gesprochener Sprache ein einziges Modell oder eine andere Art von Komponente sein kann, die in der Lage ist, sowohl die Funktionen von ASR als auch von NLU auszuführen oder anderweitig Audiodaten als eine Eingabe zu nutzen und ausführbare Befehle oder andere Arten von Anweisungen auszugeben, die die Bedeutung der Audiodaten darstellen. In verschiedenen weiteren Beispielen kann SLU TTS umfassen, wobei ein maschinelles Lernmodell Audioeingabedaten (z. B. Anforderungsdaten, die Benutzeranforderungsdaten und/oder Benutzer-Texteingabedaten darstellen) empfangen und in Reaktion auf die Äußerung Audioausgabedaten erzeugen kann.
  • Wie hierin verwendet, können Benutzeräußerungen, Texteingabedaten und/oder jede Form der Dateneingabe in ein System zur Verarbeitung natürlicher Sprache („Eingabedaten“) als „Eingaben in natürlicher Sprache“ und/oder einfach „Eingaben“ bezeichnet werden. Solche Anforderungsdaten können ihre Form während der Verarbeitung der Anforderungsdaten durch verschiedene Komponenten des Sprachverarbeitungssystems häufig ändern. Beispielsweise können anfänglich die Eingabedaten Audiodaten sein und/oder Texteingabedaten sein, die eine Benutzerfrage darstellen. Die Audiodaten können von einer ASR-Komponente des Sprachverarbeitungssystems in Textdaten und/oder andere ASR-Ausgabedaten umgewandelt werden. Die Textdaten und/oder anderen ASR-Ausgabedaten können von einer NLU-Komponente des Sprachverarbeitungssystems in Absichtsdaten umgewandelt werden. Beispielsweise kann die deklarative Absicht für Eingaben in natürlicher Sprache bestimmt werden, die nicht direkt umsetzbar sind (deklarative Äußerungen).
  • Für typische umsetzbare Eingaben können Absichtsdaten durch eine Sprachverarbeitungsanwendung (z. B. ein Speechlet) verwendet werden, um eine Aktion auszuführen (z. B. um Aktionsdaten und/oder andere Speechlet-Ausgaben zu erzeugen, die verarbeitet werden können, um eine entsprechende Aktion wie z. B. die Beantwortung einer Benutzerfrage, das Abspielen von Video, das Abspielen von Audio usw. auszuführen). Eingaben in natürlicher Sprache können sich auf beliebige Daten beziehen, die mit einer Eingabeanforderung an ein Sprachverarbeitungssystem in Beziehung stehen (darunter z. B. die verschiedenen vorstehend beschriebenen Datenformen, da jeder der oben erwähnten Datentypen mit einer Eingabeanforderung an das Sprachverarbeitungssystem in Beziehung steht). Wie im Allgemeinen hierin verwendet, kann es sich bei „Anwendungen“ zur Sprachverarbeitung um jede Software (und/oder Kombination aus Software und Hardware) handeln, die während der Sprachverarbeitung verwendet wird, um in Reaktion auf eingegebene Anforderungsdaten (z. B. Eingaben in natürlicher Sprache wie etwa Benutzeräußerungen und/oder Text) eine Aktion auszuführen. Solche Anwendungen können Sprachverarbeitungsskills, Speechlets und/oder andere Arten von Sprachverarbeitungssoftware umfassen. Wie im Allgemeinen hierin verwendet, kann der Begriff „Speechlet“ zur Bezugnahme auf jeden Code verwendet werden, der auf einer Vorrichtung ausgeführt wird und zum Erzeugen einer Aktion in Reaktion auf eine Eingabe in natürlicher Sprache in der Lage ist. Beispielsweise können Sprachverarbeitungsanwendungen (manchmal als „Skills“ bezeichnet) hierin allgemein als „Speechlets“ bezeichnet werden.
  • In verschiedenen Beispielen können Sprachverarbeitungssysteme eine Absicht für eine spezifische Eingabe in natürlicher Sprache gemäß einer Interpretation der durch NLU bestimmten Eingabe in natürlicher Sprache bestimmen. In verschiedenen Beispielen können mehrere NLU-Prozessabläufe für eine gegebene Eingabe in natürlicher Sprache ausgeführt werden, da einige Prozessabläufe beim Ableiten einer semantischen Bedeutung aus spezifischen Arten von Äußerungen und/oder anderen Eingaben in natürlicher Sprache effektiver sein können. Beispielsweise kann ein primärer NLU-Prozessablauf ein regelbasiertes heuristisches System umfassen, das Wissensgraphen und/oder vorab kodierte ontologische Konfigurationen verwendet. Der primäre NLU-Prozessablauf kann einen Prozess verwenden, der als Named Entity Recognition (NER - Eigennamenerkennung) bekannt ist, um Entitäten (z. B. Substantive und/oder Pronomen) in einer gegebenen Eingabe in natürlicher Sprache zu identifizieren. Die Entitäten und/oder andere semantische Sprachdaten einer Eingabe in natürlicher Sprache können geparst und an den Wissensgraphen gesendet werden, der wiederum verwendet werden kann, um verschiedene Entitäten und/oder Attribute dieser Entitäten (Daten, die Eigenschaften der Entitäten beschreiben) miteinander in Beziehung zu setzen.
  • 1 ist ein Diagramm eines Systems 100, das dazu konfiguriert ist, eine ausführbare Aktion in Reaktion auf eine deklarative Eingabe in natürlicher Sprache zu bestimmen, gemäß verschiedenen Ausführungsformen der vorliegenden Offenbarung.
  • In verschiedenen Beispielen kann ein Benutzerkonto 101 mit einer lokalen Vorrichtung 110 kommunizieren. Die lokale Vorrichtung 110 kann eine sprachverarbeitungsfähige Vorrichtung und in der Lage sein, kontinuierlich nach einem Aktivierungswort zu „horchen“. Bei Erkennung eines Aktivierungsworts kann eine Eingabevorrichtung 110 Audio aufzeichnen und über ein Netz 104 an ein System zur Verarbeitung natürlicher Sprache 120 senden. Das System zur Verarbeitung natürlicher Sprache 120 kann eine oder mehrere Computervorrichtungen umfassen, die in der Lage sind, verschiedene Techniken auszuführen, um eine semantische Interpretation von Eingabedaten natürlicher Sprache und Antworten darauf zu erzeugen. Das System zur Verarbeitung natürlicher Sprache 120 kann weniger oder zusätzliche Komponenten neben den in 1 im Einzelnen dargestellten und beschriebenen umfassen. Zum Beispiel zeigt 3 ein Beispiel eines detaillierteren Systems zur Verarbeitung natürlicher Sprache, das gemäß verschiedenen Aspekten der vorliegenden Offenbarung verwendet werden kann.
  • In einem Beispiel können Audiodaten 102, die eine Benutzeranfrage darstellen, über das Netz 104 an das System zur Verarbeitung natürlicher Sprache 120 gesendet werden. Das Netz 104 kann ein Weitverkehrsnetz (WAN - Wide Area Network) sein, wie z. B. das Internet, oder es kann ein lokales Netz (LAN - Local Area Network) sein. In verschiedenen anderen Beispielen kann die Eingabevorrichtung 110 zum Empfangen von Textdaten konfiguriert sein und/oder Spracherkennung lokal durchführen. In solchen Beispielen kann die Eingabevorrichtung 110 Textdaten 105, die Eingabedaten natürlicher Sprache darstellen, über das Netz 104 an das System zur Verarbeitung natürlicher Sprache 120 senden.
  • In verschiedenen Beispielen können die Audiodaten 102 durch das System zur Verarbeitung natürlicher Sprache 120 an eine ASR-Komponente 150 gesendet werden. Die ASR-Komponente 150 kann Textdaten erzeugen, die die Audiodaten darstellen. Die Textdaten, die die Audiodaten 102 darstellen, können an eine NLU-Komponente 160 gesendet werden. In Beispielen, in denen das Benutzerkonto 101 Texteingabe bereitstellt und/oder in denen die Eingabevorrichtung 110 Text erzeugt und sendet, der eine Benutzeräußerung darstellt, können Textdaten 105 an die NLU-Komponente 160 gesendet werden.
  • Die NLU-Komponente 160 kann eine Anzahl unterschiedlicher Strategien zum Verstehen natürlicher Sprache in einem föderierten Ansatz verwenden, um Eingabedaten natürlicher Sprache zu verstehen. In verschiedenen Beispielen kann die NLU-Komponente 160 eine Domäne bestimmen, die einer spezifischen Eingabe in natürlicher Sprache entspricht. Domänen können unter Verwendung von Schlüsselwörtern in der Eingabe (z. B. unter Verwendung von Slot-Daten und/oder Entitätserkennung) und/oder durch Verwenden von Kontextdaten, die mit der Eingabe in natürlicher Sprache assoziiert sind (z. B. Vorrichtungskennung, Kontokennung, Zeit, Ort usw.), bestimmt werden. In verschiedenen Beispielen kann ein nichtflüchtiger computerlesbarer Speicher 103 Anweisungen speichern, die zum Programmieren mindestens eines Prozessors (z. B. von zu Computervorrichtungen des Systems zur Verarbeitung natürlicher Sprache 120 gehörigen Prozessoren und/oder Prozessorkernen) in der Lage sind, um die verschiedenen Techniken auszuführen, die in der vorliegenden Offenbarung beschrieben sind.
  • Nach der Bestimmung einer spezifischen Domäne für die Eingabe in natürlicher Sprache kann die NLU-Komponente 160 eine Absicht bestimmen, die die Eingabe in natürlicher Sprache darstellt. Im Fall einer Eingabe in natürlicher Sprache, die nicht direkt umsetzbar ist (eine deklarative Äußerung), kann eine domänenspezifische deklarative Äußerungsabsicht unter Verwendung eines deklarativen Eingabedetektors 162 bestimmt werden, der für die bestimmte Domäne spezifisch ist. Obwohl in 1 als separate Komponente dargestellt, kann der deklarative Eingabedetektor bzw. können die deklarativen Eingabedetektoren 162 in einigen Beispielen Teil der NLU-Komponente 160 sein.
  • In verschiedenen Beispielen kann der deklarative Eingabedetektor bzw. können die deklarativen Eingabedetektoren 162 bestimmen, dass die Eingabe in natürlicher Sprache nicht direkt umsetzbar ist und der deklarativen Absicht für die bestimmte Domäne entspricht. In verschiedenen Beispielen kann der deklarative Eingabedetektor bzw. können die deklarativen Eingabedetektoren 162 trainierte maschinelle Lernmodelle und/oder Heuristiken beinhalten, die deklarative Äußerungen erkennen. Beispielsweise kann ein deklarativer Eingabedetektor 162 unter Verwendung einer Vielzahl von deklarativen Eingabeäußerungen trainiert werden, die keine umsetzbare Sprache enthalten, die aber mit einem definierten Zustand assoziiert sind. Beispielsweise können Trainingsdaten Datenpaare und/oder Tupel umfassen, die eine Aussage gepaart mit Zustandsdaten aufweisen, die einen der Aussage entsprechenden Zustand darstellen. Beispielsweise kann die Aussage „Computer, hier ist es zu hell“ mit den Zustandsdaten „zu hell“ gepaart werden (z. B. („[zu hell in [Ort]“, [zu_hell]), wobei („zu hell in [Ort]“ die Eingabe in natürlicher Sprache darstellt, und [zu_hell] die Zustandsdaten darstellt, die mit der Eingabe in natürlicher Sprache assoziiert sind). Dementsprechend kann der deklarative Eingabedetektor bzw. können die deklarativen Eingabedetektoren 162 nach dem Training in der Lage sein, Zustandsdaten 112 zu bestimmen, die mit deklarativen Äußerungen assoziiert sind.
  • Zustandsdaten 112 können an die Konzepteinlernkomponente 168 gesendet werden. Die Konzepteinlernkomponente 168 kann eine Zielzustandsvorhersagekomponente 164 umfassen, wobei es sich um ein oder mehrere maschinelle Lernmodelle handeln kann, die zum Empfangen von Zustandsdaten 112 als Eingabe und Erzeugen eines vorhergesagten Ziels als Ausgabe in der Lage sind. Die Ausgabe des vorhergesagten Ziels durch die Konzepteinlernkomponente 168 kann eine Vorhersage eines Ziels des Benutzers darstellen, wie es durch den Zustand bestimmt wird, der durch die Zustandsdaten in der deklarativen Äußerung dargestellt wird. Wenn beispielsweise die Zustandsdaten 112 den Zustand „zu kalt“ darstellen, kann die Zielzustandsvorhersagekomponente 164 das vorhergesagte Ziel „Temperatur erhöhen“ erzeugen. Die Zielzustandsvorhersagekomponente 164 kann ein maschinelles Lernmodell (z. B. ein neuronales Klassifikatornetz usw.) sein, das beaufsichtigt oder unbeaufsichtigt trainiert werden kann). Beispielsweise kann ein Klassifikator unter Verwendung von Datenpaaren trainiert werden, die Zustandsdaten und vorhergesagte Aktionen umfassen.
  • Die von der Zielzustandsvorhersagekomponente 164 vorhergesagten Zieldaten können an eine Aktionsvorhersagekomponente 165 gesendet werden. Die Aktionsvorhersagekomponente 165 kann ein maschinelles Lernmodell (z. B. ein neuronales Netz usw.) sein, das zum Vorhersagen einer auszuführenden Aktion basierend auf den Zieldaten und/oder basierend auf mit der deklarativen Äußerung des Benutzerkontos 101 assoziierten Kontextdaten in der Lage ist. Wenn der Benutzer beispielsweise „Computer, es ist zu kalt“ sagt und die Äußerung von einer Vorrichtung 110 erkannt wird, die sich im Wohnzimmer des Benutzers befindet, können die Zieldaten „Temperatur erhöhen“ und die Kontextdaten - (Wohnzimmer, 17:37 Uhr, 7. Januar) von der Aktionsvorhersagekomponente 165 verwendet werden, um die Aktion „Wärme im Wohnzimmer auf 25 Grad einstellen“ vorherzusagen.
  • Nach dem Erzeugen einer vorhergesagten Aktion, die mit den Zustandsdaten assoziiert ist, kann eine Einlerndialogkomponente 166 eine Dialogsitzung mit dem Benutzerkonto 101 initiieren. Anfänglich kann die Dialogsitzung eine Frage umfassen, die an das Benutzerkonto 101 gestellt wird und anfragt, ob die vorhergesagte Aktion ausgeführt werden sollte. In einem Beispiel kann der Benutzer die Anfangsfrage der Dialogsitzung bejahend beantworten, wenn der Benutzer wünscht, dass die vorhergesagte Aktion ausgeführt wird. An diesem Punkt können Konzepteinlernartefaktdaten 169 (CT-Artefaktdaten 169) erzeugt werden, die die vorhergesagte Aktion mit den Zustandsdaten und/oder mit den Kontextdaten assoziieren. Die CT-Artefaktdaten 169 können in einer Konzeptdatenbank 170 in einem nichtflüchtigen computerlesbaren Speicher gespeichert werden, der mit dem Benutzerkonto 101 assoziiert ist, um die CT-Artefaktdaten 169 zu personalisieren. Beispielsweise können die CT-Artefaktdaten 169 in einer Datenbank und/oder an einem Speicherplatz, die/der mit dem Benutzerkonto 101 assoziiert ist, gespeichert werden.
  • Wenn der Benutzer jedoch stattdessen eine andere Aktion als die von der Aktionsvorhersagekomponente 165 ausgegebene vorhergesagte Aktion bevorzugt, kann der Benutzer die bevorzugte Aktion während der Dialogsitzung angeben, die von der Einlerndialogkomponente 166 eingeleitet wird. Beim Bestimmen der vom Benutzer gewünschten Aktion während der Dialogsitzung können CT-Artefaktdaten 169 erzeugt werden, die die Aktion mit den Zustandsdaten 112 und/oder den Kontextdaten assoziieren. Wie nachstehend ausführlicher beschrieben, kann in einigen Beispielen die bevorzugte Aktion, die durch die Konzepteinlernkomponente 168 bestimmt und/oder vom Benutzer während der Dialogsitzung spezifiziert wird, zuerst an die NLU 160 gesendet werden, um zu bestimmen, ob die Aktion verstanden wurde und/oder durch das System zur Verarbeitung natürlicher Sprache 120 ausführbar ist, bevor die CT-Artefaktdaten 169 erzeugt werden. Dementsprechend können in einigen Beispielen nur Aktionen, die sowohl verstanden werden als auch durch das System zur Verarbeitung natürlicher Sprache 120 (und/oder ein oder mehrere der Speechlets 191) ausführbar sind, in Verbindung mit Zustandsdaten 112 als CT-Artefaktdaten 169 gespeichert werden.
  • Sofern die Aktion verstanden wird und umsetzbar ist, kann die Aktion durch das System zur Verarbeitung natürlicher Sprache 120 und/oder durch ein oder mehrere Speechlets 191 ausgeführt werden. In einem Beispiel kann es sich bei den Audiodaten 102 um eine Audioaufzeichnung der Aussage „Computer, hier drin ist es zu dunkel“ handeln. Die Audiodaten 102 können von der ASR-Komponente 150 in entsprechenden Text übersetzt werden. Die NLU-Komponente 160 kann (z. B. unter Verwendung der Vorrichtungskennung und/oder anderer Kontextdaten sowie der Eingabetextdaten) bestimmen, dass die Äußerung einer Smart-Home-Domäne entspricht. Außerdem kann die NLU-Komponente 160 (die einen oder mehrere NLU-Prozesse beinhalten kann, die für die Smart-Home-Domäne spezifisch sind) bestimmen, dass es keine umsetzbare Absicht gibt, die mit den Textdaten assoziiert ist, die die Benutzereingabe „Computer, hier drin ist es zu dunkel“ darstellen. Ein Detektor deklarativer Äußerungen 162 kann bestimmen, dass die Äußerung einer deklarativen Absicht entspricht, die für die Smart-Home-Domäne definiert ist. Außerdem kann der Detektor deklarativer Äußerungen 162 bestimmen, dass die Zustandsdaten 112 „zu dunkel“ mit der spezifischen deklarativen Absicht assoziiert sind, die für die Benutzereingabe bestimmt wurde.
  • Die Zustandsdaten 112 „zu dunkel“ können an die Konzepteinlernkomponente 168 gesendet werden. Die Zustandsdaten 112 (und/oder eine geeignete Darstellung davon, wie etwa eine Merkmalseinbettung) können in die Zielzustandsvorhersagekomponente 164 eingegeben werden. Die Zielzustandsvorhersagekomponente 164 kann eine vorhergesagte Aktion erzeugen. Im aktuellen Beispiel kann die Zielzustandsvorhersagekomponente 164 die vorhergesagten Zieldaten „mehr Licht“ erzeugen. Die Zieldaten und/oder die Kontextdaten (z. B. Tageszeit, Datum, Vorrichtungskennung usw.) können an die Aktionsvorhersagekomponente 165 gesendet werden. Die Aktionsvorhersagekomponente 165 kann eine ausführbare Aktion basierend auf den Zieldaten und/oder den Kontextdaten vorhersagen. In einem Beispiel kann die vorhergesagte Aktion „Wohnzimmerlicht einschalten“ für die Zieldaten „Mehr Licht“ sein, wenn die Kontextdaten darauf hinweisen, dass es draußen höchstwahrscheinlich dunkel ist (z. B. nach 20:00 Uhr). Die vorhergesagte Aktion für die Zieldaten „Mehr Licht“ kann jedoch „Jalousien im Wohnzimmer öffnen“ sein, wenn die Kontextdaten darauf hinweisen, dass es draußen höchstwahrscheinlich hell ist (z. B. 15:00 Uhr, Wettervorhersage sonnig und der Benutzer verfügt über Smart-Home-gesteuerte Jalousien, die von einem Speechlet 191 gesteuert werden können).
  • In zumindest einigen Beispielen kann bestimmt werden, ob die vorhergesagte Aktion von einem oder mehreren der Speechlets 191 ausgeführt werden kann oder nicht. Zum Beispiel kann vor dem Initiieren einer Dialogsitzung durch die Einlerndialogkomponente 166 bestimmt werden, ob ein Speechlet 191 zum Ausführen der Aktion „Licht einschalten“ in der Lage ist.
  • In der Annahme, dass die vorhergesagte Aktion ausführbar ist und/oder vom System zur Verarbeitung natürlicher Sprache 120 verstanden wird, kann die Einlerndialogkomponente 166 eine Dialogsitzung mit dem Benutzerkonto 101 initiieren. Beispielsweise kann die Einlerndialogkomponente 166 die Textdaten „Ok. Möchten Sie, dass ich das Licht im Wohnzimmer anmache?“ oder ähnliches erzeugen. Die Textdaten können über eine TTS-Komponente als Audio ausgegeben werden. Der Benutzer kann auf die Frage antworten. Wenn der Benutzer bejahend antwortet, kann die vorhergesagte Aktion in Verbindung mit den Zustandsdaten 112 als CT-Artefaktdaten 169 an einem benutzerspezifischen Speicherort in der Konzeptdatenbank 170 (z. B. in einem benutzerspezifischen Speicher) gespeichert werden. Wenn der Benutzer danach eine deklarative Eingabe verwendet, die mit denselben Zustandsdaten 112 assoziiert ist, kann dieselbe vorhergesagte Aktion ausgeführt werden (z. B. nach einer Aufforderung des Benutzers zur Bestätigung, dass die vorhergesagte Aktion ausgeführt werden sollte).
  • Umgekehrt kann der Benutzer während der Dialogsitzung antworten, um anzuzeigen, dass die vorhergesagte Aktion nicht ausgeführt werden sollte. In einigen Fällen kann der Benutzer eine alternative Aktion und/oder eine klärende Aussage bereitstellen. Beispielsweise kann der Benutzer antworten: „Nein, öffne die Jalousien.“ In einigen Beispielen kann zuerst eine Überprüfung durchgeführt werden, um zu bestimmen, ob die NLU 160 die Benutzerantwort versteht oder nicht und/oder ob eine oder mehrere umsetzbare Absichten der Benutzerantwort entsprechen. Wenn zum Beispiel ein Speechlet 191 vorhanden ist, das das Benutzerkonto 101 aktiviert hat und das eine Absicht „Öffne die Jalousien“ enthält, kann die Konzepteinlernkomponente 168 bestätigen, dass die Benutzerantwort einer umsetzbaren Absicht entspricht. In solch einem Fall kann die durch die Benutzerantwort angegebene Aktion in Verbindung mit den Zustandsdaten 112 als CT-Artefaktdaten 169 in der benutzerspezifischen Konzeptdatenbank 170 gespeichert werden.
  • Konzeptionell kann der Vorgang des Bestimmens und Assoziierens einer Aktion mit Zustandsdaten (z. B. als in der Konzeptdatenbank 170 gespeicherte CT-Artefaktdaten) durch eine Dialogsitzung als Erlernen der Aktion für die deklarative Äußerung bezeichnet werden. Wenn danach eine deklarative Eingabe in natürlicher Sprache (eine deklarative Äußerung) empfangen wird, die eine deklarative Absicht aufruft, die mit denselben Zustandsdaten 112 und/oder denselben Kontextdaten assoziiert ist, kann die Aktion, die mit den Zustandsdaten 112 und/oder den Kontextdaten assoziiert ist, über CT-Artefaktdaten 169 ausgeführt werden. In einigen Beispielen kann eine Benutzerbestätigung verwendet werden, bevor die Aktion in Reaktion auf die deklarative Äußerung ausgeführt wird. Wenn beispielsweise die Konzeptlehrkomponente 168 zuvor gelernt hat, dass die Aktion „Öffne die Jalousien“ (wenn sie tagsüber geäußert wird) mit den Zustandsdaten „zu dunkel“ assoziiert ist, kann das nächste Mal, wenn eine Äußerung empfangen wird, die mit denselben Zustandsdaten assoziiert ist, die Aktion „Öffne die Jalousien“ unter Verwendung der CT-Artefaktdaten 169 bestimmt werden. In Reaktion darauf kann das System zur Verarbeitung natürlicher Sprache 120 die Absichtsdaten für die Absicht „Öffne die Jalousien“ an das entsprechende Speechlet senden und die Aktion „Öffne die Jalousien“ ausführen. In einigen Beispielen kann das System zur Verarbeitung natürlicher Sprache 120 den Benutzer vor dem Ausführen der Aktion fragen. Beispielsweise kann das System zur Verarbeitung natürlicher Sprache 120 vor dem Ausführen der Aktion zum Öffnen der Jalousien Audiodaten ausgeben, die den Text „Möchten Sie, dass ich die Jalousien öffne?“ darstellen.
  • 2 zeigt zwei beispielhafte Dialogsitzungen, die verwendet werden können, um eine ausführbare Aktion in Reaktion auf eine deklarative Eingabe in natürlicher Sprache zu bestimmen, gemäß verschiedenen Ausführungsformen der vorliegenden Offenbarung. In verschiedenen Beispielen können die Konzepteinlernkomponente 168 und/oder insbesondere die Einlerndialogkomponente 166 eine Einlernsitzung 266 und/oder eine Dialogsitzung 272 (entsprechend der Anwendung von CT-Artefaktdaten 172 in 1) durchführen.
  • In der beispielhaften Einlernsitzung kann der Benutzer anfänglich „Computer, im Wohnzimmer ist es zu dunkel“ als Äußerung 202 angeben. Der Detektor deklarativer Eingaben 162 kann eine domänenspezifische deklarative Absicht bestimmen, die der Äußerung 202 entspricht, und er kann die Zustandsdaten bestimmen, die mit der deklarativen Absicht assoziiert sind. Danach kann die Zielzustandsvorhersagekomponente 164 der Konzepteinlernkomponente 168 die Zustandsdaten empfangen und ein vorhergesagtes Ziel und eine vorhergesagte Aktion basierend auf dem vorhergesagten Ziel und den mit der deklarativen Äußerung assoziierten Kontextdaten erzeugen. Im Beispiel hat die Konzepteinlernkomponente 168 zwei Aktionen vorhergesagt, die für die Zustandsdaten relevant sein können. Konkret die Aktionen „Jalousien öffnen“ und „Licht einschalten“. Dementsprechend kann die Einlerndialogkomponente eine Dialogsitzung initiieren und eine Ausgabe in natürlicher Sprache 204 erzeugen, die die optionalen Aktionen angibt. In verschiedenen Beispielen kann die Ausgabe in natürlicher Sprache 204 durch die sprachverarbeitungsfähige Vorrichtung 110 als Text und/oder Audio ausgegeben werden.
  • In dem in 2 dargestellten Beispiel kann der Benutzer auf die Ausgabe in natürlicher Sprache 204 mit einer Äußerung 206 „Bitte die Wohnzimmerbeleuchtung einschalten“ antworten. In verschiedenen Beispielen kann die NLU-Komponente 160 bestimmen, dass die Äußerung 206 einer umsetzbaren Absicht entspricht. Dementsprechend kann die Konzepteinlernkomponente 168 die Aktion „Licht einschalten“ zusammen mit den relevanten Kontextdaten in Verbindung mit den Zustandsdaten „zu dunkel“ als CT-Artefaktdaten 169 speichern. Zusätzlich kann in verschiedenen Beispielen die Aktion ausgeführt werden (z. B. durch das entsprechende Speechlet 191), und Ausgabetext, der bestätigt, dass die Aktion ausgeführt wird, kann vom System zur Verarbeitung natürlicher Sprache 120 ausgegeben werden. Wie beispielsweise in 2 dargestellt, kann eine Ausgabeäußerung 208 erzeugt werden, um zu bestätigen, dass die Wohnzimmerbeleuchtung als Ergebnis der Dialogsitzung (z. B. Einlernsitzung 266) eingeschaltet wird.
  • Später, zu einem bestimmten Zeitpunkt nach der Einlernsitzung 266, kann die Dialogsitzung 272 stattfinden. Im Beispiel kann der Benutzer die Äußerung 210 „Computer, ich kann nichts sehen, es ist zu dunkel“ tätigen. Nach dem Bestimmen einer spezifischen Domäne für die Äußerung 210 basierend auf Kontextdaten und/oder basierend auf dem Text, der die Äußerung 210 darstellt, kann der Detektor deklarativer Eingaben 162 bestimmen, dass die Äußerung 210 einer deklarativen Absicht (z. B. einer Absicht für deklarative Äußerungen für die spezifische Domäne) entspricht. Im Beispiel kann die deklarative Absicht (und/oder der Detektor deklarativer Eingaben 162) bestimmen, dass die Äußerung mit den Zustandsdaten „zu dunkel“ assoziiert ist. Beim Empfang der Zustandsdaten „zu dunkel“ kann die Konzepteinlernkomponente 168 die CT-Artefaktdaten 169 unter Verwendung der Zustandsdaten „zu dunkel“ und/oder basierend auf mit der Äußerung 210 assoziierten Kontextdaten nachschlagen. Die CT-Artefaktdaten 169 können die Zustandsdaten „zu dunkel“ und/oder die Kontextdaten in Bezug auf die Äußerung 210 basierend auf der vorherigen Einlernsitzung 266 mit der ausführbaren Aktion „Licht einschalten“ assoziieren. Dementsprechend kann das System zur Verarbeitung natürlicher Sprache 120 die Ausgabe in natürlicher Sprache 212 ausgeben, die die Frage „Soll ich die Wohnzimmerbeleuchtung einschalten?“ umfasst. Wie zuvor beschrieben, kann die Ausgabe in natürlicher Sprache 212 von einem Lautsprecher und/oder einer Anzeige der sprachverarbeitungsfähigen Vorrichtung 110 ausgegeben werden.
  • In dem in 2 dargestellten Beispiel kann der Benutzer auf die Frage unter Verwendung der Äußerung 214 antworten. Dementsprechend kann das Licht im betreffenden Raum eingeschaltet werden. In verschiedenen Beispielen kann der betreffende Raum unter Verwendung von Kontextdaten in Bezug auf die Vorrichtungskennung der Vorrichtung 110 bestimmt werden. Dementsprechend kann die deklarative Äußerung des Benutzerkontos 101 zum Abrufen der Aktion verwendet werden, die für das Benutzerkonto 101 zuvor während der Einlernsitzung 266 erlernt wurde.
  • 3 ist ein Blockdiagramm, das ein beispielhaftes Sprachverarbeitungssystem 300, das eine Konzepteinlernkomponente zum Lernen ausführbarer Aktionen in Reaktion auf deklarative Benutzereingaben aufweist, gemäß Ausführungsformen der vorliegenden Offenbarung veranschaulicht.
  • Die verschiedenen in 3 veranschaulichten Komponenten können sich auf denselben oder verschiedenen physischen Vorrichtungen befinden. Die verschiedenen in 3 veranschaulichten Komponenten können Komponenten des Systems zur Verarbeitung natürlicher Sprache 120 sein. Kommunikation zwischen verschiedenen in 3 veranschaulichten Komponenten kann direkt oder über ein Netz erfolgen. Eine sprachverarbeitungsfähige Vorrichtung kann Audio unter Verwendung einer Audioerfassungskomponente, beispielsweise eines oder mehrerer Mikrofone, erfassen. Die sprachverarbeitungsfähige Vorrichtung kann Audiodaten 102 (die z. B. einer Äußerung entsprechen) an einen Orchestrator 330 des Sprachverarbeitungssystems 300 senden. Die sprachverarbeitungsfähige Vorrichtung kann auch Metadaten (die z. B. Vorrichtungskennungen, Vorrichtungstypdaten, Kontextdaten, IP-Adressdaten, Raumlagedaten usw. umfassen) an den Orchestrator 330 senden. Die in 3 dargestellten Komponenten, die Komponenten eines Sprachverarbeitungssystems umfassen, können allgemein als Komponenten zur Verarbeitung gesprochener Sprache, Sprachverarbeitungssystem 300, System zur Verarbeitung gesprochener Sprache, Sprachverarbeitungskomponenten und/oder Sprachverarbeitungs-Routing-System bezeichnet werden. Außerdem können die in 3 dargestelltem Komponenten in verschiedenen Beispielen zusätzlich zur gesprochenen Eingabe schriftliche Eingaben (z. B. Textdaten) verarbeiten.
  • Nach Empfang durch das Sprachverarbeitungssystem 300 können die Audiodaten 102 an einen Orchestrator 330 gesendet werden. Der Orchestrator 330 kann Speicher und Logik aufweisen, die es dem Orchestrator 330 ermöglichen, eine Dialogsitzung zu initiieren und verschiedene Elemente und Formen von Daten an verschiedene Komponenten des Systems zu übertragen, wie nachstehend ausführlicher beschrieben.
  • Der Orchestrator 330 kann die Audiodaten 102 an eine ASR-Komponente 150 (z. B. eine Spracherkennungskomponente) senden. Die ASR-Komponente 150 kann die Audiodaten 102 in eine oder mehrere Hypothesen transkribieren, die Sprache darstellen, die in den Audiodaten 102 enthalten ist. Die ASR-Komponente 150 interpretiert die Sprache in den Audiodaten basierend auf einer Ähnlichkeit zwischen den Eigenschaften der Audiodaten, die der Sprache entsprechen, und vorab festgelegten Sprachmodellen. Beispielsweise kann die ASR-Komponente 150 die Audiodaten 102 mit Modellen für Laute (z. B. Teilworteinheiten wie Phoneme) und Lautfolgen vergleichen, um Wörter zu identifizieren, die mit der Lautfolge in der Sprache übereinstimmen, die in den Audiodaten 102 dargestellt ist. Die ASR-Komponente 150 kann die dadurch erzeugten Textdaten 304 an den Orchestrator 330 senden, der seinerseits die Textdaten 304 an die NLU-Komponente 160 und/oder die Konzepteinlernkomponente 168 senden kann. Wie zuvor beschrieben, können die Textdaten 304 eine oder mehrere ASR-Hypothesen enthalten. Die Textdaten 304 können eine am besten bewertete Hypothese der in den Audiodaten 102 dargestellten Sprache enthalten, oder sie können eine N-Beste-Liste enthalten, die eine Gruppe von Hypothesen der in den Audiodaten 102 dargestellten Sprache und möglicherweise entsprechende ASR-Verarbeitungskonfidenzwerte enthält. Wie zuvor beschrieben, kann die ASR-Komponente 150 (und/oder andere Komponenten des Sprachverarbeitungssystems 300) in einigen anderen Beispielen andere Metadaten erzeugen, die mit der Äußerung assoziiert sind, beispielsweise eine allgemeine Äußerungskonfidenzbewertung, Konfidenzwerte pro Wort (z. B. pro Token) für die Äußerung, eine Äußerungsdauer, eine Datenstromdauer (z. B. Dauer des Audiodatenstroms von der sprachverarbeitungsfähigen Vorrichtung zum Sprachverarbeitungssystem 300), eine Anzahl von Token, die von ASR ausgegeben werden, usw.
  • Die NLU-Komponente 160 versucht, eine semantische Interpretation der Phrasen oder Aussagen vorzunehmen, die in den darin eingegebenen Textdaten dargestellt sind. Das heißt, die NLU-Komponente 160 bestimmt eine oder mehrere Bedeutungen, die mit den in den Textdaten 304 dargestellten Phrasen oder Aussagen assoziiert sind, basierend auf einzelnen Wörtern, die in den Textdaten 304 dargestellt sind. Die NLU-Komponente 160 interpretiert eine Textzeichenfolge, um eine Absicht des Benutzers abzuleiten (z. B. eine Aktion, die der Benutzer ausführen möchte, und/oder einen Zustand, der vom Benutzer beschrieben wird), sowie relevante Informationen in den Textdaten, die es einer Vorrichtung (z. B. der sprachverarbeitungsfähigen Vorrichtung, dem Sprachverarbeitungssystem 300, einer oder mehreren Computervorrichtungen, die ein Speechlet implementieren, usw.) ermöglichen, die Absicht zu vervollständigen. Wenn zum Beispiel die Textdaten 304 „Temperatur auf 23 Grad einstellen“ entsprechen, kann die NLU-Komponente 160 bestimmen, dass der Benutzer beabsichtigte, eine Klimaabsicht mit einem Zieltemperaturwert-Slot von 23 Grad Celsius aufzurufen. Ein föderierter NLU-Ansatz kann verwendet werden, bei dem eine Anzahl unterschiedlicher NLU-Strategien verwendet wird, um verschiedene NLU-Ausgabedaten zu bestimmen. Die NLU-Ausgabedaten können in eine Rangordnung eingestuft werden und die beste Ausgabe (und/oder eine Liste der besten NLU-Ausgaben) kann an nachgelagerte Komponenten gesendet werden. Wie zuvor beschrieben, kann die NLU-Komponente 160 zusätzlich zu den NLU-Absichts- und Slot-Daten andere Metadaten erzeugen, die mit der Äußerung (z. B. mit den Audiodaten 102) assoziiert sind. Beispiele für solche Metadaten umfassen eine NLU-Konfidenzbewertung für die höchstrangige Absichtshypothese, einen NLU-Klassifizierungstyp (z. B. statistisch vs. deterministisch), eine NLU-Slot-Präsenz (z. B. Daten, die angeben, dass ein spezifischer Slot vorhanden war), eine NLU-Konfidenzbewertung für die höchstrangige Gesamthypothese (z. B. einschließlich der relevanten Speechlets, Absichten und/oder Slots), Entitätserkennungskonfidenzwerte, Entitätserkennungsübereinstimmungstypen (z. B. exakte Übereinstimmung, Präfixübereinstimmung, Suffixübereinstimmung usw.) usw. Hierin werden die von der NLU-Komponente 160 (dargestellt in 3 als „NLU 160“) ausgegebenen Daten als NLU-Ausgabedaten 306 bezeichnet. Wie ferner hierin beschrieben, kann die NLU-Komponente 160 in einigen Beispielen für eine spezifische Domäne bestimmen, dass die Äußerung keine umsetzbare Absicht enthält. Dementsprechend können die NLU-Komponente 160 und/oder der Detektor deklarativer Eingaben 162 (1) bestimmen, dass die Eingabe in natürlicher Sprache eine deklarative Äußerung ist.
  • In einigen Beispielen können Zustandsdaten, die mit einer deklarativen Absicht assoziiert sind, an die Konzepteinlernkomponente 168 (die Teil der NLU-Komponente 160 und/oder ein separates Speechlet sein kann) gesendet werden. Die Konzepteinlernkomponente 168 kann eine vorhergesagte Aktion bestimmen und/oder eine Dialogsitzung initiieren, wie zuvor beschrieben.
  • Die NLU-Komponente 160 kann die Textdaten 304 und/oder einige der NLU-Ausgabedaten 306 (wie etwa Absichten, erkannte Entitätsnamen, Slot-Werte usw.) an einen Shortlister 310 senden. Der Shortlister 310 kann ein oder mehrere maschinelle Lernmodelle umfassen, die in der Lage sein können, basierend auf der Eingabe der Textdaten 304 und/oder den NLU-Ausgabedaten 306 eine Teilmenge von Speechlets vorherzusagen, die am ehesten imstande ist, die Eingabedaten korrekt zu verarbeiten. Zusätzlich kann der Shortlister 310 die Rangordnungs- und Arbitrationskomponente 340 aufrufen, um Merkmale anzufordern, die von der Rangordnungs- und Arbitrationskomponente 340 gemäß Merkmalen vorberechnet wurden, die von den maschinellen Lernmodellen des Shortlisters 310 als Eingaben verwendet werden. Wie zuvor beschrieben, kann der Shortlister 310 vor der Laufzeitverarbeitung der Eingabedaten Quelldaten definieren, die zum Berechnen der Merkmale verwendet werden, und/oder Funktionen spezifizieren, die zum Erzeugen der Merkmale aus den Quelldaten verwendet werden (z. B. Formeln und/oder Funktionen). Die Rangordnungs- und Arbitrationskomponente 340 kann die Merkmale gemäß den spezifizierten Merkmalsdefinitionen, die vom Shortlister 310 und den anderen Komponenten des Sprachverarbeitungssystems 300 geliefert werden, vorberechnen und die vorberechneten Merkmale im Speicher speichern. Die Rangordnungs- und Arbitrationskomponente 340 kann Indizes erzeugen, die verwendet werden können, um die vorberechneten Merkmale während der Laufzeit abzurufen (z. B. über eine API). Dementsprechend kann der Shortlister 310 während der Laufzeitverarbeitung die vorberechneten Merkmale aus der Rangordnungs- und Arbitrationskomponente 340 abrufen und die vorberechneten Merkmale (neben anderen Eingaben) verwenden, um eine Teilmenge von Speechlets vorherzusagen, die am ehesten geeignet sind, die aktuellen Eingabedaten zu verarbeiten. Zusätzlich können die Rangordnungs- und Arbitrationskomponente 340 und/oder der Shortlister 310 bestimmen, dass eine deklarative Absicht und/oder die Konzepteinlernkomponente 168 die geeignete Absicht bzw. das geeignete Speechlet zum Handhaben einer spezifischen deklarativen Äußerung sind.
  • Der Shortlister 310 kann die höchstrangigen K Speechlets 308 an die NLU-Komponente 160 senden. Die NLU-Komponente 160 kann danach eine Speechlet-spezifische NLU-Verarbeitung (und/oder Frage-und-Antwort-Verarbeitung durch eine Frage-und-Antwort-NLU-Komponente) für die Speechlets in den höchstrangigen K Speechlets 308 durchführen, um Speechlet-spezifische Absichten, Slots und/oder benannte Entitäten zu bestimmen. Die NLU-Ausgabedaten 306 können solche Speechlet-spezifischen Daten enthalten (z. B. Speechlet-spezifische N höchstrangige Hypothesen).
  • Die Rangordnungs- und Arbitrationskomponente 340 kann mit verschiedenen Systemen kommunizieren, um Quelldaten zu erhalten, die zum Vorberechnen von Merkmalen verwendet werden. Zum Beispiel kann die Rangordnungs- und Arbitrationskomponente 340 mit einem Rückmeldungsspeicher 343 kommunizieren, um Benutzerrückmeldungsdaten (z. B. eine explizite und/oder implizite Benutzerrückmeldung in Bezug auf die Zufriedenheit des Benutzers mit der Verarbeitung von Eingabedaten) zu empfangen. In verschiedenen Beispielen können die Benutzerrückmeldungsdaten benutzerspezifisch sein und/oder vorrichtungsspezifisch sein und angeben, ob ein Benutzer mit einer spezifischen Interaktion mit dem Sprachverarbeitungssystem 300 zufrieden war oder nicht. Wie zuvor erörtert, können in verschiedenen Beispielen Benutzerrückmeldungsdaten für Eingabedaten vorhergesagt werden, bevor die Eingabedaten unter Verwendung eines Speechlets 191 verarbeitet werden. In verschiedenen Beispielen können Benutzerrückmeldungsdaten verwendet werden, um verschiedene Merkmale vorzuberechnen, die von maschinellen Lernmodellen des Sprachverarbeitungssystems 300 verwendet werden. Dementsprechend können in einigen Beispielen die zum Verarbeiten spezifischer Eingabedaten ausgewählten Speechlets zumindest teilweise basierend auf Speechlets bestimmt werden, auf die ein Benutzer (oder eine Gruppe ähnlicher Benutzer) in der Vergangenheit positiv reagiert hat.
  • Zusätzlich kann die Rangordnungs- und Arbitrationskomponente 340 mit einem Endpunktkontextsystem 354 kommunizieren, das am Ende einer Benutzerinteraktion mit dem Sprachverarbeitungssystem 300 Kontextdaten bereitstellen kann. In einem weiteren Beispiel kann die Rangordnungs- und Arbitrationskomponente 340 mit Speechlet-Daten 356 kommunizieren, um Informationen aus dem Speechlet bezüglich vergangener Interaktionen mit dem Speechlet und/oder vom Speechlet erfasste Daten zu bestimmen. Außerdem kann die Rangordnungs- und Arbitrationskomponente 340 mit anderen Datenquellen 355 kommunizieren, wenn neue Dienste hinzugefügt werden und/oder wenn neue Datentypen verfügbar gemacht werden, die für die Routing-Vorhersage nützlich sein können. Zusätzlich dazu, dass die Rangordnungs- und Arbitrationskomponente 340 Kontextdaten 342 verwendet, um Merkmale vorzuberechnen, die von verschiedenen maschinellen Lernmodellen der Routing-Architektur des Sprachverarbeitungssystems 300 verwendet werden, kann ein Kontextsystem 341 die Kontextdaten 342 empfangen. Das Kontextsystem 341 kann die Kontextdaten sowohl der Rangordnungs- und Arbitriationskomponente 340 als auch verschiedenen Komponenten der Routing-Architektur des Sprachverarbeitungssystems 300 direkt bereitstellen. Beispielsweise kann das Kontextsystem 341 Kontextdaten 342 an den Shortlister 310 und/oder eine Rangordnungskomponente 320 senden, um eine Auswahlliste von Speechlets 191 für spezifische Eingabedaten zu bestimmen und/oder um die in die engere Wahl gezogenen Speechlets in eine Rangordnung einzustufen.
  • NLU-Ausgabedaten 306 (die in einigen Beispielen Zustandsdaten umfassen können, die mit einer deklarativen Absicht und/oder einer vorhergesagten Aktion assoziiert sind, die von der Zielzustandsvorhersagekomponente 164 bestimmt wird) und die höchstrangigen K Speechlets 308 können von der NLU-Komponente 160 an den Orchestrator 330 gesendet werden. Der Orchestrator 330 kann die höchstrangigen K Speechlets 308 und die NLU-Ausgabedaten 306 an den Routing-Dienst 312 senden. Der Routing-Dienst 312 kann die höchstrangigen K Speechlets 308 und NLU-Ausgabedaten 306 an eine Speechlet-Vorschlagskomponente 314 senden. Speechlets 191 können spezifische Absichten unter Verwendung der Speechlet-Vorschlagskomponente 314 subskribieren. Wenn zum Beispiel Zustandsdaten zum Nachschlagen einer personalisierten Aktion verwendet werden, die in Reaktion auf eine deklarative Äußerung ausgeführt werden soll (unter Verwendung von zuvor erlernten CT-Artefaktdaten), können die NLU-Ausgabedaten 306 ein Senden der Absicht der spezifischen Aktion an das relevante Speechlet 191 umfassen (wie z. B. nachstehend beschrieben).
  • Dementsprechend kann die Speechlet-Vorschlagskomponente 314 die NLU-Ausgabedaten 306 empfangen und bestimmen, ob eine der enthaltenen Absichten einem oder mehreren der Speechlets 191 entspricht. Wenn dies der Fall ist, kann die Speechlet-Vorschlagskomponente 314 Kandidatendaten erzeugen, die <Absicht, Speechlet> Kandidatenpaare 315 umfassen. Die Kandidatenpaare 315 können an den Routing-Dienst 312 gesendet werden, und sie können vom Routing-Dienst 312 an einen Speechlet-Abfragedienst 316 gesendet werden. Der Speechlet-Abfragedienst 316 umfasst eine API, durch die die Speechlets 191 bestimmte Anforderungen „abwählen“ können. Beispielsweise kann ein Speechlet 191 ein Videowiedergabe-Speechlet umfassen. Dementsprechend kann sich das Speechlet 191 beim Speechlet-Abfragedienst 316 anmelden, um anzugeben, dass nur Anforderungen, die auf einer Vorrichtung mit einem Anzeigebildschirm gestellt werden, zum spezifischen Speechlet 191 geleitet werden sollten. Zusätzlich können Speechlets 191 Verfügbarkeitsinformationen, Preisinformationen und/oder andere strukturierte Beschreibungen dessen, wie und unter welchen Umständen (die z. B. unter Verwendung von Kontextdaten bestimmt werden) das Speechlet 191 eine Anforderung erfüllen kann, die durch die aktuellen Eingabedaten dargestellt wird. Der Speechlet-Abfragedienst 316 kann ein Signal 317 senden, das angibt, welche Speechlets eine spezifische Anforderung erfüllen können (und/oder welche Speechlets die Anforderung nicht erfüllen können). Das Signal 317 kann an den Routing-Dienst 312 gesendet werden. Der Routing-Dienst 312 kann das Signal 317 zusammen mit den Kandidatenpaaren 315 an eine Rangordnungskomponente 320 senden. Wie in 3 dargestellt, können Speechlets 191 Kontextdaten 342 an den Speechlet-Abfragedienst 316 senden, um Situationen anzugeben, in denen ein Speechlet die Verarbeitung einer spezifischen Anforderung abwählen kann (z. B. wenn die Vorrichtung, die die Eingabedaten sendet, keinen Anzeigebildschirm aufweist, usw.). In verschiedenen Beispielen können die von den Speechlets 191 an den Speechlet-Abfragedienst 316 gesendeten Kontextdaten 342 Speechlets sein und/oder spezifische Kontextdaten anfordern. Zusätzlich kann der Speechlet-Abfragedienst 316 Absichtsanforderungen 347 an die Speechlets 191 senden.
  • Die Rangordnungskomponente 320 kann ein oder mehrere statistische maschinelle Lernmodelle umfassen, die in der Lage sind, die in den Kandidatenpaaren 315 enthaltenen Kandidaten in eine Rangordnung einzustufen. Um die Kandidatenpaare 315 in eine Rangordnung einzustufen, kann die Rangordnungskomponente 320 Konfidenzwerte für jedes entsprechende Kandidatenpaar 315 erzeugen. Ein Konfidenzwert kann angeben, dass das entsprechende Speechlet 191 und/oder die entsprechende Absicht des Kandidatenpaares zum Bearbeiten der Anforderung geeignet ist/sind. Die Rangordnungskomponente 320 kann Merkmale unter Verwendung der Kandidatenpaare 315 und des Signals 317 berechnen, um die Rangordnung der in den Kandidatenpaaren 315 enthaltenen Speechlets 191 vorherzusagen. Die Merkmale, die während der Verarbeitung der Eingabedaten berechnet werden (manchmal als „Laufzeitmerkmale“ bezeichnet), können eine Merkmalsdarstellung der Liste von Kandidatenpaaren 315 und/oder eine Darstellung des Signals 317 umfassen. Zusätzlich kann die Rangordnungskomponente 320 die Rangordnungs- und Arbitrationskomponente 340 nach vorberechneten Merkmalen abfragen, die zur Verwendung durch die Rangordnungskomponente 320 definiert wurden. Wie zuvor beschrieben, können die vorberechneten Merkmale basierend auf Kontextdaten, Benutzerrückmeldungsdaten, älteren Nutzungsdaten, Speechlet-Daten, früheren Rangordnungen der Rangordnungskomponente 320 usw. bestimmt werden. Außerdem kann die Rangordnungskomponente 320 Laufzeitmerkmale unter Verwendung von Kontextdaten 342, Benutzerrückmeldungsdaten aus dem Rückmeldespeicher 343 und/oder anderen Datenquellen berechnen. In verschiedenen Beispielen kann die Verlustfunktion für die maschinellen Lernmodelle der Rangordnungskomponente 320 auf der Basis von Benutzerzufriedenheitswerten optimiert werden, die unter Verwendung von Benutzerrückmeldungsdaten aus dem Rückmeldungsspeicher 343 berechnet werden.
  • Die Rangordnungskomponente 320 kann eine Rangliste 318 der in den Kandidatenpaaren 315 angegebenen Kandidaten-Speechlets erzeugen. In zumindest einigen Beispielen kann die Rangordnungskomponente 320 ein tiefes neuronales Netz als maschinelles Lernmodell zum Bestimmen der Rangliste 318 verwenden. In einigen Beispielen kann die Rangordnungskomponente 320 (und/oder eine andere Komponente des Sprachverarbeitungssystems 300 wie z. B. eine Entscheider-Engine 332) Plandaten bestimmen, die die Rangliste 318 außer Kraft setzen können, so dass ein rangniedrigeres Speechlet unter den Kandidatenpaaren 315 zum Verarbeiten der Eingabedaten ausgewählt werden kann.
  • In einem anderen Beispiel kann die Entscheider-Engine 332 Richtlinien speichern, die steuern können, ob eine explizite Benutzerrückmeldung (z. B. über TTS) nach der Ausführung einer Aktion (z. B. durch das von der Rangordnungskomponente bestimmte höchstrangige Speechlet) beantragt wird oder nicht. Eine explizite Rückmeldung kann durch das Dialog-Speechlet 352 beantragt werden, bevor Eingabedaten zu einem Speechlet zur Verarbeitung geleitet werden. In einem anderen Beispiel kann die Entscheider-Engine 332 eine Rückmeldungskomponente 397 steuern, um eine explizite Rückmeldung von einer Nach-Speechlet-Verarbeitung eines Benutzers (z. B. über TTS) anzufordern. In verschiedenen Beispielen kann die Rückmeldungskomponente 397 den Benutzer fragen, ob der Benutzer mit der vom Sprachverarbeitungssystem 300 ausgeführten Aktion zufrieden war oder nicht. In noch einem weiteren Beispiel kann eine Durchsuchungsrichtlinie, die eine dynamische Routing-Anpassung definiert, Eingabedaten, die mit Prädikatdaten übereinstimmen, die unter Verwendung der dynamischen Routing-Anpassungskomponente definiert werden, an ein neu implementiertes Speechlet 191 senden. Die Entscheider-Engine 332 kann bestimmen, dass das höchstrangige Ergebnis von der Rangordnungskomponente 320 ignoriert werden sollte, da die dynamische Routing-Anpassung durch die dynamische Routing-Anpassungskomponente durchgeführt wird. Außerdem kann in einigen Beispielen eine Richtlinie der Entscheider-Engine 332 darin bestehen, eine explizite Rückmeldung vom Benutzer zu beantragen, wann immer ein neues Speechlet aufgrund einer dynamischen Routing-Anpassung geleitet wird. Dementsprechend kann die Entscheider-Engine 332 bei Abschluss der Aktion TTS steuern, um nachzufragen, ob der Benutzer mit der Interaktion mit dem neuen Speechlet zufrieden war und/oder ob die ausgeführte Aktion die vom Benutzer beabsichtigte Aktion war.
  • Die Entscheider-Engine 332 kann Plandaten ausgeben, die einen Routing-Plan 334 zum Verarbeiten der Eingabedaten umfassen. Der Routing-Plan 334 kann ein Ziel-Speechlet 191 definieren (und/oder die Konzepteinlernkomponente 168 identifizieren), um die Eingabedaten zu verarbeiten. Wie vorstehend beschrieben, kann das Ziel-Speechlet 191 als die höchstrangige Hypothese ausgewählt werden, die durch die Rangordnungskomponente 320 bestimmt wird. In einigen anderen Beispielen kann die Entscheider-Engine 332 ein Ziel-Speechlet 191 basierend auf einer Richtlinie auswählen, wie vorstehend beschrieben. In einigen Beispielen kann die Rangordnungskomponente 320 bestimmen, dass zwei verschiedene Speechlets gleichermaßen für die Verarbeitung der Eingabedaten anwendbar sind. In solchen Beispielen kann die Entscheider-Engine 332 bestimmen, dass eine Disambiguierung erfolgen sollte. Dementsprechend kann der Routing-Plan 334 ein Senden der Eingabedaten an ein Dialog-Speechlet 352 umfassen, das (über TTS) eine oder mehrere Fragen (z. B. eine Disambiguierungsanforderung) ausgeben kann, die verwendet werden, um den Benutzer aufzufordern, zwischen den zwei gleich wahrscheinlichen (oder ungefähr gleich wahrscheinlichen) Interpretationen der Eingabedaten eine Disambiguierung vorzunehmen. In verschiedenen Beispielen kann die Einlerndialogkomponente 166 als Dialog-Speechlet 352 implementiert sein. Beispielsweise kann basierend auf einer Benutzeranforderung unklar sein, ob der Benutzer beabsichtigte, ein Filmwiedergabe-Speechlet oder ein Musikwiedergabe-Speechlet aufzurufen, da ein Film und ein Soundtrack für den Film möglicherweise unter Verwendung desselben Namens identifiziert werden. Dementsprechend kann die Entscheider-Engine 332 bestimmen, dass die zwei höchstrangigen Hypothesen der Rangordnungskomponente 320 gleich wahrscheinlich (oder ungefähr gleich wahrscheinlich) sind, und sie kann bestimmen, dass eine Frage gestellt werden sollte, um zwischen den zwei möglichen Aktionen eindeutig zu unterscheiden. Dementsprechend kann der Routing-Plan 334 die Eingabedaten zum Dialog-Speechlet 352 leiten, und das Dialog-Speechlet 352 kann nachfragen, ob der Benutzer beabsichtigte, den Film oder den Soundtrack abzuspielen.
  • In einem anderen Beispiel kann die Entscheider-Engine 332 bestimmen, dass der Benutzer mit der höchstrangigen Hypothese der Rangordnungskomponente 320 nicht zufrieden war (z. B. aufgrund einer expliziten oder impliziten Rückmeldung, die vom Benutzer in Reaktion auf das Ausführen einer Aktion im Zusammenhang mit der höchstrangigen Hypothese der Rangordnungskomponente 320 empfangen wurde). Dementsprechend kann die Entscheider-Engine 332 bestimmen, dass der Routing-Plan 334 dazu dienen sollte, die zweithöchstrangige Hypothese der Rangordnungskomponente 320 zu bestimmen.
  • Wenn ein Speechlet 191 in Reaktion auf die Verarbeitung Text in natürlicher Sprache ausgibt, kann der Orchestrator den Text an die TTS-Komponente 336 zur Ausgabe als Audio senden, das die Sprache darstellt.
  • 4 zeigt ein Blockdiagramm, das ein Beispiel der Ausführung einer zuvor gelehrten Aktion in Reaktion auf eine deklarative Eingabe in natürlicher Sprache gemäß verschiedenen Aspekten der vorliegenden Offenbarung veranschaulicht.
  • In dem in 4 dargestellten Beispiel wird eine Eingabe in natürlicher Sprache 402 empfangen. Für die Eingabe in natürlicher Sprache 402 wird eine NLU-Interpretation 404 bestimmt. In verschiedenen Beispielen kann die NLU-Interpretation 404 verwendet werden, um ein spezifisches Domänen-Speechlet 406 zu bestimmen, das verwendet werden kann, um die NLU-Interpretation 404 weiterzuverarbeiten, um eine Absicht zu bestimmen. Wenn in verschiedenen Beispielen bestimmt wird, dass die NLU-Interpretation 404 umsetzbaren Inhalt (z. B. eine benannte Entität, Slot-Daten, Wörter, die eine spezifische Absicht und/oder ein spezifisches Speechlet aufrufen, usw.) enthält, können Absichtsdaten in Bezug auf den umsetzbaren Inhalt bestimmt werden und die Absichtsdaten können verwendet werden, um die geeignete Aktion durch das Domänen-Speechlet 406 auszuführen, um eine Ausgabe in natürlicher Sprache/eine Aktion 412 zu erzeugen. Wenn dagegen eine deklarative Absicht bestimmt wird (z. B. eine Bestimmung erfolgt, dass die Eingabe in natürlicher Sprache 402 eine deklarative Eingabe in natürlicher Sprache ist), können die mit der deklarativen Absicht assoziierten Zustandsdaten an die Konzeptlehrkomponente 168 gesendet werden.
  • Die Zielzustandsvorhersagekomponente 164 kann die Zustandsdaten verwenden, um ein vorhergesagtes Ziel zu bestimmen, das mit dem Zustand assoziiert ist. Wie zuvor beschrieben, kann die Aktionsvorhersagekomponente 165 die vorhergesagten Zieldaten und/oder Kontextdaten empfangen, die mit der deklarativen Äußerung assoziiert sind, um eine Aktion vorherzusagen. Die Einlerndialogkomponente 420 kann eine Dialogsitzung initiieren, die verwendet werden kann, um zu bestimmen, ob die vorhergesagte Aktion in Reaktion auf die deklarative Äußerung ausgeführt werden sollte und/oder dass eine andere Aktion ausgeführt werden sollte, wie zuvor beschrieben.
  • In einigen anderen Beispielen können die Zustandsdaten an eine Konzepterkennungskomponente 408 gesendet werden. Die Konzepterkennungskomponente 408 kann verwendet werden, um zuvor erlernte Konzepte nachzuschlagen. Beispielsweise kann die Konzepterkennungskomponente 408 die Zustandsdaten als eine Suchanfrage verwenden, um die Konzeptdatenbank 170 nach Konzepten abzufragen, die zuvor von der Konzepteinlernkomponente 168 erlernt wurden. Wie zuvor beschrieben, kann die Konzeptdatenbank 170 für einen Benutzer spezifisch sein und somit personalisierte Konzepte und/oder Aktionen speichern. Wenn die Zustandsdaten mit einer zuvor erlernten Aktion assoziiert sind, können Daten, die die Aktion identifizieren, zurückgesendet werden. Dementsprechend kann die zuvor erlernte Aktion bei Block 410 ausgeführt werden, indem die Aktion entweder an die NLU-Komponente 160 und/oder das entsprechende Domänen-Speechlet 406 und/oder das Speechlet 191 gesendet wird. Wie zuvor beschrieben, kann bestimmt werden, ob die NLU-Komponente 160 und/oder die Domänen-Speechlets 406 imstande sind, die Aktion zu verstehen und/oder auszuführen, bevor die Aktionsdaten, die die Aktion identifizieren, in der Konzeptdatenbank 170 gespeichert werden.
  • 5 ist ein Blockdiagramm, das eine beispielhafte Architektur 500 einer Computervorrichtung, die zum Zugreifen auf das und/oder Implementieren des Verarbeitungssystems für natürliche Sprache 120 verwendet werden kann, gemäß verschiedenen Aspekten der vorliegenden Offenbarung zeigt. Es versteht sich, dass nicht alle Vorrichtungen alle Komponenten der Architektur 500 aufweisen werden und einige Benutzervorrichtungen zusätzliche Komponenten aufweisen können, die in der Architektur 500 nicht dargestellt sind. Die Architektur 500 kann ein oder mehrere Verarbeitungselemente 504 zum Ausführen von Anweisungen und zum Abrufen von Daten aufweisen, die in einem Speicherelement 502 gespeichert sind. Das Verarbeitungselement 504 kann mindestens einen Prozessor umfassen. Es können ein oder mehrere geeignete Prozessoren verwendet werden. Beispielsweise kann das Verarbeitungselement 504 einen oder mehrere digitale Signalprozessoren (DSPs) umfassen. Das Speicherelement 502 kann einen oder mehrere unterschiedliche Typen von Arbeitsspeichern, Datenspeichern oder computerlesbaren Speichern umfassen, die für unterschiedliche Zwecke innerhalb der Architektur 500 bestimmt sind. Zum Beispiel kann das Speicherelement 502 Flash-Speicher, Direktzugriffsspeicher, plattenbasierten Speicher usw. umfassen. Verschiedene Teile des Speicherelements 502 können zum Beispiel für Programmanweisungen zur Ausführung durch das Verarbeitungselement 504, zur Speicherung von Bildern oder anderen digitalen Werken und/oder für einen Wechselspeicher zum Übertragen von Daten an andere Vorrichtungen usw. verwendet werden. Zusätzlich kann das Speicherelement 502 maschinell erlernte Modelle, die bei der Verarbeitung natürlicher Sprache (und/oder Parameter davon) verwendet werden, verschiedene NLU-Modelle, Wissensgraphen, Antwortvorlagen, FSTs usw. speichern.
  • Das Speicherelement 502 kann auch Software zur Ausführung durch das Verarbeitungselement 504 speichern. Ein Betriebssystem 522 kann eine Schnittstelle zum Betreiben der Computervorrichtung für den Benutzer bereitstellen und Kommunikation und Befehle zwischen Anwendungen ermöglichen, die auf der Architektur 500 und verschiedener Hardware davon ausgeführt werden. Eine Übertragungsanwendung 524 kann so konfiguriert sein, dass sie Bilder, Audio und/oder Video von einer anderen Vorrichtung (z. B. einer Mobilvorrichtung, Bildaufnahmevorrichtung und/oder Anzeigevorrichtung) oder von einem Bildsensor und/oder Mikrofon in der Architektur 500 empfängt.
  • Bei Implementierung in einigen Benutzervorrichtungen kann die Architektur 500 auch eine Anzeigekomponente 506 umfassen und/oder in Kommunikation mit einer oder mehreren externen Anzeigekomponenten 506 konfiguriert sein. Die Anzeigekomponente 506 kann eine oder mehrere Leuchtdioden (LEDs) oder andere geeignete Anzeigeleuchten umfassen. Außerdem kann die Anzeigekomponente 506 in einigen Beispielen beispielsweise eine oder mehrere Vorrichtungen wie etwa Kathodenstrahlröhren (CRTs), Flüssigkristallanzeige(LCD)-Bildschirme, Gasplasma-basierte Flachbildschirme, LCD-Projektoren, Rasterproj ektoren, Infrarotproj ektoren oder andere Arten von Anzeigevorrichtungen usw. umfassen.
  • Die Architektur 500 kann auch eine oder mehrere Eingabevorrichtungen 508 aufweisen, die zum Empfangen von Eingaben von einem Benutzer ausgelegt sind. Die Eingabevorrichtungen 508 können zum Beispiel einen Druckknopf, ein Touchpad, einen Touchscreen, ein Rad, einen Joystick, eine Tastatur, eine Maus, einen Trackball, ein Tastenfeld, einen Leuchtstift, einen Gamecontroller oder eine beliebige andere solche Vorrichtung oder ein beliebiges anderes solches Element umfassen, wodurch ein Benutzer Eingaben in die Architektur 500 bereitstellen kann. Diese Eingabevorrichtungen 508 können in die Architektur 500 integriert oder über eine verdrahtete oder drahtlose Schnittstelle funktionell mit der Architektur 500 gekoppelt sein. In einigen Beispielen kann die Architektur 500 ein Mikrofon oder eine Gruppe von Mikrofonen zum Erfassen von Lauten, beispielsweise Sprachanforderungen, aufweisen. In verschiedenen Beispielen kann vom Mikrofon 570 erfasstes Audio über eine Kommunikationsschnittstelle 512 auf externe Computervorrichtungen gestreamt werden.
  • Wenn die Anzeigekomponente 506 eine berührungsempfindliche Anzeige umfasst, können die Eingabevorrichtungen 508 einen Berührungssensor umfassen, der in Verbindung mit der Anzeigekomponente 506 funktioniert, um Benutzern Interaktion mit dem von der Anzeigekomponente 506 angezeigten Bild unter Verwendung von Berührungseingaben (z. B. mit einem Finger oder Eingabestift) zu ermöglichen. Die Architektur 500 kann auch eine Energieversorgung 514 aufweisen, wie etwa einen drahtgebundenen Wechselrichter (AC-Richter), eine wiederaufladbare Batterie, die so ausgelegt ist, dass sie durch herkömmliche Plug-in-Ansätze oder durch andere Ansätze wie kapazitives oder induktives Laden aufgeladen wird.
  • Die Kommunikationsschnittstelle 512 kann eine oder mehrere drahtgebundene oder drahtlose Komponenten umfassen, die zum Kommunizieren mit einer oder mehreren anderen Computervorrichtungen ausgelegt sind. Beispielsweise kann die Kommunikationsschnittstelle 512 ein drahtloses Kommunikationsmodul 536 umfassen, das zum Kommunizieren in einem Netz, wie etwa dem Netz 104, gemäß einem beliebigen geeigneten drahtlosen Protokoll, wie etwa IEEE 802.11, oder einem anderen geeigneten WLAN-Protokoll (Wireless Local Area Network) konfiguriert ist. Eine Nahbereichsschnittstelle 534 kann so konfiguriert sein, dass sie unter Verwendung eines oder mehrerer Nahbereichsfunkprotokolle wie etwa Nahfeldkommunikation (NFC), Bluetooth, Bluetooth LE usw. kommuniziert. Eine Mobilfunkschnittstelle 540 kann zum Kommunizieren unter Verwendung eines Funkzellen- oder anderen Mobilfunkprotokolls konfiguriert sein. Eine Schnittstelle eines globalen Positionsbestimmungssystems (GPS) 538 kann mit einem oder mehreren erdumkreisenden Satelliten oder anderen geeigneten Positionsbestimmungssystemen in Kommunikation stehen, um eine Position der Architektur 500 zu identifizieren. Ein drahtgebundenes Kommunikationsmodul 542 kann zum Kommunizieren gemäß dem USB-Protokoll oder einem beliebigen anderen geeigneten Protokoll konfiguriert sein.
  • Die Architektur 500 kann auch einen oder mehrere Sensoren 530, beispielsweise einen oder mehrere Positionssensoren, Bildsensoren, und/oder Bewegungssensoren, aufweisen. Wie oben erwähnt, können mehrere Vorrichtungen in einem einzigen System verwendet werden In solch einem System mit mehreren Vorrichtungen kann jede der Vorrichtungen unterschiedliche Komponenten zum Durchführen unterschiedlicher Aspekte der Verarbeitung des Systems aufweisen. Die mehreren Vorrichtungen können überlappende Komponenten aufweisen. Die Komponenten des Systems zur Verarbeitung natürlicher Sprache 120, wie hierin beschrieben, sind beispielhaft und können als eigenständige Vorrichtung angeordnet oder ganz oder teilweise als eine Komponente einer größeren Vorrichtung oder eines größeren Systems enthalten sein.
  • Ein beispielhaftes System zum Senden und Bereitstellen von Daten und Verarbeiten von Daten von Systemen zur Verarbeitung natürlicher Sprache wird nun im Detail beschrieben. Insbesondere veranschaulicht 6 eine beispielhafte Computerumgebung, in der die hierin beschriebenen Ausführungsformen implementiert werden können. Beispielsweise kann die Computerumgebung von 6 verwendet werden, um Verarbeitung natürlicher Sprache als Dienst über ein Netz bereitzustellen, wobei eine oder mehrere der hierin beschriebenen Techniken von einer ersten Computervorrichtung angefordert und von einer anderen Computervorrichtung ausgeführt werden können, die in Kommunikation mit der ersten Computervorrichtung über ein Netz konfiguriert ist. 6 ist ein Diagramm, das schematisch ein Beispiel eines Rechenzentrums 65 darstellt, das Benutzern 60a und 60b (die hier im Singular als der Benutzer 60 oder im Plural als die Benutzer 60 bezeichnet werden können) mittels Benutzercomputern 62a und 62b (die hier im Singular als der Benutzercomputer 62 oder im Plural als die Benutzercomputer 62 bezeichnet werden können) Rechenressourcen über das Netz 104 bereitstellt. Das Rechenzentrum 65 kann so konfiguriert sein, dass es Rechenressourcen zum Ausführen von Anwendungen permanent oder nach Bedarf bereitstellt. Die vom Rechenzentrum 65 bereitgestellten Rechenressourcen können verschiedene Arten von Ressourcen wie etwa Gateway-Ressourcen, Lastausgleichsressourcen, Routing-Ressourcen, Netzwerkressourcen, Rechenressourcen, flüchtige und nichtflüchtige Speicherressourcen, Inhaltsbereitstellungsressourcen, Datenverarbeitungsressourcen, Datenspeicherressourcen, Datenkommunikationsressourcen und dergleichen umfassen. Jede Art von Rechenressource kann in einer Anzahl spezifischer Konfigurationen verfügbar sein. Zum Beispiel können Datenverarbeitungsressourcen als Instanzen virtueller Maschinen verfügbar sein, die zum Bereitstellen verschiedener Webdienste konfiguriert sein können. Außerdem können Kombinationen von Ressourcen über ein Netz verfügbar gemacht werden und als ein oder mehrere Webdienste konfiguriert sein. Die Instanzen können so konfiguriert sein, dass sie Anwendungen ausführen, darunter Webdienste wie etwa Anwendungsdienste, Mediendienste, Datenbankdienste, Verarbeitungsdienste, Gateway-Dienste, Speicherdienste, Routing-Dienste, Sicherheitsdienste, Verschlüsselungsdienste, Lastausgleichsdienste, Anwendungsdienste und dergleichen. In verschiedenen Beispielen können die Instanzen so konfiguriert sein, dass sie eine oder mehrere der verschiedenen hierin beschriebenen Techniken zur Verarbeitung natürlicher Sprache ausführen.
  • Diese Dienste können mit festgelegten oder benutzerdefinierten Anwendungen konfigurierbar sein, und sie können in Größe, Ausführung, Kosten, Latenz, Typ, Dauer, Zugänglichkeit und in jeder beliebigen anderen Dimension konfigurierbar sein. Diese Webdienste können als verfügbare Infrastruktur für einen oder mehrere Clients konfiguriert sein und eine oder mehrere Anwendungen aufweisen, die als Plattform oder als Software für einen oder mehrere Clients konfiguriert sind. Diese Webdienste können über ein oder mehrere Kommunikationsprotokolle verfügbar gemacht werden. Diese Kommunikationsprotokolle können beispielsweise das Hypertext Transfer Protocol (HTTP) oder Nicht-HTTP-Protokolle umfassen. Diese Kommunikationsprotokolle können zum Beispiel auch zuverlässigere Transportschichtprotokolle, wie etwa das Transmission Control Protocol (TCP), und weniger zuverlässige Transportschichtprotokolle, wie etwa das User Datagram Protocol (UDP), umfassen. Datenspeicherressourcen können Dateispeichervorrichtungen, Blockspeichervorrichtungen und dergleichen umfassen.
  • Jede Art oder Konfiguration von Rechenressourcen kann in unterschiedlichen Größen, beispielsweise großen Ressourcen - bestehend aus vielen Prozessoren, großen Speichermengen und/oder großer Speicherkapazität - und kleinen Ressourcen - bestehend aus weniger Prozessoren, kleineren Speichermengen und/oder geringerer Speicherkapazität, verfügbar sein. Kunden können sich dafür entscheiden, eine Anzahl kleiner Verarbeitungsressourcen als Webserver und/oder eine große Verarbeitungsressource zum Beispiel als Datenbankserver zuzuweisen.
  • Das Rechenzentrum 65 kann Server 66a und 66b aufweisen (die hier im Singular als der Server 66 oder im Plural als die Server 66 bezeichnet werden können), die Rechenressourcen bereitstellen. Diese Ressourcen können als Bare-Metal-Ressourcen oder als Instanzen 68a-d virtueller Maschinen verfügbar sein (die hier im Singular als Instanz 68 einer virtuellen Maschine oder im Plural als Instanzen 68 virtueller Maschinen bezeichnet werden können). In zumindest einigen Beispielen kann der Servermanager 67 den Betrieb der Server 66 steuern und/oder diese warten. Die Instanzen 68c und 68d virtueller Maschinen sind Instanzen virtueller Maschinen zur Wiedergabeumschaltung (rendition switching virtual machine, „RSVM“). Die Instanzen 68c und 68d virtueller RSVM-Maschinen können so konfiguriert sein, dass sie die Gesamtheit oder einen Teil der Techniken für eine verbesserte Wiedergabeumschaltung und/oder eine beliebige andere der gemäß der vorliegenden Offenbarung offenbarten und vorstehend ausführlich beschriebenen Techniken ausführen. Es versteht sich, dass, obwohl das in 6 veranschaulichte spezifische Beispiel eine virtuelle RSVM-Maschine in jedem Server aufweist, dies lediglich ein Beispiel ist. Ein Server kann mehr als eine virtuelle RSVM-Maschine oder gar keine virtuelle RSVM-Maschine aufweisen.
  • Die Verfügbarkeit von Virtualisierungstechnologien für Rechenhardware hat Vorteile für die Bereitstellung von Rechenressourcen in großem Umfang für Kunden und die Ermöglichung einer effizienten und sicheren gemeinsamen Nutzung von Rechenressourcen zwischen mehreren Kunden erbracht. Beispielsweise können Virtualisierungstechnologien ermöglichen, dass eine physische Computervorrichtung von mehreren Benutzern gemeinsam genutzt wird, indem jedem Benutzer eine oder mehrere Instanzen virtueller Maschinen bereitgestellt werden, die von der physischen Computervorrichtung gehostet werden. Eine Instanz einer virtuellen Maschine kann eine Software-Emulation eines spezifischen physischen Computersystems sein, die als eigenständiges logisches Computersystem fungiert. Solch eine Instanz einer virtuellen Maschine stellt Isolierung zwischen mehreren Betriebssystemen bereit, die sich eine bestimmte physische Rechenressource teilen. Darüber hinaus können einige Virtualisierungstechnologien virtuelle Ressourcen bereitstellen, die sich über eine oder mehrere physische Ressourcen erstrecken, beispielsweise eine einzelne Instanz einer virtuellen Maschine mit mehreren virtuellen Prozessoren, die sich über mehrere unterschiedliche physische Computersysteme erstrecken.
  • Unter Bezugnahme auf 6 kann das Netz 104 zum Beispiel ein öffentlich zugängliches Netz aus verbundenen Netzen, beispielsweise das Internet, sein und möglicherweise von verschiedenen unterschiedlichen Parteien betrieben werden. In anderen Ausführungsformen kann das Netz 104 ein privates Netz wie z. B. ein Unternehmens- oder Universitätsnetz sein, das für nicht berechtigte Benutzer ganz oder teilweise unzugänglich ist. In weiteren Ausführungsformen kann das Netz 104 ein oder mehrere private Netze mit Zugang zum und/oder aus dem Internet umfassen.
  • Das Netz 104 kann Zugriff auf Benutzercomputer 62 bereitstellen. Benutzercomputer 62 können Computer sein, die von Benutzern 60 oder anderen Kunden des Rechenzentrums 65 verwendet werden. Beispielsweise kann der Benutzercomputer 62a oder 62b ein Server, ein Desktop- oder Laptop-Personalcomputer, ein Tablet-Computer, ein drahtloses Telefon, ein persönlicher digitaler Assistent (PDA), ein E-Book-Reader, eine Spielekonsole oder eine Set-Top-Box oder eine beliebige andere Computervorrichtung sein, die auf das Rechenzentrum 65 zugreifen kann. Der Benutzercomputer 62a oder 62b kann eine direkte Verbindung mit dem Internet herstellen (z. B. über ein Kabelmodem oder eine Digital Subscriber Line (DSL)). Obwohl nur zwei Benutzercomputer 62a und 62b dargestellt sind, versteht es sich, dass es mehrere Benutzercomputer geben kann.
  • Die Benutzercomputer 62 können auch verwendet werden, um Aspekte der Rechenressourcen zu konfigurieren, die vom Rechenzentrum 65 bereitgestellt werden. In dieser Hinsicht könnte das Rechenzentrum 65 ein Gateway oder eine Webschnittstelle bereitstellen, über das/die Aspekte seines Betriebs durch die Verwendung eines Webbrowser-Anwendungsprogramms konfiguriert werden können, das auf dem Benutzercomputer 62 ausgeführt wird. Alternativ könnte ein eigenständiges Anwendungsprogramm, das auf dem Benutzercomputer 62 ausgeführt wird, auf eine Anwendungsprogrammierschnittstelle (API) zugreifen, die vom Rechenzentrum 65 bereitgestellt wird, um die Konfigurationsoperationen durchzuführen. Andere Mechanismen zum Konfigurieren des Betriebs verschiedener Webdienste, die im Rechenzentrum 65 verfügbar sind, könnten ebenfalls verwendet werden.
  • Die in 6 dargestellten Server 66 können Server sein, die entsprechend konfiguriert sind, um die vorstehend beschriebenen Rechenressourcen bereitzustellen, und sie können Rechenressourcen zum Ausführen eines oder mehrerer Webdienste und/oder einer oder mehrerer Anwendungen bereitstellen. In einer Ausführungsform können die Rechenressourcen Instanzen 68 virtueller Maschinen sein. Im Beispiel der Instanzen virtueller Maschinen kann jeder der Server 66 so konfiguriert sein, dass er einen Instanzmanager 63a oder 63b (der hier im Singular als der Instanzmanager 63 oder im Plural als die Instanzmanager 63 bezeichnet werden kann) ausführt, der zum Ausführen der Instanzen 68 virtueller Maschinen imstande ist. Bei den Instanzmanagern 63 kann es sich beispielsweise um einen Virtual Machine Monitor (VMM) oder einen anderen Programmtyp handeln, der zum Ermöglichen der Ausführung von Instanzen 68 virtueller Maschinen auf dem Server 66 konfiguriert ist. Wie vorstehend erörtert, kann jede der Instanzen 68 virtueller Maschinen zum Ausführen der Gesamtheit oder eines Teils einer Anwendung konfiguriert sein.
  • Es versteht sich, dass, obwohl die vorstehend offenbarten Ausführungsformen den Kontext von Instanzen virtueller Maschinen erörtern, andere Arten von Implementierungen mit den hierin offenbarten Konzepten und Technologien verwendet werden können. Beispielsweise könnten die hierin offenbarten Ausführungsformen auch mit Computersystemen verwendet werden, die keine Instanzen virtueller Maschinen verwenden.
  • In dem in 6 dargestellten beispielhaften Rechenzentrum 65 kann ein Router 61 verwendet werden, um die Server 66a und 66b miteinander zu verbinden. Der Router 61 kann auch mit dem Gateway 64 verbunden sein, das mit dem Netz 104 verbunden ist. Der Router 61 kann mit einem oder mehreren Lastverteilern verbunden sein, und er kann allein oder in Kombination Kommunikation innerhalb von Netzen im Rechenzentrum 65 verwalten, indem er zum Beispiel je nach Bedarf Pakete oder andere Datenkommunikation basierend auf Eigenschaften solcher Kommunikation (z. B. Header-Informationen, die Quell- und/oder Zieladressen, Protokollkennungen, Größe, Verarbeitungsanforderungen usw. beinhalten) und/oder den Eigenschaften des privaten Netzes (z. B. Routen basierend auf der Netztopologie usw.) weiterleitet. Es versteht sich, dass der Einfachheit halber verschiedene Aspekte der Computersysteme und anderer Vorrichtungen dieses Beispiels ohne bestimmte herkömmliche Details veranschaulicht sind. Zusätzliche Computersysteme und andere Vorrichtungen können in anderen Ausführungsformen miteinander verbunden sein, und sie können auf unterschiedliche Weise miteinander verbunden sein.
  • In dem in 6 dargestellten beispielhaften Rechenzentrum 65 wird ein Rechenzentrum 65 auch verwendet, um verschiedene Arten von Kommunikation zumindest teilweise zu, von und/oder zwischen den Servern 66a und 66b zu leiten. Obwohl 6 den Router 61 zwischen dem Gateway 64 und dem Rechenzentrum 65 positioniert darstellt, ist dies lediglich eine beispielhafte Konfiguration. In einigen Fällen kann das Rechenzentrum 65 beispielsweise zwischen dem Gateway 64 und dem Router 61 positioniert sein. Das Rechenzentrum 65 kann in einigen Fällen Teile eingehender Kommunikation von Benutzercomputern 62 untersuchen, um einen oder mehrere geeignete Server 66 zum Empfangen und/oder Verarbeiten der eingehenden Kommunikation zu bestimmen. Das Rechenzentrum 65 kann geeignete Server zum Empfangen und/oder Verarbeiten der eingehenden Kommunikation basierend auf Faktoren wie Identität, Standort oder anderen Attributen, die mit den Benutzercomputern 62 assoziiert sind, einer Beschaffenheit einer Aufgabe, mit der die Kommunikation assoziiert ist, einer Priorität einer Aufgabe, mit der die Kommunikation assoziiert ist, einer Dauer einer Aufgabe, mit der die Kommunikation assoziiert ist, einer Größe und/oder der geschätzten Ressourcennutzung einer Aufgabe, mit der die Kommunikation assoziiert ist, und vielen anderen Faktoren bestimmen. Das Rechenzentrum 65 kann beispielsweise Zustandsinformationen und andere Informationen, die mit verschiedenen Aufgaben assoziiert sind, sammeln oder anderweitig Zugriff darauf haben, um beispielsweise die Verwaltung von Kommunikation und anderen mit solchen Aufgaben assoziierten Operationen zu unterstützen.
  • Es versteht sich, dass die in 6 veranschaulichte Netztopologie stark vereinfacht wurde und dass zahlreiche weitere Netze und Netzvorrichtungen verwendet werden können, um die verschiedenen hierin offenbarten Computersysteme miteinander zu verbinden. Diese Netztopologien und Vorrichtungen sollten für den Fachmann auf der Hand liegen.
  • Es sollte auch beachtet werden, dass das in 6 beschriebene Rechenzentrum 65 lediglich der Veranschaulichung dient und dass andere Implementierungen verwendet werden könnten. Es versteht sich auch, dass ein Server, ein Gateway oder eine andere Computervorrichtung eine beliebige Kombination von Hardware oder Software umfassen kann, die interagieren und die beschriebenen Arten von Funktionalität ausführen kann, einschließlich, aber nicht beschränkt auf: Desktop- oder andere Computer, Datenbankserver, Netzspeichervorrichtungen und andere Netzvorrichtungen, PDAs, Tablets, Mobiltelefone, drahtlose Telefone, Pager, elektronische Organizer, Internetgeräte, fernsehbasierte Systeme (die z. B. mit Set-Top-Boxen und/oder personal/digitale Videorekorder verwenden) und verschiedene andere Verbraucherprodukte, die entsprechende Kommunikationsfähigkeiten beinhalten.
  • Ein Netz, das von einer Entität wie einem Unternehmen oder einer Organisation des öffentlichen Sektors eingerichtet wird, um einen oder mehrere Webdienste (beispielsweise verschiedene Arten von Computing oder Speicherung auf Cloud-Basis) bereitzustellen, auf die über das Internet zugegriffen werden kann, und/oder andere Netze zu einem verteilten Satz von Clients können als Anbieternetz bezeichnet werden. Solch ein Anbieternetz kann zahlreiche Rechenzentren enthalten, die verschiedene Ressourcenpools, beispielsweise Sammlungen von physischen und/oder virtualisierten Computerservern, Speichervorrichtungen, Netzvorrichtungen und dergleichen, hosten, die zum Implementieren und Verteilen der vom Anbieternetz angebotenen Infrastruktur und Webdienste verwendet werden. Die Ressourcen können Clients in einigen Ausführungsformen in verschiedenen mit dem Webdienst in Beziehung stehenden Einheiten wie einer Menge an Speicherkapazität für die Speicherung, einer Verarbeitungsfähigkeit für die Verarbeitung, als Instanzen, als Sätze verwandter Dienste und dergleichen angeboten werden. Eine virtuelle Recheninstanz kann beispielsweise einen oder mehrere Server mit einer bestimmten Rechenkapazität (die durch die Angabe der Art und der Anzahl der CPUs, der Hauptspeichergröße usw. spezifiziert werden kann) und einem bestimmten Software-Stack (z. B. einer spezifischen Version eines Betriebssystems, die wiederum auf einem Hypervisor ausgeführt werden kann) umfassen.
  • Zum Implementieren der Ressourcen des Anbieternetzes in verschiedenen Ausführungsformen kann eine Anzahl verschiedener Arten von Computervorrichtungen, beispielsweise Computerservern, Speichervorrichtungen, Netzvorrichtungen und dergleichen, einzeln oder in Kombination verwendet werden. In einigen Ausführungsformen kann einem Client oder Benutzer direkter Zugriff auf eine Ressourceninstanz gewährt werden, z. B. indem einem Benutzer ein Login und ein Kennwort eines Administrators gegeben werden. In anderen Ausführungsformen kann der Betreiber des Anbieternetzes Clients erlauben, Ausführungsanforderungen für bestimmte Clientanwendungen zu spezifizieren und die Ausführung der Anwendungen im Auftrag des Clients auf Ausführungsplattformen (wie etwa Anwendungsserverinstanzen, Java™ Virtual Machines (JVMs), Universal- oder Spezialbetriebssystemen, Plattformen, die verschiedene interpretierte oder kompilierte Programmiersprachen wie Ruby, Perl, Python, C, C++ und dergleichen unterstützen, oder Hochleistungs-Computerplattformen) zu disponieren, die für die Anwendungen geeignet sind, ohne dass der Client beispielsweise direkt auf eine Instanz oder eine Ausführungsplattform zugreifen muss. Eine gegebene Ausführungsplattform kann in einigen Implementierungen eine oder mehrere Ressourceninstanzen verwenden; in anderen Implementierungen können mehrere Ausführungsplattformen einer einzigen Ressourceninstanz zugeordnet werden.
  • In vielen Umgebungen können Betreiber von Anbieternetzwerken, die verschiedene Arten von virtualisiertem Computing, virtualisierter Speicherung und/oder anderer über das Netz zugänglicher Funktionalität implementieren, Kunden die Möglichkeit geben, Zugriff auf Ressourcen in verschiedenen Ressourcenbeschaffungsmodi zu reservieren oder zu kaufen. Der Rechenressourcenanbieter kann Einrichtungen für Kunden bereitstellen, um die gewünschten Rechenressourcen auszuwählen und zu starten, Anwendungskomponenten für die Rechenressourcen bereitzustellen und eine Anwendung zu verwalten, die in der Umgebung ausgeführt wird. Darüber hinaus kann der Rechenressourcenanbieter weitere Einrichtungen für den Kunden bereitstellen, um die Anzahl und die Arten von Ressourcen, die der Anwendung zugewiesen sind, bei einer Änderung des Bedarfs an oder der Kapazitätsanforderungen der Anwendung schnell und einfach entweder manuell oder durch automatische Skalierung zu vergrößern oder zu verkleinern. Die vom Rechenressourcenanbieter bereitgestellten Rechenressourcen können in diskreten Einheiten verfügbar gemacht werden, die als Instanzen bezeichnet werden können. Eine Instanz kann eine Hardwareplattform eines physischen Servers, eine Instanz einer virtuellen Maschine, die auf einem Server ausgeführt wird, oder eine Kombination der beiden darstellen. Es können verschiedene Typen und Konfigurationen von Instanzen verfügbar gemacht werden, einschließlich verschiedener Größen von Ressourcen, die verschiedene Betriebssysteme (OS) und/oder Hypervisoren ausführen, und mit verschiedenen installierten Softwareanwendungen, Laufzeiten und dergleichen. Instanzen können ferner in spezifischen Verfügbarkeitszonen verfügbar sein, die beispielsweise eine logische Region, eine fehlertolerante Region, ein Rechenzentrum oder einen anderen geografischen Standort der zugrunde liegenden Computerhardware darstellen. Instanzen können innerhalb einer Verfügbarkeitszone oder über Verfügbarkeitszonen hinweg kopiert werden, um die Redundanz der Instanz zu verbessern, und Instanzen können innerhalb einer spezifischen Verfügbarkeitszone oder über Verfügbarkeitszonen hinweg migriert werden. Beispielsweise kann die Latenz für Client-Kommunikation mit einem spezifischen Server in einer Verfügbarkeitszone geringer sein als die Latenz für Client-Kommunikation mit einem anderen Server. Daher kann eine Instanz vom Server mit höherer Latenz auf den Server mit niedrigerer Latenz migriert werden, um die Client-Erfahrung insgesamt zu verbessern.
  • In einigen Ausführungsformen kann das Anbieternetz in mehrere geografische Regionen gegliedert sein, und jede Region kann eine oder mehrere Verfügbarkeitszonen enthalten. Eine Verfügbarkeitszone (die auch als Verfügbarkeitscontainer bezeichnet werden kann) wiederum kann einen oder mehrere unterschiedliche Standorte oder Rechenzentren umfassen, die so konfiguriert sind, dass die Ressourcen in einer bestimmten Verfügbarkeitszone isoliert oder gegen Ausfälle in anderen Verfügbarkeitszonen abgeschirmt werden können. Das heißt, ein Ausfall in einer Verfügbarkeitszone führt möglicherweise nicht zu einem Ausfall in einer anderen Verfügbarkeitszone. Somit soll das Verfügbarkeitsprofil einer Ressourceninstanz unabhängig vom Verfügbarkeitsprofil einer Ressourceninstanz in einer anderen Verfügbarkeitszone sein. Kunden können imstande sein, ihre Anwendungen vor Ausfällen an einem einzigen Standort schützen, indem sie mehrere Anwendungsinstanzen in den jeweiligen Verfügbarkeitszonen starten. Gleichzeitig kann in einigen Implementierungen eine kostengünstige Netzkonnektivität mit geringer Latenz zwischen Ressourceninstanzen bereitgestellt werden, die sich innerhalb derselben geografischen Region befinden (und Netzübertragungen zwischen Ressourcen derselben Verfügbarkeitszone können sogar noch schneller sein).
  • 7 zeigt ein Flussdiagramm, das einen beispielhaften Prozess 700 zum Erlernen einer benutzerspezifischen Aktion, die in Reaktion auf eine deklarative Eingabe in natürlicher Sprache auszuführen ist, gemäß verschiedenen Aspekten der vorliegenden Offenbarung darstellt. Die Teile von 7, die bereits unter Bezugnahme auf 1-6 erörtert wurden, werden aus Gründen der Klarheit und Kürze möglicherweise nicht erneut beschrieben. Die Aktionen des Prozesses 700 können eine Reihe von Anweisungen darstellen, die einen computerlesbaren Maschinencode umfassen, der von einer oder mehreren Verarbeitungseinheiten einer oder mehrerer Computervorrichtungen ausgeführt werden kann. In verschiedenen Beispielen können die computerlesbaren Maschinencodes aus Anweisungen bestehen, die aus einem nativen Anweisungssatz und/oder einem Betriebssystem (oder -systemen) der einen oder der mehreren Computervorrichtungen ausgewählt sind. Obwohl die Figuren und die Erörterung bestimmte Arbeitsschritte des Systems in einer spezifischen Reihenfolge veranschaulichen, können die beschriebenen Schritte in einer anderen Reihenfolge ausgeführt werden (sowie bestimmte Schritte entfernt oder hinzugefügt werden), ohne von der Absicht der Offenbarung abzuweichen.
  • Prozess 700 von 7 kann bei Aktion 710 beginnen, bei der eine erste Eingabe in natürlicher Sprache von einem Benutzer empfangen werden kann. In verschiedenen Beispielen kann die erste Eingabe in natürlicher Sprache Sprache oder Text sein, die/der eine deklarative Aussage eines Benutzers darstellt. Eine beliebige deklarative Aussage, die einen Zustand beschreibt, ohne eine direkt umsetzbare Frage, Bitte, Anweisung usw. darzustellen. Der Benutzer kann beispielsweise sagen „Computer, meine Füße jucken“. Die Äußerung enthält einen Zustand (z. B. „juckende Füße“), aber sie entspricht möglicherweise keinen derzeit umsetzbaren Absichten des Verarbeitungssystems für natürliche Sprache.
  • Die Verarbeitung kann von Aktion 710 weitergehen zu Aktion 720, bei der bestimmt werden kann, dass die erste Eingabe in natürlicher Sprache Absichtsdaten entspricht, die einer deklarativen Eingabe entsprechen. Bei Aktion 720 kann bestimmt werden, dass die erste Eingabe in natürlicher Sprache einer deklarativen Absicht entspricht. Zum Beispiel können eine oder mehrere Entitäten, die in der Absicht enthalten sind, und/oder Slot-Daten, die in der Absicht enthalten sind, mit einer spezifischen deklarativen Absicht assoziiert sein. Während des Trainings können deklarative Absichten mit Zustandsdaten assoziiert werden.
  • Die Verarbeitung kann von Aktion 720 weitergehen zu Aktion 730, bei der eine Dialogsitzung mit dem ersten Benutzer initiiert werden kann. In verschiedenen Beispielen kann die Dialogsitzung durch das System zur Verarbeitung natürlicher Sprache 120 initiiert werden, das Audio und/oder Text ausgibt, das/der den Benutzer fragt, ob eine Aktion, die von der Aktionsvorhersagekomponente 165 basierend auf den von der Zielzustandsvorhersagekomponente 164 vorhergesagten Zieldaten und/oder relevanten Kontextdaten vorhergesagt wurde, ausgeführt werden sollte oder nicht. Wie zuvor beschrieben, können die Zieldaten basierend auf Zustandsdaten vorhergesagt werden, die mit der deklarativen Absicht assoziiert sind. Die Aktion kann basierend auf den Zieldaten und/oder basierend auf Kontextdaten vorhergesagt werden, die mit der Eingabe in natürlicher Sprache des Benutzers (z. B. mit der deklarativen Äußerung des Benutzers) assoziiert sind. In zumindest einigen Beispielen kann die Aktion eine Aktion sein, die einen Zustand verbessert, der durch die erste Eingabe in natürlicher Sprache beschrieben wird und/oder mit den Zieldaten in Beziehung steht. In zumindest einigen Beispielen kann die Konzepteinlernkomponente 168 zuerst bestimmen, ob die Aktion von der NLU-Komponente 160 verstanden werden kann oder nicht und/oder ob umsetzbare Absichten der vorhergesagten Aktion entsprechen, bevor sie den Benutzer bezüglich der vorhergesagten Aktion während der Dialogsitzung auffordert.
  • Die Verarbeitung kann von Aktion 730 weitergehen zu Aktion 740, bei der eine vom ersten Benutzer beabsichtigte Aktion für die erste Eingabe in natürlicher Sprache unter Verwendung der Dialogsitzung bestimmt werden kann. Beispielsweise kann der Benutzer während der Dialogsitzung positiv auf eine vorgeschlagene Aktion (z. B. die vorhergesagte Aktion) reagieren. In einem anderen Beispiel kann der Benutzer eine vorgeschlagene Aktion ablehnen und stattdessen eine bevorzugte Aktion angeben. In zumindest einigen Beispielen kann die NLU-Komponente 160 verwendet werden, um zu bestimmen, ob eine vom Benutzer vorgeschlagene und/oder durch die Konzepteinlernkomponente 168 bestimmte Aktion vom System zur Verarbeitung natürlicher Sprache verstanden wird und/oder umgesetzt werden kann oder nicht.
  • Die Verarbeitung kann von Aktion 740 weitergehen zu Aktion 750, bei der Daten, die die Aktion darstellen, in Verbindung mit Zustandsdaten gespeichert werden können, die den in der ersten Eingabe in natürlicher Sprache beschriebenen Zustand darstellen. Bei den Daten kann es sich um ein Konzepteinlernartefakt 169 handeln, das das System zur Verarbeitung natürlicher Sprache 120 darstellt, das lernt, dass der erste Benutzer eine bestimmte Aktion in Reaktion auf deklarative Äußerungen bevorzugt, die mit einem spezifischen Zustand in Beziehung stehen. Beispielsweise kann ein bestimmter Benutzer die Klimaanlage einschalten wollen, wann immer der Benutzer irgendetwas über die Hitze sagt (z. B. mit Zustandsdaten „zu heiß“).
  • 8 zeigt ein Flussdiagramm, das einen beispielhaften Prozess zum Ausführen einer benutzerspezifischen Aktion in Reaktion auf eine deklarative Eingabe in natürlicher Sprache gemäß verschiedenen Aspekten der vorliegenden Offenbarung darstellt. Die Teile von 8, die bereits unter Bezugnahme auf 1-7 erörtert wurden, werden aus Gründen der Klarheit und Kürze möglicherweise nicht erneut beschrieben. Die Aktionen des Prozesses 800 können eine Reihe von Anweisungen darstellen, die einen computerlesbaren Maschinencode umfassen, der von einer oder mehreren Verarbeitungseinheiten einer oder mehrerer Computervorrichtungen ausgeführt werden kann. In verschiedenen Beispielen können die computerlesbaren Maschinencodes aus Anweisungen bestehen, die aus einem nativen Anweisungssatz und/oder einem Betriebssystem (oder -systemen) der einen oder der mehreren Computervorrichtungen ausgewählt sind. Obwohl die Figuren und die Erörterung bestimmte Arbeitsschritte des Systems in einer bestimmten Reihenfolge veranschaulichen, können die beschriebenen Schritte in einer anderen Reihenfolge ausgeführt werden (sowie bestimmte Schritte entfernt oder hinzugefügt werden), ohne von der Absicht der Offenbarung abzuweichen.
  • Prozess 800 von 8 kann bei Aktion 810 beginnen, bei der eine erste Eingabe in natürlicher Sprache von einem Benutzer empfangen werden kann. In verschiedenen Beispielen kann die erste Eingabe in natürlicher Sprache Sprache oder Text sein, die/der eine deklarative Aussage eines Benutzers darstellt. Eine beliebige deklarative Aussage, die einen Zustand beschreibt, ohne eine direkt umsetzbare Frage, Bitte, Anweisung usw. darzustellen. Der Benutzer kann beispielsweise sagen „Computer, ich bin zuhause“. Die Äußerung enthält einen Zustand (z. B. „Benutzer ist zuhause“), aber sie entspricht möglicherweise keinen derzeit umsetzbaren Absichten des Verarbeitungssystems für natürliche Sprache.
  • Die Verarbeitung kann von Aktion 810 weitergehen zu Aktion 820, bei der bestimmt werden kann, dass die erste Eingabe in natürlicher Sprache Absichtsdaten entspricht, die einer deklarativen Eingabe entsprechen. Bei Aktion 820 kann bestimmt werden, dass die erste Eingabe in natürlicher Sprache einer deklarativen Absicht entspricht. Zum Beispiel können eine oder mehrere Entitäten, die in der Absicht enthalten sind, und/oder Slot-Daten, die in der Absicht enthalten sind, mit einer bestimmten deklarativen Absicht assoziiert sein. Während des Trainings können deklarative Absichten mit Zustandsdaten assoziiert werden. Beispielsweise kann eine deklarative Absicht mit den Zustandsdaten „[Benutzer] ist zuhause“ assoziiert werden.
  • Die Verarbeitung kann mit Aktion 830 fortfahren, bei der Zustandsdaten bestimmt werden können, die den Absichtsdaten entsprechen. Die Zustandsdaten können während des Trainings bestimmt werden, wenn die verschiedenen deklarativen Absichten erlernt werden. Beispielsweise können die Zustandsdaten Daten sein, die einen Zustand beschreiben, der durch die Äußerung des Benutzers angegeben wird. Danach kann immer dann, wenn der Benutzer eine deklarative Aussage an das System zur Verarbeitung natürlicher Sprache 120 macht, die denselben Zustand aufruft, dieselbe deklarative Absicht bestimmt werden. Beispielsweise können die Benutzeräußerungen „Mir ist kalt“, „Mir ist eiskalt“, „Es ist eiskalt“, „Es ist zu kalt“, „Es ist eisig kalt“ usw. alle einer deklarativen Absicht mit entsprechenden Zustandsdaten „kalt“ entsprechen.
  • Die Verarbeitung kann von Aktion 830 weitergehen zu Aktion 840, bei der eine Aktion bestimmt werden kann, die in einem nichtflüchtigen computerlesbaren Speicher gespeichert und mit den Zustandsdaten und/oder mit Kontextdaten assoziiert ist, die mit der deklarativen Äußerung des Benutzers assoziiert sind. Bei Aktion 840 können die bei Aktion 830 bestimmten Zustandsdaten zum Nachschlagen einer Aktion verwendet werden, die zuvor mit diesem Zustand und/oder mit den Kontextdaten für das jeweilige Benutzerkonto und/oder die jeweilige Vorrichtungskennung assoziiert wurde, das/die mit der bei Aktion 810 empfangenen ersten Eingabe in natürlicher Sprache assoziiert ist. Die Zustandsdaten können über CT-Artefaktdaten 169 mit der Aktion assoziiert werden. Die CT-Artefaktdaten 169 können in einem benutzerspezifischen Speicher gespeichert und somit für den Benutzer (oder für die Vorrichtung oder das Konto, von der/dem die erste Eingabe in natürlicher Sprache empfangen wurde) personalisiert werden. Die CT-Artefaktdaten 169 können darstellen, dass das System zur Verarbeitung natürlicher Sprache 120 eine spezifische Aktion für eine bestimmte Klasse deklarativer Äußerungen gelernt hat (z. B. jene Äußerungen, die mit den spezifischen Zustandsdaten assoziiert sind, die als Teil der CT-Artefaktdaten 169 gespeichert sind).
  • Die Verarbeitung kann von Aktion 840 weitergehen zu Aktion 850, bei der der Benutzer aufgefordert werden kann, zu bestimmen, ob der Benutzer möchte, dass die bei Aktion 840 bestimmte Aktion ausgeführt wird oder nicht. Wenn der Benutzer bestätigt, dass die Aktion ausgeführt werden sollte, kann die Verarbeitung von Aktion 850 weitergehen zu Aktion 860, bei der die bei Aktion 840 bestimmte Aktion ausgeführt werden kann, indem Absichtsdaten, die der Aktion entsprechen, an ein Speechlet gesendet werden, das zum Ausführen der Aktion konfiguriert ist.
  • Obwohl verschiedene hierin beschriebene Systeme in Software oder Code realisiert sein können, die/der von Mehrzweckhardware ausgeführt wird, wie vorstehend erörtert, können dieselben alternativ auch in dedizierter Hardware oder einer Kombination von Software/Allzweckhardware und dedizierter Hardware realisiert sein. Bei Realisierung in dedizierter Hardware kann jedes als Schaltung oder Zustandsmaschine implementiert sein, die eine beliebige einer Anzahl von Technologien oder eine Kombination davon verwendet. Diese Technologien können diskrete Logikschaltungen mit Logikgattern zum Implementieren verschiedener Logikfunktionen bei Anlegen eines oder mehrerer Datensignale, anwendungsspezifische integrierte Schaltungen mit geeigneten Logikgattern oder andere Komponenten usw. umfassen, ohne darauf beschränkt zu sein. Solche Technologien sind dem Durchschnittsfachmann im Allgemeinen bekannt und werden folglich hierin nicht im Detail beschrieben.
  • Die hierin beschriebenen Flussdiagramme und Verfahren zeigen die Funktionen und Funktionsweise verschiedener Implementierungen. Bei Realisierung in Software kann jeder Block oder Schritt ein Modul, ein Segment oder einen Teil eines Codes darstellen, der Programmanweisungen zum Implementieren der spezifizierten logischen Funktion(en) umfasst. Die Programmanweisungen können in Form von Quellcode, der für Menschen lesbare Aussagen umfasst, die in einer Programmiersprache geschrieben sind, oder Maschinencode realisiert sein, der numerische Anweisungen umfasst, die von einem geeigneten Ausführungssystem wie etwa einer Verarbeitungskomponente in einem Computersystem erkennbar sind. Bei Realisierung in Hardware kann jeder Block eine Schaltung oder eine Anzahl miteinander verbundener Schaltungen zum Implementieren der spezifizierten logischen Funktion(en) darstellen.
  • Obwohl die hierin beschriebenen Flussdiagramme und Verfahren eine spezifische Ausführungsreihenfolge beschreiben können, versteht es sich, dass die Ausführungsreihenfolge von der beschriebenen abweichen kann. Beispielsweise kann die Ausführungsreihenfolge von zwei oder mehr Blöcken oder Schritten bezüglich der beschriebenen Reihenfolge verwürfelt werden. Außerdem können zwei oder mehr Blöcke oder Schritte gleichzeitig oder teilweise gleichzeitig ausgeführt werden. Ferner können in einigen Ausführungsformen einer oder mehrere der Blöcke oder Schritte übersprungen oder weggelassen werden. Es versteht sich, dass alle diese Variationen innerhalb des Schutzumfangs der vorliegenden Offenbarung liegen.
  • Außerdem kann jede hierin beschriebene Logik oder Anwendung, die Software oder Code umfasst, in einem beliebigen nichtflüchtigen computerlesbaren Medium oder Speicher zur Verwendung durch oder in Verbindung mit einem Anweisungsausführungssystem wie einer Verarbeitungskomponente in einem Computersystem realisiert sein. In diesem Sinne kann die Logik beispielsweise Aussagen umfassen, die Anweisungen und Deklarationen enthalten, die vom computerlesbaren Medium abgerufen und durch das Anweisungsausführungssystem ausgeführt werden können. Im Kontext der vorliegenden Offenbarung kann ein „computerlesbares Medium“ ein beliebiges Medium sein, das die hierin beschriebene Logik oder Anwendung zur Verwendung durch oder in Verbindung mit dem Anweisungsausführungssystem enthalten, speichern oder verwalten kann. Das computerlesbare Medium kann eines von vielen physischen Medien, wie beispielsweise magnetischen, optischen oder Halbleitermedien, umfassen. Konkretere Beispiele geeigneter computerlesbarer Medien umfassen Magnetbänder, Magnetdisketten, Magnetfestplatten, Speicherkarten, Solid-State-Laufwerke, USB-Sticks oder optische Platten, ohne darauf beschränkt zu sein. Außerdem kann das computerlesbare Medium ein Direktzugriffsspeicher (RAM) sein, der beispielsweise einen statischen Direktzugriffsspeicher (SRAM) und einen dynamischen Direktzugriffsspeicher (DRAM) oder einen magnetischen Direktzugriffsspeicher (MRAM) umfassen. Außerdem kann das computerlesbare Medium ein Nur-Lese-Speicher (ROM), ein programmierbarer Nur-Lese-Speicher (PROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM), ein elektrisch löschbarer programmierbarer Nur-Lese-Speicher (EEPROM) oder eine andere Art von Speichervorrichtung sein.
  • Ausführungsformen der Offenbarung können im Hinblick auf die folgenden Klauseln beschrieben werden:
    • Klausel 1. Verfahren, umfassend: Empfangen erster Eingabedaten natürlicher Sprache, die eine deklarative Aussage darstellen, die mit einem Benutzerprofil assoziiert ist, durch ein System zur Verarbeitung natürlicher Sprache zu einem ersten Zeitpunkt; Bestimmen durch das System zur Verarbeitung natürlicher Sprache, dass die ersten Eingabedaten natürlicher Sprache einer Absicht entsprechen; Bestimmen erster Zustandsdaten, die durch die Absicht angegeben werden, wobei die ersten Zustandsdaten eine Umgebungsbedingung darstellen, die mit den ersten Eingabedaten natürlicher Sprache assoziiert ist; Bestimmen einer vorhergesagten Aktion, die den ersten Zustandsdaten entspricht; Erzeugen erster Ausgabedaten, die eine Aufforderung zum Anfragen umfassen, ob die vorhergesagte Aktion vom Benutzer beabsichtigt ist; Empfangen zweiter Eingabedaten natürlicher Sprache, wobei die zweiten Eingabedaten natürlicher Sprache eine vom Benutzer angeforderte Aktion darstellen, die sich von der vorhergesagten Aktion unterscheidet; Speichern von mit dem Benutzer assoziierten Daten in einem nichtflüchtigen computerlesbaren Speicher, wobei die Daten die Aktion in Verbindung mit den ersten Zustandsdaten darstellen; Empfangen dritter Eingabedaten natürlicher Sprache durch das System zur Verarbeitung natürlicher Sprache zu einem zweiten Zeitpunkt nach dem ersten Zeitpunkt; Bestimmen durch das System zur Verarbeitung natürlicher Sprache, dass die dritten Eingabedaten natürlicher Sprache der Absicht entsprechen; Bestimmen, dass die dritten Eingabedaten natürlicher Sprache den ersten Zustandsdaten entsprechen; Bestimmen, dass die ersten Zustandsdaten mit den Daten assoziiert sind, die die Aktion im nichtflüchtigen computerlesbaren Speicher darstellen; und Ausführen der Daten, die die Aktion darstellen, um eine Ausgabe zu erzeugen.
    • Klausel 2. Verfahren nach Klausel 1, ferner umfassend: Empfangen vierter Eingabedaten natürlicher Sprache durch das Verarbeitungssystem natürlicher Sprache; Bestimmen durch das System zur Verarbeitung natürlicher Sprache, dass die vierten Eingabedaten natürlicher Sprache der Absicht entsprechen; Bestimmen zweiter Zustandsdaten für die vierten Eingabedaten natürlicher Sprache; Bestimmen einer zweiten vorhergesagten Aktion, die den zweiten Zustandsdaten entspricht; Erzeugen zweiter Ausgabedaten, die eine Aufforderung zum Anfragen umfassen, ob die zweite vorhergesagte Aktion vom Benutzer beabsichtigt ist; Empfangen fünfter Eingabedaten natürlicher Sprache durch das Verarbeitungssystem natürlicher Sprache; Bestimmen aus den fünften Eingabedaten natürlicher Sprache, dass die zweiten Zustandsdaten den ersten Zustandsdaten entsprechen; Bestimmen, dass die ersten Zustandsdaten mit den Daten assoziiert sind, die die Aktion im nichtflüchtigen computerlesbaren Speicher darstellen; und Ausführen der Daten, die die Aktion darstellen, um eine Ausgabe zu erzeugen.
    • Klausel 3. Verfahren nach Klausel 1, ferner umfassend: Empfangen vierter Eingabedaten natürlicher Sprache durch das System zur Verarbeitung natürlicher Sprache, die eine zweite deklarative Aussage darstellen, die mit einem zweiten Benutzerprofil assoziiert ist; Bestimmen durch das System zur Verarbeitung natürlicher Sprache, dass die vierten Eingabedaten natürlicher Sprache der Absicht für deklarative Äußerungen entsprechen; Bestimmen, dass die vierten Eingabedaten natürlicher Sprache den ersten Zustandsdaten entsprechen; Bestimmen, dass die ersten Zustandsdaten mit zweiten Daten assoziiert sind, die mit dem zweiten Benutzer assoziiert sind, wobei die zweiten Daten eine andere Aktion darstellen; und Ausführen der zweiten Daten, die die andere Aktion darstellen, um eine andere Ausgabe zu erzeugen.
    • Klausel 4. Verfahren, umfassend: Empfangen erster Eingabedaten, die eine erste deklarative Aussage in natürlicher Sprache darstellen; Bestimmen, dass die ersten Eingabedaten Absichtsdaten entsprechen; Erzeugen von Ausgabedaten, die eine Klärungsanforderung darstellen, basierend zumindest teilweise auf den ersten Eingabedaten, die eine deklarative Aussage darstellen; Empfangen zweiter Eingabedaten, die eine Antwort auf die Klärungsanforderung darstellen; und Bestimmen einer Aktion, die vom ersten Benutzer für die erste Eingabe in natürlicher Sprache beabsichtigt ist, basierend zumindest teilweise auf den zweiten Eingabedaten und den ersten Eingabedaten.
    • Klausel 5. Verfahren nach Klausel 4, ferner umfassend Speichern erster Daten, die die Aktion darstellen, in Verbindung mit zweiten Daten, die einen Zustand darstellen, der durch mindestens einen Teil der ersten Eingabedaten beschrieben wird.
    • Klausel 6. Das Verfahren nach Klausel 5, ferner umfassend: Bestimmen der zweiten Daten zumindest teilweise basierend auf den Absichtsdaten, wobei die zweiten Daten einen Zustand angeben, der in der ersten deklarativen Aussage in natürlicher Sprache beschrieben ist; Erzeugen dritter Daten durch ein erstes maschinelles Lernmodell zumindest teilweise basierend auf den zweiten Daten, wobei die dritten Daten ein vorhergesagtes Ziel der ersten deklarativen Aussage in natürlicher Sprache darstellen; und Erzeugen einer vorhergesagten Aktion durch ein zweites maschinelles Lernmodel zumindest teilweise basierend auf den dritten Daten, wobei die vorhergesagte Aktion eine Aktion ist, die mit dem vorhergesagten Ziel assoziiert ist.
    • Klausel 7. Verfahren nach Klausel 5 oder 6, ferner umfassend: Empfangen dritter Eingabedaten, wobei die dritten Eingabedaten eine andere Aktion anfordern; und Speichern erster Daten, die die andere Aktion darstellen, in Verbindung mit den zweiten Daten zumindest teilweise basierend auf den dritten Eingabedaten.
    • Klausel 8. Verfahren nach einer der Klauseln 4 bis 6, ferner umfassend: Speichern erster Daten, die die Aktion darstellen, in Verbindung mit zweiten Daten, die einen ersten Zustand darstellen, wobei der erste Zustand eine erste Bedingung ist, die durch mindestens einen Teil der ersten deklarativen Aussage in natürlicher Sprache beschrieben wird; Empfangen dritter Eingabedaten, die eine zweite deklarative Aussage in natürlicher Sprache darstellen, die sich von der ersten deklarativen Aussage in natürlicher Sprache unterscheidet; Bestimmen, dass die dritten Eingabedaten den Absichtsdaten entsprechen; Bestimmen vierter Daten, die einen zweiten Zustand darstellen, wobei der zweite Zustand eine zweite Bedingung ist, die durch mindestens einen Teil der zweiten deklarativen Aussage in natürlicher Sprache beschrieben wird; Bestimmen, dass der zweite Zustand dem ersten Zustand entspricht; Abrufen der ersten Daten, die die Aktion darstellen; und Erzeugen einer Aufforderung in natürlicher Sprache als Ausgabedaten, wobei die Aufforderung in natürlicher Sprache eine Aufforderung zum Ausführen der Aktion darstellt.
    • Klausel 9. Verfahren nach Klausel 4, ferner umfassend: Speichern erster Daten, die die Aktion darstellen, in Verbindung mit zweiten Daten, die einen ersten Zustand darstellen, wobei der erste Zustand eine erste Bedingung ist, die durch mindestens einen Teil der ersten deklarativen Aussage in natürlicher Sprache beschrieben wird; Bestimmen einer vorhergesagten Aktion durch ein maschinelles Lernmodell unter Verwendung der zweiten Daten; Erzeugen zweiter Ausgabedaten, die eine Aufforderung darstellen, die anfragt, ob die vorhergesagte Aktion ausgeführt werden soll; und Empfangen dritter Eingabedaten, die angeben, dass die Aktion ausgeführt werden soll, wobei die Aktion sich von der vorhergesagten Aktion unterscheidet, wobei das Speichern der ersten Daten, die die Aktion darstellen, zumindest teilweise basierend auf den dritten Eingabedaten durchgeführt wird.
    • Klausel 10. Verfahren nach Klausel 4, ferner umfassend: Empfangen erster Daten, die einen Kontext der ersten Eingabedaten beschreiben; Bestimmen einer ersten Domäne, die mit den ersten Eingabedaten assoziiert ist, zumindest teilweise basierend auf den ersten Daten; und Bestimmen der Absichtsdaten aus Absichten, die mit der ersten Domäne assoziiert sind.
    • Klausel 11. Verfahren nach Klausel 4, ferner umfassend: Empfangen von Metadaten, die ein Konto angeben, das mit den ersten Eingabedaten assoziiert ist; Bestimmen mindestens einer Adresse in Speicher, die mit dem Konto assoziiert ist; und Speichern erster Daten, die die Aktion darstellen, in Verbindung mit zweiten Daten, die die deklarative Aussage darstellen, an der mindestens einen Adresse im Speicher.
    • Klausel 12. Verfahren nach Klausel 4, ferner umfassend: Speichern erster Daten, die die Aktion darstellen, in Verbindung mit zweiten Daten, die einen ersten Zustand darstellen, der durch mindestens einen Teil der ersten Eingabedaten beschrieben wird, wobei der erste Zustand eine erste Bedingung einer Umgebung beschreibt; Empfangen dritter Eingabedaten; Bestimmen dritter Daten, die einen zweiten Zustand darstellen, der durch mindestens einen Teil der zweiten Eingabe in natürlicher Sprache beschrieben wird, wobei der zweite Zustand eine zweite Bedingung der Umgebung beschreibt; Bestimmen, dass der erste Zustand dem zweiten Zustand entspricht; und Speichern der dritten Daten in Verbindung mit der Aktion und den zweiten Daten.
    • Klausel 13. System, umfassend: mindestens einen Prozessor; und mindestens einen nichtflüchtigen computerlesbaren Speicher, der Anweisungen speichert, die bei Ausführung durch den mindestens einen Prozessor wirksam sind, den mindestens einen Prozessor zu programmieren zum: Empfangen erster Eingabedaten, die eine erste deklarative Aussage in natürlicher Sprache darstellen; Bestimmen, dass die ersten Eingabedaten Absichtsdaten entsprechen; Erzeugen von Ausgabedaten, die eine Klärungsanforderung darstellen, zumindest teilweise basierend auf den ersten Eingabedaten, die eine deklarative Aussage darstellen; Empfangen zweiter Eingabedaten, die eine Antwort auf die Klärungsanforderung darstellen; und Bestimmen einer vom ersten Benutzer beabsichtigten Aktion für die erste Eingabe in natürlicher Sprache zumindest teilweise basierend auf den zweiten Eingabedaten und den ersten Eingabedaten.
    • Klausel 14. System nach Klausel 13, wobei der mindestens eine nichtflüchtige computerlesbare Speicher weitere Anweisungen speichert, die bei Ausführung durch den mindestens einen Prozessor ferner wirksam sind, den mindestens einen Prozessor zu programmieren zum: Speichern erster Daten, die die Aktion darstellen, in Verbindung mit zweiten Daten, die einen Zustand darstellen, der durch mindestens einen Teil der ersten Eingabedaten in dem mindestens einen nichtflüchtigen computerlesbaren Speicher beschrieben wird.
    • Klausel 15. System nach Klausel 14, wobei der mindestens eine nichtflüchtige computerlesbare Speicher weitere Anweisungen speichert, die bei Ausführung durch den mindestens einen Prozessor ferner wirksam sind, den mindestens einen Prozessor zu programmieren zum:
      • Bestimmen der zweiten Daten zumindest teilweise basierend auf den Absichtsdaten, wobei die zweiten Daten einen Zustand angeben, der in der ersten deklarativen Aussage in natürlicher Sprache beschrieben ist; Erzeugen dritter Daten durch ein erstes maschinelles Lernmodell zumindest teilweise basierend auf den zweiten Daten, wobei die dritten Daten ein vorhergesagtes Ziel der ersten deklarativen Aussage in natürlicher Sprache darstellen; und
      • Erzeugen einer vorhergesagten Aktion durch ein zweites maschinelles Lernmodel zumindest teilweise basierend auf den dritten Daten, wobei die vorhergesagte Aktion eine Aktion ist, die mit dem vorhergesagten Ziel assoziiert ist.
    • Klausel 16. System nach Klausel 14 oder 15, wobei der mindestens eine nichtflüchtige computerlesbare Speicher weitere Anweisungen speichert, die bei Ausführung durch den mindestens einen Prozessor ferner wirksam sind, den mindestens einen Prozessor zu programmieren zum: Empfangen dritter Eingabedaten, wobei die dritten Eingabedaten eine andere Aktion anfordern; und Speichern erster Daten, die die andere Aktion darstellen, in Verbindung mit den zweiten Daten zumindest teilweise basierend auf den dritten Eingabedaten.
    • Klausel 17. System nach einer der Klauseln 13 bis 15, wobei der mindestens eine nichtflüchtige computerlesbare Speicher weitere Anweisungen speichert, die bei Ausführung durch den mindestens einen Prozessor ferner wirksam sind, den mindesten einen Prozessor zu programmieren zum: Speichern erster Daten, die die Aktion darstellen, in Verbindung mit zweiten Daten, die einen ersten Zustand darstellen, wobei der erste Zustand eine erste Bedingung ist, die durch mindestens einen Teil der ersten deklarativen Aussage in natürlicher Sprache beschrieben wird; Empfangen dritter Eingabedaten, die eine zweite deklarative Aussage in natürlicher Sprache darstellen, die sich von der ersten deklarativen Aussage in natürlicher Sprache unterscheidet; Bestimmen, dass die dritten Eingabedaten den Absichtsdaten entsprechen; Bestimmen vierter Daten, die einen zweiten Zustand darstellen, wobei der zweite Zustand eine zweite Bedingung ist, die durch mindestens einen Teil der zweiten deklarativen Aussage in natürlicher Sprache beschrieben wird; Bestimmen, dass der zweite Zustand dem ersten Zustand entspricht; Abrufen der ersten Daten, die die Aktion darstellen; und Erzeugen einer Aufforderung in natürlicher Sprache als Ausgabedaten, wobei die Aufforderung in natürlicher Sprache eine Aufforderung zum Ausführen der Aktion darstellt.
    • Klausel 18. System nach Klausel 13, wobei der mindestens eine nichtflüchtige computerlesbare Speicher weitere Anweisungen speichert, die bei Ausführung durch den mindestens einen Prozessor ferner wirksam sind, den mindesten einen Prozessor zu programmieren zum: Speichern erster Daten, die die Aktion darstellen, in Verbindung mit zweiten Daten, die einen ersten Zustand darstellen, wobei der erste Zustand eine erste Bedingung ist, die durch mindestens einen Teil der ersten deklarativen Aussage in natürlicher Sprache beschrieben wird; Bestimmen einer vorhergesagten Aktion durch ein maschinelles Lernmodell unter Verwendung der zweiten Daten; Erzeugen zweiter Ausgabedaten, die eine Aufforderung darstellen, die anfragt, ob die vorhergesagte Aktion ausgeführt werden soll; und Empfangen dritter Eingabedaten, die angeben, dass die Aktion ausgeführt werden soll, wobei die Aktion sich von der vorhergesagten Aktion unterscheidet, wobei das Speichern der ersten Daten, die die Aktion darstellen, zumindest teilweise basierend auf den dritten Eingabedaten durchgeführt wird.
    • Klausel 19. System nach Klausel 13, wobei der mindestens eine nichtflüchtige computerlesbare Speicher weitere Anweisungen speichert, die bei Ausführung durch den mindestens einen Prozessor ferner wirksam sind, den mindestens einen Prozessor zu programmieren zum: Empfangen erster Daten, die einen Kontext der ersten Eingabedaten beschreiben; Bestimmen einer ersten Domäne, die mit den ersten Eingabedaten assoziiert ist, zumindest teilweise basierend auf den ersten Daten; und Bestimmen der Absichtsdaten aus Absichten, die mit der ersten Domäne assoziiert sind.
    • Klausel 20. System nach Klausel 13, wobei der mindestens eine nichtflüchtige computerlesbare Speicher weitere Anweisungen speichert, die bei Ausführung durch den mindestens einen Prozessor ferner wirksam sind, den mindestens einen Prozessor zu programmieren zum: Empfangen von Metadaten, die ein Konto angeben, das mit den ersten Eingabedaten assoziiert ist; Bestimmen mindestens einer Adresse in Speicher, die mit dem Konto assoziiert ist; und Speichern erster Daten, die die Aktion darstellen, in Verbindung mit zweiten Daten, die die deklarative Aussage darstellen, an der mindestens einen Adresse im Speicher.
  • Es ist hervorzuheben, dass die vorstehend beschriebenen Ausführungsformen der vorliegenden Offenbarung lediglich mögliche Beispiele für Implementierungen sind, die für ein besseres Verständnis der Grundsätze der Offenbarung dargelegt sind. Es können viele Änderungen und Modifikationen an dem oder den vorstehend beschriebenen Beispielen vorgenommen werden, ohne wesentlich vom Geist und den Grundgedanken der Offenbarung abzuweichen. Sämtliche derartigen Modifikationen und Änderungen sollen in den Umfang dieser Offenbarung fallen und durch die folgenden Ansprüche geschützt sein.

Claims (15)

  1. Verfahren, umfassend: Empfangen erster Eingabedaten, die eine erste deklarative Aussage in natürlicher Sprache darstellen; Bestimmen, dass die ersten Eingabedaten Absichtsdaten entsprechen; Erzeugen von Ausgabedaten, die eine Klärungsanforderung darstellen, zumindest teilweise basierend auf den ersten Eingabedaten, die eine deklarative Aussage darstellen; Empfangen zweiter Eingabedaten, die eine Antwort auf die Klärungsanforderung darstellen; und Bestimmen einer Aktion, die vom ersten Benutzer für die erste Eingabe in natürlicher Sprache beabsichtigt ist, zumindest teilweise basierend auf den zweiten Eingabedaten und den ersten Eingabedaten.
  2. Verfahren nach Anspruch 1, ferner umfassend Speichern erster Daten, die die Aktion darstellen, in Verbindung mit zweiten Daten, die einen Zustand darstellen, der durch mindestens einen Teil der ersten Eingabedaten beschrieben wird.
  3. Verfahren nach Anspruch 2, ferner umfassend: Bestimmen der zweiten Daten zumindest teilweise basierend auf den Absichtsdaten, wobei die zweiten Daten einen Zustand angeben, der in der ersten deklarativen Aussage in natürlicher Sprache beschrieben ist; Erzeugen dritter Daten durch ein erstes maschinelles Lernmodell zumindest teilweise basierend auf den zweiten Daten, wobei die dritten Daten ein vorhergesagtes Ziel der ersten deklarativen Aussage in natürlicher Sprache darstellen; und Erzeugen einer vorhergesagten Aktion durch ein zweites maschinelles Lernmodell zumindest teilweise basierend auf den dritten Daten, wobei die vorhergesagte Aktion eine Aktion ist, die mit dem vorhergesagten Ziel assoziiert ist.
  4. Verfahren nach Anspruch 2 oder 3, ferner umfassend: Empfangen dritter Eingabedaten, wobei die dritten Eingabedaten eine andere Aktion anfordern; und Speichern erster Daten, die die andere Aktion darstellen, in Verbindung mit den zweiten Daten zumindest teilweise basierend auf den dritten Eingabedaten.
  5. Verfahren nach einem der Ansprüche 1 bis 3, ferner umfassend: Speichern erster Daten, die die Aktion darstellen, in Verbindung mit zweiten Daten, die einen ersten Zustand darstellen, wobei der erste Zustand eine erste Bedingung ist, die durch mindestens einen Teil der ersten deklarativen Aussage in natürlicher Sprache beschrieben wird; Empfangen dritter Eingabedaten, die eine zweite deklarative Aussage in natürlicher Sprache darstellen, die sich von der ersten deklarativen Aussage in natürlicher Sprache unterscheidet; Bestimmen, dass die dritten Eingabedaten den Absichtsdaten entsprechen; Bestimmen vierter Daten, die einen zweiten Zustand darstellen, wobei der zweite Zustand eine zweite Bedingung ist, die durch mindestens einen Teil der zweiten deklarativen Aussage in natürlicher Sprache beschrieben wird; Bestimmen, dass der zweite Zustand dem ersten Zustand entspricht; Abrufen der ersten Daten, die die Aktion darstellen; und Erzeugen einer Aufforderung in natürlicher Sprache als Ausgabedaten, wobei die Aufforderung in natürlicher Sprache eine Aufforderung zum Ausführen der Aktion darstellt.
  6. Verfahren nach Anspruch 1, ferner umfassend: Speichern erster Daten, die die Aktion darstellen, in Verbindung mit zweiten Daten, die einen ersten Zustand darstellen, wobei der erste Zustand eine erste Bedingung ist, die durch mindestens einen Teil der ersten deklarativen Aussage in natürlicher Sprache beschrieben wird; Bestimmen einer vorhergesagten Aktion durch ein maschinelles Lernmodell unter Verwendung der zweiten Daten; Erzeugen zweiter Ausgabedaten, die eine Aufforderung darstellen, die anfragt, ob die vorhergesagte Aktion ausgeführt werden soll; und Empfangen dritter Eingabedaten, die angeben, dass die Aktion ausgeführt werden soll, wobei die Aktion sich von der vorhergesagten Aktion unterscheidet, wobei das Speichern der ersten Daten, die die Aktion darstellen, zumindest teilweise basierend auf den dritten Eingabedaten durchgeführt wird.
  7. Verfahren nach Anspruch 1, ferner umfassend: Empfangen erster Daten, die einen Kontext der ersten Eingabedaten beschreiben; Bestimmen einer ersten Domäne, die mit den ersten Eingabedaten assoziiert ist, zumindest teilweise basierend auf den ersten Daten; und Bestimmen der Absichtsdaten aus Absichten, die mit der ersten Domäne assoziiert sind.
  8. Verfahren nach Anspruch 1, ferner umfassend: Empfangen von Metadaten, die ein Konto angeben, das mit den ersten Eingabedaten assoziiert ist; Bestimmen mindestens einer Adresse in Speicher, die mit dem Konto assoziiert ist; und Speichern erster Daten, die die Aktion darstellen, in Verbindung mit zweiten Daten, die die deklarative Aussage darstellen, an der mindestens einen Adresse im Speicher.
  9. Verfahren nach Anspruch 1, ferner umfassend: Speichern erster Daten, die die Aktion darstellen, in Verbindung mit zweiten Daten, die einen ersten Zustand darstellen, der durch mindestens einen Teil der ersten Eingabedaten beschrieben wird, wobei der erste Zustand eine erste Bedingung einer Umgebung beschreibt; Empfangen dritter Eingabedaten; Bestimmen dritter Daten, die einen zweiten Zustand darstellen, der durch mindestens einen Teil der zweiten Eingabe in natürlicher Sprache beschrieben wird, wobei der zweite Zustand eine zweite Bedingung der Umgebung beschreibt; Bestimmen, dass der erste Zustand dem zweiten Zustand entspricht; Speichern der dritten Daten in Verbindung mit der Aktion und den zweiten Daten.
  10. System, umfassend: mindestens einen Prozessor; und mindestens einen nichtflüchtigen computerlesbaren Speicher, der Anweisungen speichert, die bei Ausführung durch den mindestens einen Prozessor wirksam sind, den mindestens einen Prozessor zu programmieren zum: Empfangen erster Eingabedaten, die eine erste deklarative Aussage in natürlicher Sprache darstellen; Bestimmen, dass die ersten Eingabedaten Absichtsdaten entsprechen; Erzeugen von Ausgabedaten, die eine Klärungsanforderung darstellen, zumindest teilweise basierend auf den ersten Eingabedaten, die eine deklarative Aussage darstellen; Empfangen zweiter Eingabedaten, die eine Antwort auf die Klärungsanforderung darstellen; und Bestimmen einer Aktion, die vom ersten Benutzer für die erste Eingabe in natürlicher Sprache beabsichtigt ist, zumindest teilweise basierend auf den zweiten Eingabedaten und den ersten Eingabedaten.
  11. System nach Anspruch 10, wobei der mindestens eine nichtflüchtige computerlesbare Speicher weitere Anweisungen speichert, die bei Ausführung durch den mindestens einen Prozessor ferner wirksam sind, den mindestens einen Prozessor zu programmieren zum: Speichern erster Daten, die die Aktion darstellen, in Verbindung mit zweiten Daten, die einen Zustand darstellen, der durch mindestens einen Teil der ersten Eingabedaten beschrieben wird, in dem mindestens einen nichtflüchtigen computerlesbaren Speicher.
  12. System nach Anspruch 11, wobei der mindestens eine nichtflüchtige computerlesbare Speicher weitere Anweisungen speichert, die bei Ausführung durch den mindestens einen Prozessor ferner wirksam sind, den mindestens einen Prozessor zu programmieren zum: Bestimmen der zweiten Daten zumindest teilweise basierend auf den Absichtsdaten, wobei die zweiten Daten einen Zustand angeben, der in der ersten deklarativen Aussage in natürlicher Sprache beschrieben ist; Erzeugen dritter Daten durch ein erstes maschinelles Lernmodell zumindest teilweise basierend auf den zweiten Daten, wobei die dritten Daten ein vorhergesagtes Ziel der ersten deklarativen Aussage in natürlicher Sprache darstellen; und Erzeugen einer vorhergesagten Aktion durch ein zweites maschinelles Lernmodell zumindest teilweise basierend auf den dritten Daten, wobei die vorhergesagte Aktion eine Aktion ist, die mit dem vorhergesagten Ziel assoziiert ist.
  13. System nach Anspruch 11 oder 12, wobei der mindestens eine nichtflüchtige computerlesbare Speicher weitere Anweisungen speichert, die bei Ausführung durch den mindestens einen Prozessor ferner wirksam sind, den mindestens einen Prozessor zu programmieren zum: Empfangen dritter Eingabedaten, wobei die dritten Eingabedaten eine andere Aktion anfordern; Speichern erster Daten, die die andere Aktion darstellen, in Verbindung mit den zweiten Daten zumindest teilweise basierend auf den dritten Eingabedaten.
  14. System nach einem der Ansprüche 10 bis 12, wobei der mindestens eine nichtflüchtige computerlesbare Speicher weitere Anweisungen speichert, die bei Ausführung durch den mindestens einen Prozessor ferner wirksam sind, den mindestens einen Prozessor zu programmieren zum: Speichern erster Daten, die die Aktion darstellen, in Verbindung mit zweiten Daten, die einen ersten Zustand darstellen, wobei der erste Zustand eine erste Bedingung ist, die durch mindestens einen Teil der ersten deklarativen Aussage in natürlicher Sprache beschrieben wird; Empfangen dritter Eingabedaten, die eine zweite deklarative Aussage in natürlicher Sprache darstellen, die sich von der ersten deklarativen Aussage in natürlicher Sprache unterscheidet; Bestimmen, dass die dritten Eingabedaten den Absichtsdaten entsprechen; Bestimmen vierter Daten, die einen zweiten Zustand darstellen, wobei der zweite Zustand eine zweite Bedingung ist, die durch mindestens einen Teil der zweiten deklarativen Aussage in natürlicher Sprache beschrieben wird; Bestimmen, dass der zweite Zustand dem ersten Zustand entspricht; Abrufen der ersten Daten, die die Aktion darstellen; und Erzeugen einer Aufforderung in natürlicher Sprache als Ausgabedaten, wobei die Aufforderung in natürlicher Sprache eine Aufforderung zum Ausführen der Aktion darstellt.
  15. System nach Anspruch 10, wobei der mindestens eine nichtflüchtige computerlesbare Speicher weitere Anweisungen speichert, die bei Ausführung durch den mindestens einen Prozessor ferner wirksam sind, den mindestens einen Prozessor zu programmieren zum: Speichern erster Daten, die die Aktion darstellen, in Verbindung mit zweiten Daten, die einen ersten Zustand darstellen, wobei der erste Zustand eine erste Bedingung ist, die durch mindestens einen Teil der ersten deklarativen Aussage in natürlicher Sprache beschrieben wird; Bestimmen einer vorhergesagten Aktion durch ein maschinelles Lernmodell unter Verwendung der zweiten Daten; Erzeugen zweiter Ausgabedaten, die eine Aufforderung darstellen, die anfragt, ob die vorhergesagte Aktion ausgeführt werden soll; und Empfangen dritter Eingabedaten, die angeben, dass die Aktion ausgeführt werden soll, wobei die Aktion sich von der vorhergesagten Aktion unterscheidet, wobei das Speichern der ersten Daten, die die Aktion darstellen, zumindest teilweise basierend auf den dritten Eingabedaten durchgeführt wird.
DE112021003407.3T 2020-06-22 2021-05-24 Verarbeitung natürlicher sprache Pending DE112021003407T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/907,680 US12008985B2 (en) 2020-06-22 Natural language processing of declarative statements
US16/907,680 2020-06-22
PCT/US2021/033877 WO2021262365A1 (en) 2020-06-22 2021-05-24 Natural language processing

Publications (1)

Publication Number Publication Date
DE112021003407T5 true DE112021003407T5 (de) 2023-04-20

Family

ID=76624142

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112021003407.3T Pending DE112021003407T5 (de) 2020-06-22 2021-05-24 Verarbeitung natürlicher sprache

Country Status (4)

Country Link
CN (1) CN115917641A (de)
DE (1) DE112021003407T5 (de)
GB (1) GB2611243A (de)
WO (1) WO2021262365A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116644218B (zh) * 2023-07-26 2023-11-21 成都华栖云科技有限公司 一种线上线下融合的教学空间数据采集与存储方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102453603B1 (ko) * 2015-11-10 2022-10-12 삼성전자주식회사 전자 장치 및 그 제어 방법
KR20180118461A (ko) * 2017-04-21 2018-10-31 엘지전자 주식회사 음성 인식 장치 및 음성 인식 방법

Also Published As

Publication number Publication date
US20210398524A1 (en) 2021-12-23
CN115917641A (zh) 2023-04-04
WO2021262365A1 (en) 2021-12-30
GB2611243A (en) 2023-03-29
GB202219306D0 (en) 2023-02-01

Similar Documents

Publication Publication Date Title
CN111033492B (zh) 为自动化助手提供命令束建议
EP3639156B1 (de) Export von dialoggesteuerten anwendungen für digitale kommunikationsplattformen
EP3545427B1 (de) Verfahren zur entwicklung von dialoggesteuerten anwendungen
EP3513324B1 (de) Computerisierte absendung eines abfrageversuchs in natürlicher sprache
CN107112013B (zh) 用于创建可定制对话系统引擎的平台
US9898170B2 (en) Establishing user specified interaction modes in a question answering dialogue
CN113168305B (zh) 通过预测用户响应来加快与数字助理的交互
US20180143857A1 (en) Back-end task fulfillment for dialog-driven applications
US20110153322A1 (en) Dialog management system and method for processing information-seeking dialogue
KR20180070684A (ko) 다이얼로그 시스템들에서의 파라미터 수집 및 자동 다이얼로그 생성
CN108780444B (zh) 可扩展设备和依赖于域的自然语言理解
DE102012019178A1 (de) Verwendung von Kontextinformationen zum Erleichtern der Verarbeitung von Befehlen bei einem virtuellen Assistenten
US10825446B2 (en) Training artificial intelligence to respond to user utterances
DE112021003943T5 (de) Sprachantwortsysteme auf Grundlage eines personalisierten Wortschatzes und einer Benutzerprofilerstellung - Personalisierte linguistische KI-Engines
DE112021003407T5 (de) Verarbeitung natürlicher sprache
DE112021005050T5 (de) Zugriffsberechtigungsprüfung in systemen mit künstlicher intelligenz
US11978437B1 (en) Natural language processing
KR20220040997A (ko) 전자 장치 및 그 제어 방법
US11023470B2 (en) Voice response system for text presentation
US12008985B2 (en) Natural language processing of declarative statements
US11847424B1 (en) Natural language generation
US11600260B1 (en) Utterance generation and evaluation
US20240194194A1 (en) Synthesis of personalized conversational automation agents

Legal Events

Date Code Title Description
R012 Request for examination validly filed