-
Hintergrund
-
Wortvektoren sind eine vorteilhafte Einbettung zur Darstellung von Worten und Wendungen in kontinuierlicher Vektorform. Das Trainieren einer Wortvektoreinbettung mit einer Rechenvorrichtung ist jedoch zeitaufwändig, wobei herkömmliche Techniken, sobald die Einbettung trainiert ist, nicht imstande sind, der Einbettung neue Worte hinzuzufügen. Herkömmliche Techniken, die neue Worte in eine Wortvektoreinbettung aufnehmen, erfordern, dass die gesamte Einbettung neutrainiert wird. Eine derartige Brute-Force-Strategie ist rechentechnisch schwierig und ineffizient. Zusätzlich generiert das Neutrainieren einer Wortvektoreinbettung mit einer Rechenvorrichtung neue Wortvektoren für die bereits beinhalteten Worte und kann nicht sicherstellen, dass vorher berechnete Wortvektoren unverändert bleiben. Das Neutrainieren der gesamten Einbettung und das Ändern vorher berechneter Wortvektoren beeinträchtigen beispielsweise die Funktionalität von die Wortvektoren nutzenden Rechensystemen, so beispielsweise von neuronalen Netzwerken zur Verarbeitung natürlicher Sprache. Herkömmliche Techniken, die sich dem Hinzufügen neuer Worte zu einer Wortvektoreinbettung durch eine Rechenvorrichtung widmen, sind daher ineffizient, unflexibel und verhindern, dass Systeme neue Worte anpassen oder aufnehmen. Dies bewirkt, dass Rechensysteme, die auf einer Wortvektoreinbettung aufgebaut sind, so beispielsweise für natürliche Sprache gegebene Verarbeitungssysteme, genau auf das Vokabular beschränkt sind, das beim anfänglichen Einrichten des Systems benutzt worden ist.
-
Zusammenfassung
-
Beschrieben werden zum Online-Wörterbucherweitern von Wortvektoren vorgesehene Techniken und Systeme, die dafür konfiguriert sind, eine Online-Erweiterung bestehender Wortvektorwörterbücher bereitzustellen, und daher die Unzulänglichkeiten herkömmlicher Techniken überwinden. Bei einem Beispiel wird ein Wörterbucherweiterungssystem von einem Rechensystem eingesetzt, um ein Wörterbuch von Wortvektoren derart online zu erweitern, dass dieses ein neues Wort enthält. Dies erfolgt beispielsweise durch ein für natürliche Sprache gegebenes Verarbeitungssystem einer Rechenvorrichtung, das ein neuronales Netzwerk oder eine andere Technik des maschinellen Lernens nutzt, die entsprechend einem speziellen Vektorraum kalibriert oder initialisiert ist. Durch Bereitstellen einer Online-Erweiterung eines neue Worte enthaltenden Wortvektorwörterbuches ohne Ändern des Vektorraumes kann das für natürliche Sprache gegebene Verarbeitungssystem weiter mit den neuen Wortvektoren arbeiten und diese aufnehmen, ohne vorheriges Training oder vorherige Ergebnisse ungültig oder überflüssig zu machen.
-
Es wird Kookkurrenzinformation von dem Wörterbucherweiterungssystem für das neue Wort in Bezug auf die bestehenden Worte in dem Wörterbuch geschätzt. Dies erfolgt durch Schätzen von Kookkurrenzinformation für einen großen Wortsatz auf Grundlage des bestehenden Wörterbuches und spärlicher Kookkurrenzinformation über einen kleinen Wortsatz. Im Ergebnis wird Kookkurrenzinformation für das neue Wort von dem Wörterbucherweiterungssystem ermittelt, ohne neue Kookkurrenzinformation für das gesamte Wörterbuch zu bestimmen.
-
Das Wörterbucherweiterungssystem nutzt die geschätzte Kookkurrenzinformation, um einen neuen Wortvektor, der dem neuen Wort zugeordnet ist, zu schätzen, indem beispielsweise die geschätzte Kookkurrenzinformation für das neue Wort auf das bestehende Wortvektorwörterbuch projiziert wird. Diese Techniken unterstützen daher das Erzeugen eines neuen Wortvektors, ohne dass dies Auswirkungen auf bestehende Wortvektoren hätte oder den Vektorraum ändern würde. Das Wörterbucherweiterungssystem nutzt den geschätzten neuen Wortvektor zum Erzeugen eines erweiterten Wörterbuches, das das vorherige Wortvektorwörterbuch, das neue Wort und den geschätzten neuen Wortvektor enthält. Dies ermöglicht, dass ein die Wortvektoren nutzendes System das neue Wort auf rechentechnisch günstige und effiziente Weise ohne nachteilige Auswirkungen auf das System aufnimmt.
-
Die vorliegende Zusammenfassung führt in vereinfachter Form eine Auswahl von Konzepten ein, die in der nachstehenden Detailbeschreibung weiter beschrieben werden. Als solches soll die vorliegende Zusammenfassung wesentliche Merkmale des beanspruchten Erfindungsgegenstandes weder identifizieren, noch soll sie als Hilfe beim Bestimmen des Umfanges des beanspruchten Erfindungsgegenstandes genutzt werden.
-
Figurenliste
-
Die Detailbeschreibung erfolgt anhand der begleitenden Figuren. Entitäten, die in den Figuren dargestellt sind, können eine oder mehrere Entitäten bezeichnen, weshalb in den Erläuterungen ein Verweis auf eine einzelne oder mehrere Formen der Entitäten gleichermaßen erfolgen kann.
- 1 ist eine Darstellung einer Umgebung bei einer exemplarischen Implementierung, die dafür betreibbar ist, hier beschriebene Techniken zum Online-Wörterbucherweitern einzusetzen.
- 2 zeigt detaillierter ein exemplarisches System zur Darstellung einer Wortvektortrainingspipeline des Wortvektortrainingssystems von 1.
- 3 zeigt detaillierter ein exemplarisches System zur Darstellung einer Wörterbucherweiterungsverarbeitungspipeline des Wörterbucherweiterungssystems von 1.
- 4 ist ein Flussdiagramm zur Darstellung einer Prozedur bei einer exemplarischen Implementierung einer Online-Wörterbucherweiterung von Wortvektoren.
- 5 ist ein Flussdiagramm zur Darstellung einer Prozedur bei einer exemplarischen Implementierung einer Online-Wörterbucherweiterung von Wortvektoren.
- 6 zeigt ein exemplarisches System, das verschiedene Komponenten einer exemplarischen Vorrichtung beinhaltet, die als beliebiger Typ von Rechenvorrichtung gemäß Beschreibung anhand 1 bis 5 implementiert sein oder genutzt werden kann, um Ausführungsformen der hier beschriebenen Techniken zu implementieren.
-
Detailbeschreibung
-
Übersicht
-
Wortvektoren sind eine vorteilhafte Einbettung zur Darstellung von Worten und Wendungen in kontinuierlicher Vektorform. Das Trainieren einer Wortvektoreinbettung ist jedoch zeitaufwändig, wobei herkömmliche Techniken, sobald die Einbettung trainiert ist, nicht imstande sind, der Einbettung neue Worte hinzuzufügen. Herkömmliche Techniken, die neue Worte in eine Wortvektoreinbettung aufnehmen, erfordern das Trainieren der gesamten neuen Einbettung. Eine derartige Brute-Force-Strategie ist rechentechnisch aufwändig und ineffizient. Das zusätzliche Trainieren einer neuen Wortvektoreinbettung berechnet neue Wortvektoren für die bereits beinhalteten Worte und kann nicht sicherstellen, dass vorher berechnete Wortvektoren unverändert bleiben.
-
Entsprechend werden zum Online-Wörterbucherweitern von Wortvektoren vorgesehene Techniken und Systeme beschrieben, die dafür konfiguriert sind, eine Online-Erweiterung bestehender Wortvektorwörterbücher bereitzustellen. Diese Techniken unterstützen das Erweitern eines Wortvektorwörterbuches derart, dass dieses ein neues Wort beinhaltet, ohne die Wortvektoreinbettung neuzutrainieren oder die vorher berechneten Wortvektoren zu ändern. Zu diesem Zweck empfängt das Wörterbucherweiterungssystem ein bestehendes Wortvektorwörterbuch und ein neues Wort, das in dem Wortvektorwörterbuch nicht beinhaltet ist. Zuordnungs- und Kookkurrenzinformation wird sodann von dem Wörterbucherweiterungssystem für das neue Wort in Bezug auf die bestehenden Worte in dem Wortvektorwörterbuch geschätzt. Dies erfolgt durch Schätzen von Kookkurrenzinformation für einen großen Wortsatz auf Grundlage des bestehenden Wortvektorwörterbuches und spärlicher (sparse) Kookkurrenzinformation über einen kleinen Wortsatz. Im Ergebnis wird Kookkurrenzinformation für das neue Wort ermittelt, ohne neue Kookkurrenzinformation für das gesamte Wörterbuch zu bestimmen.
-
Das Wörterbucherweiterungssystem erzeugt sodann einen geschätzten neuen Wortvektor, der dem neuen Wort zugeordnet ist, ohne die bestehenden Wortvektoren neuzuberechnen. Zu diesem Zweck projiziert das Wörterbucherweiterungssystem die geschätzte Kookkurrenzinformation für das neue Wort auf das bestehende Wortvektorwörterbuch. Diese Techniken unterstützen das Erzeugen eines neuen Wortvektors, ohne dass dies Auswirkungen auf die bestehenden Wortvektoren hätte oder den Vektorraum ändern würde, und unterliegen daher nicht den Beschränkungen herkömmlicher Techniken. Das Wörterbucherweiterungssystem nutzt den geschätzten neuen Wortvektor zum Erzeugen eines erweiterten Wörterbuches, das das vorherige Wortvektorwörterbuch, das neue Wort und den geschätzten neuen Wortvektor beinhaltet. Dies ermöglicht, dass ein die Wortvektoren nutzendes System das neue Wort ohne nachteilige Auswirkung auf das System aufnimmt. Ein für natürliche Sprache gegebenes Verarbeitungssystem kann beispielsweise ein neuronales Netzwerkmodell nutzen, das auf dem Wörterbuch aufgebaut ist. Während herkömmliche Techniken, die eine gänzlich neue Wortvektoreinbettung erzeugen, dem neuronalen Netzwerkmodell zuwiderlaufen, sind die von dem hier verwendeten Wörterbucherweiterungssystem verwendeten Techniken imstande, das neuronale Netzwerkmodell derart zu erweitern, dass es neue Worte enthält, ohne dass dies nachteilige Auswirkungen auf vorherige Ergebnisse oder Trainings hätte. Zusätzlich stellen die hier von dem vorliegenden Wörterbucherweiterungssystem verwendeten Techniken eine rechentechnisch günstige und effiziente Näherung des neuen Wortvektors bereit.
-
In der nachfolgenden Diskussion wird eine exemplarische Ausführungsform beschrieben, die die hier beschriebenen Techniken einsetzen kann. Es werden exemplarische Prozeduren beschrieben, die in der exemplarischen Umgebung wie auch in anderen Umgebungen durchgeführt werden können. Infolgedessen ist das Leistungsvermögen der exemplarischen Prozeduren nicht auf die exemplarische Umgebung beschränkt, und die exemplarische Umgebung ist nicht auf das Leistungsvermögen der exemplarischen Prozeduren beschränkt.
-
Exemplarische Umgebung
-
1 ist eine Darstellung einer Digitalmedienumgebung 100 bei einer exemplarischen Implementierung, die dafür betreibbar ist, hier beschriebene Techniken zum Online-Wörterbucherweitern einzusetzen. Die dargestellte Umgebung 100 beinhaltet ein Rechensystem 102, das auf vielerlei Arten konfiguriert sein kann.
-
Das Rechensystem 102 kann beispielsweise als Desktopcomputer, Laptopcomputer, Mobilvorrichtung (beispielsweise unter Annahme einer Handkonfiguration wie bei einem Tablet oder Mobiltelefon, wie dargestellt ist) und dergleichen mehr konfiguriert sein. Daher kann das Rechensystem 102 von Vollressourcenvorrichtungen mit beträchtlichen Speicher- und Prozessorressourcen (beispielsweise PCs, Spielekonsolen) zu einer über geringe Ressourcen verfügenden Vorrichtung mit beschränkten Speicher- und/oder Verarbeitungsressourcen (beispielsweise Mobilvorrichtungen) reichen. Zusätzlich kann das Rechensystem 102, obwohl ein einzelnes Rechensystem 102 gezeigt ist, auch mehrere verschiedene Vorrichtungen darstellen, so beispielsweise mehrere Server, die von einem Unternehmen genutzt werden, um Vorgänge „über die Cloud“, wie anhand 6 beschrieben wird, durchzuführen.
-
Die Rechenvorrichtung 102 ist derart dargestellt, dass sie ein Wortvektortrainingssystem 104 beinhaltet. Das Wortvektortrainingssystem 104 ist wenigstens teilweise in der Hardware des Rechensystems 102 implementiert und verarbeitet textartige Daten, um Wortvektoren 106 zu generieren. Eine derartige Verarbeitung kann beispielsweise die Nutzung eines Sprachmodells beinhalten, um Vektordarstellungen von Textsequenzen zu generieren, wie anhand 2 noch detaillierter beschrieben wird. Die Wortvektoren 106 sind Vektordarstellungen von Worten, die die semantische Bedeutung der Worte erfassen. Ein einziger der Wortvektoren 106 kann beispielsweise ein Vektor mit Tausenden oder mehr Dimensionen sein, der daher beträchtlich mehr Informationen beinhalten kann, als in den reinen ASCII-Werten, die dem Wort entsprechen, beinhaltet sind. Obwohl die Darstellung derart gewählt ist, dass die Implementierung lokal auf dem Rechensystem 102 vorliegt, kann die Funktionalität des Wortvektortrainingssystems 104 gänzlich oder teilweise auch über eine Funktionalität implementiert sein, die über ein Netzwerk 108, beispielsweise als Teil eines Webdienstes oder „in der Cloud“, verfügbar ist. Das Wortvektortrainingssystem 104 kann auf einer gesonderten Vorrichtung befindlich sein, die die Wortvektoren 106 über das Netzwerk 108 an das Rechensystem 102 überträgt.
-
Das Rechensystem 102 ist des Weiteren derart dargestellt, dass es ein Wörterbucherweiterungssystem 110 beinhaltet. Das Wörterbucherweiterungssystem 110 ist wenigstens teilweise in der Hardware des Rechensystems 102 implementiert und erweitert die Wortvektoren 106 derart, dass diese ein neues Wort 112 aufnehmen, wie anhand 3 noch detaillierter beschrieben wird. Das neue Wort 112 kann ein beliebiges Wort sein, für das kein Wortvektor unter den Wortvektoren 106 vorhanden ist. Das Wortvektortrainingssystem 104 kann die Wortvektoren 106 beispielsweise aus einem allgemeinen Textkorpus generieren. Das allgemeine Textkorpus enthält eine endliche Menge von Worten und kann eine beliebige Anzahl bestehender Worte weglassen, was dazu führt, dass die Wortvektoren 106 keine Wortvektoren beinhalten, die den weggelassenen Worten entsprechen. Im Zusammenhang mit dem Wörterbucherweiterungssystem 110 kann ein beliebiges der weggelassenen bestehenden Worte das neue Wort 112 sein. Alternativ kann das neue Wort 112 ein Wort sein, das zu dem Zeitpunkt, zu dem die Wortvektoren 106 erzeugt worden sind, noch nicht vorhanden war. In jedem Fall entspricht das neue Wort 112 nicht direkt einem beliebigen Wortvektor innerhalb der Wortvektoren 106.
-
Das Wörterbucherweiterungssystem 110 erzeugt einen neuen Wortvektor 114, der dem neuen Wort 112 zugeordnet ist, unter Nutzung eines Vektornäherungsmoduls 116. Das Vektornäherungsmodul 116 arbeitet unabhängig von dem Wortvektortrainingssystem 104 und kann den neuen Wortvektor 114 generieren, indem es Werte auf Grundlage der Wortvektoren 106 ohne Neugenerieren der Wortvektoren 106 nähert. Der neue Wortvektor 114 wird an die Wortvektoren 106 angehängt, was ein erweitertes Wörterbuch 118 erzeugt, das sowohl die Wortvektoren 106 wie auch den neuen Wortvektor 114 enthält. Obwohl die Darstellung derart gewählt ist, dass eine Implementierung lokal auf dem Rechensystem 102 vorliegt, kann die Funktionalität des Wörterbucherweiterungssystems 110 und des Vektornäherungsmoduls 116 gänzlich oder teilweise auch über eine Funktionalität implementiert sein, die über das Netzwerk 108 verfügbar ist, und zwar beispielsweise als Teil eines Webdienstes oder „in der Cloud“.
-
Das erweiterte Wörterbuch 118 kann beispielsweise über das Netzwerk 108 an ein für natürliche Sprache gegebenes Verarbeitungssystem 120 übermittelt werden. Das für natürliche Sprache gegebene Verarbeitungssystem 120 ist ein Rechensystem, das eine Wortvektoreinbettung nutzt und große Mengen von Daten in natürlicher Sprache verarbeitet. Verarbeiten kann das für natürliche Sprache gegebene Verarbeitungssystem 120 natürliche Daten beispielsweise zum Zwecke einer Bestimmung syntaktischer oder semantischer Wortähnlichkeiten, zur automatischen Zusammenfassung, zur maschinellen Übersetzung, zur Stimmungsanalyse, zum Informationsabruf, zur Spracherkennung, zur Beantwortung von Fragen, zum Generieren von Empfehlungen, zum Vergleichen von Bildern mit Text und dergleichen mehr. Zu diesem Zweck ist das für natürliche Sprache gegebene Verarbeitungssystem 120 auf den Vektorraum des erweiterten Wörterbuches 118 kalibriert. Das für natürliche Sprache gegebene Verarbeitungssystem 120 kann beispielsweise ein neuronales Netzwerkmodell nutzen, das auf einem zugrunde liegenden Wortvektorwörterbuch aufgebaut ist.
-
Herkömmliche Techniken des Erzeugens eines neuen Wortvektorwörterbuches ändern den Vektorraum selbst beispielsweise durch Neuabbilden eines jeden Vektors, der in dem Wörterbuch beinhaltet ist. Das Ändern des Vektorraumes verbreitet Fehler in dem für natürliche Sprache gegebenen Verarbeitungssystem 120. Ein neuronales Netzwerkmodell, das entsprechend einem bestimmten Vektorraum aufgebaut ist, arbeitet beispielsweise nicht mehr adäquat, wenn der Vektorraum des Wörterbuches geändert wird, was bei Nutzung herkömmlicher Techniken zu großer Inflexibilität von Wortvektorwörterbüchern führt. Im Gegensatz hierzu nutzt die in 1 dargestellte Umgebung 100 Techniken, die ein bestehendes Wörterbuch derart erweitern, dass es neue Worte und neue Wortvektoren ohne Ändern des Vektorraumes aufnimmt. Dies ermöglicht, dass das für natürliche Sprache gegebene Verarbeitungssystem 120 auch bei Hinzufügungen zu dem Wörterbuch weiterbesteht, wodurch robuste und adaptive Lösungen bereitgestellt werden, die durch herkömmliche Mittel nicht erreichbar sind.
-
Im Allgemeinen können Funktionalitäten, Merkmale und Konzepte, die hier im Zusammenhang mit den vorstehenden und nachstehenden Beispielen beschrieben werden, auch im Zusammenhang mit den in diesem Abschnitt beschriebenen exemplarischen Prozeduren eingesetzt werden. Des Weiteren können Funktionalitäten, Merkmale und Konzepte, die in der vorliegenden Druckschrift im Zusammenhang mit verschiedenen Figuren und Beispielen beschrieben werden, auch untereinander ausgetauscht werden und sind nicht auf die Implementierung im Zusammenhang mit einer bestimmten Figur oder Prozedur beschränkt. Blöcke, die hier verschiedenen dargestellten Prozeduren und entsprechenden Figuren zugeordnet sind, können zudem zusammen und/oder auf verschiedene Weisen kombiniert angewendet werden. Einzelne Funktionalitäten, Merkmale und Konzepte, die hier im Zusammenhang mit verschiedenen exemplarischen Umgebungen, Vorrichtungen, Komponenten, Figuren und Prozeduren beschrieben werden, können in beliebigen geeigneten Kombinationen genutzt werden und sind nicht auf diejenigen bestimmten Kombinationen beschränkt, die in den aufgezählten Beispielen der vorliegenden Beschreibung aufgeführt sind.
-
2 zeigt detaillierter ein System 200 zur Darstellung einer exemplarischen Wortvektortrainingsverarbeitungspipeline des Wortvektortrainingssystems 104 von 1 zum Erzeugen der Wortvektoren 106. Die Wortvektortrainingspipeline beginnt mit dem Verarbeiten von Eingabeworten 202. Die Eingabeworte 202 können aus einer großen Textsammlung, so beispielsweise aus einer allgemeinen Textsammlung von der Webseite Wikipedia®, der Webseite Reddit® und dergleichen mehr, gesammelt oder generiert werden. Alternativ können die Eingabeworte 202 aus einer Textsammlung im Zusammenhang mit einem bestimmten Thema gesammelt werden.
-
Die Worte
202 werden in ein PMI-Modul
204 (Pointwise Mutual Information PMI, punktweise wechselseitige Information) eingegeben, um PMI-Daten
206 zu generieren. Die PMI-Daten
206 beinhalten Information im Zusammenhang mit Messungen der Zuordnung und Kookkurrenz unter den Worten
202. Die PMI-Daten
206 sind beispielsweise ein Maß dafür, wie häufig ein Wort mit einem anderen Wort auftritt. Bei einem Beispiel werden die PMI-Daten
206 erzeugt, indem n-Gramm-Statistiken über die Worte
202 gesammelt werden. Bei einigen Implementierungen beruhen die PMI-Daten
206 auf Unigramm- oder Bigramm-Statistiken auf Wortebene. Die PMI-Daten
206 können als Matrix von Kookkurrenzen zwischen Worten dargestellt werden. Sind beispielsweise die Worte
202 gegeben, die als Wörterbuch V = {w
i, I = 1,2,3,... , N} dargestellt sind, so können die PMI-Daten
206 als PMI-Matrix M
[N×N] dargestellt werden, wobei die Gesamtwahrscheinlichkeit der Kookkurrenz M zwischen beliebigen Worten w
i und w
j folgendermaßen lautet:
-
Die PMI-Daten
206 werden in ein Vektorerzeugungsmodul
208 eingegeben, um die Wortvektoren
106 zu erzeugen. Die Wortvektoren
106 können als Matrix von Wortvektoren oder alternativ als Satz einzelner Vektoren dargestellt werden. Bei einigen Implementierungen erzeugt das Vektorerzeugungsmodul
208 eine Wortvektormatrix H durch Zerlegen der PMI-Matrix M mit einem Skalierungsvektor S gemäß:
Hierbei stellt U den Eigenvektorraum dar, und es gilt:
-
Jede Reihe hi der spaltentrunkierten Untermatrix H:,1:d kann als Wortvektor 106 für ein jeweiliges der Worte 202 genutzt werden. Die Worte 202 und die entsprechenden Wortvektoren 106 können kombiniert werden, um ein Wörterbuch 210 zu erzeugen. Das Wörterbuch 210 kann in einem beliebigen System genutzt werden, das Vektordarstellungen von Worten verwendet, so beispielsweise in für natürliche Sprache gegebenen Verarbeitungssystemen.
-
3 zeigt detaillierter ein System
300 zur Darstellung einer exemplarischen Wörterbucherweiterungsverarbeitungspipeline des Wörterbucherweiterungssystems
110 von
1 zum Erzeugen des erweiterten Wörterbuches
118. Die Wörterbucherweiterungsverarbeitungspipeline beginnt damit, dass ein PMI-Schätzungsmodul
302 das neue Wort
112 verarbeitet. Das neue Wort
112 ist ein Wort, das unter den Worten
202 nicht vorhanden ist, wie anhand
1 bereits detaillierter beschrieben worden ist. Das PMI-Schätzungsmodul
302 nutzt das Wörterbuch
210 und schätzt PMI-Information für das neue Wort
112, was eine geschätzte PMI-Information
304 ergibt. Das PMI-Schätzungsmodul
302 arbeitet ohne Nutzung des PMI-Moduls
204 und ohne Ändern der PMI-Daten
206. Zu diesem Zweck kann das PMI-Schätzungsmodul
302 die geschätzte PMI-Information
304 für ein neues Wort w in Form eines PMI-Vektors ê folgendermaßen erzeugen:
Hierbei gilt:
-
Das Neutrainieren eines neuen Satzes von PMI-Daten 206 mit dem PMI-Modul 204 geht mit einer neuen Gesamtanalyse der Worte 202 einher und ist zeitaufwändig, rechentechnisch teuer und ineffizient. Stattdessen kann das PMI-Schätzungsmodul 302 spärliche Kookkurrenzinformation für das neue Wort 112 nutzen, so beispielsweise Kookkurrenzinformation, die aus einem einzigen Dokument, das das neue Wort 112 beinhaltet, und einem kleinen Teilsatz von Worten in dem Wörterbuch 210 extrahiert ist. Auf diese Weise schont das PMI-Schätzungsmodul 302 Ressourcen und erhöht die Effizienz des Rechensystems 102. Die spärliche Kookkurrenzinformation für das neue Wort 112 kann einfach aus der Überschrift eines Dokumentes, einer Kommentarliste (tag list) eines Bildes und dergleichen mehr gesammelt werden.
-
Die geschätzte PMI-Information
304 wird in das Vektornäherungsmodul
116 eingegeben, um einen geschätzten neuen Vektor
306 zu erzeugen. Das Vektornäherungsmodul
116 arbeitet ohne Nutzung des Vektorerzeugungsmoduls
208 und ohne Ändern der Wortvektoren
106. Zu diesem Zweck projiziert das Vektornäherungsmodul
116 die geschätzte PMI-Information
304 auf die Wortvektoren
106. Bei einem Beispiel kann das Vektornäherungsmodul
116 den geschätzten neuen Vektor
306,
folgendermaßen erzeugen:
-
Das Neutrainieren eines neuen Satzes von Wortvektoren 106 mit dem Vektorerzeugungsmodul 208 impliziert ein Neuberechnen einer Eigenvektorzerlegung aktualisierter PMI-Daten und das Berechnen einer neuen Matrix, die die Wortvektoren 106 in Gänze darstellt, was zeitaufwändig, rechentechnisch teuer und ineffizient ist. Stattdessen bietet das Vektornäherungsmodul 116 eine rechentechnisch günstige und effiziente Näherung des geschätzten neuen Vektors 306.
-
Experimentelle Ergebnisse haben gezeigt, dass das vollständige Erlernen eines neuen Satzes von Wortvektoren (beispielsweise mit dem Vektorerzeugungsmodul 208) die zeitliche Komplexität CI2 + N3 aufweist, wobei „C“ die Größe des Trainingskorpus ist, „I“ die Länge eines jeden Dokumentes in dem Corpus ist und „N“ die Anzahl der Worte in dem Wörterbuch ist. Im Gegensatz hierzu ist die zeitliche Komplexität bei Nutzung des Vektornäherungsmoduls 116 zum Erzeugen des geschätzten neuen Vektors 306 gleich N2. Da C und N ohne Weiteres jeweils Werte von mehreren 10.000 oder mehr annehmen können, ist das Vektornäherungsmodul 116 um Größenordnungen effizienter. Das Vektornäherungsmodul 116 stellt daher eine quantifizierbare und beträchtliche Erhöhung der Effizienz des Rechensystems 102 bereit.
-
Das Wörterbucherweiterungssystem 110 nutzt den geschätzten neuen Wortvektor 306 und erzeugt das erweiterte Wörterbuch 118. Das erweiterte Wörterbuch 118 enthält die Worte 202 und die Wortvektoren 106 wie auch das neue Wort 112 und den geschätzten neuen Wortvektor 306. Die Wortvektoren 106 bleiben in dem erweiterten Wörterbuch 118 im Vergleich zu den Wortvektoren 106 in dem Wörterbuch 210 unverändert. Dies ermöglicht, dass ein die Wortvektoren 106 nutzendes System das neue Wort 112 aufnimmt, ohne dass dies nachteilige Auswirkungen auf das System hätte. Ein für natürliche Sprache gegebenes Verarbeitungssystem kann beispielsweise ein neuronales Netzwerkmodell nutzen, das auf dem Wörterbuch 210 aufgebaut ist. Bei diesem Beispiel arbeitet das neuronale Netzwerkmodell nicht adäquat, wenn die Wortvektoren 106 geändert werden, weshalb beliebige Ergebnisse, die von dem neuronalen Netzwerkmodell erzeugt werden, unter Nutzung eines aktualisierten neuronalen Netzwerkmodells, das das neue Wort 112 enthält, neuerzeugt werden müssen. Das Wörterbucherweiterungssystem 110 ermöglicht jedoch, dass das erweiterte Wörterbuch 118 das Wörterbuch 210 online ersetzt. Da die Wortvektoren 106 nicht verändert werden, arbeitet das neuronale Netzwerkmodell weiter adäquat und kann inkrementell neue Worte in das neuronale Netzwerkmodell aufnehmen. Dieses online erfolgende inkrementelle Erweitern eines Wörterbuches kann mit herkömmlichen Mitteln nicht erreicht werden.
-
Das Wörterbuch 210 und das erweiterte Wörterbuch 118 können auf vielerlei Arten genutzt werden. Genutzt werden kann das erweiterte Wörterbuch 118 beispielsweise in Systemen zum Bestimmen syntaktischer oder semantischer Wortähnlichkeiten, zur automatischen Zusammenfassung, zur maschinellen Übersetzung, zur Stimmungsanalyse, zum Informationsabruf, zur Spracherkennung, zur Beantwortung von Fragen, zum Generieren von Empfehlungen, zum Vergleichen von Bildern mit Text und dergleichen mehr. Ein System, das auf einem Wortvektorwörterbuch aufgebaut ist, benötigt jedoch ein gewisses Ausmaß an Kalibrierung auf Grundlage des Vektorraumes des Wörterbuches. Herkömmliche Techniken zum Erzeugen eines neuen Wortvektorwörterbuches ändern den Vektorraum selbst, und zwar beispielsweise durch Neuabbilden eines jeden Vektors, der in dem Wörterbuch beinhaltet ist. Das Ändern des Vektorraumes verbreitet Fehler in dem System, das auf dem Wörterbuch aufgebaut ist. Viele für natürliche Sprache gegebene Verarbeitungssysteme nutzen beispielsweise neuronale Netzwerkmodelle oder andere Techniken maschinellen Lernens auf Grundlage eines zugrunde liegenden Wörterbuches. Ein neuronales Netzwerkmodell, das entsprechend einem bestimmten Vektorraum aufgebaut ist, arbeitet beispielsweise nicht mehr adäquat, wenn der Vektorraum des Wörterbuches geändert wird, was bei Nutzung herkömmlicher Techniken zu großer Inflexibilität von Wortvektorwörterbüchern führt. Im Gegensatz hierzu nutzt das in 3 dargestellte System 300 einen Prozess, der ein bestehendes Wörterbuch derart erweitert, dass dieses neue Worte und neue Wortvektoren enthält, ohne dass der Vektorraum geändert würde. Dies ermöglicht, dass Systeme, die auf dem Wörterbuch aufgebaut sind, bei Hinzufügungen zu dem Wörterbuch weiter bestehen, was robuste und adaptive Lösungen bereitstellt, die mit herkömmlichen Mitteln nicht erreicht werden können.
-
Des Weiteren kann das in 3 dargestellte System 300 ein bestehendes Wörterbuch derart erweitern, dass es ein neues Wort aus einer anderen Sprache als derjenigen des bestehenden Wörterbuches enthält. Ein neues Wort kann beispielsweise in einer anderen Sprache vorliegen, wofür keine Übersetzung in der Sprache des Wörterbuches vorhanden ist. Bei einem Beispiel nutzt das PMI-Schätzungsmodul 302 einen Sprachübersetzer für das Dokument, das das unbekannte Wort beinhaltet, um Worte, die eine Übersetzung aufweisen, zu identifizieren. Die übersetzten Worte werden benutzt, um geschätzte PMI-Information 304 für das unbekannte Wort auf Grundlage spärlicher Kookkurrenzdaten, die in Bezug auf die übersetzten Worte gesammelt werden, zu erzeugen.
-
Exemplarische Prozeduren
-
Die nachfolgende Diskussion beschreibt Techniken, die unter Nutzung der vorher beschriebenen Systeme und Vorrichtungen implementiert sein können. Aspekte der Prozeduren können in Hardware, Firmware, Software oder einer Kombination hieraus implementiert sein. Die Prozeduren sind als Sätze von Blöcken gezeigt, die Vorgänge spezifizieren, die von einer oder mehreren Vorrichtungen durchgeführt werden, und sind nicht unbedingt auf diejenigen Reihenfolgen beschränkt, die zur Durchführung der Vorgänge durch die jeweiligen Blöcke gezeigt sind. In Teilen der nachfolgenden Diskussion wird auf 1 bis 3 verwiesen.
-
4 zeigt eine Prozedur 400 bei einer exemplarischen Implementierung einer Online-Wörterbucherweiterung von Wortvektoren. Es wird ein Satz von Wortvektoren, der einem Satz von Worten zugeordnet ist, ermittelt (Block 402). Bei einigen Implementierungen ist der Satz von Wortvektoren vorberechnet und wird von dem Rechensystem 102 über das Netzwerk 108 derart ermittelt, dass das Rechensystem 102 an der Erzeugung der Wortvektoren nicht beteiligt ist. Bei anderen Implementierungen nutzt das Rechensystem 102 das Wortvektortrainingssystem 104, um die Wortvektoren vorzuberechnen oder zu erzeugen, wie anhand 2 beschrieben worden ist. Es können beispielsweise Eingabeworte analysiert werden, um PMI-Daten zu erzeugen, die die Zuordnung und Kookkurrenz der Eingabeworte messen und als PMI-Matrix gespeichert sind. Die PMI-Matrix kann unter Nutzung einer Eigenvektorzerlegung zerlegt werden, um eine Wortvektormatrix zu erzeugen, die für jedes jeweilige Eingabewort einen Wortvektor beinhaltet. Bei einem Beispiel kann der Satz von Worten beispielsweise „Hund“ und „Jagdhund“ beinhalten, wobei PMI-Daten für jedes der Worte „Hund“ und „Jagdhund“ in Bezug auf alle Worte in dem Satz aus Worten erzeugt werden. Auf Grundlage der PMI-Daten wird ein Wortvektor für jedes der Worte „Hund“ und „Jagdhund“ erzeugt oder ermittelt.
-
Es wird ein Eingabewort empfangen, das in dem Satz von Worten nicht beinhaltet ist (Block 404). Entsprechend weist das Eingabewort keinen entsprechenden Wortvektor auf, der in dem Satz von Wortvektoren beinhaltet ist. Beim vorgenannten Beispiel kann das Eingabewort „Wolf” sein. Es wird eine Beziehung zwischen dem Eingabewort und einem oder mehreren Worten des Satzes von Worten bestimmt (Block 406). Dies erfolgt unter Nutzung spärlicher Kookkurrenzinformation zwischen dem Eingabewort und dem einen oder den mehreren Worten. Ist das Eingabewort beispielsweise in einem Dokument befindlich, so wird Kookkurrenzinformation für das Eingabewort in Bezug auf Worte, die in dem Dokument befindlich sind, bestimmt. Diese spärliche Kookkurrenzinformation in Bezug auf einen kleinen Teilsatz von Worten wird benutzt, um Kookkurrenzinformation in Bezug auf den gesamten Satz von Worten herzuleiten oder zu nähern, wodurch die Kookkurrenzinformation derart erweitert wird, dass sie das Eingabewort beinhaltet, ohne dass neue Kookkurrenzinformation für den Satz von Worten generiert würde. Beim vorliegenden Beispiel mit dem Eingabewort „Wolf” wird eine Beziehung zwischen „Wolf“ und sowohl „Hund“ wie auch „Jagdhund“ auf Grundlage der spärlichen Kookkurrenzinformation ausfindig gemacht.
-
Es wird ein neuer Wortvektor für das Eingabewort auf Grundlage von Wortvektoren aus dem Satz von Wortvektoren genähert, die dem einen oder den mehreren Worten zugeordnet sind (Block 408). Beim vorliegenden Beispiel werden sowohl „Hund“ wie auch „Jagdhund“ Wortvektoren in dem Satz von Wortvektoren zugeordnet. Auf Grundlage der Beziehung zwischen „Wolf“ und jedem von „Hund“ und „Jagdhund“ wird ein Wortvektor für „Wolf” auf Grundlage des Wortvektors für „Hund“ und des Wortvektors für „Jagdhund“ genähert. Vorgenommen werden kann dies beispielsweise von dem Vektornäherungsmodul 116, wie anhand 3 bereits detaillierter beschrieben worden ist. Durchgeführt wird das Nähern auf Grundlage der bestehenden Wortvektoren, jedoch ohne die bestehenden Wortvektoren zu ändern. Die Wortvektoren für „Hund“ und „Jagdhund“ bleiben durch die Näherung beispielsweise unverändert, und es werden keine neuen Wortvektoren für „Hund“ und „Jagdhund“ generiert. Stattdessen werden die bestehenden Wortvektoren benutzt, um einen „ausreichend nahen“ Wortvektor für das Eingabewort zu nähern. Beim vorliegenden Beispiel wird bestimmt, dass „Wolf” sowohl zu Hund“ wie auch zu „Jagdhund“ ähnlich ist, und es wird ein genäherter Wortvektor für „Wolf” erzeugt, und zwar beispielsweise durch Erzeugen eines gewichteten Mittels der Wortvektoren für „Hund“ und „Jagdhund“.
-
Es wird ein neuer Satz von Wortvektoren generiert, der den Satz von Wortvektoren und den neuen Wortvektor beinhaltet (Block 410). Der neue Satz von Wortvektoren wird an ein für natürliche Sprache gegebenes Verarbeitungssystem übermittelt, um die Ersetzung einer Instanz des Satzes von Wortvektoren durch eine Instanz des neuen Satzes von Wortvektoren zu veranlassen. Das für natürliche Sprache gegebene Verarbeitungssystem kann beispielsweise das für natürliche Sprache gegebene Verarbeitungssystem 120 sein, das anhand 1 beschrieben worden ist. Bei einem Beispiel ist das für natürliche Sprache gegebene Verarbeitungssystem ein Wortähnlichkeitssystem, das entsprechend dem Satz von Wortvektoren arbeitet und beim vorliegenden Beispiel gegebenenfalls versucht, ein Wort, das ähnlich zu „Rudelhund“ ist, ausfindig zu machen. Bei diesem Beispiel nutzt das für natürliche Sprache gegebene Verarbeitungssystem den Satz von Wortvektoren, um einen Wortvektor, der „Rudelhund“ entspricht, auszuwählen, und bestimmt in dem Satz von Wortvektoren einen oder mehrere Wortvektoren, die nahe an dem ausgewählten Vektor sind. Beim Ausfindigmachen der nahen Vektoren bestimmt das Wortähnlichkeitssystem entsprechende Worte und gibt diese bestimmten Worte als ähnlich zu dem Eingabewort aus. Vor dem Empfangen des Satzes neuer Wortvektoren identifiziert das für natürliche Sprache gegebene Verarbeitungssystem einen nächsten Vektor, der „Hund“ entspricht, wenn der Satz von Wortvektoren „Wolf” nicht beinhaltet. Unter Nutzung herkömmlicher Techniken kann das für natürliche Sprache gegebene Verarbeitungssystem sein Wortvektorwörterbuch nicht erweitern oder aktualisieren, und das für natürliche Sprache gegebene Verarbeitungssystem kann seine Genauigkeit nicht weiter verbessern. Im Gegensatz hierzu kann das für natürliche Sprache gegebene Verarbeitungssystem beim Empfangen des neuen Satzes von Wortvektoren und Ersetzen des Satzes von Wortvektoren bei Schritt 412 sein Vokabular online erweitern und genauer identifizieren, dass der Ausdruck „Rudelhund“ große Ähnlichkeit zur Bedeutung des Wortes „Wolf‟ aufweist. Auf diese Weise können die durch die Prozedur 400 beschriebenen Techniken die Genauigkeit des für natürliche Sprache gegebenen Verarbeitungssystems über diejenige herkömmlicher Systeme hinaus verbessern.
-
5 zeigt eine Prozedur 500 bei einer exemplarischen Implementierung einer Online-Wörterbucherweiterung von Wortvektoren. Es wird ein Bildmerkmalsvektor durch Abbilden von Bildmerkmalen eines Bildes in einen Vektorraum generiert (Block 502). Dies erfolgt beispielsweise mittels Durchführen einer Computervisionsanalyse an dem Bild. Computervisionstechniken sind derart kalibriert oder trainiert, dass der Vektorraum, der zum Abbilden der Bildmerkmale genutzt wird, mit einem Vektorraum, der zum Generieren von Wortvektoren genutzt wird, zusammenfällt. Entsprechend können Bildmerkmalsvektoren mit Wortvektoren, die die entsprechenden Bildmerkmale beschreiben, zusammenfallen oder zu diesen ähnlich sein.
-
Es wird bestimmt, dass der Bildmerkmalsvektor keinem Vektor aus einem Satz von Wortvektoren, der einem Satz von Worten zugeordnet ist, entspricht (Block 504). Durch Messen von Abständen in dem Vektorraum zwischen einem Bildmerkmalsvektor und einem Wortvektor kann ein Wort identifiziert werden, das dem Bildmerkmal entspricht. Auf diese Weise können Wortvektoren dafür verwendet werden, Ähnlichkeiten zwischen Bildern und Text bereitstellen, um beispielsweise ein Bild automatisch mit einem Wort zu kommentieren. Gleichwohl entspricht der Bildmerkmalsvektor gegebenenfalls auch keinem beliebigen Vektor in dem Satz von Wortvektoren, und zwar beispielsweise dann, wenn der Abstand zwischen dem Bildmerkmalsvektor und dem nächsten Wortvektor größer als ein Schwellenabstand ist.
-
Der Satz von Wortvektoren wird derart erweitert, dass er ein neues Wort beinhaltet (Block 506), indem eine Beziehung zwischen einem oder mehreren Wortvektoren und dem neuen Wort bestimmt wird (Block 508) und ein neuer Wortvektor auf Grundlage des einen oder der mehreren Wortvektoren genähert wird (Block 510). Die Beziehung wird auf Grundlage einer Kookkurrenzinformation, so beispielsweise der spärlichen Kookkurrenzinformation, bestimmt, wie anhand Block 406 von 4 detaillierter beschrieben worden ist. Die Näherung erfolgt auf Grundlage des einen oder der mehreren Wortvektoren, jedoch ohne Änderung des einen oder der mehreren Wortvektoren, wie anhand des Vektornäherungsmoduls 116 von 3 und anhand von Block 408 von 4 beschrieben worden ist.
-
Es wird ein neuer Satz von Wortvektoren generiert, der den Satz von Wortvektoren und den neuen Wortvektor beinhaltet (Block 512). Das Wörterbucherweiterungssystem 110 wird beispielsweise benutzt, um ein erweitertes Wörterbuch zu erzeugen. Das erweiterte Wörterbuch enthält sowohl die ursprünglichen Worte und entsprechende Vektoren wie auch das neue Wort und den entsprechenden neuen Wortvektor. Der Vektorraum selbst bleibt unverändert, weshalb die ursprünglichen Wortvektoren unverändert bleiben. Indem der Vektorraum konstant gehalten wird, bleibt der Bildmerkmalsvektor aus Block 502 genau und kann mit dem erweiterten Wörterbuch verglichen werden, ohne dass eine neue Analyse der Bildmerkmale oder ein neuer Bildmerkmalsvektor erforderlich wären.
-
Das Bild wird auf Grundlage des neuen Wortvektors entsprechend dem Bildmerkmalsvektor mit dem neuen Wort kommentiert (Block 514). Der Bildmerkmalsvektor wird mit dem neuen Satz von Wortvektoren aus Block 512 verglichen, und es wird bestimmt, dass der Bildmerkmalsvektor dem neuen Wortvektor entspricht. Der Abstand zwischen dem Bildmerkmalsvektor und dem neuen Wortvektor ist kleiner als ein Schwellenabstand. Auf Grundlage dieser Entsprechung wird der Bildmerkmalsvektor dem neuen Wort zugeordnet, und es wird das Bild mit dem neuen Wort kommentiert. Auf diese Weise wird das Bildkommentierungssystem, das auf einem Wortvektorwörterbuch aufgebaut ist, online derart erweitert, dass es neue Worte enthält, ohne dass dies nachteilige Auswirkungen auf das Bildkommentierungssystem selbst hätte.
-
Herkömmliche Techniken, die einen Satz von Wortvektoren erzeugen, ändern den Vektorraum, was der Entsprechung zwischen Bildmerkmalsvektoren und Wortvektoren entgegenwirkt und das Entwicklen eines neuen Bildkommentierungssystems unter Nutzung des neuen Vektorraumes erfordert. Im Gegensatz hierzu arbeiten die Prozedur 400 von 4 und die Prozedur 500 von 5 jeweils so, dass sie eine Online-Wörterbucherweiterung von Wortvektoren ohne Ändern des Vektorraumes bereitstellen. Dies ermöglicht, dass Systeme, die auf dem Wörterbuch aufgebaut sind, bei Hinzufügungen zu dem Wörterbuch weiterbestehen, was robuste und adaptive Lösungen bereitstellt, die mit herkömmlichen Mitteln nicht erreichbar sind.
-
Nach erfolgter Diskussion einiger exemplarischer Prozeduren folgt nunmehr eine Diskussion eines exemplarischen Systems und einer exemplarischen Vorrichtung entsprechend einer oder mehreren Implementierungen.
-
Exemplarisches System und exemplarische Vorrichtung
-
6 zeigt bei 600 allgemein ein exemplarisches System, das eine exemplarische Rechenvorrichtung 602 beinhaltet, die ein oder mehrere Rechensysteme und/oder eine oder mehrere Vorrichtungen darstellt, die die hier beschriebenen verschiedenen Techniken implementieren können. Dies ist durch Einbeziehung des Wortvektortrainingssystems 104 und des Wörterbucherweiterungssystems 110 dargestellt. Die Rechenvorrichtung 602 kann beispielsweise ein Server eines Dienstanbieters, eine Vorrichtung, die einem Client zugeordnet ist (beispielsweise eine Clientvorrichtung), ein On-Chip-System und/oder eine beliebige andere geeignete Rechenvorrichtung oder ein solches Rechensystem sein.
-
Die exemplarische Rechenvorrichtung 602 beinhaltet, wie dargestellt ist, ein Verarbeitungssystem 604, ein oder mehrere computerlesbare Medien 606 und eine oder mehrere I/O-Schnittstellen 608, die kommunikationstechnisch miteinander gekoppelt sind. Obwohl dies nicht gezeigt ist, kann die Rechenvorrichtung 602 des Weiteren einen Systembus oder ein anderes Daten- und Befehlsübertragungssystem beinhalten, das die verschiedenen Komponenten miteinander koppelt. Ein Systembus kann eine beliebige Busstruktur oder eine Kombination aus verschiedenen Busstrukturen beinhalten, so beispielsweise einen Speicherbus oder einen Speichercontroller, einen Peripheriebus, einen universellen seriellen Bus und/oder einen Prozessor- oder Lokalbus, der eine Vielzahl von Busarchitekturen einsetzt. Eine Vielzahl weiterer Beispiele, so beispielsweise Steuer- bzw. Regel- und Datenleitungen, ist ebenfalls einbezogen.
-
Das Verarbeitungssystem 604 stellt eine Funktionalität zur Durchführung eines oder mehrerer Vorgänge unter Nutzung von Hardware dar. Entsprechend ist das Verarbeitungssystem 604 derart dargestellt, dass es Hardwareelemente 610 beinhaltet, die als Prozessoren, funktionelle Blöcke und dergleichen mehr konfiguriert sein können. Dies kann eine Implementierung in Hardware als anwendungsspezifische integrierte Schaltung oder als andere Logikvorrichtung, die unter Nutzung eines oder mehrerer Halbleiter gebildet ist, beinhalten. Die Hardwareelemente 610 sind nicht durch die Materialien, aus denen sie gebildet sind, oder durch die Bearbeitungsmechanismen, die zum Einsatz kommen, beschränkt. Die Prozessoren können beispielsweise aus einem Halbleiter / Halbleitern und/oder Transistoren (beispielsweise elektronischen integrierten Schaltungen (ICs)) bestehen. In diesem Kontext können prozessorseitig ausführbare Anweisungen elektronisch ausführbare Anweisungen sein.
-
Die computerlesbaren Speichermedien 606 sind derart dargestellt, dass sie eine Ablage / einen Speicher 612 beinhalten. Die Ablage / der Speicher 612 bietet eine Ablage-/Speicherkapazität, die einem oder mehreren computerlesbaren Medien zugeordnet ist. Die Ablage-/Speicherkomponente 612 kann flüchtige Medien (so beispielsweise einen Speicher mit wahlfreiem Zugriff (RAM)) und/oder nichtflüchtige Medien (so beispielsweise einen Nur-Lese-Speicher (ROM), einen Flash-Speicher, optische Platten, magnetische Platten und dergleichen mehr) beinhalten. Die Ablage-/Speicherkomponente 612 kann feste Medien (beispielsweise RAM, ROM, ein Festplattenlaufwerk und dergleichen mehr) wie auch entfernbare Medien (beispielsweise einen Flash-Speicher, ein entfernbares Festplattenlaufwerk, eine optische Platte und dergleichen mehr) beinhalten. Die computerlesbaren Medien 606 können auf vielerlei Arten, wie nachstehend noch beschrieben wird, konfiguriert sein.
-
Eine Eingabe-/Ausgabe-Schnittstelle / Eingabe-/Ausgabe-Schnittstellen 608 bietet/bieten eine Funktionalität, die ermöglicht, dass ein Nutzer Befehle und Information in die Rechenvorrichtung 602 eingibt, und die zudem ermöglicht, dass dem Nutzer und/oder anderen Komponenten oder Vorrichtungen Information unter Nutzung verschiedener Eingabe-/Ausgabevorrichtungen präsentiert wird. Beispiele für Eingabevorrichtungen beinhalten eine Tastatur, eine Cursorsteuer- bzw. Regelvorrichtung (beispielsweise eine Maus), ein Mikrofon, einen Scanner, eine Berührungsfunktionalität (beispielsweise kapazitive oder andere Sensoren, die dafür konfiguriert sind, eine physische Berührung zu detektieren), eine Kamera (die beispielsweise sichtbare oder unsichtbare Wellenlängen, so beispielsweise Infrarotfrequenzen, dafür einsetzen kann, Bewegungen als Gesten zu erkennen, die keine Berührung implizieren), und dergleichen mehr. Beispiele für Ausgabevorrichtungen beinhalten eine Anzeigevorrichtung (beispielsweise einen Monitor oder Projektor), Lautsprecher, einen Drucker, eine Netzwerkkarte, eine taktile Vorrichtung und dergleichen mehr. Daher kann die Rechenvorrichtung 602 auf vielerlei Arten, wie nachstehend noch beschrieben wird, konfiguriert sein, um die Nutzerinteraktion zu unterstützen.
-
Es sind hier verschiedene Techniken im allgemeinen Kontext von Software, Hardwareelementen oder Programmmodulen beschrieben worden. Allgemein beinhalten derartige Module Routinen, Programme, Objekte, Elemente, Komponenten, Datenstrukturen und dergleichen mehr, die bestimmte Aufgaben ausführen oder bestimmte abstrakte Datentypen implementieren. Die Begriffe „Modul“, „Funktionalität“ und „Komponente“ bezeichnen im Sinne des Vorliegenden allgemein Software, Firmware, Hardware oder eine Kombination hieraus. Die Merkmale der hier beschriebenen Techniken sind plattformunabhängig, was bedeutet, dass die Techniken auf einer Vielzahl von handelsüblichen Rechenplattformen mit einer Vielzahl von Prozessoren implementiert sein können.
-
Eine Implementierung der beschriebenen Module und Techniken kann auf einer bestimmten Form von computerlesbaren Medien gespeichert sein oder über diese übertragen werden. Die computerlesbaren Medien können eine Vielzahl von Medien beinhalten, auf die von der Rechenvorrichtung 602 zugegriffen werden kann. Beispiels- und nicht beschränkungshalber können computerlesbare Medien „computerlesbare Speichermedien“ und „computerlesbare Signalmedien“ beinhalten.
-
„Computerlesbare Speichermedien" können Medien und/oder Vorrichtungen bezeichnen, die eine dauerhafte und/oder nichttemporäre Speicherung von Information im Gegensatz zur bloßen Signalübertragung, zu Trägerwellen oder zu Signalen per se ermöglichen. Computerlesbare Speichermedien bezeichnen daher nicht signaltragende Medien. Computerlesbare Speichermedien beinhalten Hardware, so beispielsweise flüchtige und nichtflüchtige, entfernbare und nichtentfernbare Medien und/oder Speichervorrichtungen, die bei einem Verfahren oder einer Technologie implementiert sind, die zur Speicherung von Information geeignet ist, so beispielsweise als computerlesbare Anweisungen, Datenstrukturen, Programmmodule, Logikelemente/Schaltungen oder andere Daten. Beinhalten können Beispiele für computerlesbare Speichermedien unter anderem RAM, ROM, EEPROM, Flash-Speicher oder eine andere Speichertechnologie, CD-ROM, DVD oder einen anderen optischen Speicher, Festplatten, Magnetkassetten, Magnetbänder, Magnetplattenspeicher oder andere magnetische Speichervorrichtungen oder eine andere Speichervorrichtung, physische Medien oder Objekte, die dafür geeignet sind, dass gewünschte Information gespeichert wird, und auf die ein Computer zugreifen kann.
-
„Computerlesbare Signalmedien" können signaltragende Medien bezeichnen, die dafür konfiguriert sind, Anweisungen an die Hardware der Rechenvorrichtung 602 beispielsweise über ein Netzwerk zu übermitteln. Signalmedien können typischerweise computerlesbare Anweisungen, Datenstrukturen, Programmmodule oder andere Daten in einem modulierten Datensignal verkörpern, so beispielsweise Trägerwellen, Datensignale oder einen anderen Transportmechanismus. Signalmedien beinhalten zudem beliebige Informationsverteilungsmedien. Der Begriff „moduliertes Datensignal“ bezeichnet ein Signal, bei dem eine oder mehrere Eigenschaften derart eingestellt oder verändert sind, dass Information in dem Signal codiert ist. Beispiels- und nicht beschränkungshalber beinhalten Kommunikationsmedien drahtgebundene Medien, so beispielsweise ein drahtgebundenes Netzwerk oder eine Direktdrahtverbindung, und drahtlose Medien, so beispielsweise akustische, hochfrequenzbasierte, infrarote und andere drahtlose Medien.
-
Wie vorstehend beschrieben worden ist, stellen die Hardwareelemente 610 und die computerlesbaren Medien 606 Module, eine programmierbare Vorrichtungslogik und/oder eine feste Vorrichtungslogik dar, die in Form von Hardware implementiert sind, die bei einigen Ausführungsformen dafür eingesetzt werden kann, wenigstens einige Aspekte der hier beschriebenen Techniken beispielsweise zur Ausführung einer oder mehrerer Anweisungen zu implementieren. Die Hardware kann Komponenten einer integrierten Schaltung oder eines On-Chip-Systems, eine anwendungsspezifische integrierte Schaltung (ASIC), ein feldprogrammierbares Gate-Array (FPGA), eine komplexe programmierbare Logikvorrichtung (CPLD) und andere Implementierungen in Silizium oder anderer Hardware beinhalten. In diesem Zusammenhang kann Hardware als Verarbeitungsvorrichtung wirken, die Programmaufgaben wahrnimmt, die durch Anweisungen und/oder eine Logik definiert sind, die durch Hardware verkörpert ist, wie auch Hardware, die zur Speicherung von Anweisungen zur Ausführung benutzt werden, so beispielsweise durch die vorbeschriebenen computerlesbaren Speichermedien.
-
Kombinationen des Vorbeschriebenen können zudem zur Implementierung verschiedener der hier beschriebenen Techniken eingesetzt werden. Entsprechend können Software, Hardware oder ausführbare Module als eine oder mehrere Anweisungen und/oder Logik implementiert sein, die in irgendeiner Form von computerlesbaren Speichermedien und/oder durch ein oder mehrere Hardwareelemente 610 verkörpert ist. Die Rechenvorrichtung 602 kann dafür konfiguriert sein, bestimmte Anweisungen und/oder Funktionen entsprechend Software- und/oder Hardwaremodulen zu implementieren. Entsprechend kann eine als Software gegebene Implementierung eines Moduls, das von der Rechenvorrichtung 602 ausführbar ist, auch wenigstens teilweise in Hardware gegeben sein, so beispielsweise unter Nutzung computerlesbarer Speichermedien und/oder Hardwareelemente 610 des Verarbeitungssystems 604. Die Anweisungen und/oder Funktionen können von einem oder mehreren Objekten (beispielsweise einer oder mehreren Rechenvorrichtungen 602 und/oder Verarbeitungssystemen 604) ausführbar/betreibbar sein, um die hier beschriebenen Techniken, Module und Beispiele zu implementieren.
-
Die hier beschriebenen Techniken können von verschiedenen Konfigurationen der Rechenvorrichtung 602 unterstützt werden und sind nicht auf die spezifischen Beispiele für die hier beschriebenen Techniken beschränkt. Die Funktionalität kann zudem gänzlich oder in Teilen unter Nutzung eines verteilten Systems implementiert sein, so beispielsweise über eine „Cloud“ 614 mittels einer Plattform 616, wie nachstehend noch beschrieben wird.
-
Die Cloud 614 beinhaltet eine Plattform 616 für Ressourcen 618 und/oder stellt diese dar. Die Plattform 616 abstrahiert die zugrunde liegende Funktionalität der Hardware- (beispielsweise Server) und Softwareressourcen der Cloud 614. Die Ressourcen 618 können Anwendungen und/oder Daten beinhalten, die eingesetzt werden können, während eine Computerverarbeitung auf Servern ausgeführt wird, die von der Rechenvorrichtung 602 getrennt sind. Die Ressourcen 618 können zudem Dienste beinhalten, die über das Internet und/oder über ein Teilnehmernetzwerk bereitgestellt werden, so beispielsweise ein zellenbasiertes oder ein Wi-Fi-Netzwerk.
-
Die Plattform 616 kann Ressourcen und Funktionen abstrahieren, um die Rechenvorrichtung 602 mit anderen Rechenvorrichtungen zu verbinden. Die Plattform 616 kann zudem dafür dienen, die Skalierung von Ressourcen zu abstrahieren, um einen entsprechenden Skalierungsgrad für bestehenden Bedarf an den Ressourcen 618, die über die Plattform 616 implementiert sind, bereitzustellen. Entsprechend kann bei einer Ausführungsform mit wechselseitig verbundenen Vorrichtungen eine Implementierung der hier beschriebenen Funktionalität über das System 600 verteilt sein. Die Funktionalität kann beispielsweise teilweise auch auf der Rechenvorrichtung 602 wie auch über die Plattform 616, die die Funktionalität der Cloud 614 abstrahiert, implementiert sein.
-
Schlussbemerkung
-
Obwohl die Erfindung in einer Sprache beschrieben worden ist, die für Strukturmerkmale und/oder methodische Vorgänge spezifisch ist, sollte einsichtig sein, dass die in den beigefügten Ansprüchen definierte Erfindung nicht unbedingt auf die beschriebenen spezifischen Merkmale oder Vorgänge beschränkt ist. Vielmehr sind die spezifischen Merkmale und Vorgänge als exemplarische Formen der Implementierung der beanspruchten Erfindung offenbart.