-
HINTERGRUND
-
1. Gebiet der Erfindung
-
Diese Erfindung betrifft allgemein die durch die Ontologie veranlasste Verarbeitung natürlicher Sprache (natural language processing (NLP)) und genauer das Bereitstellen einer Kontextüberprüfung von Synonymen bei einer durch die Ontologie veranlassten NLP.
-
2. Beschreibung des Standes der Technik
-
Ein verbreitetes Problem bei Text in natürlicher Sprache stellt die Unterspezifizierung dar. Wenn zum Beispiel Menschen miteinander sprechen, gibt es einen gemeinsamen Kontext, der ein Verständnis von kontextspezifischen Wörtern und Sätzen ermöglicht. Wenn ein Benutzer mit einem Expertensystem interagiert, ist ebenfalls ein gemeinsamer Kontext erwünscht. Es ist jedoch manchmal aufgrund von Unterspezifizierung und dem Mangel an gemeinsamem Kontext für einen Computer schwierig, Sprache zu verstehen.
-
Derzeit kann NLP verwendet werden, um verbesserte Online-Frage-Antwort-Dienste zu erzielen. NLP stellt eine Technologie bereit, die versucht, die syntaktische Struktur einer Sprache zu verstehen und zu identifizieren. Zum Beispiel wurde NLP verwendet, um die Sprachteile eines oder mehrerer Ausdrücke in einem übermittelten Satz zu identifizieren, um die Verwendung von Sätzen als Abfrage von Daten in natürlicher Sprache zu unterstützen. Systeme, die NLP verwenden, um Abfragen von Daten zu analysieren (parse) und zu verarbeiten, können jedoch unter Leistungsproblemen aufgrund von Unklarheiten von Schlüsselwörtern leiden, selbst wenn die Daten hoch strukturiert sind.
-
Eine durch die Ontologie veranlasste NLP analysiert Text in natürlicher Sprache und überträgt ihn in eine Darstellung seiner Bedeutung, die um Ereignisse und deren Teilnehmer herum strukturiert ist. Abfragen können dann im Voraus mit dieser Bedeutungsdarstellung irgendwelcher der Permutationen verglichen werden, die in dem Text auftauchen. Diese Permutationen können jedoch ebenfalls unter Unterspezifikation leiden, wobei ein geeigneter Kontext angenommen werden muss, um eine Aussage oder Abfrage zu verstehen. Diese Unklarheit bezüglich des angenommenen Kontextes trägt manchmal zu ungenauen und unerwünschten Ergebnissen bei.
-
KURZDARSTELLUNG
-
Im Allgemeinen stellen hierin beschriebene Ausführungsformen Ansätze zum Überprüfen von Synonymen bei einer durch die Ontologie veranlassten Verarbeitung natürlicher Sprache (NLP) bereit. Insbesondere wird ein Ansatz bereitgestellt zum Empfangen einer Benutzereingabe, die ein Token enthält, Strukturieren der Benutzereingabe in ein semantisches Modell, das einen Satz von Klassen aufweist, von denen jede einen Satz zugehöriger Permutationen des Token enthält, Bezeichnen des Token als ein Synonym einer des Satzes zugehöriger Permutationen, Versehen des Token mit einer Klasse aus dem Satz von Klassen entsprechend der einen des Satzes zugehöriger Permutationen, und Überprüfen der Anmerkung des Token durch Ermitteln einer Genauigkeit der Bezeichnung des Token als ein Synonym der einen des Satzes zugehöriger Permutationen. In einer Ausführungsform wird die Genauigkeit durch Quantifizieren einer linearen Distanz zwischen dem Token und einem auch innerhalb der Benutzereingabe befindlichen Kontexttoken und Vergleichen der linearen Distanz mit einer zuvor angegebenen linearen Distanzgrenze ermittelt.
-
Ein Aspekt der vorliegenden Erfindung enthält ein Verfahren zum Bereitstellen einer Kontextüberprüfung von Synonymen bei einer durch die Ontologie veranlassten Verarbeitung natürlicher Sprache, wobei das Verfahren die computerrealisierten Schritte aufweist: Empfangen einer Benutzereingabe, die ein Token enthält; Strukturieren der Benutzereingabe in ein semantisches Modell, das einen Satz von Klassen aufweist, von denen jede einen Satz zugehöriger Permutationen des Token enthält; Bezeichnen des Token als ein Synonym einer des Satzes zugehöriger Permutationen; Versehen des Token mit einer Anmerkung einer Klasse aus dem Satz von Klassen entsprechend der einen des Satzes zugehöriger Permutationen; und Überprüfen der Anmerkung des Token durch Ermitteln einer Genauigkeit der Bezeichnung des Token als ein Synonym der einen des Satzes zugehöriger Permutationen.
-
Ein weiterer Aspekt der vorliegenden Erfindung stellt ein System zum Bereitstellen einer Kontextüberprüfung von Synonymen bei einer durch die Ontologie veranlassten Verarbeitung natürlicher Sprache (NLP) bereit, wobei das System aufweist: ein Speichermedium, das Anweisungen aufweist; einen mit dem Speichermedium verbundenen Bus; und einen über den Bus mit einer NLP-Engine verbundenen Prozessor, der bei Ausführen der Anweisungen das System veranlasst zu: Empfangen einer Benutzereingabe, die ein Token enthält; Strukturieren der Benutzereingabe in ein semantisches Modell, das einen Satz von Klassen aufweist, von denen jede einen Satz zugehöriger Permutationen des Token enthält; Bezeichnen des Token als ein Synonym einer des Satzes zugehöriger Permutationen; Versehen des Token mit einer Anmerkung einer Klasse aus dem Satz von Klassen entsprechend der einen des Satzes zugehöriger Permutationen; und Überprüfen der Anmerkung des Token durch Ermitteln einer Genauigkeit der Bezeichnung des Token als ein Synonym der einen des Satzes zugehöriger Permutationen.
-
Noch ein weiterer Aspekt der vorliegenden Erfindung stellt eine computerlesbare Speichereinheit bereit, die Computeranweisungen speichert, die es bei Ausführen einem Computersystem ermöglicht, eine Kontextüberprüfung von Synonymen bei einer durch die Ontologie veranlassten Verarbeitung natürlicher Sprache bereitzustellen, wobei die Computeranweisungen aufweisen: Empfangen einer Benutzereingabe, die ein Token enthält; Strukturieren der Benutzereingabe in ein semantisches Modell, das einen Satz von Klassen aufweist, von denen jede einen Satz zugehöriger Permutationen des Token enthält; Bezeichnen des Token als ein Synonym einer des Satzes zugehöriger Permutationen; Versehen des Token mit einer Anmerkung einer Klasse aus dem Satz von Klassen entsprechend der einen des Satzes zugehöriger Permutationen; und Überprüfen der Anmerkung des Token durch Ermitteln einer Genauigkeit der Bezeichnung des Token als ein Synonym der einen des Satzes zugehöriger Permutationen.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
1 zeigt ein Schema einer beispielhaften Computerumgebung gemäß veranschaulichenden Ausführungsformen;
-
2 zeigt ein Schema einer beispielhaften NLP-Engine und ihre Realisierung gemäß veranschaulichenden Ausführungsformen;
-
3 zeigt einen Satz beispielhafter, ein oder mehrere Tokens enthaltender Benutzereingaben gemäß veranschaulichenden Ausführungsformen;
-
4 zeigt ein semantisches Modell gemäß veranschaulichenden Ausführungsformen;
-
5 zeigt ein restrukturiertes semantisches Modell gemäß veranschaulichenden Ausführungsformen; und
-
6 zeigt einen Prozessfluss zum Bereitstellen einer Kontextüberprüfung von Synonymen bei einer durch die Ontologie veranlassten Verarbeitung natürlicher Sprache gemäß veranschaulichenden Ausführungsformen.
-
Die Zeichnungen sind nicht notwendigerweise maßstäblich. Die Zeichnungen sind lediglich Darstellungen und nicht als spezifische Parameter der Erfindung wiedergebend gedacht. Die Zeichnungen sollen nur typische Ausführungsformen der Erfindung abbilden und sollten daher nicht als den Umfang einschränkend angesehen werden. In den Zeichnungen stehen gleiche Bezugszeichen für gleiche Elemente.
-
DETAILLIERTE BESCHREIBUNG
-
Die Erfindung wird hierin nun vollständiger unter Bezugnahme auf die begleitenden Zeichnungen beschrieben, in denen beispielhafte Ausführungsformen gezeigt sind.
-
Diese Offenbarung kann in vielen unterschiedlichen Formen ausgebildet sein und sollte nicht als auf die hierin dargelegten beispielhaften Ausführungsformen beschränkt angesehen werden. Vielmehr werden diese beispielhaften Ausführungsformen bereitgestellt, damit diese Offenbarung sorgfältig und vollständig ist und sie dem Fachmann den Umfang dieser Offenbarung vollständig vermittelt. In der Beschreibung können Einzelheiten allgemein bekannter Merkmale und Techniken weggelassen sein, um ein unnötiges Verschleiern der vorgelegten Ausführungsformen zu vermeiden. Wenn im Rahmen dieser Beschreibung auf „eine Ausführungsform” oder ähnliche Sprache Bezug genommen wird, bedeutet dies, dass ein bestimmtes, in Verbindung mit der Ausführungsform beschriebenes Merkmal, eine bestimmte, in Verbindung mit der Ausführungsform beschriebene Struktur oder ein bestimmtes, in Verbindung mit der Ausführungsform beschriebenes Charakteristikum in mindestens einer Ausführungsform der vorliegenden Erfindung enthalten ist. Daher bezieht sich das Auftreten der Ausdrücke „in einer Ausführungsform” und ähnliche Sprache im Rahmen dieser Beschreibung nicht notwendigerweise immer auf dieselbe Ausführungsform.
-
Die hierin verwendete Terminologie dient des Weiteren lediglich dem Zwecke des Beschreibens besonderer Ausführungsformen und ist nicht als diese Offenbarung einschränkend aufzufassen. Die hierin verwendeten Singularformen „ein”, „eine” und „der”, „die”, „das” sowie deren Deklinationen sollen ebenso die Pluralformen einschließen, es sei denn dies ist im Kontext deutlich anders angegeben. Des Weiteren bezeichnet die Verwendung der Begriffe „ein”, „eine”, einer” usw. und deren Deklinationen keine Einschränkung der Menge, sondern vielmehr das Vorhandensein mindestens eines der angegebenen Elemente. Es versteht sich weiterhin, dass die Begriffe „aufweist” und/oder „aufweisend” oder „enthält” und/oder „enthaltend” bei Verwendung in dieser Beschreibung das Vorhandensein von angegebenen Merkmalen, Bereichen, ganzen Zahlen, Schritten, Vorgängen, Elementen und/oder Komponenten angeben, jedoch nicht das Vorhandensein oder Hinzufügen eines oder mehrerer weiterer Merkmale, Bereiche, ganzer Zahlen, Schritte, Vorgänge, Elemente, Komponenten und/oder Gruppen davon ausschließen.
-
Soweit nicht anders angegeben, kann davon ausgegangen werden, dass sich Begriffe wie beispielsweise „verarbeiten”, „berechnen”, „ermitteln”, „bewerten” oder Ähnliches auf die Aktionen und/oder Prozesse eines Computers oder Computersystems oder einer ähnlichen elektronischen Rechenzentrumseinheit beziehen, die als physikalische Mengen (z. B. Elektronik) innerhalb der Register und/oder Speicher des Computersystems wiedergegebene Daten bearbeitet oder in andere gleichermaßen als physikalische Mengen innerhalb der Speicher, Register oder anderen solchen Einheiten zur Informationsspeicherung, -übertragung oder -anzeige wiedergegebene Daten umwandelt. Die Ausführungsformen sind in diesem Kontext nicht beschränkt.
-
Bei Verwendung in dieser Anmeldung wird das Wort „beispielhaft„ in der Bedeutung von als ein Beispiel, ein Fall oder eine Veranschaulichung dienend verwendet. Nicht jede/r hierin als „beispielhaft” beschriebene Aspekt oder Gestaltung ist notwendigerweise als bevorzugt oder vorteilhaft gegenüber anderen Aspekten oder Gestaltungen anzusehen. Vielmehr soll die Verwendung des Wortes „beispielhaft” Konzepte auf eine konkrete Weise vorstellen.
-
Wie vorstehend erwähnt, stellen hierin beschriebene Ausführungsformen Ansätze zum Überprüfen von Synonymen bei einer durch die Ontologie veranlassten NLP bereit. Insbesondere wird ein Ansatz bereitgestellt zum Empfangen einer Benutzereingabe, die ein Token enthält, Strukturieren der Benutzereingabe in ein semantisches Modell, das einen Satz von Klassen aufweist, von denen jede einen Satz zugehöriger Permutationen des Token enthält, Bezeichnen des Token als ein Synonym einer des Satzes zugehöriger Permutationen, Versehen des Token mit einer Anmerkung einer Klasse aus dem Satz von Klassen entsprechend der einen des Satzes zugehöriger Permutationen und Überprüfen der Anmerkung des Token durch Ermitteln einer Genauigkeit der Bezeichnung des Token als ein Synonym der einen des Satzes zugehöriger Permutationen. In einer Ausführungsform wird die Genauigkeit durch Quantifizieren einer linearen Distanz zwischen dem Token und einem auch innerhalb der Benutzereingabe befindlichen Kontexttoken und Vergleichen der linearen Distanz mit einer zuvor angegebenen linearen Distanzgrenze ermittelt. Als ein Ergebnis können geeignete semantische ontologische Begriffe zum Anreichern einer Suchabfrage unter Verwendung eines semantischen Anmerkungsformulars identifiziert werden, um zum Auflösen von Unklarheit ontologischer Begriffe beizutragen und das Vertrauensniveau in die ontologischen Schlüsselbegriffe zu erhöhen.
-
Unter Bezugnahme auf 1 wird nun eine Computerrealisierung 100 der vorliegenden Erfindung detaillierter beschrieben. Wie abgebildet, enthält die Realisierung 100 eine Computerinfrastruktur 102 mit einem darin bereitgestellten Computersystem 104. Dies soll unter anderem demonstrieren, dass die vorliegende Erfindung innerhalb einer Netzwerkumgebung (zum Beispiel dem Internet, einem Weitverkehrsnetzwerk (wide area network (WAN)), einem lokalen Netzwerk (local area network (LAN)), einem virtuellen privaten Netzwerk (virtual private network (VPN)) usw.), einer Cloud-Computing-Umgebung oder einem eigenständigen Computersystem realisiert werden könnte. Die Datenübertragung über das Netzwerk kann über jede beliebige Kombination vielfältiger Typen von Datenübertragungsverbindungen erfolgen. Zum Beispiel können die Datenübertragungsverbindungen adressierbare Verbindungen aufweisen, die jede beliebige Kombination von kabelgebundenen und/oder kabellosen Übertragungsverfahren nutzen können. Wenn die Datenübertragung über das Internet erfolgt, könnte die Konnektivität durch das herkömmliche socketgestützte TCP/IP-Protokoll bereitgestellt werden, und ein Internetanbieter könnte genutzt werden, um die Konnektivität mit dem Internet herzustellen. Weiterhin soll die Computerinfrastruktur 102 demonstrieren, dass manche oder alle der Komponenten der Realisierung 100 durch einen Dienstanbieter bereitgestellt, verwaltet, bedient usw. werden könnten, der anbietet, die Funktionen der vorliegenden Erfindung für Andere zu realisieren, bereitzustellen und/oder durchzuführen.
-
Das Computersystem 104 soll jeden beliebigen Typ von Computersystem wiedergeben, der beim Bereitstellen/Verwirklichen der hierin angegebenen Lehren realisiert werden kann. In diesem speziellen Beispiel steht das Computersystem 104 für ein veranschaulichendes System zum Bereitstellen einer Kontextüberprüfung von Synonymen bei einer durch die Ontologie veranlassten Verarbeitung natürlicher Sprache. Es versteht sich, dass alle anderen unter der vorliegenden Erfindung realisierten Computer unterschiedliche Computer/Software besitzen können, jedoch ähnliche Funktionen ausführen werden. Wie gezeigt, enthält das Computersystem 104 eine Verarbeitungseinheit 106, die in der Lage ist, mit einer in einem Arbeitsspeicher 108 gespeicherten NLP-Engine 118 Daten auszutauschen, einen Bus 110 und Einheitenschnittstellen 112.
-
Die Verarbeitungseinheit 106 bezieht sich allgemein auf jede Vorrichtung, die logische Operationen, Verarbeitungsaufgaben, Steuerungsfunktionen usw. durchführt. Ein Prozessor kann ein oder mehrere Teilsysteme, eine oder mehrere Komponenten und/oder einen oder mehrere weitere Prozessoren enthalten. Ein Prozessor enthält üblicherweise verschiedene Logikkomponenten, die unter Verwendung eines Taktsignals arbeiten, um Daten in Flipflopschaltungen zu speichern, Logikzustände weiterzuleiten, Berechnungen und Logikoperationen zu synchronisieren und/oder weitere Zeitgeberfunktionen bereitzustellen. Während des Betriebs sammelt die Verarbeitungseinheit 106 Signale, die Eingaben und Ausgaben zwischen externen Einheiten 115 und der NLP-Engine 118 darstellen, und routet sie. Die Signale können über ein LAN und/oder ein WAN (z. B. T1, T3, 56 kb, X.25), Breitbandverbindungen (ISDN, Frame Relay, ATM), kabellose Verbindungen (802.11, Bluetooth usw.), und so weiter übertragen werden. In manchen Ausführungsformen können die Signale zum Beispiel unter Verwendung der Verschlüsselung vertrauenswürdiger Schlüsselpaare (trusted key-pair encryption) verschlüsselt werden. Unterschiedliche Systeme können Informationen unter Verwendung unterschiedlicher Datenübertragungswege übertragen, wie beispielsweise Ethernet oder kabellose Netzwerke, direkte serielle oder parallele Verbindungen, USB, Firewire®, Bluetooth® oder andere proprietäre Schnittstellen. (Firewire ist eine eingetragene Marke von Apple Computer, Inc., Bluetooth ist eine eingetragene Marke der Bluetooth Special Interest Group (SIG)).
-
Im Allgemeinen führt die Verarbeitungseinheit 106 Computerprogrammcode aus, wie beispielsweise Programmcode zum Betreiben der NLP-Engine 118, der im Arbeitsspeicher 108 und/oder in einem Datenspeichersystem 116 gespeichert ist. Während des Ausführens von Computerprogrammcode kann die Verarbeitungseinheit 106 Daten auf den/vom Arbeitsspeicher 108, dem Datenspeichersystem 116 und der NLP-Engine 118 lesen und/oder schreiben. Das Datenspeichersystem 116 kann VCRs, DVRs, RAID-Arrays, USB-Festplattenlaufwerke, optische Plattenrekorder, Flash-Speichereinheiten und/oder jedes andere Datenverarbeitungs- und/oder Datenspeicherelement zum Speichern und/oder Verarbeiten von Daten enthalten. Obwohl nicht gezeigt, kann das Computersystem 104 zudem E/A-Schnittstellen enthalten, die mit einer oder mehreren externen Einheiten 115 (z. B. einer Tastatur, einer Zeigeeinrichtung, einer Anzeige usw.) Daten austauschen, welche die Interaktion mit dem Computersystem 104 durch einen Benutzer ermöglichen.
-
Unter Bezugnahme auf 2 wird nun die Arbeitsweise einer NLP-Engine 218 detaillierter beschrieben. Wie gezeigt, handelt es sich bei 2 um ein Blockschaubild, das ein System 200 veranschaulicht, das zum Realisieren der NLP-Engine 218 verwendet werden kann. Das System 200 stellt die Komponenten bereit, die zum Bereitstellen einer Kontextüberprüfung von Synonymen bei einer durch die Ontologie veranlassten NLP notwendig sind. In der Verwendung hierin bezieht sich die durch die Ontologie veranlasste NLP auf die Verwendung eines semantischen Modells, um zu verstehen, was in unstrukturierten Daten vorhanden ist. Während des Betriebs analysiert die durch die Ontologie veranlasste NLP Text in natürlicher Sprache einer Eingabe 222 von einem Benutzer 224 und überträgt ihn in eine Darstellung seiner Bedeutung, strukturiert um Ereignisse und deren Teilnehmer, wie im Text erwähnt und einem semantischen Modell 228 (z. B. einem Ontologiemodell) bekannt ist.
-
In einer beispielhaften Ausführungsform weist die Eingabe 222 elektronischen Text auf, der als eine lineare Sequenz von Symbolen (z. B. Zeichen, Wörter oder Sätze) strukturiert ist. Bevor eine Verarbeitung der Eingabe 222 vorgenommen wird, muss der Text in ein oder mehrere Tokens 230 segmentiert werden, bei denen es sich um sprachliche Einheiten handelt, wie beispielsweise Wörter, Zeichensetzung, alphanumerische Zeichen usw. Die Erzeugung des Token 230 stellt eine Art von Vorverarbeitung dar, mittels derer grundlegende zu verarbeitende Einheiten identifiziert werden. In einer Ausführungsform kann das Token 230 durch eine Zeichenkette oder ein Wort definiert sein, die oder das auf beiden Seiten durch Leerzeichen oder Zeichensetzung begrenzt ist, während in einer weiteren Ausführungsform das Token 230 als etwas sprachlich Signifikantes oder methodologisch Nützliches definiert sein kann.
-
Nachdem die das Token 230 enthaltende Eingabe 222 bei der NLP-Engine 218 empfangen wurde, wird sie in das semantische Modell 228 strukturiert, welches einen Satz von Klassen 232 und 234 (z. B. Datensätze) aufweist, von denen jede einen Satz zugehöriger Permutationen 238A bis N und 240A bis N (z. B. Mitglieder der Klasse als Instanzdaten) des Token 230 aufweist (was in 4 klarer gezeigt und nachstehend detaillierter beschrieben wird). Das Token 230 wird dann als Synonym einer der zugehörigen Permutationen 238A bis N oder 240A bis N bezeichnet, und das Token 230 wird mit einer Anmerkung 244 (z. B. einer Kontext bereitstellenden semantischen Kennzeichnung) versehen, die entsprechend der zugehörigen Permutation entweder die Klasse 232 oder 234 aufweist, die ein Synonym zum Token 230 darstellt. Wenn zum Beispiel das Token 230 als ein Synonym für eine der zugehörigen Permutationen 238A bis N festgelegt ist, wird die Klasse 232 als die Anmerkung 244 ausgegeben. Wenn im Gegensatz dazu das Token 230 als ein Synonym für eine der zugehörigen Permutationen 240A bis N festgelegt ist, wird die Klasse 234 als Anmerkung 244 ausgegeben. Die Anmerkung 244 wird dann überprüft, wie nachstehend detaillierter beschrieben wird, indem eine Genauigkeit der Bezeichnung 244 des Token 230 als ein Synonym der ausgewählten Permutation aus den zugehörigen Permutationen 238A bis N und 240A bis N ermittelt wird.
-
Unter Bezugnahme auf 3 wird nun ein Satz beispielhafter Eingaben und Tokens gezeigt. In einem ersten Beispiel handelt es sich bei einer Eingabe 322A um eine Textaussage „For receivers, I want 4 of the 1000 line.” (Was Receiver angeht, möchte ich vier der 1000er Reihe). Hier können die Eingabe 322A und insbesondere die Zahl 1000 etwas unklar sein, so dass es wünschenswert ist, dieser Zahl Kontext und Verständnis hinzuzufügen. Daher wird die Zahl 1000, die einem Token 330 entspricht, mit einer Anmerkung 344 kombiniert, wie in den Eingaben 322B bzw. 322C gezeigt ist.
-
Die Anmerkung 344 wird dem Token 330 durch die NLP-Engine 218 (2) hinzugefügt, die durch ein in 4 gezeigtes semantisches Modell 428 betrieben wird. In einer Ausführungsform handelt es sich bei dem semantischen Modell 428 um ein Ontologiemodell, das Klassen (z. B. Entitäten) und Prädikate (z. B. Beziehungen) enthält. Bei Ontologieklassen handelt es sich um Datensätze, und sie können Mitglieder enthalten (z. B. Instanzdaten, die Permutationen des Token entsprechen). Das semantische Modell 428 ermöglicht es Benutzern, auf eine natürlichere Weise Fragen darüber zu stellen, was in einem modellierten System geschieht. Das semantische Modell 428 kann als funktionaler Kern einer Anwendung eingesetzt werden, um ein navigierbares Modell von Daten und zugeordneten Beziehungen bereitzustellen, die Wissen in einer Zieldomäne darstellen.
-
Ein wichtiger Nutzen des semantischen Modells 428 liegt darin, Zugang zu Informationen in Kontext der realen Welt auf eine konsistente Weise bereitzustellen. In dieser Ausführungsform stehen die im semantischen Modell 428 gezeigten Anmerkungen 344 „Product” (Produkt) und „Number” (Zahl) für Ontologieklassen 432 bzw. 434. Ein erster Satz von Permutationen 438A bis N (z. B. „Digital Receiver 1000, Digital Receiver, Receiver, 1000”) und ein zweiter Satz von Permutationen 440 eines Token 430 stehen für Instanzdaten (d. h. Mitglieder jeder Ontologieklasse 432 und 434). Wie gezeigt, bezeichnet das semantische Modell 428 das Token 430 unter Verwendung einer Beziehung 460 (d. h. „hasSynonym” (hat Synonym)) als ein Synonym von „Digital Receiver 1000”. Während des Betriebs verwendet die NLP-Engine die im semantischen Modell 428 enthaltenen Instanzdaten, und wenn die Instanzdaten in einer Benutzereingabe gefunden werden, wird die Klasse, welche die Instanzdaten enthält, als die semantische Anmerkung verwendet.
-
Nachdem die Anmerkung durchgeführt wurde, wird sie überprüft, indem eine Genauigkeit der Bezeichnung des Token als ein Synonym der ausgewählten zugehörigen Permutation ermittelt wird. Wie in 5 gezeigt, wird eine weitere Beziehung 562 berücksichtigt (d. h. „requiresContext” (erfordert Kontext)), und die Ontologie wird so restrukturiert, dass sie eine Wissensstruktur 564 enthält. Im Allgemeinen handelt es sich bei der Wissensstruktur 564 um eine Zusammensetzung von Entitäten, Beziehungstypen, Tripeln, Elementtypen und Wissensobjekten. In der Wissensstruktur 564 werden Konzepte, Beziehungstypen, Elementtypen, Wissensobjekte und Tripel selbst allesamt als Entitäten bezeichnet und können alle über ein Tripel mit einer anderen Entität verbunden sein. Im Falle, dass Tripel als Entitäten betrachtet werden und an Tripeln teilhaben, ist dies allgemein als „Konkretion” („reification”) von Tripeln bekannt.
-
In der gezeigten beispielhaften Ausführungsform enthält die Wissensstruktur 564 ein Kontexttoken 566 (d. h. „Receiver”), eine als eine Beziehung 570 zwischen einem Token 530 und dem Kontexttoken 566 innerhalb einer Benutzereingabe 522 dargestellte lineare Distanz und die Bezeichnung des Token 530 als ein Synonym der ausgewählten zugehörigen Permutation „Digital Receiver 1000”. In diesem Fall handelt es sich bei der Beziehung 570 um eine zuvor festgelegte lineare Distanzgrenze, die benutzerdefiniert sein kann und hier durch „hasKlimit 5” (hat Kgrenze 5) dargestellt wird. Dies impliziert die Verwendung von „1000” als ein Synonym für „Digital Receiver 1000”, nur wenn das Token „Receiver” andernorts in der Benutzereingabe auftritt, d. h. innerhalb von 5 Wörtern.
-
Es ist ersichtlich, dass das Format der Wissensstruktur 564 als ein „konkretisiertes” Tripel strukturiert ist, um eine Art bereitzustellen, Kontext gegenüber einer vorhandenen Beziehung auszudrücken. Das „konkretisierte” Tripelformat der Wissensstruktur 564 stellt eine Kontextüberprüfung einer Beziehung 560 (d. h. „hasSynonym”) des Token 530 als das Synonym der zugehörigen Permutation „Digital Receiver 1000” auf der Grundlage der linearen Distanzbeziehung 570 und der durch das Kontexttoken 566 eingeführten Beziehung 562 dar. Das heißt, die Wissensstruktur 564 vergleicht die lineare Distanz zwischen dem Kontexttoken 566 und dem Token 530 mit der linearen Distanzgrenze. Insofern ist der Benutzer in der Lage, die geeignete lineare Distanz für die Überprüfung anzugeben, und er verwendet die benutzerdefinierte geeignete Distanz, um eine Auswirkung von Vertrauensniveaus in der semantischen Anmerkung auszudrücken.
-
In einer Ausführungsform entspricht die lineare Distanz einer Menge von Tokens (z. B. Wörtern) zwischen den zwei Zieltokens in der Benutzereingabe 522, d. h. dem Kontexttoken 566 und dem Token 530. Wie gezeigt, besitzt die lineare Distanz zwischen „Receiver” und „1000” in der Eingabe 522 den Wert 3. Somit bedeutet die K-Grenze von 5, dass die semantische Anmerkung von „Digital Receiver 1000” zulässig ist. Die semantische Anmerkung wird mit dem höchsten Vertrauensniveau angewandt (100%). Wenn der Benutzer jedoch eintippt: „For receivers, I've been looking at a few, but primarily the 1000 line” („Was Receiver angeht, habe ich mir ein paar angesehen, jedoch hauptsächlich die 1000er Reihe”) besitzt die lineare Distanz zwischen „Receiver” und „1000” den Wert 9. Somit bedeutet die K-Grenze von 5, dass die semantische Anmerkung von „Digital Receiver 1000” nicht als zulässig angesehen wird und zumindest ein geringeres Verkauensniveau besitzen wird, das in jeder beliebigen Anzahl von Arten quantifiziert werden kann.
-
Es ist ersichtlich, dass die hierin beschriebenen Ansätze durch das Computersystem 104 (1) ausgeführt werden können, das im allgemeinen Kontext von computerausführbaren Anweisungen beschrieben werden kann, wie beispielsweise durch einen Computer ausgeführte Programmmodule. Allgemein enthalten Programmmodule Routinen, Programme, Menschen, Komponenten, Logik, Datenstrukturen usw., die bestimmte Aufgaben durchführen oder bestimmte abstrakte Datentypen realisieren. Das beispielhafte Computersystem 104 kann in verteilten Cloud-Computing-Umgebungen ausgebildet sein, bei denen Aufgaben durch entfernt angeordnete Verarbeitungseinheiten durchgeführt werden, die über ein Datenübertragungsnetzwerk verbunden sind. In einer verteilten Computerumgebung können sich Programmmodule sowohl in lokalen als auch entfernt angeordneten Computer-Datenspeichermedien einschließlich Arbeitsspeichereinheiten befinden.
-
Die Programmmodule führen die hierin offenbarten Verfahrensweisen aus, wie in 6 gezeigt. Abgebildet ist ein Prozess 600 zum Bereitstellen einer Kontextüberprüfung von Synonymen in einer durch die Ontologie veranlassten Verarbeitung natürlicher Sprache, wobei bei 602 eine ein oder mehrere Tokens enthaltende Benutzereingabe empfangen wird. Bei 604 wird die Benutzereingabe in ein semantisches Modell strukturiert, das einen Satz von Klassen aufweist, von denen jede einen Satz zugehöriger Permutationen des Token enthält. Als Nächstes wird bei 606 das Token als ein Synonym einer des Satzes zugehöriger Permutationen bezeichnet, und das Token wird bei 608 mit einer Anmerkung einer Klasse aus dem Satz von Klassen versehen, die der einen des Satzes zugehöriger Permutationen entspricht. Die Anmerkung wird dann bei 610 überprüft, indem eine Genauigkeit der Bezeichnung des Token als ein Synonym der einen des Satzes zugehörigen Permutationen ermittelt wird. Schließlich wird das semantische Modell bei 612 so restrukturiert, dass es eine Wissensstruktur einschließt, die ein Kontexttoken, eine lineare Distanz zwischen dem Token und dem Kontexttoken und die Bezeichnung des Token als ein Synonym der einen des Satzes zugehöriger Permutationen enthält.
-
Der Ablaufplan von 6 veranschaulicht die Architektur, Funktionalität und die Arbeitsweise möglicher Realisierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In dieser Hinsicht kann jeder Block im Ablaufplan für ein Modul, ein Segment oder einen Codeabschnitt stehen, der eine oder mehrere ausführbare Anweisungen zum Realisieren der angegebenen logischen Funktion(en) aufweist. Es soll zudem angemerkt werden, dass bei einigen alternativen Realisierungen die in den Blöcken angegebenen Funktionen in anderer Reihenfolge als der in den Figuren angegebenen auftreten können. Zum Beispiel können zwei aufeinander folgend gezeigte Blöcke im Wesentlichen gleichzeitig ausgeführt werden. Es wird ebenfalls angemerkt, dass jeder Block des Ablaufplans durch zweckbestimmte hardwaregestützte Systeme oder Kombinationen von zweckbestimmter Hardware und Computeranweisungen realisiert werden kann, welche die angegebenen Funktionen oder Handlungen durchführen.
-
Viele der in dieser Beschreibung beschriebenen Funktionseinheiten wurden als Module bezeichnet, um deren Realisierungsunabhängigkeit besonders zu betonen. Zum Beispiel kann ein Modul als eine Hardware-Schaltung realisiert werden, die benutzerspezifische VLSI-Schaltungen oder -Gatter-Arrays, vorgefertigte Halbleiter wie beispielsweise Logikchips, Transistoren oder weitere einzelne Komponenten aufweist. Ein Modul kann zudem in programmierbaren Hardware-Einheiten wie beispielsweise anwenderprogrammierbaren Gatter-Arrays (field programmable gate arrays), programmierbarer Array-Logik, programmierbaren Logikeinheiten oder Ähnlichem realisiert sein. Module können auch in Software zur Ausführung durch verschiedene Typen von Prozessoren realisiert sein. Ein angegebenes Modul oder eine angegebene Komponente von ausführbarem Code kann zum Beispiel einen oder mehrere physische oder logische Blöcke von Computeranweisungen aufweisen, die zum Beispiel als ein Objekt, eine Prozedur oder eine Funktion aufgebaut sein können. Nichtsdestoweniger müssen die ausführbaren Elemente eines angegebenen Moduls nicht physisch beieinander angeordnet sein, sondern können verteilte, an verschiedenen Orten gespeicherte Anweisungen aufweisen, die bei logischem Zusammenfügen das Modul aufweisen und den angegebenen Zweck für das Modul erreichen.
-
Weiterhin kann es sich bei einem Modul von ausführbarem Code um eine einzige Anweisung oder viele Anweisungen handeln, und es kann sogar über mehrere unterschiedliche Codesegmente, zwischen unterschiedlichen Programmen und über mehrere Speichereinheiten hinweg verteilt sein. Gleichermaßen können hierin innerhalb von Modulen Betriebsdaten angegeben und veranschaulicht und in jeder geeigneten Form ausgebildet und innerhalb jedes geeigneten Typs von Datenstruktur organisiert sein. Die Betriebsdaten können als einzelner Datensatz erfasst oder über unterschiedliche Orte einschließlich über verteilte Datenspeichereinheiten, über verteilte Arbeitsspeichereinheiten hinweg verteilt sein, und sie können zumindest teilweise lediglich als elektronische Signale auf einem System oder Netzwerk vorliegen.
-
Wie weiterhin hierein beschrieben wird, können Module zudem als eine Kombination von Software und einer oder mehreren Hardware-Einheiten realisiert sein. Zum Beispiel kann ein Modul in der Kombination eines auf einer Arbeitsspeichereinheit gespeicherten ausführbaren Software-Codes ausgeführt sein. In noch einem weiteren Beispiel kann es sich bei einem Modul um die Kombination eines Prozessors handeln, der an einem Satz von Betriebsdaten arbeitet. Weiterhin kann ein Modul in der Kombination eines über Übertragungsschaltungen ausgetauschten elektronischen Signals realisiert sein.
-
Wie vorstehend festgehalten, können manche der Ausführungsformen in Hardware ausgeführt sein. Die Hardware kann als ein Hardware-Element referenziert werden. Im Allgemeinen kann sich ein Hardware-Element auf beliebige Hardware-Strukturen beziehen, die angeordnet sind, um gewisse Operationen durchzuführen. In einer Ausführungsform können die Hardware-Elemente zum Beispiel analoge oder digitale elektrische oder elektronische Elemente einbeziehen, die auf einem Substrat hergestellt werden. Die Herstellung kann unter Verwendung von Techniken siliciumgestützter integrierter Schaltungen (silicon-based integrated circuit (IC) techniques) durchgeführt werden, wie beispielsweise komplementäre Metalloxidhalbleiter(complementary metal oxide semiconductor (CMOS))-Techniken sowie bipolare und bipolare CMOS(bipolar CMOS (BiCMOS))-Techniken. Zu Beispielen von Hardware-Elementen können Prozessoren, Mikroprozessoren, Schaltungen, Schaltungselemente (z. B. Transistoren, Widerstände, Kondensatoren, Spulen und so fort), integrierte Schaltungen, anwenderspezifische integrierte Schaltungen (application specific integrated circuits (ASIC)), programmierbare Logikeinheiten (programmable logic devices (PLD)), digitale Signalverarbeiter (digital signal processors (DSP)), anwenderprogrammierbare Gatter-Arrays (field programmable gate array (FPGA)), Logikgatter, Register, Halbleitereinheiten, Chips, Mikrochips, Chipsätze und so fort zählen. Die Ausführungsformen sind in diesem Kontext nicht beschränkt.
-
Wie ebenso vorstehend festgehalten, können manche der Ausführungsformen in Software ausgeführt sein. Die Software kann als ein Software-Element referenziert werden. Im Allgemeinen kann sich ein Software-Element auf beliebige Software-Strukturen beziehen, die angeordnet sind, um gewisse Operationen durchzuführen. In einer Ausführungsform können die Software-Elemente zum Beispiel Programmanweisungen und/oder Daten beinhalten, die zur Ausführung durch ein Hardware-Element angepasst sind, wie beispielsweise einen Prozessor. Programmanweisungen können eine organisierte Liste von Befehlen beinhalten, die Wörter, Werte oder Symbole aufweisen, die in einer vorgegebenen Syntax angeordnet sind, die bei Ausführen einen Prozessor veranlassen kann, einen entsprechenden Satz von Operationen durchzuführen.
-
Zum Beispiel kann eine Realisierung des beispielhaften Computersystems 104 (1) auf einer Form von computerlesbarem Medium gespeichert oder über ein solches übermittelt werden. Bei einem computerlesbaren Medium kann es sich um jedes verfügbare Medium handeln, auf das durch einen Computer zugegriffen werden kann. In beispielhafter Weise und nicht als Einschränkung kann das computerlesbare Medium „Computer-Datenspeichermedien” und „Datenübertragungsmedien” aufweisen.
-
Zu einer „computerlesbaren Datenspeichereinheit” zählen flüchtige und nichtflüchtige, Wechsel- und festinstallierte computerspeicherbare Medien, die in jedem beliebigen Verfahren oder jeder beliebigen Technologie zum Speichern von Informationen realisiert sein können, wie beispielsweise computerlesbare Anweisungen, Datenstrukturen, Programmmodule und andere Daten. Zu Computerdatenspeichereinheiten zählen, ohne auf diese beschränkt zu sein, RAM, ROM, EEPROM, Flash-Speicher oder andere Speichertechnologie, CD-ROM, DVDs (digital versatile disks) oder andere optische Speicher, Magnetkassetten, Magnetband, Magnetplattenspeicher oder andere magnetische Datenspeichereinheiten, oder jedes beliebige andere Medium, das verwendet werden kann, um die gewünschten Informationen zu speichern, und auf das durch einen Computer zugegriffen werden kann.
-
„Datenübertragungsmedien” beinhaltet üblicherweise computerlesbare Anweisungen, Datenstrukturen, Programmmodule oder andere Daten in einem modulierten Datensignal, wie beispielsweise ein Trägersignal oder ein anderer Transportmechanismus. Datenübertragungsmedien schließen zudem jedes beliebige Informationsbereitstellungsmedium ein.
-
Der Begriff „moduliertes Datensignal” bedeutet ein Signal, bei dem eines oder mehrere seiner Charakteristika auf solch eine Weise festgelegt oder geändert werden, dass Informationen im Signal codiert werden. In beispielhafter Weise und nicht als Einschränkung schließen Datenübertagungsmedien kabelgebundene Medien wie beispielsweise ein kabelgebundenes Netzwerk oder eine direktverdrahtete Verbindung sowie kabellose Medien ein, wie beispielsweise akustische, HF-, Infrarot- und weitere kabellose Medien. Kombinationen beliebiger der vorstehenden Elemente sind zudem innerhalb des Umfangs von computerlesbaren Medien enthalten.
-
Es ist ersichtlich, dass ein Ansatz zum Bereitstellen einer Kontextüberprüfung von Synonymen bei einer durch die Ontologie veranlassten Verarbeitung natürlicher Sprache bereitgestellt wurde. Obwohl die Erfindung in Verbindung mit einer bevorzugten Ausführungsform davon besonders gezeigt und beschrieben wurde, wird ersichtlich, dass für den Fachmann Variationen und Modifikationen auftreten. Daher versteht es sich, dass die angehängten Ansprüche alle solchen Modifikationen und Änderungen abdecken sollen, die unter den wahren Geist der Erfindung fallen.