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