DE112015004203T5 - Neuschreibung von abfragen mithilfe von sitzungsinformationen - Google Patents

Neuschreibung von abfragen mithilfe von sitzungsinformationen Download PDF

Info

Publication number
DE112015004203T5
DE112015004203T5 DE112015004203.2T DE112015004203T DE112015004203T5 DE 112015004203 T5 DE112015004203 T5 DE 112015004203T5 DE 112015004203 T DE112015004203 T DE 112015004203T DE 112015004203 T5 DE112015004203 T5 DE 112015004203T5
Authority
DE
Germany
Prior art keywords
queries
candidate
search
query
rewriting
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112015004203.2T
Other languages
English (en)
Inventor
Marcin M. Nowak-Przygodzki
Behshad Behzadi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of DE112015004203T5 publication Critical patent/DE112015004203T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/156Query results presentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2425Iterative querying; Query formulation based on the results of a preceding query
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3325Reformulation based on results of preceding query
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Verfahren, Systeme und Vorrichtung, einschließlich auf einem Computerspeichermedium codierter Computerprogramme, für die Verarbeitung natürlicher Sprache. Eines der Verfahren beinhaltet das 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.

Description

  • 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.

Claims (20)

  1. Verfahren umfassend: das 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.
  2. Verfahren nach Anspruch 1, wobei das Erzeugen der Vielzahl von Neuschreibungen von Kandidatenabfragen des Weiteren die Aneinanderreihung der Suchabfrage mit jeder früheren Suchabfrage der Vielzahl von Suchabfragen umfasst.
  3. Verfahren nach Anspruch 2, wobei jede frühere Suchabfrage einen Zeitstempel beinhaltet, und wobei das Bewerten der Neuschreibungen die Gewichtung von Kandidatenneuschreibungen teilweise basierend auf dem Alter der entsprechenden früheren Abfrage beinhaltet.
  4. Verfahren nach Anspruch 1, wobei das Erzeugen der Vielzahl von Neuschreibungen von Kandidatenabfragen des Weiteren das Identifizieren von Abfragen aus einer Sammlung von Abfragen aus einer Vielzahl von Benutzer, die der Suchabfrage ähnlich sind, umfasst.
  5. Verfahren nach Anspruch 1, wobei das Bewerten jeder Neuschreibung von Kandidatensuchabfragen des Weiteren das Ermitteln eines Maßes der Popularität für jede Neuschreibung von Kandidatenabfragen auf Basis einer Sammlung von Abfragen aus einer Vielzahl von Benutzern umfasst.
  6. Verfahren nach Anspruch 1, wobei das Bewerten jeder Neuschreibung von Kandidatenabfragen des Weiteren das Ermitteln umfasst, ob die Suchabfrage einen Referenzbegriff eines bestimmten Typs beinhaltet.
  7. Verfahren nach Anspruch 6, wobei eine Bewertung einer Neuschreibung von Kandidatenabfragen in Reaktion auf das Ermitteln erhöht wird, dass die Neuschreibung von Kandidatenabfragen eine Entität des bestimmten Typs enthält.
  8. Verfahren nach Anspruch 1, wobei das Bewerten jeder Neuschreibung von Kandidatenabfragen des Weiteren das Ermitteln umfasst, ob die Suchabfrage Begriffe beinhaltet, die mit bestimmten Entitäten stark korreliert sind.
  9. Verfahren nach Anspruch 8, wobei eine Bewertung einer Neuschreibung von Kandidatenabfragen in Reaktion auf das Ermitteln erhöht wird, dass die Neuschreibung von Kandidatenabfragen die Entität beinhaltet, die mit den Abfragebegriff stark korreliert ist.
  10. Verfahren nach Anspruch 1, wobei das Ermitteln einer Qualität jeder Neuschreibung von Kandidatenabfragen auf Basis einer Analyse der Suchergebnisse, die jeder Neuschreibung der Kandidatenabfragen entsprechen, das Erhalten von Suchergebnissen in Reaktion auf jede Neuschreibung von Kandidatenabfragen und das Ermitteln einer Qualität der Suchergebnisse beinhaltet.
  11. System, umfassend: ein Benutzergerät und einen oder mehrere Computer, die so konfiguriert sind, dass sie mit dem Benutzergerät interagieren und Operationen durchführen, umfassend: das Empfangen einer Suchabfrage von einem Benutzer des Benutzergeräts 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, für das Benutzergerät.
  12. System nach Anspruch 11, wobei das Erzeugen der Vielzahl von Neuschreibungen von Kandidatenabfragen des Weiteren die Aneinanderreihung der Suchabfrage mit jeder früheren Suchabfrage der Vielzahl von Suchabfragen umfasst.
  13. System nach Anspruch 12, wobei jede frühere Suchabfrage einen Zeitstempel beinhaltet, und wobei das Bewerten der Neuschreibungen die Gewichtung von Kandidatenneuschreibungen teilweise basierend auf dem Alter der entsprechenden früheren Abfrage beinhaltet.
  14. System nach Anspruch 11, wobei das Erzeugen der Vielzahl von Neuschreibungen von Kandidatenabfragen des Weiteren das Identifizieren von Abfragen aus einer Sammlung von Abfragen aus einer Vielzahl von Benutzer, die der Suchabfrage ähnlich sind, umfasst.
  15. System nach Anspruch 11, wobei das Bewerten jeder Neuschreibung von Kandidatensuchabfragen des Weiteren das Ermitteln eines Maßes der Popularität für jede Neuschreibung von Kandidatenabfragen auf Basis einer Sammlung von Abfragen aus einer Vielzahl von Benutzern umfasst.
  16. System nach Anspruch 11, wobei das Bewerten jeder Neuschreibung von Kandidatenabfragen des Weiteren das Ermitteln umfasst, ob die Suchabfrage einen Referenzbegriff eines bestimmten Typs beinhaltet.
  17. System nach Anspruch 16, wobei eine Bewertung einer Neuschreibung von Kandidatenabfragen in Reaktion auf das Ermitteln erhöht wird, dass die Neuschreibung von Kandidatenabfragen eine Entität des bestimmten Typs enthält.
  18. System nach Anspruch 11, wobei das Bewerten jeder Neuschreibung von Kandidatenabfragen des Weiteren das Ermitteln umfasst, ob die Suchabfrage Begriffe beinhaltet, die mit bestimmten Entitäten stark korreliert sind.
  19. System nach Anspruch 11, wobei das Ermitteln einer Qualität jeder Neuschreibung von Kandidatenabfragen auf Basis einer Analyse der Suchergebnisse, die jeder Neuschreibung der Kandidatenabfragen entsprechen, das Erhalten von Suchergebnissen in Reaktion auf jede Neuschreibung von Kandidatenabfragen und das Ermitteln einer Qualität der Suchergebnisse beinhaltet.
  20. Ein oder mehrere computerlesbare Speichermedien, die mit Anweisungen codiert sind, die, wenn sie durch einen oder mehrere Computer ausgeführt werden, den einen oder die mehreren Computer veranlassen, Operationen durchzuführen, umfassend: Empfangen einer Suchabfrage von einem Benutzer während einer Benutzersitzung; Erhalten einer Vielzahl früherer Suchabfragen durch den Benutzer, die während der Benutzersitzung empfangen wurden; 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; Bewerten jeder Neuschreibung von Kandidatenabfragen, wobei das Bewerten jeder Neuschreibung von Kandidatenabfragen auf einer Analyse der Suchergebnisse basiert, die der Neuschreibung von Kandidatenabfragen entsprechen; Auswählen einer Neuschreibung von Kandidatenabfragen mit einer Bewertung, die einen Schwellenwert erfüllt; und Bereitstellen von Suchabfragen, die der Neuschreibung von Kandidatenabfragen entsprechen.
DE112015004203.2T 2014-09-15 2015-09-09 Neuschreibung von abfragen mithilfe von sitzungsinformationen Pending DE112015004203T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/486,879 2014-09-15
US14/486,879 US9547690B2 (en) 2014-09-15 2014-09-15 Query rewriting using session information
PCT/US2015/049212 WO2016044028A1 (en) 2014-09-15 2015-09-09 Query rewriting using session information

Publications (1)

Publication Number Publication Date
DE112015004203T5 true DE112015004203T5 (de) 2017-08-10

Family

ID=54147355

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112015004203.2T Pending DE112015004203T5 (de) 2014-09-15 2015-09-09 Neuschreibung von abfragen mithilfe von sitzungsinformationen

Country Status (4)

Country Link
US (2) US9547690B2 (de)
CN (2) CN106489146B (de)
DE (1) DE112015004203T5 (de)
WO (1) WO2016044028A1 (de)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9852188B2 (en) * 2014-06-23 2017-12-26 Google Llc Contextual search on multimedia content
US11042590B2 (en) * 2015-10-05 2021-06-22 Verizon Media Inc. Methods, systems and techniques for personalized search query suggestions
US11899728B2 (en) * 2015-10-05 2024-02-13 Yahoo Assets Llc Methods, systems and techniques for ranking personalized and generic search query suggestions
US11836169B2 (en) * 2015-10-05 2023-12-05 Yahoo Assets Llc Methods, systems and techniques for providing search query suggestions based on non-personal data and user personal data according to availability of user personal data
US9684693B1 (en) 2016-04-05 2017-06-20 Google Inc. On-device query rewriting
US11086866B2 (en) * 2016-04-15 2021-08-10 Verizon Media Inc. Method and system for rewriting a query
CN109948014A (zh) * 2017-08-24 2019-06-28 阿里巴巴集团控股有限公司 一种搜索方法和服务器
US10885077B2 (en) * 2017-09-28 2021-01-05 Google Llc Subquery generation from a query
US10387576B2 (en) * 2017-11-30 2019-08-20 International Business Machines Corporation Document preparation with argumentation support from a deep question answering system
US11210286B2 (en) 2017-12-28 2021-12-28 Microsoft Technology Licensing, Llc Facet-based conversational search
EP4130975A1 (de) 2018-05-07 2023-02-08 Google LLC Bestimmung, ob die erste sitzung eines automatisierten assistenten automatisch bei der beendigung der unterbrechung einer zweiten sitzung wiederaufgenommen wird
US11567980B2 (en) 2018-05-07 2023-01-31 Google Llc Determining responsive content for a compound query based on a set of generated sub-queries
US10791411B2 (en) * 2019-01-10 2020-09-29 Qualcomm Incorporated Enabling a user to obtain a suitable head-related transfer function profile
CN109857926A (zh) * 2019-03-05 2019-06-07 百度在线网络技术(北京)有限公司 用于呈现信息的方法和装置
US11868355B2 (en) * 2019-03-28 2024-01-09 Indiavidual Learning Private Limited System and method for personalized retrieval of academic content in a hierarchical manner
US11698904B2 (en) 2019-09-05 2023-07-11 Home Depot Product Authority, Llc Query rewrite for low performing queries based on customer behavior
US11422995B1 (en) * 2021-02-11 2022-08-23 Talenya Ltd. Enhanced database and user interface incorporating predicted missing data
US11947535B2 (en) * 2021-05-04 2024-04-02 Bank Of America Corporation Multicomputer system with machine learning engine for query optimization and dynamic data reorganization
CN113505194B (zh) * 2021-06-15 2022-09-13 北京三快在线科技有限公司 改写词生成模型的训练方法及装置
TW202318251A (zh) 2021-10-29 2023-05-01 財團法人工業技術研究院 圖譜式自然語言優化方法及電子裝置

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010037359A1 (en) * 2000-02-04 2001-11-01 Mockett Gregory P. System and method for a server-side browser including markup language graphical user interface, dynamic markup language rewriter engine and profile engine
US7536382B2 (en) 2004-03-31 2009-05-19 Google Inc. Query rewriting with entity detection
WO2006036781A2 (en) 2004-09-22 2006-04-06 Perfect Market Technologies, Inc. Search engine using user intent
CN100433007C (zh) * 2005-10-26 2008-11-12 孙斌 提供搜索结果的方法
US20070168854A1 (en) 2006-01-18 2007-07-19 De Marcken Carl G User interface for presentation of solutions in multi-passenger multi-route travel planning
US7552112B2 (en) 2006-09-18 2009-06-23 Yahoo! Inc. Discovering associative intent queries from search web logs
US7840538B2 (en) 2006-12-20 2010-11-23 Yahoo! Inc. Discovering query intent from search queries and concept networks
US20090043749A1 (en) 2007-08-06 2009-02-12 Garg Priyank S Extracting query intent from query logs
JP2010033664A (ja) * 2008-07-29 2010-02-12 Hitachi-Lg Data Storage Inc 光ディスク装置のトレイ及びこれを備えた光ディスク装置
CN101887436B (zh) * 2009-05-12 2013-08-21 阿里巴巴集团控股有限公司 一种检索方法和装置
US20100312778A1 (en) * 2009-06-08 2010-12-09 Yumao Lu Predictive person name variants for web search
US8442987B2 (en) 2010-08-19 2013-05-14 Yahoo! Inc. Method and system for providing contents based on past queries
JP5100820B2 (ja) * 2010-11-25 2012-12-19 株式会社東芝 問合せ式変換装置、方法およびプログラム
US9251185B2 (en) * 2010-12-15 2016-02-02 Girish Kumar Classifying results of search queries
US8688667B1 (en) 2011-02-08 2014-04-01 Google Inc. Providing intent sensitive search results
US9507861B2 (en) 2011-04-01 2016-11-29 Microsoft Technolgy Licensing, LLC Enhanced query rewriting through click log analysis
US20120290575A1 (en) 2011-05-09 2012-11-15 Microsoft Corporation Mining intent of queries from search log data
US8954465B2 (en) 2012-05-22 2015-02-10 Google Inc. Creating query suggestions based on processing of descriptive term in a partial query
US10275485B2 (en) 2014-06-10 2019-04-30 Google Llc Retrieving context from previous sessions

Also Published As

Publication number Publication date
US20160078086A1 (en) 2016-03-17
US9547690B2 (en) 2017-01-17
CN106489146A (zh) 2017-03-08
US10387437B2 (en) 2019-08-20
WO2016044028A1 (en) 2016-03-24
CN111061848B (zh) 2021-11-05
US20170124091A1 (en) 2017-05-04
CN111061848A (zh) 2020-04-24
CN106489146B (zh) 2019-12-24

Similar Documents

Publication Publication Date Title
DE112015004203T5 (de) Neuschreibung von abfragen mithilfe von sitzungsinformationen
DE102017125256A1 (de) Suche nach einer neuronalen Architektur
DE202017107393U1 (de) Vorhersagen eines Suchmaschinen-Einordnungssignalwerts
DE112016000509T5 (de) Batch-Normalisierungsschichten
DE102016125918A1 (de) Komprimierte rekurrente neuronale Netzwerkmodelle
DE60036486T2 (de) Methode und apparat zum prüfen von musterübereinstimmungen
DE102016223193A1 (de) Verfahren und Vorrichtung zum Komplettieren eines Wissensgraphen
DE202016004628U1 (de) Durchqueren einer Umgebungsstatusstruktur unter Verwendung neuronaler Netze
DE202016008203U1 (de) Spracherkennungssystem
DE102019000675A1 (de) Nutzen eines modells auf der basis eines tiefen neuronalen netzwerks zum identifizieren von visuell ähnlichen digitalen bildern auf der basis von nutzer-ausgewählten visuellen eigenschaften
DE102017125379A1 (de) Generieren einer Ausgabe für eine Ausgabeschicht eines neuronalen Netzwerks
DE102014113870A1 (de) Identifizieren und Anzeigen von Beziehungen zwischen Kandidatenantworten
DE202012013462U1 (de) Datenverarbeitung in einem Mapreduce-Framework
DE102019000294A1 (de) Erstellen unternehmensspezifischer Wissensgraphen
DE102017207686A1 (de) Einblicke in die belegschaftsstrategie
DE202016004627U1 (de) Training eines neuronalen Wertnetzwerks
DE112018006345T5 (de) Abrufen von unterstützenden belegen für komplexe antworten
DE102016014798A1 (de) Genaues Vorhersagen einer Etikettrelevanz bei einer Bildabfrage
DE102019004300A1 (de) Verwendung eines dynamischen speichernetzwerks zum verfolgen digitaler dialogzustände und erzeugen von antworten
DE112020000091T5 (de) Systeme und Verfahren zur Wahrung der Privatsphäre durch Bestimmung der Schnittstellen von Sätzen von Benutzererkennungen
DE102021117005A1 (de) Verfahren und Einrichtung für föderales Lernen
DE102021004562A1 (de) Abwandlung von Szenengraphen auf Grundlage von Befehlen in natürlicher Sprache
DE102014112983A1 (de) Aktive Wissenslenkung beruhend auf Dokumententiefenanalyse
DE112016004178T5 (de) Ereignis-basierte Inhaltsverteilung
DE102016003850A1 (de) Empfehlen von Formularfragmenten

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R081 Change of applicant/patentee

Owner name: GOOGLE LLC (N.D.GES.D. STAATES DELAWARE), MOUN, US

Free format text: FORMER OWNER: GOOGLE INC., MOUNTAIN VIEW, CALIF., US

R082 Change of representative

Representative=s name: BETTEN & RESCH PATENT- UND RECHTSANWAELTE PART, DE

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0017300000

Ipc: G06F0016000000

R082 Change of representative

Representative=s name: PROCK, THOMAS, DR., GB