-
HINTERGRUND
-
Diese Spezifikation bezieht sich auf die natürliche Sprachverarbeitung.
-
Das Internet bietet Zugriff auf eine Vielzahl von Ressourcen wie Bilddateien, Audiodateien, Videodateien und Webseiten. Ein Suchsystem kann Ressourcen in Reaktion auf Abfragen identifizieren, die von Benutzer gesendet werden, und Informationen über die Ressourcen auf eine Weise bereitstellen, die für den Benutzer nützlich ist. Der Benutzer kann z. B. durch die Suchergebnisse navigieren, um interessante Informationen zu erhalten.
-
KURZDARSTELLUNG
-
Im Allgemeinen kann ein innovativer Aspekt des in dieser Spezifikation beschriebenen Gegenstands in Verfahren verkörpert werden, die die Aktionen des Empfangen einer Suchabfrage von einem Benutzer während einer Benutzersitzung; das Erhalten einer Vielzahl früherer Suchabfragen durch den Benutzer, die während der Benutzersitzung empfangen wurden; das Erzeugen einer Vielzahl von Neuschreibungen von Kandidatenabfragen, wobei die Neuschreibungen von Kandidatenabfragen aus der Suchabfrage und der Vielzahl früherer Suchabfragen durch den Benutzer abgeleitet werden; das Bewerten jeder Neuschreibung von Kandidatenabfragen, wobei das Bewerten jeder Neuschreibung von Kandidatenabfragen auf einer Analyse der Suchergebnisse basiert, die der Neuschreibung von Kandidatenabfragen entsprechen; das Auswählen einer Neuschreibung von Kandidatenabfragen mit einer Bewertung, die einen Schwellenwert erfüllt; und das Bereitstellen von Suchabfragen, die der Neuschreibung von Kandidatenabfragen entsprechen, beinhalten. Andere Ausführungsformen dieses Aspekts umfassen entsprechende Computersysteme, Geräte und Computerprogramme, die auf einer oder mehreren Computerspeichervorrichtungen aufgezeichnet sind, die jeweils konfiguriert sind, um die Aktionen der Verfahren durchzuführen. Die Konfiguration eines System von einem oder mehreren Computern, bestimmte Vorgänge oder Tätigkeiten auszuführen, bedeutet, dass auf dem System Software, Firmware, Hardware oder eine Kombination davon installiert ist, die im Betrieb das System veranlassen, die Vorgänge oder Tätigkeiten auszuführen. Die Auslegung eines oder mehrerer Computerprogramme bestimmte Vorgänge oder Tätigkeiten auszuführen, bedeutet, dass das eine oder die mehreren Programme Anweisungen enthalten, die, wenn sie von der Datenverarbeitungsvorrichtung ausgeführt werden, die Vorrichtung veranlassen, die Vorgänge oder Tätigkeiten auszuführen.
-
Die vorstehenden und andere Ausführungsformen können jeweils wahlweise eines oder mehrere der folgenden Merkmale, allein oder in Kombination, beinhalten. Insbesondere beinhaltet eine Ausführungsform alle folgenden Merkmale in Kombination. Die Erzeugung der Vielzahl von Neuschreibungen von Kandidatenabfragen beinhaltet des Weiteren die Aneinanderreihung der Suchabfrage mit jeder früheren Suchabfrage der Vielzahl von Suchabfragen. Jede frühere Suchabfrage beinhaltet einen Zeitstempel, wobei das Bewerten der Neuschreibungen die Gewichtung von Kandidatenneuschreibungen teilweise basierend auf dem Alter der entsprechenden früheren Abfrage beinhaltet. Die Erzeugung der Vielzahl von Neuschreibungen von Kandidatenabfragen beinhaltet des Weiteren das Identifizieren von Abfragen aus einer Sammlung von Abfragen von einer Vielzahl von Benutzern, die der Suchabfrage ähnlich sind, das Bewerten jeder Neuschreibung von Kandidatensuchabfragen beinhaltet des Weiteren das Ermitteln eines Maßes der Popularität für jede Neuschreibung von Kandidatenabfragen auf Basis einer Sammlung von Abfragen von einer Vielzahl von Benutzern, das Bewerten jeder Neuschreibung von Kandidatenabfragen beinhaltet des Weiteren das Ermitteln, ob die Suchabfrage einen Referenzbegriff eines bestimmten Typs beinhaltet. Eine Bewertung einer Neuschreibung von Kandidatenabfragen wird in Reaktion auf das Ermitteln erhöht, dass die Neuschreibung von Kandidatenabfragen eine Entität des bestimmten Typs enthält, das Bewerten jeder Neuschreibung von Kandidatenabfragen beinhaltet des Weiteren das Ermitteln, ob die Suchabfrage Begriffe beinhaltet, die mit bestimmten Entitäten stark korreliert sind. Eine Bewertung einer Neuschreibung von Kandidatenabfragen wird in Reaktion auf das Ermitteln erhöht, dass die Neuschreibung von Kandidatenabfragen die Entität beinhaltet, die mit dem Abfragebegriff stark korreliert ist, das Ermitteln einer Qualität jeder Neuschreibung von Kandidatenabfragen auf Basis einer Analyse der Suchergebnisse, die jeder Neuschreibung der Kandidatenabfragen entsprechen, beinhaltet das Erhalten von Suchergebnissen in Reaktion auf jede Neuschreibung von Kandidatenabfragen und das Ermitteln einer Qualität der Suchergebnisse.
-
Der in dieser Spezifikation beschriebene Gegenstand kann in bestimmten Ausführungsformen implementiert werden, um einen oder mehreren der folgenden Vorteile zu realisieren. Die Verwendung von Abfragen früherer Benutzersitzungen, um Abfragen neu zu schreiben, verbessert die Wahrscheinlichkeit der Rückgabe von Suchergebnissen, die der Absicht des Benutzers entsprechen.
-
Die Details einer oder mehrerer Ausführungen des Gegenstands dieser Spezifikation sind in den begleiteten Bildern und der Beschreibung unten veranschaulicht. Andere Merkmale, Aspekte und Vorteile des Gegenstands werden aus der Beschreibung, den Zeichnungen und den Ansprüchen offensichtlich.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
1 ist eine Veranschaulichung einer Suchsitzung in einer beispielhaften Such-Benutzeroberfläche.
-
2 ist ein Blockdiagramm eines Beispielsystems.
-
3 ist ein Ablaufdiagramm eines Beispielprozesses für das Neuschreiben von Abfragen.
-
Ähnliche Referenznummern und Kennzeichnungen in den versehiedenen Zeichnungen zeigen ähnliche Elemente an.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Das Neuschreiben von Abfragen wird verwendet, um die Wahrscheinlichkeit der Rückgabe von Suchergebnissen zu verbessern, die für die beabsichtigte Abfrage des Benutzers am relevantesten sind. Suchabfragen, die früher in einer bestimmten Benutzersitzung eingegeben wurden, können beim Neuschreiben von Abfragen in einer aktuellen Suchabfrage der Benutzersitzung verwendet werden. Ein Benutzer kann zum Beispiel eine aktuelle Abfrage senden, die mit einer der früher eingegebenen Suchabfragen der Sitzung verbunden ist. Ein Suchsystem kann ermitteln, welche frühere Abfrage mit der aktuellen Abfrage verbunden ist, und die frühere Abfrage beim Neuschreiben der Abfrage verwenden. Die neu geschriebene Abfrage kann dann von einem Suchsystem verwendet werden, um eines oder mehrere Suchergebnisse zu ermitteln, die dem Benutzer bereitgestellt werden.
-
1 ist eine Veranschaulichung einer Suchsitzung in einer beispielhaften Such-Benutzeroberfläche. Ein Suchsystem stellt eine Such-Benutzeroberfläche 102a für das Anzeigen auf einem Benutzergerät 106 bereit. Die Benutzeroberfläche 102a kann ein Suchfeld 104a für das Empfangen einer Abfrage beinhalten. Die Abfrage kann eine Textabfrage sein, die von einem Benutzer des Benutzergeräts eingegeben wird, oder eine Sprachabfrage, die mithilfe eines Mikrofons des Benutzergeräts eingegeben wird.
-
In der Benutzersitzung empfängt das Suchsystem eine erste Abfrage vom Benutzergerät 106 zum Zeitpunkt T1. Der Benutzer stellt insbesondere die Suchabfrage [Mudville Stadion] bereit. Nach Initiieren der Suche identifiziert das Suchsystem Suchergebnisse für Ressourcen, die der ersten Abfrage entsprechen. Das Suchsystem stellt Suchergebnisse 110, die der Abfrage [Mudville Stadion] entsprechen, zur Anzeige in der Benutzeroberfläche 102a bereit. Die Suchergebnisse 110 können zum Beispiel Links zu bestimmten Ressourcen beinhalten, die durch das Suchsystem als der ersten Abfrage entsprechend ermittelt wurden.
-
Zum Zeitpunkt T2 in der Benutzersitzung empfängt das Suchsystem eine zweite Abfrage vom Benutzergerät 106 im Suchfeld 104b der Benutzeroberfläche 102b. Der Benutzer stellt insbesondere die Suchabfrage [Mudville nine] bereit. Nach Initiieren der Suche identifiziert das Suchsystem Suchergebnisse für Ressourcen, die der zweiten Abfrage entsprechen, und stellt Suchergebnisse 112 für die Anzeige in der Benutzeroberfläche 102b bereit.
-
Zum Zeitpunkt T3 in der Benutzersitzung empfängt das Suchsystem eine dritte Abfrage vom Benutzergerät 106 im Suchfeld 104c der Benutzeroberfläche 102c. Der Benutzer stellt insbesondere die Suchabfrage [Barack Obama] bereit. Nach Initiieren der Suche identifiziert das Suchsystem Suchergebnisse für Ressourcen, die der zweiten Abfrage entsprechen, und stellt Suchergebnisse 114 für die Anzeige in der Benutzeroberfläche 102c bereit.
-
Zum Zeitpunkt T4 in der Benutzersitzung empfängt das Suchsystem eine vierte Abfrage vom Benutzergerät 106 im Suchfeld 104d der Benutzeroberfläche 102d. Der Benutzer stellt insbesondere die Suchabfrage [wie groß ist die Kapazität] bereit. Das Suchsystem ermittelt, dass die vierte Abfrage mit einer früheren Abfrage in der Benutzersitzung verbunden ist. Insbesondere ermittelt das Suchsystem, dass die Abfrage [wie groß ist die Kapazität] mit der ersten Abfrage [Mudville Stadion] verbunden ist. Techniken für das Ermitteln, dass eine aktuell empfangene Abfrage mit einer früheren Abfrage in der Benutzersitzung verbunden ist, werden unten beschrieben.
-
In Reaktion auf das Ermitteln, dass die vierte Abfrage mit der ersten Abfrage in der Benutzersitzung verbunden ist, schreibt das Suchsystem die vierte Abfrage als [wie groß ist die Kapazität des Mudville Stadions] neu. Nach Initiieren der Suche mithilfe der neu geschriebenen Abfrage, die in Suchfeld 104e angezeigt werden kann, identifiziert das Suchsystem Suchergebnisse für Ressourcen, die der neu geschriebenen Abfrage entsprechen, und stellt Suchergebnisse 116 für die Anzeige in der Benutzeroberfläche 102e bereit.
-
2 ist ein Blockdiagramm eines Beispielsystems 200. Das System 200 stellt Suchergebnisse bereit, die für gesendete Abfragen relevant sind, wie dies in einem Internet, einem Intranet oder einer anderen Client- und Serverumgebung implementiert werden kann. Das System 200 ist ein Beispiel eines Informationsabfragesystems, in dem die unten beschriebenen Systeme, Komponenten und Techniken implementiert werden können.
-
Ein Benutzer 202 kann mit einem Suchsystem 214 über ein Clientgerät 204 interagieren. Der Client 204 kann zum Beispiel ein Computer sein, der mit Suchsystem 214 über ein Local Area Network (LAN) oder ein Wide Area Network (WAN), z. B. das Internet, gekoppelt ist. In einigen Implementierungen können sich das Suchsystem 214 und das Clientgerät 204 auf einer Maschine befinden. Ein Benutzer kann zum Beispiel eine Desktop-Suchanwendung auf dem Clientgerät 204 installieren. Das Clientgerät 204 beinhaltet im Allgemeinen einen Direktzugriffsspeicher (random access memory, RAM) 206 und einen Prozessor 208.
-
Der Benutzer 202 kann Abfragen 210 an eine Suchmaschine 230 in einem Suchsystem 214 senden. Wenn der Benutzer 202 eine Abfrage 210 sendet, wird die Abfrage 210 über ein Netzwerk an das Suchsystem 214 übertragen. Das Suchsystem 214 kann zum Beispiel als Computerprogramme implementiert werden, die auf einem oder mehreren Computern an einem oder mehreren Orten ausgeführt werden, die über ein Netzwerk miteinander gekoppelt sind.
-
Das Suchsystem 214 beinhaltet des Weiteren eine Indexdatenbank 222 und eine Suchmaschine 230. Das Suchsystem 214 reagiert auf eine eingegebene Abfrage, indem es Suchergebnisse 228 erzeugt, die über das Netzwerk an das Clientgerät 204 in einer Form übertragen werden, die dem Benutzer 202 präsentiert werden kann (z. B. als Webseite mit Suchergebnissen, die in einem Webbrowser angezeigt werden soll, der auf dem Clientgerät 204 ausgeführt wird).
-
Wenn die Abfrage von der Suchmaschine 230 empfangen wird, identifiziert die Suchmaschine 230 Ressourcen, die mit der Abfrage 210 übereinstimmen oder dieser entsprechen. Die Suchmaschine 230 beinhaltet im Allgemeine eine Indizierungs-Engine 220, die Ressourcen (z. B. Webseiten, Bilder oder Nachrichtenartikel im Internet) indiziert, die in einem Korpus (z. B. einer Sammlung oder einem Repository von Inhalten) zu finden sind, eine Indexdatenbank 222, die die Indexinformationen speichert, und eine Einstufungs-Engine 252 (oder andere Software), die die Ressourcen einstuft, die mit der Abfrage 210 übereinstimmen. Die Indizierung und Einstufung der Ressourcen kann mithilfe herkömmlicher Techniken durchgeführt werden. Die Suchmaschine 130 kann die Suchergebnisse 228 über das Netzwerk an das Clientgerät 204 für die Präsentation für den Benutzer 202 übertragen.
-
Das Suchsystem 230 kann außerdem Sitzungsprotokolle 254 beinhalten. Die Sitzungsprotokolle 254 pflegen Protokolle von Abfragen, die während Benutzersitzungen gesendet wurden, einschließlich Benutzersitzungen von Benutzer 202. Eine Sitzung kann auf eine Reihe verschiedener Arten definiert werden. Eine Sitzung kann zum Beispiel Abfragen beinhalten, die in einem bestimmten Zeitraum nach einer anfängliche Abfrage gesendet wurden, z. B. alle Abfragen, die innerhalb von einer Stunde nach der ersten Abfrage gesendet wurden. Die Sitzung kann außerdem Abfragen beinhalten, die während einer bestimmten Browsersitzung gesendet wurden, z. B. Abfragen, die gesendet wurden, während die Browseranwendung auf dem Clientgerät 204 läuft. Die Sitzung kann mit einer bestimmten Benutzerkennung oder einer Gerätekennung verbunden sein.
-
Das Suchsystem 230 kann außerdem eine Engine zum Neuschreiben von Abfragen 256 beinhalten. Die Engine zum Neuschreiben von Abfragen 256 kann empfangene Abfragen auf Basis verschiedener Kriterien neu schreiben. Insbesondere kann, wie in dieser Spezifikation beschrieben, die Engine zum Neuschreiben von Abfragen 256 das Protokoll der Abfragen verwenden, die während einer Benutzersitzung gesendet wurden, um zu ermitteln, ob eine empfangene Abfrage 210 auf Basis einer verbundenen Abfrage in den Sitzungsprotokollen 254 neu geschrieben werden sollte.
-
3 ist ein Ablaufdiagramm eines Beispielprozesses 300 für das Neuschreiben von Abfragen. Zur Vereinfachung wird der Prozess 300 so beschrieben, als würde er von einem System von einem oder mehreren Computer durchgeführt, die sich an einem oder mehreren Orten befinden und in Übereinstimmung mit dieser Spezifikation entsprechend programmiert sind. Ein Suchsystem, z. B. Suchsystem 214 von 2, das entsprechend programmiert ist, kann den Prozess 300 durchführen.
-
Das System empfängt eine Suchabfrage (302). Ein Benutzer kann die Suchabfrage in eine Such-Benutzeroberfläche eingeben. Ein Benutzer kann zum Beispiel mithilfe einer Suchanwendung oder einer Browseranwendung, die auf eine Suchoberfläche gerichtet ist, auf die Such-Benutzeroberfläche zugreifen. Die Suchabfrage kann Teil einer Benutzersuchsitzung sein, die mehrere frühere Suchabfragen beinhaltet. Die empfangene Suchabfrage kann implizit auf eine frühere Abfrage der Benutzersitzung verweisen. Die empfangene Abfrage, q: [wie groß ist die Kapazität] kann sich zum Beispiel auf eine frühere Abfrage über ein Gebäude oder eine Einrichtung beziehen. Ähnlich kann die empfangene Abfrage, q: [wann ist das nächste Spiel] sich auf eine frühere Abfrage über ein bestimmtes Sportteam beziehen.
-
Das System erhält frühere Suchabfragen, die während der Benutzersitzung (304) eingegeben wurden. Die früheren Suchabfragen können zum Beispiel aus einem Abfrageprotokoll erhalten werden, das Abfragen als zu einer oder mehreren bestimmten Sitzungen gehörend identifiziert. Die erhaltenen früheren Abfragen können zum Beispiel sein:
q1: [Mudville Stadion]
q2: [Mudville nine]
q3: [Barack Obama]
-
In einigen Implementierungen ermittelt das System, ob Schwellenwertkriterien erfüllt sind, bevor es frühere Suchabfragen erhält. Das System kann zum Beispiel eine oder mehrere Auslöserregeln anwenden. Die Regeln können zum Beispiel das Ermitteln beinhalten, ob die empfangene Abfrage einen oder mehrere Begriffe beinhaltet, einen Kontext angeben, z. B. die Verwendung eines Pronomens oder anderer Referenzbegriffe in der Abfrage, oder ob die empfangene Abfrage eine wiederholte Abfrage war.
-
Jede frühere Suchabfrage der Benutzersitzung hat auch einen zugehörigen Zeitstempel, der der Zeit entspricht, zu der die Suchabfrage empfangen wurde. Daher kann jede frühere Suchabfrage durch Tupel der Form (Abfrage, Zeitstempel) dargestellt werden, sodass die früheren Suchabfragen als (q1, t1), ... (qn, tn) dargestellt werden können, wobei n gleich der Anzahl früherer Suchabfragen ist.
-
Das System erzeugt Kandidaten-Neuschreibungen für die empfangene Suchabfrage (306). In einigen Implementierungen werden Kandidaten-Neuschreibungen durch Kombinieren jeder jeweiligen früheren Suchabfrage mit der empfangenen Suchabfrage erzeugt. In anderen Implementierungen können Informationen in natürlicher Sprache verwendet werden, um Kandidaten-Neuschreibungen zu erzeugen. Außerdem können Suchabfragen, die einer oder mehreren früheren Suchabfragen und der Suchabfrage ähnlich sind, zum Erzeugen von Kandidaten-Neuschreibungen verwendet werden.
-
Kandidaten-Neuschreibungen können gemäß einer Funktion erzeugt werden, die die früheren Suchabfragen und die empfangene Suchabfrage kombiniert, um Kandidaten-Neuschreibungen auszugeben. Insbesondere kann eine Sammlung von Tupeln (Abfrage, Zeitstempel) als Satz früherer Suchabfragen Q = {(q1, t1, ..., (qn, tn)} dargestellt werden. Für jedes Element in Q und die empfangene Suchabfrage q kann die Funktion zum Beispiel definiert werden als: C((qi, ti), q) → {(qi, ti), q, r1), ..., ((qi, ti), q, r{Nqi})}, wobei das eingegebene Paar (Abfrage, Zeitstempel) und die empfangene Suchabfrage q genommen und Nqi Neuschreibungen, r, erzeugt werden, wobei Nqi eine Ganzzahl ist.
-
Ein Beispiel der Funktion ist eine Aneinanderreihung jeder früheren Suchabfrage mit der empfangenen Suchabfrage, wodurch Nqi Neuschreibungen erzeugt werden, wobei jede eine Kombination am der empfangenen Suchabfrage und einer der früheren Suchabfragen ist. In den obigen Beispielsuchabfragen und der empfangenen Suchabfrage [wie groß ist die Kapazität] waren zum Beispiel die Kandidaten-Neuschreibungen unter einer Aneinanderreihungsfunktion:
r1: [Mudville Stadion wie groß ist die Kapazität],
r2: [Mudville nine wie groß ist die Kapazität] und
r3: [Barack Obama wie groß ist die Kapazität].
-
In einigen Implementierungen können zusätzliche Informationen verwendet werden, um die erzeugten Kandidaten-Neuschreibungen zu erweitern. Die Ähnlichkeit von Suchabfragen kann zum Beispiel verwendet werden, um Grammatiken zu erzeugen, die Suchabfragen beinhalten, die früheren Suchabfragen und der empfangenen Suchabfrage ähnlich sind. Somit ist für alle Abfragen mit einem bestimmten Grad der Ähnlichkeit, z. B. mithilfe eines geeigneten Ähnlichkeitsmaßstabs, zu früheren Suchabfragen qi und der empfangenen Suchabfrage q die Aneinanderreihung aller neuen Paare der ausgegebene Satz Q = {C((q1, t1), q) + C((q2, t2), q) ...}.
-
In einigen Implementierungen identifiziert das System ähnliche Suchabfragen auf Basis ähnlicher Suchabfragen, die durch eine Sammlung von Benutzern eines Suchsystems eingegeben werden, z. B. auf Basis von Suchabfrageprotokollen. Wenn Benutzer zum Beispiel eine ähnliche Abfrage [Mudville Stadion Kapazität] mit einer Schwellenwert-Häufigkeit in das Suchabfragenprotokoll eingeben, d. h. die Suchabfrage ist ausreichend populär, kann die protokollierte Suchabfrage als eine Kandidaten-Neuschreibung verwendet werden.
-
In einigen Implementierungen werden ähnliche Abfragen auf Basis von Abfragen identifiziert, die dieselben Begriffe mit oder ohne Stoppwörter, z. B. ein/eine/einer, der/die/das, oder die ähnliche Arten von Begriffen in den Abfragen verwenden. Die Abfrage [Mudville Stadion wie groß ist die Kapazität] kann zum Beispiel auf Basis der Verwendung gemeinsamer Suchbegriffe ähnlich der Abfrage [wie groß ist die Kapazität des Mudville Stadions] und [Mudville Stadion Kapazität] sein. In anderen Implementierungen können besondere Abfragemuster verwendet werden, um ähnliche Abfragen zu identifizieren. Abfrageprotokolle können zum Beispiel angeben, dass [x Kapazität] ein häufiges Abfragemuster ist, wobei X ein Stadion/Gebäude/usw. ist. Somit können, wenn eine aktuelle Abfrage [Kapazität] ist und eine der früheren Abfragen eine Entität identifiziert hat, die mit einem Stadion verbunden ist, Kandidaten mithilfe des Musters erzeugt werden.
-
In einigen anderen Implementierungen kann das System Informationen in natürlicher Sprache verwenden, um ähnliche Suchabfragen zu erzeugen. Die Verwendung eines Pronomens in der aktuellen Suchabfrage kann zum Beispiel angeben, dass das Pronomen durch eine bestimmte Entität ersetzt werden kann. Entitäten können in den früheren Suchabfragen identifiziert und in der aktuellen Suchabfrage als Kandidaten-Neuschreibungen ersetzt werden. Wenn die aktuelle empfangene Suchabfrage zum Beispiel [wie alt ist er] ist, gibt das Pronomen „er” an dass das Objekt eine Personenentität ist. Wenn eine der früheren Suchabfragen [Barack Obama] ist, kann die Entität ersetzt werden, um die Kandidaten-Neuschreibung [wie alt ist Barack Obama] zu erzeugen Ähnlich weist wenn, die aktuelle empfangene Suchabfrage [wo ist es] ist, die Analyse der natürlichen Sprache darauf hin, dass „es” sich auf einen Ort oder eine dingliche Entität bezieht. Somit kann, wenn eine der früheren Suchabfragen [Golden Gate Bridge Baujahr] ist, die Entität ersetzt werden, um die Kandidaten-Neuschreibung [wo ist die Golden Gate Bridge] zu erzeugen.
-
Das System bewertet jede Kandidaten-Neuschreibung (308). Das System bewertet Kandidaten-Neuschreibungen gemäß einem oder mehreren Kriterien. Das eine oder die mehreren Kriterien können Folgendes beinhalten: (i) den Zeitstempel der früheren Suchabfragen, die mit dem jeweiligen Kandidaten-Neuschreibungen verbunden sind, (ii) einen Qualitätsmaßstab auf Basis der Abfrageergebnisse der Kandidaten-Neuschreibung, (iii) eine Popularität der Abfrage-Neuschreibung, (iv) eine Verwendung von Referenzbegriffen und (v) Entitäten, die häufig mit bestimmten Abfragebegriffen vorkommen. Aus Basis des einen oder der mehreren Kriterien kann eine Bewertungsfunktion S definiert werden, sodass für einen Kandidatensatz Q eine Bewertungsfunktion S((qi, ti), q, r) → R der Kandidaten-Neuschreibung eine Bewertung angesichts der Eingaben (qi, ti) und q zuweist.
-
Wie oben beschrieben, beinhaltet jede frühere Suchabfrage der Benutzersitzung einen Zeitstempel, der die Zeit angibt, zu der die frühere Suchabfrage empfangen wurde. Der Zeitstempel kann bei der Bewertung von Kandidaten-Neuschreibungen verwendet werden. Insbesondere kann das System in der Bewertung ein Nachteilsgewicht auf Basis des Alters der früheren Suchabfrage bereitstellen oder ähnlich einen Vorteil für jüngere frühere Abfragen. Somit ist es, je älter die frühere Abfrage, umso unwahrscheinlicher, dass die empfangene Suchabfrage sich auf diese frühere Suchabfrage bezieht. Die Suchabfrage [Barack Obama] kann zum Beispiel zum Zeitpunkt T1 empfangen werden und die Suchabfrage [Bill Clinton] kann zu einem späteren Zeitpunkt T3 empfangen werden. Für eine zum Zeitpunkt T5 empfangene Suchabfrage [wie alt ist er] kann die Kandidaten-Neuschreibung [wie alt Barack Obama] in Bezug auf die Kandidaten-Neuschreibung [wie alt ist Bill Clinton] negativ gewichtet werden.
-
Der Qualitätsmaßstab kann als Faktor in der Bewertung für jede Kandidaten-Neuschreibung verwendet werden. Der Qualitätsmaßstab basiert auf Suchabfrageergebnissen der Kandidaten-Neuschreibung. Insbesondere können Kandidaten-Neuschreibungen einer Suchabfrage gesendet werden. Die Ergebnisse der Kandidaten-Neuschreibung können analysiert werden, um den Qualitätsmaßstab zu ermitteln. Die Analyse kann das Ermitteln einer Anzahl zurückgegebener Suchergebnisse, eine Ermittlung, wie oft Suchergebnisse von Benutzern ausgewählt werden, und/oder eine Qualitätsbewertung, die mit bestimmten Suchergebnissen verbunden ist, beinhalten. Für Kandidaten-Neuschreibungen, die einen höheren Qualitätsmaßstab haben, kann der Qualitätsmaßstabfaktors bei der Bewertung der Kandidaten-Neuschreibung höher gewichtet werden.
-
Eine Popularität der Abfrage-Neuschreibung kann als Faktor in der Bewertung für jede Kandidaten-Neuschreibung verwendet werden. Die Popularität der Abfrage-Neuschreibung ist ein Maßstab dafür, wie oft die Kandidaten-Neuschreibung in einer Sammlung von Suchabfragen erfolgt. Bei der Untersuchung eines Suchabfrageprotokolls für eine Sammlung von Benutzern kann zum Beispiel die relative Häufigkeit des Auftretens für jede Kandidaten-Neuschreibung ermittelt werden. Für Kandidaten-Neuschreibungen, die mit einer höheren Frequenz erfolgen, kann der Popularitätsfaktor bei der Bewertung der Kandidaten-Neuschreibung höher gewichtet werden.
-
Die Verwendung von Referenzbegriffen kann als Faktor in der Bewertung für jede Kandidaten-Neuschreibung verwendet werden. Insbesondere kann die aktuelle Suchabfrage einen klaren Referenzbegriff haben, z. B. eine Pronomen der dritten Person oder andere Referenzbegriffe wie „es” oder „dort”, und eine frühere Suchabfrage in der Sitzung hat eine jeweilige Entität dieses bestimmten Typs, z. B. eine Person, ein Ort, Kandidaten-Neuschreibungen, die den Referenzbegriff mit den entsprechenden Entitäten des besonderen referenzierten Typs kombinieren, können bei der Bewertung der Kandidaten-Neuschreibung höher gewichtet werden.
-
Die Identifizierung von Entitäten, die häufig mit bestimmten Suchabfragebegriffen erscheinen, kann als Faktor in der Bewertung für jede Kandidaten-Neuschreibung verwendet werden. Insbesondere können bestimmte Begriffe stark mit bestimmten Entitäten in Suchabfragen korreliert sein. Der Begriff „Kapazität” kann zum Beispiel stark mit Entitäten des Typs „Sporteinrichtungen” korreliert sein, der Begriff „Liedtext” kann stark mit Entitäten des Typs „Lied” korreliert sein und der Begriff „Geburtsdatum” kann stark mit Entitäten des Typs „Personen” korreliert sein. Die empfangene Suchabfrage kann einen Begriff beinhalten, der in Suchabfragen korreliert ist, z. B. ein einem Abfrageprotokoll, das einen bestimmten Entitätstyp beinhaltet. Wenn eine Entität des bestimmten Entitätstyps in den früheren Benutzersuchabfragen der Benutzersitzung erfolgt, können Kandidaten-Neuschreibungen, die mit diesen Entitäten erzeugt wurden, bei der Bewertung der Kandidaten-Neuschreibung höher gewichtet werden.
-
Das System ermittelt, ob eine Schwellenwertbewertung erfüllt ist (310). In einigen Implementierungen wird die Kandidaten-Neuschreibung mit der höchsten Bewertung ermittelt und mit einer Schwellenwertbewertung verglichen, in Reaktion auf das Ermitteln dass die Kandidaten-Neuschreibung mit der höchsten Bewertung die Schwellenwertbewertung, „nein” Abzweig von 310, nicht erfüllt, erhält das System Suchergebnisse, die der empfangenen Abfrage entsprechen, ohne Neuschreibung auf Basis früherer Suchabfragen der Benutzersitzung (312). Die Suchergebnisse können dem Benutzergerät für die Darstellung in einer Such-Benutzeroberfläche bereitgestellt werden.
-
In Reaktion auf das Ermitteln, dass die Kandidaten-Neuschreibung mit der höchsten Bewertung die Schwellenwertbewertung, „ja” Abzweig von 310, erfüllt, wählt das System die Kandidaten-Neuschreibung (314), um die empfangene Suchabfrage neu zu schreiben und Suchergebnisse zu erhalten, die der neu geschriebenen Suchabfrage entsprechen. Die Suchergebnisse können dem Benutzergerät für die Darstellung in einer Such-Benutzeroberfläche bereitgestellt werden.
-
Ausführungsformen des Gegenstands und die in dieser Spezifikation beschriebenen funktionalen Tätigkeiten können in digitalen elektronischen Schaltungen oder in einer konkret darin verkörperten Computer-Software, Firmware in die Hardware implementiert werden, einschließlich der in dieser Spezifikation offenbarten Strukturen und ihrer strukturellen Entsprechungen oder in Kombinationen von einer oder mehrerer von ihnen. Ausführungsformen des in dieser Spezifikation beschriebenen Gegenstands können als ein oder mehrere Computerprogramme, d. h. als ein oder mehrere Module von Computerprogrammanweisungen, implementiert werden, die auf einem materiellen, nicht-flüchtigen Speichermedium für die Ausführung durch oder die Kontrolle des Betriebs der Datenverarbeitungsvorrichtung kodiert werden. Bei einem Computer-Speichermedium kann es sich um ein maschinenlesbares Speichergerät, einen maschinenlesbaren Speicherträger, ein Speichergerät mit Direktzugriff oder sequenziellem Zugriff oder um eine Kombination aus einem oder mehreren dieser Geräte handeln. Alternativ oder zusätzlich können die Programmanweisungen auf einem künstlich erzeugten propagierten Signal, z. B. einem maschinell erzeugten elektrischen, optischen oder elektromagnetischen Signal künstlich kodiert werden, das erzeugt wird, um Informationen für die Übertragung auf einen geeigneten Empfängerapparat für die Durchführung durch einen datenverarbeitenden Apparat zu kodieren.
-
Der Begriff „Datenverarbeitungsvorrichtung” bezieht sich auf Datenverarbeitungshardware und umfasst alle Arten von Vorrichtungen, Geräten und Maschinen zur Verarbeitung von Daten, einschließlich beispielsweise eines programmierbaren Prozessors, eines Computers oder mehrerer Prozessoren oder Computer. Die Vorrichtung kann des Weiteren auch eine Logikschaltung für spezielle Zwecke sein oder eine solche beinhalten, z. B. ein FPGA (Field Programmable Gate Array) oder eine ASIC (anwendungsspezifische integrierte Schaltung). Der Apparat kann als Option neben der Hardware auch einen Code einschließen, der eine Ausführungsumgebung für das betreffende Computerprogramm erstellt, z. B. einen Code, der Prozessor-Firmware, einen Protokollstapel, ein Datenbank-Managementsystem, ein Betriebssystem oder eine Kombination einer oder mehrerer der genannten darstellt.
-
Ein Computerprogramm, das auch als Programm, Software, Softwareanwendung, Modul, Softwaremodul, Script oder Code bezeichnet oder beschrieben werden kann, kann in jeder Form von Programmiersprache, einschließlich kompilierter oder interpretierter Sprachen, oder in deklarativen oder prozeduralen Sprachen geschrieben und in beliebiger Form, einschließlich als eigenständiges Programm oder als Modul, Komponente, Subroutine oder als eine andere für den Einsatz in einer Computerumgebung geeignete Einheit bereitgestellt werden. Ein Programm kann, muss aber nicht, einer Datei in einem Dateisystem entsprechen. Ein Programm kann in einem Teil einer Datei gespeichert sein, die andere Programme oder Daten enthält (z. B. ein oder mehrere Scripte, die in einem Dokument in Markup-Sprache gespeichert sind), in einer einzelnen Datei speziell für das betreffende Programm oder in mehreren koordinierten Dateien (z. B. Dateien, die ein oder mehrere Module, Unterprogramme oder Teile von Code speichern). Ein Computerprogramm kann auf einem Computer oder mehreren Computern eingerichtet sein oder ausgeführt werden, die an einem Standort angeordnet oder über mehrere Standorte verteilt und über ein Kommunikationsnetz verbunden sind.
-
Die in dieser Beschreibung dargestellten Prozesse und Logik-Abläufe können durch einen oder mehrere programmierbare Prozessoren durchgeführt werden, die ein oder mehrere Computerprogramme ausführen, um Funktionen durch das Arbeiten mit Eingabedaten und das Erzeugen von Ausgaben auszuführen. Die Prozesse und Logikabläufe können auch durch Logikschaltungen für spezielle Zwecke, z. B. ein FPGA oder eine ASIC, oder durch eine Kombination von Logikschaltungen für spezielle Zwecke und einen oder mehrere programmierte Computer durchgeführt werden.
-
Computer, die zur Ausführung eines Computerprogramms geeignet sind, können beispielsweise auf allgemeinen oder speziellen Mikroprozessoren oder beidem oder jeder anderen Art einer Zentraleinheit basieren. Im Allgemeinen empfängt eine Zentraleinheit Anweisungen und Daten von einem schreibgeschützten Speicher oder einem Direktzugriffsspeicher oder von beiden. Die wesentlichen Elemente eines Computers sind eine CPU für das Ausführen von Anweisungen und ein oder mehrere Speichergeräte für das Speichern von Anweisungen und Daten. Die Zentraleinheit und der Speicher können durch Logikschaltungen für spezielle Zwecke ergänzt werden oder darin enthalten sein. Ganz allgemein gehören zu einem Computer auch ein oder mehr Massenspeichergeräte für das Speichern von Daten, z. B. Magnet-, magnetooptische oder optische Disketten, um Daten entgegenzunehmen und/oder zu übertragen, bzw. ist ein Computer operativ an ein solches Speichergerät gekoppelt. Jedoch muss ein Computer solche Geräte nicht haben. Außerdem kann ein Computer in einem anderen Gerät eingebettet sein, z. B. in einem Mobiltelefon, einem Personal Digital Assistant (PDA), einem mobilen Audio- oder Videoplayer, einer Spielkonsole, einem Funknavigationsempfänger (GPS) oder einem tragbaren Speichergerät (z. B. in einem USB-Stick), um nur einige zu nennen.
-
Computerlesbare Medien, die für das Speichern von Computerprogrammanweisungen und -daten geeignet sind, beinhalten alle Formen von nicht flüchtigem Speichern, Medien und Speichergeräten, einschließlich beispielsweise Halbleiter-Speichergeräte, z. B. EPROM, EEPROM und Flash-Speicher, Magnetdatenträger, z. B. interne Festplatten oder Wechselplatten; magnetooptische Datenträger; und CD-ROMs und DVD-ROMs.
-
Die Steuerung der verschiedenen Systeme, die in dieser Spezifikation beschrieben sind, oder von Teilen davon, kann in einem Computerprogrammprodukt implementiert werden, das Anweisungen beinhaltet, die auf einem oder mehreren nicht flüchtigen, maschinenlesbaren Speichermedien gespeichert sind und auf einem oder mehreren Verarbeitungsgeräten ausgeführt werden können. Die in dieser Spezifikation beschriebenen Systeme oder Teile davon können als eine Vorrichtung, ein Verfahren oder ein elektronisches System implementiert werden, die/das eines oder mehrere Verarbeitungsgeräte und Speicher beinhalten kann, um ausführbare Anweisungen zur Durchführung der in dieser Spezifikation beschriebenen Operationen zu speichern.
-
Um die Interaktion mit einem Benutzer zu ermöglichen, können in dieser Spezifikation beschriebene Ausführungsformen des Gegenstands auf einem Computer mit einem Anzeigegerät implementiert werden, z. B. einem CRT-(Kathodenstrahlröhre) oder LCD-(Flüssigkristallanzeige)Monitor, mit welchem dem Benutzer Informationen angezeigt werden, sowie einer Tastatur und einem Anzeigegerät, z. B. einer Maus oder einem Trackball, mit denen der Benutzer Eingaben in den Computer vornehmen kann. Es können auch andere Arten von Einrichtungen verwendet werden, um für eine Interaktion mit einem Benutzer zu sorgen; beispielsweise kann eine dem Benutzer gelieferte Rückkopplung beliebiger Form von sensorischer Rückkopplung vorliegen, z. B. eine visuelle Rückkopplung, auditive Rückkopplung oder taktile Rückkopplung; und die Eingabe vom Benutzer kann in beliebiger Form empfangen werden, einschließlich akustischer, Sprach- oder taktiler Eingabe. Zusätzlich kann ein Computer mit einem Benutzer durch das Senden und Empfangen von Dokumenten von einem Gerät, das von einem Benutzer verwendet wird, interagieren; so zum Beispiel durch senden von Webseiten an einen Webbrowser durch ein Benutzergerät als Antwort auf Anforderungen des Webbrowsers.
-
Ausführungsformen des in dieser Spezifikation betrachteten Gegenstands können in ein Computersystem implementiert werden, das eine Backend-Komponente, z. B. einen Datenserver, beinhaltet oder das eine Middleware-Komponente, z. B. einen Anwendungsserver, beinhaltet oder das eine Frontend-Komponente, z. B. einen Clientcomputer mit einer grafischen Benutzeroberfläche oder einen Webbrowser, beinhaltet, worüber der Benutzer mit einer Implementierung des in dieser Spezifikation betrachteten Gegenstands interagieren kann, oder eine beliebige Kombination aus solchen Backend-, Middleware- oder Frontend-Komponenten. Die Komponenten des Systems können durch eine beliebige Form oder ein beliebiges Medium digitaler Datenkommunikation miteinander verbunden sein, z. B. ein Kommunikationsnetz.
-
Beispiele von Kommunikationsnetzwerken beinhalten ein lokales Netzwerk („LAN”) und ein Fernnetz („WAN”), z. B. das Internet.
-
Das Rechensystem kann Client und Server beinhalten. Ein Client und Server befinden sich im Allgemeinen ortsfern voneinander und interagieren typische weise über ein Kommunikationsnetz. Die Beziehung zwischen Client und Server entsteht aufgrund von Computerprogrammen, die auf den jeweiligen Computern laufen und die eine Client-Server-Beziehung zueinander haben. In manchen Ausführungen überträgt ein Server Daten (z. B. eine HTML Seite) an ein Benutzergerät, z. B. mit dem Zweck, Daten anzuzeigen und Benutzereingaben von einem Benutzer, der mit dem Benutzergerät interagiert, zu erhalten. Daten, die am Benutzergerät erzeugt werden (z. B. das Resultat einer Interaktion mit einem Benutzer) können vom Benutzergerät am Server erhalten werden.
-
Auch wenn diese Spezifikation viele spezifische Implementierungsdetails enthält, sollten diese nicht als Einschränkungen des Umfangs von Erfindungen oder der Ansprüche ausgelegt werden, sondern als Beschreibungen von Merkmalen, die für bestimmte Ausführungsformen bestimmter Erfindungen spezifisch sind. Bestimmte Merkmale, die in dieser Spezifikation im Kontext der unterschiedlichen Ausführungsformen beschrieben werden, können auch in Kombination in einer einzelnen Ausführungsform implementiert werden. Andererseits können verschiedene Merkmale, die im Kontext einer einzelnen Ausführungsform beschrieben werden, in mehreren Ausführungsformen oder in jeder geeigneten Unterkombination implementiert werden. Außerdem können ein oder mehrere Merkmale einer beanspruchten Kombination in einigen Fällen aus der Kombination herausgelöst werden, auch wenn die Merkmale vorstehend als in gewissen Kombinationen funktionierend beschrieben oder gar als eine Kombination beansprucht werden, und die beanspruchte Kombination kann an eine Unterkombination oder eine Variation einer Unterkombination verwiesen werden.
-
Ebenso werden Tätigkeiten in den Zeichnungen zwar in einer bestimmten Reihenfolge dargestellt, aber dies sollte nicht als Anforderung verstanden werden, dass solche Tätigkeiten in der bestimmten gezeigten Reihenfolge oder in einer aufeinanderfolgenden Reihenfolge ausgeführt werden müssen oder dass alle dargestellten Tätigkeiten ausgeführt werden müssen, um erwünschte Ergebnisse zu erzielen. Unter bestimmten Umständen können Multitasking und eine Parallelbearbeitung vorteilhaft sein. Darüber hinaus sollte die Trennung verschiedener Systemmodule und -komponenten in den oben beschriebenen Ausführungsformen nicht als in allen Ausführungsformen erforderlich aufgefasst werden, und es versteht sich, dass die beschriebenen Programmkomponenten und Systeme im Allgemeinen zusammen in ein einziges Softwareprodukt integriert oder zu mehreren Softwareprodukten verkapselt werden können.
-
In dieser Spezifikation wird der Begriff „Engine” ganz allgemein verwendet, um auf ein softwarebasiertes System oder Subsystem zu verweisen, das eine oder mehrere spezifische Funktionen durchführen kann. Eine Engine wird im Allgemeinen als eines oder mehrere Softwaremodule oder -komponenten implementiert, die auf einem oder mehreren Computer an einem oder mehreren Orten installiert sind. In manchen Fällen sind ein oder mehrere Computer einer bestimmten Engine zugeordnet, in anderen Fällen können mehrere Engines auf demselben Computer oder auf denselben Computer installiert sein und ausgeführt werden.
-
Folglich wurden bestimmte Ausführungsformen des Gegenstands beschrieben. Weitere Ausführungsformen gehören zum Umfang der folgenden Ansprüche. Die in den Ansprüchen ausgeführten Vorgänge können beispielsweise in einer anderen Reihenfolge ausgeführt werden und erzielen dennoch gewünschte Ergebnisse. Die in den beigefügten Abbildungen dargestellten Verfahren erfordern beispielsweise nicht notwendigerweise die gezeigte Reihenfolge oder sequentielle Reihenfolge, um erwünschte Ergebnisse zu erzielen. Unter bestimmten Umständen können Multitasking und eine Parallelbearbeitung vorteilhaft sein.