-
TECHNISCHES GEBIET
-
Diese Beschreibung betrifft ein computerbasiertes Suchen innerhalb von digitalen Dokumenten.
-
HINTERGRUND
-
Computer und dazugehörige Datenspeicher können einen Zugang zu einer großen Anzahl von potenziell langen Dokumenten und einem anderen Inhalt bereitstellen. Bei solchen potenziell großen Informationsmengen wird es für Nutzer schwierig, ineffizient, zeitaufwändig oder unmöglich, gewünschte Informationen innerhalb eines verfügbaren Zeitrahmens zu finden.
-
Einige Suchtechniken beruhen auf dem Abgleich von Buchstabenzeichenketten, wie z.B. Buchstaben innerhalb eines Worts. Beispielsweise könnte ein Nutzer eine Suche für ein bestimmtes Wort innerhalb eines Dokuments durch Eintippen des gewünschten Worts eingeben, worauf ein(e) Suchmaschine oder -system eine Suche nach dem eingegebenen Wort durchführt. In der Praxis neigt dieser Ansatz zu falsch positiven und falsch negativen Ergebnissen. Beispielsweise kann die Suche nach einem üblichen Wort eine große Zahl von Ergebnissen liefern, wobei viele davon nicht interessant sind. Andererseits kann eine solche Suche einen leeren Ergebnissatz selbst von einem relevanten Dokument oder Dokumentabschnitt liefern, und zwar einfach deshalb, weil die genaue Buchstabenzeichenkette nicht gefunden worden ist (wie z.B. wenn das gesuchte Dokument ein Synonym des gesuchten Worts anstatt des Worts selbst nutzt).
-
Ferner können Techniken, die geeignet sind, wenn Dokumente von vielen Dokumenten gesucht werden (wie z.B. eine webbasierte Suche nach Online-Dokumenten), nicht geeignet oder relevant sein, wenn innerhalb eines einzelnen Dokuments oder einzelner Dokumente gesucht wird. Beispielsweise beruhen einige webbasierte Suchen auf Untersuchungen von Hyperlinks zu Dokumenten innerhalb verknüpfter Dokumente, so dass gewünschte Suchergebnisse erhalten werden, was zum Suchen innerhalb von einem oder mehreren bekannten Dokument(en) wahrscheinlich nicht ausreichend nützlich ist.
-
ZUSAMMENFASSUNG
-
Gemäß eines allgemeinen Aspekts sind Systeme und Techniken zum Suchen innerhalb mindestens eines Dokuments beschrieben, umfassend das Erhalten einer Abfrage, mittels einer Nutzerschnittstelle einer Anwendung, im Zusammenhang mit der Identifizierung des mindestens einen Dokuments, wobei das mindestens eine Dokument mittels eines Computerspeichers gespeichert ist, und das Identifizieren einer Mehrzahl von grammatischen Einheiten innerhalb des mindestens einen Dokuments. Die Systeme und Techniken können das Extrahieren eines Werts für mindestens ein Merkmal für jede grammatische Einheit in Bezug auf die Abfrage, wobei der mindestens eine Merkmalswert eine Relevanz von jeder grammatischen Einheit für die Abfrage charakterisiert, das Einstufen der grammatischen Einheiten auf der Basis von jedem Merkmalswert von jeder grammatischen Einheit und das Anzeigen mittels der Nutzerschnittstelle und im Zusammenhang mit dem mindestens einen Dokument mindestens einer ausgewählten grammatischen Einheit der Mehrzahl von grammatische Einheiten auf der Basis der Einstufung umfassen.
-
Gemäß eines weiteren allgemeinen Aspekts sind Systeme und Techniken zum Erhalten einer Abfrage in Bezug auf mindestens ein Dokument, Identifizieren von Sätzen innerhalb des mindestens einen Dokuments und Extrahieren einer Mehrzahl von Merkmalen, die eine Relevanz jedes Satzes der Sätze für eine Abfrage charakterisieren, beschrieben. Die Sätze können auf der Basis der Merkmale eingestuft werden und die Sätze können innerhalb des Dokuments in einer Reihenfolge entsprechend der Einstufung visuell bezeichnet werden.
-
Die Details einer oder mehrerer Implementierung(en) sind in den beigefügten Zeichnungen und der nachstehenden Beschreibung dargelegt. Weitere Merkmale ergeben sich aus der Beschreibung und den Zeichnungen sowie aus den Ansprüchen.
-
Figurenliste
-
- 1 ist ein Blockdiagramm eines Systems für ein Dokumentdurchsuchen unter Verwendung von grammatischen Einheiten.
- 2 ist eine Beispiel-Bildschirmaufnahme, die eine Nutzerschnittstelle einer Anwendung für ein Dokumentdurchsuchen mittels grammatischer Einheiten unter Verwendung des Systems von 1 zeigt.
- 3 ist ein Flussdiagramm, das Beispielvorgänge des Systems von 1 zeigt.
- 4 ist ein Blockdiagramm und ein dazugehöriger Betriebsablauf einer detaillierteren Beispielimplementierung des Systems von 1.
-
DETAILLIERTE BESCHREIBUNG
-
Dieses Dokument beschreibt Systeme und Techniken, die eine automatisierte Suche innerhalb eines Dokuments oder eines Satzes von Dokumenten bereitstellen. Solche Systeme und Techniken lösen technische Herausforderungen von bisherigen Systemen und Techniken und Verbessern das oder die Verfahren zur Durchführung einer solchen automatisierten Verarbeitung. Beispielsweise kann von innerhalb einer Anwendung eine Abfrage eingegeben werden und eine Suche kann in Bezug auf den Inhalt von grammatischen Einheiten (wie z.B. einer Formulierung, eines Halbsatzes oder eines Satzes) innerhalb eines identifizierten Dokuments oder von identifizierten Dokumenten durchgeführt werden, anstatt einen zeichenkettenbasierten Abgleich von Dokumentbegriffen und Abfragebegriffen durchzuführen. Bei dem auf einer grammatischen Einheit basierenden (auch als einheitbasierend bezeichnet) Dokumentdurchsuchungsmodul, das durch die Anwendung genutzt wird, handelt es sich um (einen) effizientere(n), schnellere(n) und genauere(n) Algorithmus bzw. Algorithmen als andere Algorithmen, die auf einem Zeichenkettenabgleich beruhen, oder andere bekannte Suchtechniken. Darüber hinaus stellt das einheitbasierte Dokumentdurchsuchungsmodul eine neue Computerfunktionalität von z.B. Abfragen und Finden von Formulierungen, Halbsätzen oder Sätzen, selbst wenn die Formulierungen, Halbsätze oder Sätze nicht den oder die genauen Begriff(e) enthalten, der oder die in der Abfrage verwendet wird oder werden, und zum Ausgeben von Suchergebnissen auf der Basis einer eingestuften Relevanz von jeder angegebenen Art von grammatischer Einheit in Bezug auf jede Abfrage bereit.
-
Die Systeme und Techniken stellen eine Nutzerschnittstelle innerhalb der Anwendung bereit, um es Nutzern zu ermöglichen, eine Abfrage einzugeben, einschließlich eine Abfrage, welche die Art von grammatischer Einheit festlegt, die im Zusammenhang mit dem oder den Abfragebegriff(en) zusammenhängt. Die Nutzerschnittstelle zeigt Suchergebnisse z.B. durch Anzeigen von jeder grammatischen Einheit innerhalb der Suchergebnisse entweder getrennt von dem gesuchten Dokument oder den gesuchten Dokumenten und/oder hervorgehoben oder identifiziert innerhalb des gesuchten Dokuments oder der gesuchten Dokumente.
-
Da ferner die grammatischen Einheiten in Bezug auf die Abfrage abgestuft sind, können Nutzer in den Suchergebnissen auf der Basis der Reihenfolge der Einstufung (z.B. der Relevanz) navigieren, anstatt einfach die Suchergebnisse in deren Reihenfolge des Auftretens innerhalb des Dokuments zu betrachten. Auf diese Weise ist es wahrscheinlicher, dass der Nutzer ein gewünschtes Ergebnis in einer schnellen und effizienten Weise findet.
-
Bei der Verwendung mit einem einzelnen Dokument oder einem ausreichend kleinen Satz von Dokumenten können die beschriebenen Techniken alle abgefragten grammatischen Einheiten in Bezug auf die eingegebene Abfrage identifizieren und untersuchen. Beispielsweise ist es für eine satzbasierte Suche eines Dokuments möglich, alle Sätze innerhalb des Dokuments zu identifizieren und den oder die Abfragebegriff(e) und jeden Satz zu verarbeiten, um Merkmale jedes Satzes in Bezug auf die Abfrage (z.B. semantische oder kontextuelle Merkmale) zu erhalten. Beispielsweise kann ein Abfrage-Satz-Paar für jeden Satz relativ zu einer spezifischen Abfrage gebildet werden.
-
Jeder Satz oder eine andere festgelegte grammatische Einheit kann dann unter Verwendung von einer oder mehreren Maschinenlerntechnik(en) eingestuft werden. Beispielsweise kann ein Modell mit dem Merkmalssatz trainiert werden, der zum Erhalten der Arten von gerade referenzierten Merkmale verwendet wird, so dass die Sätze entsprechend eingestuft werden können. Dann wird oder werden der oder die am höchsten eingestufte Satz oder Sätze als Suchergebnisse ausgegeben werden, wobei die vorstehend angegebene Nutzerschnittstelle verwendet wird.
-
Die in diesem Dokument beschriebenen Systeme und Techniken können alle Ziele für die Suchanwendung unter Verwendung der nahtlosen Nutzerschnittstelle und eines einheitbasierten Suchmoduls integrieren. In einer vorteilhaften Weise unterstützen die in diesem Dokument beschriebenen Systeme und Techniken dabei, falsch positive Ergebnisse zu vermeiden, wie z.B. Suchergebnisse, die einfach zeichenkettenabgeglichene Abfragebegrife umfassen, selbst wenn solche Begriffe verschiedene semantische oder kontextuelle Bedeutungen innerhalb des durchsuchten Dokuments aufweisen. Entsprechend werden falsch negative Ergebnisse minimiert oder vermieden, z.B. da die beschriebenen Techniken Sätze liefern können, die für die Abfrage relevant sind, selbst wenn die Sätze keinen der genauen Begriffe der Abfrage umfassen.
-
Zusätzlich verbessern die hier beschriebenen Systeme und Techniken in einer vorteilhaften Weise bestehende Technologiebereiche. Beispielsweise wird, wie es beschrieben ist, das computerbasierte Dokumentdurchsuchen verbessert. Ferner können die Systeme und Techniken für einen stärker automatisierten und effizienteren und schnelleren Ansatz verwendet werden, wenn sie auf eine Spracherkennungstechnologie und eine stimmenunterstützte Suche angewandt werden. Beispielsweise kann ein Nutzer Abfragen durch die Stimme eingeben, z.B. gesprochene Abfragen, und wird mit einer größeren Wahrscheinlichkeit gewünschte Ergebnisse erhalten als bei herkömmlichen stimmenbasierten Suchtechniken.
-
Die 1 ist ein Blockdiagramm eines Systems 100 für ein Dokumentdurchsuchen unter Verwendung von grammatischen Einheiten. Das System 100 umfasst eine Rechenvorrichtung 102, die mindestens einen Speicher 104, mindestens einen Prozessor 106 und mindestens eine Anwendung 108 aufweist. Die Rechenvorrichtung 102 kann mit einer oder mehreren weiteren Rechenvorrichtung(en) über ein Netzwerk 110 kommunizieren. Beispielsweise kann die Rechenvorrichtung 102 mit einem Suchserver 111 über das Netzwerk 110 kommunizieren. Die Rechenvorrichtung 102 kann als ein Server, ein Desktopcomputer, ein Laptopcomputer, eine mobile Vorrichtung, wie z.B. eine Tabletvorrichtung oder eine Mobiltelefonvorrichtung, sowie andere Arten von Rechenvorrichtungen implementiert werden. Obwohl eine einzelne Rechenvorrichtung 102 gezeigt ist, kann die Rechenvorrichtung 102 für eine Mehrzahl von Rechenvorrichtungen, die miteinander in Verbindung stehen, repräsentativ sein, wie z.B. eine Mehrzahl von Servern, die miteinander in Verbindung stehen, um verschiedene Funktionen über ein Netzwerk durchzuführen. In vielen der folgenden Beispiele ist die Rechenvorrichtung 102 als eine mobile Vorrichtung beschrieben.
-
Der mindestens eine Prozessor 106 kann zwei oder mehr Prozessoren in der Rechenvorrichtung 102 repräsentieren, die parallel arbeiten, und entsprechende Anweisungen nutzen, die unter Verwendung des mindestens einen Speichers 104 gespeichert sind. Der mindestens eine Speicher 104 repräsentiert mindestens ein nicht-flüchtiges computerlesbares Speichermedium. Folglich kann entsprechend der mindestens eine Speicher 104 eine Art oder mehrere verschiedene Arten von Speicher repräsentieren, der durch die Rechenvorrichtung 102 genutzt wird. Zusätzlich zu einem Speichern von Anweisungen, die es dem mindestens einen Prozessor 106 ermöglichen, die Anwendung 108 und deren verschiedenen Komponenten zu implementieren, kann der mindestens eine Speicher 104 zum Speichern von Daten verwendet werden.
-
Das Netzwerk 110 kann als das Internet implementiert werden, kann jedoch weitere, andere Konfigurationen aufweisen. Beispielsweise kann das Netzwerk 110 ein Weitbereichsnetzwerknetzwerk (WAN), ein lokales Netzwerk (LAN), ein drahtloses Netzwerk, ein Intranet, Kombinationen dieser Netzwerke und andere Netzwerke sein. Selbstverständlich kann, obwohl das Netzwerk 110 als ein einzelnes Netzwerk gezeigt ist, das Netzwerk 110 so implementiert werden, dass es eine Mehrzahl von verschiedenen Netzwerken umfasst.
-
Auf die Anwendung 108 kann durch einen Nutzer der Rechenvorrichtung 102 direkt bei der Rechenvorrichtung 102 zugegriffen werden. In weiteren Implementierungen kann die Anwendung 108 auf der Rechenvorrichtung 102 als eine Komponente eines Cloudnetzwerks laufen, wobei ein Nutzer auf die Anwendung 108 von einer anderen Rechenvorrichtung über ein Netzwerk zugreift, wie z.B. das Netzwerk 110. In einer Implementierung kann die Anwendung 108 eine Dokumenterzeugungs- oder -betrachtungsanwendung sein. Die Anwendung 108 kann eine eigenständige Anwendung sein, die auf der Rechenvorrichtung 102 läuft. Alternativ kann die Anwendung 108 eine Anwendung sein, die in einer anderen Anwendung läuft, wie z.B. einer Browseranwendung, gegebenenfalls im Zusammenhang mit dem Suchserver 111.
-
In der 1 ist die Anwendung 108 so gezeigt, dass sie eine Nutzerschnittstelle 112 umfasst. Wie es vorstehend angegeben worden ist, kann die Anwendung 108 eine Dokumentleseanwendung repräsentieren und die Nutzerschnittstelle 112 kann eine entsprechende Nutzerschnittstelle repräsentieren. Wie es ebenfalls vorstehend angegeben worden ist, kann die Anwendung 108 eine Browseranwendung umfassen, so dass die Nutzerschnittstelle 112 mindestens einen Abschnitt eines Browserfensters repräsentiert. In verschiedenen der nachstehenden Beispiele, die in Bezug auf die 1 angegeben sind, kann die Anwendung 108 als eine mobile Anwendung implementiert werden, wenn die Rechenvorrichtung 102 eine mobile Vorrichtung repräsentiert. Beispielsweise kann die Anwendung 108 eine Android-Anwendung sein, die auf einer mobilen Vorrichtung unter Verwendung des Android-Betriebssystems arbeitet.
-
Ferner ist in der 1 die Anwendung 108 so gezeigt, dass sie ein Abfrageeinheit-Suchmodul 114 umfasst. Wie es vorstehend angegeben und nachstehend detailliert beschrieben ist, ist das Abfrageeinheit-Suchmodul 114 zum Suchen innerhalb eines Dokuments oder mehrerer Dokumente, dargestellt durch das Dokument 115, im Zusammenhang mit der Nutzerschnittstelle 112 ausgebildet. In diesem Zusammenhang sollte der Ausdruck „grammatische Einheit“ oder einfach „Einheit“ so verstanden werden, dass er sich z.B. auf jedwede Kombination von Worten innerhalb des Dokuments 115 bezieht, die im Kontext von einem Satz oder mehreren Sätzen angegeben sind, so dass Informationen innerhalb des Kontexts des Dokuments 115 übermittelt werden. Beispielsweise kann eine solche grammatische Einheit einen Satz umfassen, kann jedoch auch eine Formulierung, einen Halbsatz, einen Absatz, einen Abschnitt oder Teilabschnitt oder jedwede andere zusammenhängende Worteinheit innerhalb des Dokuments 115 umfassen. Wie es hier detailliert beschrieben ist, stellt das Abfrageeinheit-Suchmodul 114 aufgrund einer Suche, einer Einstufung und einer Bereitstellung der Suchergebnisse innerhalb des Dokuments 115 als bestimmte Arten von grammatischen Einheiten in einer vorteilhaften Weise gewünschte Suchergebnisse von innerhalb des Dokuments 115 in einer schnellen und effizienten Weise bereit.
-
Insbesondere ist die Nutzerschnittstelle 112 so gezeigt, dass sie ein Dokumentanzeigefenster 116 umfasst, das zum Bereitstellen und in sonstiger Weise Anzeigen des Dokuments 115 ausgebildet ist. Die Nutzerschnittstelle 112 ist auch so gezeigt, dass sie ein Suchfeld 118 umfasst, das durch einen Nutzer des Systems 100 genutzt werden kann, um eine oder mehrere Abfrage(n) und dazugehörige Abfragebegriffe oder Suchbegriffe einzugeben, die durch das Abfrageeinheit-Suchmodul 114 beim Durchsuchen des Dokuments 115 verwendet werden können. Schließlich ist in Bezug auf die Nutzerschnittstelle 112 eine Sprache-zu-Text-Anwendungsprogrammschnittstelle (API) 120 gezeigt, die so ausgebildet sein kann, dass sie den Erhalt von stimmenbasierten Abfragen innerhalb des Suchfelds 118 zu deren Umwandlung in einen Abfragetext ermöglicht.
-
Spezifische Beispiele für das Dokumentanzeigefenster 116 und das Suchfeld 118 sind nachstehend z.B. in Bezug auf die 2 gezeigt und beschrieben. Im Allgemeinen sollte jedoch beachtet werden, dass das Suchfeld 118 unter Verwendung eines Popup-Fensters, eines separaten Abschnitts der Nutzerschnittstelle 112, einer rein stimmenbasierten Schnittstelle (wie z.B. wenn eine Abfrage durch den Nutzer gesprochen wird, jedoch nicht notwendigerweise als Text innerhalb der Nutzerschnittstelle 112 bereitgestellt wird), oder jedweder anderen herkömmlichen, geeigneten oder zukünftigen Technik zum Erhalten von Abfragen implementiert werden kann.
-
In dem Beispiel von 1 ist die Stimme-zu-Text-API 120 im Zusammenhang mit der Nutzerschnittstelle 112 gezeigt. Es sollte jedoch beachtet werden, dass die Stimme-zu-Text-API 120 als Teil des Abfrageeinheit-Suchmoduls 114 implementiert werden kann. In zusätzlichen oder alternativen Implementierungen kann die Stimme-zu-Text-API 120 ein Stimme-zu-Text-Umwandlungsmodul einsetzen, nutzen oder damit in sonstiger Weise interagieren, das im Beispiel von 1 nicht explizit gezeigt ist, das jedoch in einem oder beiden der Rechenvorrichtung 102 und/oder des Suchservers 111 oder in einem anderen Server implementiert werden kann. Entsprechend kann auch das gesamte Abfrageeinheit-Suchmodul 114 oder ein Teil davon bei dem Suchserver 111 implementiert werden.
-
In vielen der hier beschriebenen Beispiele kann das Dokument 115 von 1 als ein einzelnes Dokument gezeigt und beschrieben sein. Es sollte jedoch beachtet werden, dass das Dokument 115 in verschiedenen Implementierungen zwei oder mehr Dokumente repräsentieren kann. Beispielsweise kann das Abfrageeinheit-Suchmodul 114 zum Durchsuchen einer Gruppe von Dokumenten genutzt werden, die alle ein bestimmtes interessierendes Thema für den Nutzer des Systems 100 betreffen.
-
In der Praxis kann ein Nutzer, der das System 100 nutzen will, zunächst das Dokument 115 innerhalb des Dokumentanzeigefensters 116 der Nutzerschnittstelle 112 laden. Im Zusammenhang mit dem Aktivieren des Suchfelds 118 kann der Nutzer eine Abfrage, die einen oder mehrere Abfragebegriff(e) umfasst, und unter Verwendung der Stimme-zu-Text-API 120 und/oder anderer geeigneter Eingabemodalitäten eingeben.
-
In verschiedenen Beispielen kann der Nutzer die Art der gewünschten grammatischen Einheit festlegen. Beispielsweise kann der Nutzer, wie es nachstehend in Bezug auf die 2 beschrieben und gezeigt ist, eine Abfrage durch Abfragen von allen Formulierungen mit einem bestimmten Schlüsselwort oder allen Sätzen mit diesem Schlüsselwort eingeben. Wenn der Nutzer einfach ein Schlüsselwort ohne Festlegen einer Art der grammatischen Einheit eingibt, dann kann eine vorgegebene grammatische Einheit (wie z.B. der Satz) ausgewählt werden. Beispielsweise kann der Nutzer das Abfrageeinheit-Suchmodul 114 in Bezug auf eine vorgegebene grammatische Einheit, die verwendet werden soll, konfigurieren.
-
Folglich kann ein Einheitauswahlmodul 122 des Abfrageeinheit-Suchmoduls 114 so ausgebildet sein, dass es die Abfrage mittels des Suchfelds 118 erhält und die Art oder die Natur der gewünschten grammatischen Einheit bestimmt. Beispielsweise kann, wie es vorher erläutert worden ist, das Einheitauswahlmodul 122 eine festgelegte Art von grammatischer Einheit von innerhalb der eingegebenen Abfrage identifizieren, oder geeignete Konfigurationsdaten konsultieren, um eine vorgegebene grammatische Einheit zu bestimmen, die verwendet werden soll.
-
Die Abfrage und das Dokument 115 können dann zu einem Vorverarbeitungsmodul 124 weitergegeben werden. Beispielvorgänge des Vorverarbeitungsmoduls 124 sind nachstehend z.B. in Bezug auf die 4 detaillierter angegeben. Im Allgemeinen sollte jedoch beachtet werden, dass das Vorverarbeitungsmodul 124 zum Standardisieren, Normalisieren und in sonstiger Weise Vorbereiten der Abfrage und des Dokuments 115 für eine anschließende Untersuchung und Verarbeitung innerhalb des Abfrageeinheit-Suchmoduls 114 ausgebildet ist. Als nicht-beschränkendes Beispiel kann das Vorverarbeitungsmodul 124 gebräuchliche Worte (z.B. „der“, „die“, „das“, „zu“, „und“, usw.) entfernen oder Worte auf ihre Grundformen reduzieren (z.B. durch Entfernen von modifizierten Wortendungen, wie z.B. „en“ oder „t“). In der Praxis kann das Vorverarbeitungsmodul 124 das Dokument 115 vor dem Erhalten der Abfrage oder einhergehend damit verarbeiten. Beispielsweise kann ein einzelnes Dokument 115 einer Vorverarbeitung unterzogen werden und dann unter Verwendung einer Mehrzahl von Abfragen durchsucht werden, die während eines Zeitraums erhalten worden sind.
-
Ein Merkmalextraktionsmodul 126 des Abfrageeinheit-Suchmoduls 114 ist zum Erhalten der vorverarbeiteten Abfrage und des vorverarbeiteten Dokuments und danach zum Berechnen von einem oder mehreren Merkmal(en) für jede festgelegte grammatische Einheit (z.B. einen Satz) innerhalb des Dokuments und in Bezug auf die erhaltene Abfrage ausgebildet. Spezifische Beispielmerkmale und dazugehörige Vorgänge zum Extrahieren der Merkmale sind nachstehend in Bezug auf die 4 detailliert beschrieben. Im Allgemeinen sollte in Bezug auf die 1 beachtet werden, dass solche Merkmale eine Sprachmodellbewertung umfassen können, in der ein Sprachmodell für jeden Satz oder jede andere festgelegte grammatische Einheit innerhalb des Dokuments 115 sowie für die Abfrage selbst konstruiert wird.
-
Beispielsweise kann in Beispielen, in denen die grammatische Einheit, die gesucht wird, ein Satz ist, das Merkmalextraktionsmodul 126 eine Anzahl von relevanten Eigenschaften oder Aspekten der Sätze des Dokuments 115 und der erhaltenen Abfrage bestimmen. Beispielsweise kann das Merkmalextraktionsmodul 126 die Anzahl bestimmen, mit der ein gegebenes Wort innerhalb der Abfrage oder innerhalb jedes Satzes vorkommt. Das Merkmalextraktionsmodul 126 kann die Länge jedes Satzes des Dokuments 115 oder eine Wahrscheinlichkeit berücksichtigen, dass ein spezifisches Wort, das in die erhaltene Abfrage einbezogen ist, innerhalb der Dokuments 115 vorkommt. Diese und andere Parameter können zum Berechnen der Wahrscheinlichkeit jedes Satzes verwendet werden, für die erhaltene Abfrage relevant zu sein.
-
Das Merkmalextraktionsmodul 126 kann auch eine semantische Ähnlichkeit zwischen der erhaltenen Abfrage und jedem Satz des Dokuments 115 unter Verwendung der nachstehend beschriebenen Techniken oder anderen geeigneten Techniken berechnen. In zusätzlichen oder alternativen Beispiele kann das Merkmalextraktionsmodul 126 auch zum Berechnen von kontextuellen Merkmalen oder Kontextmerkmalen, die für den Kontext jedes Satzes spezifisch sind, ausgebildet sein. Beispielsweise kann das Merkmalextraktionsmodul 126 einen vorhergehenden Satz und einen nachfolgenden Satz in Bezug auf jeden berücksichtigten Satz berücksichtigen.
-
Schließlich ist in Bezug auf das Abfrageeinheit-Suchmodul 114 ein Einstufungsmodul 128 gezeigt und dieses kann zum Einstufen der Sätze oder anderer grammatischer Einheiten, die im Zusammenhang mit der erhaltenen Abfrage ausgewählt worden sind, mittels eines Satzeinstufungsmodells ausgebildet sein. Beispielsweise können die Merkmale, die durch das Merkmalextraktionsmodul 126 genutzt werden, zum Bilden eines Merkmalssatzes verwendet werden, der zum Trainieren des Einstufungsmodells des Einstufungsmoduls 128 verwendet wird, und sie können z.B. zum Optimieren von Gewichtungen oder anderen Parametern des Satzeinstufungsmodells verwendet werden.
-
Die 2 ist eine Beispiel-Bildschirmaufnahme, die eine Nutzerschnittstelle einer Anwendung zum Dokumentdurchsuchen mittels grammatischer Einheiten unter Verwendung des Systems von 1 zeigt. In dem Beispiel von 1 stellt eine mobile Vorrichtung 202 die Rechenvorrichtung 102 von 1 dar. Innerhalb der mobilen Vorrichtung 202 entspricht eine Nutzerschnittstelle 204 allgemein der Nutzerschnittstelle 112 von 1, während ein Dokumentanzeigefenster 205 dem Dokumentanzeigefenster 116 von 1 entspricht.
-
Innerhalb der Nutzerschnittstelle 204 sind Beispielinhaltsauszüge eines Dokuments entsprechend dem Dokument 115 gezeigt. Zum Durchsuchen des gesamten Inhalts des entsprechenden Dokuments ist ein Suchfeld 206 gezeigt, das dem Suchfeld 118 von 1 entspricht.
-
Wie es innerhalb des Suchfelds 206 gezeigt ist, kann der Nutzer eine Abfrage eingeben, die sowohl die Art einer gewünschten grammatischen Einheit als auch Abfragebegriffe, die den Inhalt der bestimmten Abfrage festlegen, festlegen kann. In dem Beispiel umfasst das Suchfeld 206 den Inhalt „zeige mir Formulierungen, die mit einem Protest zusammenhängen“. Wie es beschrieben ist, kann der Inhalt des Suchfelds 206 unter Verwendung der Stimme-zu-Text-API 120 von 1 erhalten werden, oder er kann durch den Nutzer mittels einer dazugehörigen Tastatur oder unter Verwendung von jedweder anderen Texteingabetechnik eingegeben werden.
-
In dem Beispiel umfasst das Dokument, das durchsucht wird, biographische Informationen, die das Leben von Mahatma Gandhi beschreiben. Das Abfrageeinheit-Suchmodul 114 kann mit dem Ausführen der verschiedenen Techniken, die vorstehend in Bezug auf die 1 beschrieben worden sind, zum Identifizieren und Einstufen von Formulierungen bezogen auf den Begriff Protest, die innerhalb des Dokumentinhalts einbezogen sind, fortfahren.
-
Beispielsweise kann, wie es gezeigt ist, das Abfrageeinheit-Suchmodul 114 die Formulierung „mittels eines gewaltlosen zivilen Ungehorsams“ 208 als eine Formulierung identifizieren, die das Konzept eines Protests betrifft. Entsprechend kann das Abfrageeinheit-Suchmodul 114 den Satz 210 identifizieren, der angibt, dass „Hungern eine erfolgreiche Form des Protests war, die von Gandhi verwendet wurde“.
-
In dem Beispiel der Formulierung 208 kann das Abfrageeinheit-Suchmodul 114 die Formulierung „mittels eines gewaltlosen zivilen Ungehorsams“ als eine Formulierung auf der Basis von deren Anordnung am Beginn eines Satzes und mittels des Einbeziehens des „,“ in den Satz identifizieren. In dem Beispiel des Satzes 210 kann es vorkommen, dass das Abfrageeinheit-Suchmodul 114 innerhalb des Satzes 210 keine separate Formulierung erfasst, die mit einem Protest zusammenhängt, und daher den Satz 210 in dessen Gesamtheit ausgibt oder identifiziert.
-
Insbesondere sollte aufgrund der vorstehenden Beschreibung beachtet werden, dass grammatische Einheiten typischerweise in einer hierarchischen Weise angeordnet sind, so dass beispielsweise Formulierungen, Halbsätze, Sätze und Absätze einen Teil einer solchen Hierarchie bilden. Folglich kann das Abfrageeinheit-Suchmodul 114 so ausgebildet sein, dass es ein oder mehr Niveau(s) innerhalb der Hierarchie ausgibt, wenn es ein festgelegtes oder abgefragtes Niveau der Hierarchie nicht schlüssig identifizieren kann. Beispielsweise wenn ein Dokument eine Anzahl von Formulierungen umfasst, die keine vollständigen Sätze bilden, die jedoch in einer Absatzform zusammen gruppiert sind, kann das Abfrageeinheit-Suchmodul 114 den gesamten Absatz innerhalb der Suchergebnisse ausgeben oder identifizieren.
-
Selbstverständlich sollte beachtet werden, dass das Abfrageeinheit-Suchmodul 114 in jedweder gewünschten Weise in Bezug auf die vorstehend genannten Arten von Parametern und Vorgängen ausgebildet sein kann. Beispielsweise kann sowohl ein Gestalter und/oder Nutzer des Abfrageeinheit-Suchmoduls 114 das Vermögen aufweisen, solche Konfigurationsparameter einzustellen.
-
Ferner ist in dem Beispiel von 2 ein separates Suchfeld 212 so gezeigt, dass es das einzelne Wort „Mord“ umfasst. In dem Beispiel gibt das Abfrageeinheit-Suchmodul 114 den Satz 214 aus, der angibt „Gandhi wurde am 30. Januar 1948 ermordet“. Es sollte beachtet werden, dass der Satz 214 nicht die Zeichenkette „Mord“ umfasst, sondern als Suchergebnis auf der Basis der Gesamtanalyse einer Relevanz des Satzes 214 durch das Abfrageeinheit-Suchmodul 114 ausgegeben werden kann.
-
Obwohl die 2 das Suchfeld 212 separat von dem Suchfeld 206 zeigt, sollte beachtet werden, dass selbstverständlich ein einzelnes Suchfeld zum Eingeben einer Mehrzahl von Abfragen genutzt werden kann. Dennoch zeigen die Suchfelder 206, 212 ferner, dass Nutzer Abfragen in einer gewünschten Weise eingeben können, z.B. als einzelne Worte mit oder ohne Angabe einer gewünschten Art von grammatischer Einheit, die einbezogen werden soll.
-
Wenn Suchergebnisse ausgegeben oder bereitgestellt werden, kann das Abfrageeinheit-Suchmodul 114 die relevantesten (z.B. die am höchsten eingestuften) Suchergebnisse zuerst angeben, selbst wenn diese Suchergebnisse aufeinanderfolgend innerhalb des durchsuchten Dokuments an einem späteren Punkt auftreten als früher einbezogene, jedoch weniger relevante Suchergebnisse.
-
Beispielsweise kann unter Rückkehr zu den Beispielen des Suchfelds 206 das Abfrageeinheit-Suchmodul 114 die Suchergebnisse 208, 210 ausgeben, wie es beschrieben worden ist. Wie es gezeigt ist, tritt das Suchergebnis 208 innerhalb des bereitgestellten Dokuments vor dem Suchergebnis 210 auf. Dennoch kann als Reaktion auf den Erhalt der Abfrage, die innerhalb des Suchfelds 206 einbezogen ist, das Abfrageeinheit-Suchmodul 114 zunächst das Suchergebnis 210 als ein erstes, am höchsten eingestuftes Suchergebnis ausgeben. Beispielsweise kann das Abfrageeinheit-Suchmodul 114 so ausgebildet sein, dass es den Satz 210 innerhalb des bereitgestellten Dokuments hervorhebt, unterstreicht, fettgedruckt darstellt oder in sonstiger Weise bezeichnet und umgebende Abschnitte des Satzes 210 innerhalb des verfügbaren Bildschirmraums des Dokumentanzeigefensters 205 anzeigt.
-
Wenn der Nutzer entscheidet, dass der Satz 210 nicht ausreichend zufriedenstellend ist und zusätzliche Suchergebnisse zu sehen wünscht, dann kann das Abfrageeinheit-Suchmodul 114 entsprechend eine visuelle Bezeichnung der Formulierung 208 erneut innerhalb des Kontexts von umgebenden Abschnitten des bereitgestellten Dokuments und im Zusammenhang mit dem Entfernen von jedweder vorhergehenden visuellen Bezeichnung des Satzes 210 bereitstellen. Folglich werden für den Nutzer in diesen Beispielausführungsformen die relevantesten Suchergebnisse einzeln und in einer sequenziellen Reihenfolge der Einstufung/Relevanz und unabhängig von der Anordnung des Suchergebnisses innerhalb des durchsuchten Dokuments bereitgestellt.
-
In weiteren Beispielen kann das Abfrageeinheit-Suchmodul 114 visuell alle Suchergebnisse innerhalb des Dokuments gleichzeitig bezeichnen, und zwar einhergehend mit einer zusätzlichen Bezeichnung von Einstufungsbewertungen. Beispielsweise können beide Suchergebnisse 208, 210 visuell innerhalb des Dokumentanzeigefensters 205 bezeichnet werden, jedoch kann das Suchergebnis 210 so angegeben werden, dass es eine höhere Ergebniseinstufung aufweist als das Suchergebnis 208. Beispielsweise können unterschiedliche visuelle Bezeichnungen verwendet werden oder die Suchergebnisse können zum Angeben einer relativen Einstufungsreihenfolge aufgezählt werden. Beispielsweise ist in der 2 das Suchergebnis 210 mit einem Einstufungsidentifikator „1“ 211 assoziiert, um dessen Einstufung als Suchergebnis mit der größten Relevanz anzugeben, während das Suchergebnis 208 mit einem Einstufungsidentifikator „2“ 209 assoziiert ist, der dessen Einstufung als Suchergebnis mit der zweitgrößten Relevanz angibt.
-
In verschiedenen weiteren Beispielimplementierungen kann der Nutzer die verschiedenen Suchergebnisse in einer Anzahl von möglichen Arten auswählen und betrachten. Beispielsweise kann der Nutzer durch Inhalte des Dokuments innerhalb des Dokumentanzeigefensters 116 unter Verwendung einer dazugehörigen Bildlaufleiste (in dem Beispiel von 2 nicht explizit gezeigt) scrollen. In weiteren Beispielen kann das Abfrageeinheit-Suchmodul 114 zunächst ein Suchergebnis mit der höchsten Einstufung innerhalb des Dokumentanzeigefensters 116 anzeigen. Dann kann nach dem Erhalten einer Eingabe von dem Nutzer, wie z.B. nach dem Betätigen der Space-Taste, dem Betätigen der Eingabetaste oder Auswählen eines „Nächstes“-Pfeils das Abfrageeinheit-Suchmodul 114 mit dem Anzeigen des Suchergebnisses mit der nächstniedrigeren Einstufung innerhalb des Dokumentanzeigefensters 116 und das durch benachbarte Inhaltsabschnitte umgeben ist, fortfahren. Mit anderen Worten, das visuelle Bezeichnen des Suchergebnisses kann das aufeinanderfolgende Anzeigen von Dokumentabschnitten und das Hervorheben einzelner, darin einbezogener Sätze als Reaktion auf entsprechende Nutzereingaben und in der Reihenfolge der Einstufung umfassen.
-
Folglich kann die visuelle Bezeichnung von eingestuften Suchergebnissen einen Einstufungsidentifikator umfassen, der benachbart zu einer entsprechenden eingestuften grammatischen Einheit angezeigt wird. In weiteren Implementierungen kann eine visuelle Bezeichnung von Suchergebnissen das aufeinanderfolgende Hervorheben einzelner grammatischer Einheiten innerhalb des mindestens einen Dokuments als Reaktion auf entsprechende Nutzereingaben und in einer Reihenfolge der Einstufung der abgestuften grammatischen Einheiten umfassen.
-
Die 3 ist ein Flussdiagramm 300, das detailliertere Beispielvorgänge des Systems 100 von 1 zeigt. In dem Beispiel von 3 sind die Vorgänge 302-310 als separate, aufeinanderfolgende Vorgänge gezeigt. Es sollte jedoch beachtet werden, dass in verschiedenen Implementierungen zusätzliche oder alternative Vorgänge oder Teilvorgänge einbezogen werden können und/oder ein Vorgang oder mehrere Vorgänge oder ein Teilvorgang oder mehrere Teilvorgänge weggelassen werden kann oder können. Ferner kann es vorkommen, dass jedwede zwei oder mehr der Vorgänge oder Teilvorgänge in einer teilweise oder vollständig überlappenden oder parallelen Weise oder in einer verschachtelten, iterativen, schleifenartigen oder verzweigten Weise ausgeführt werden können.
-
In dem Beispiel von 3 wird eine Abfrage mittels einer Nutzerschnittstelle einer Anwendung im Zusammenhang mit der Identifizierung mindestens eines Dokuments erhalten, wobei das mindestens eine Dokument mittels eines Computerspeichers (302) gespeichert ist. Beispielsweise kann die Nutzerschnittstelle 112, wie z.B. das Dokumentanzeigefenster 116 und das Suchfeld 118, zum Eingeben einer Abfrage genutzt werden. Die Abfrage kann folglich bei dem Abfrageeinheit-Suchmodul 114, wie z.B. bei dem Einheitauswahlmodul 122, erhalten werden. Im Zusammenhang mit dem Erhalten der Abfrage kann das Dokument 115 identifiziert werden. Beispielsweise kann das Dokument 115 auch in die Nutzerschnittstelle geladen und mittels des Dokumentanzeigefensters 116 betrachtet werden. In weiteren Implementierungen kann das Dokument 115 in einem separaten oder entfernt vorliegenden Computerspeicher als demjenigen gespeichert werden, der durch die Nutzerschnittstelle 112 verwendet wird, und auf diesen kann durch das Abfrageeinheit-Suchmodul 114 zugegriffen werden. Wie es ebenfalls beschrieben ist, kann der Nutzer die Stimme-zu-Text-API 120 zum Eingeben der Abfrage im Zusammenhang mit dem Suchfeld 118 nutzen.
-
Eine Mehrzahl von grammatischen Einheiten kann innerhalb des mindestens einen Dokuments identifiziert werden (304). Beispielsweise kann das Einheitauswahlmodul 122 eine festgelegte Art von grammatischer Einheit von innerhalb der erhaltenen Abfrage identifizieren, wie z.B. als Formulierung, Halbsatz, Satz oder Absatz. In weiteren Implementierungen kann, wie es beschrieben worden ist, das Einheitauswahlmodul 122 keine Identifizierung einer spezifischen Art einer grammatischen Einheit innerhalb der Abfrage erhalten und kann stattdessen eine vorkonfigurierte vorgegebene Art einer grammatischen Einheit nutzen, wie z.B. den Satz. Das Vorverarbeitungsmodul 124 kann zum Analysieren des Dokuments 115 und zum Bezeichnen von jeder der festgelegten Art von darin enthaltenen grammatischen Einheiten ausgebildet sein. Beispielsweise kann das Vorverarbeitungsmodul 124 einzelne Sätze von innerhalb des Dokuments 115 identifizieren. Selbstverständlich kann das Vorverarbeitungsmodul 124 auch zum Durchführen einer zusätzlichen Vorverarbeitung sowohl der erhaltenen Abfrage als auch des Dokuments 115 ausgebildet sein, wie z.B. einem Entfernen von Stoppwörtern, einem Identifizieren von Wortstämmen und Synonymen und einem sonstigen Vorbereiten der Abfragebegriffe und des Dokumentinhalts für eine Merkmalsextraktion.
-
Ein Wert für mindestens ein Merkmal für jede grammatische Einheit in Bezug auf die Abfrage kann extrahiert werden, wobei der mindestens eine Merkmalswert eine Relevanz jeder grammatischen Einheit für die Abfrage charakterisiert (306). Beispielsweise kann das Merkmalextraktionsmodul 126 zum Analysieren von jedem identifizierten Satz oder jeder anderen Art von grammatischer Einheit von innerhalb des Dokuments 115 in Bezug auf die erhaltene Abfrage ausgebildet sein. Demgemäß kann das Merkmalextraktionsmodul 126 einen oder mehrere Merkmalswert(e) für verschiedene Arten von Merkmalen bestimmen, wobei einige davon hier detailliert beschrieben sind. Beispielsweise kann das Merkmalextraktionsmodul Merkmalswerte für semantische Ähnlichkeiten zwischen der Abfrage und jeder einzelnen grammatischen Einheit (z.B. einem Satz) sowie einen Merkmalswert extrahieren, der eine kontextuelle Ähnlichkeit zwischen jedem Satz der Abfrage (z.B. auf der Basis von einem oder mehreren vorhergehenden oder nachfolgenden Satz oder Sätzen, der oder die der Abfrage ähnlich oder für diese relevant ist oder sind) charakterisiert.
-
Die grammatischen Einheiten können auf der Basis von jedem Merkmalswert jeder grammatischen Einheit eingestuft werden (308). Beispielsweise kann das Einstufungsmodul 128 zum Einstufen von jeder grammatischen Einheit in Bezug auf die Abfrage mittels einer oder mehrerer Einstufungstechniken ausgebildet sein, wobei einige davon hier detailliert beschrieben sind. Beispielsweise wenn die festgelegte grammatische Einheit ein Satz ist, kann das Einstufungsmodul 128 jedes Abfrage/Satz-Paar mittels der Merkmalswerte, die durch das Merkmalextraktionsmodul 126 z.B. mittels eines trainierten Modells bereitgestellt werden, das mittels der speziellen Merkmale, für die Werte erhalten worden sind, trainiert wird, eingestuft werden.
-
Schließlich kann in Bezug auf die 3 mittels der Nutzerschnittstelle und im Zusammenhang mit dem mindestens einen Dokument mindestens eine ausgewählte grammatische Einheit der Mehrzahl von grammatischen Einheiten auf der Basis der Einstufung angezeigt werden (310). Beispielsweise können innerhalb des Dokumentanzeigefensters 116 Inhalte des Dokuments 115 vollständig oder teilweise angezeigt werden, wobei die grammatische Einheit mit der höchsten Einstufung darin visuell bezeichnet ist. Wie es ebenfalls beschrieben ist, können die verschiedenen eingestuften grammatischen Einheiten innerhalb des Inhalts des Dokuments 115 gleichzeitig visuell bezeichnet werden, worauf der Nutzer durch das Dokument 115 scrollen kann oder dieses in sonstiger Weise betrachten kann, um jede visuell bezeichnete grammatische Einheit zu untersuchen. In solchen Ausführungsformen können die relativen Einstufungen der bezeichneten grammatischen Einheiten im Zusammenhang miteinander bereitgestellt werden, wie es vorstehend in Bezug auf die Einstufungsidentifikatoren 209, 211 von 2 gezeigt und beschrieben worden ist. Wie es ebenfalls hier beschrieben ist, können die visuell bezeichneten grammatischen Einheiten innerhalb des Inhalts des Dokuments 115 nacheinander als Reaktion auf eine Nutzeraktion (wie z.B. dem Klicken mit einer Maus oder dem Drücken der Space-Taste oder der Eingabetaste) in der Reihenfolge der Einstufung und unabhängig von einer Reihenfolge des Auftretens innerhalb des Inhalts des Dokuments 115 angezeigt und bezeichnet werden. Auf diese Weise kann der Nutzer schnell und effizient die am höchsten eingestufte Instanz der gewünschten Art der grammatischen Einheit finden.
-
Die 4 ist ein Blockdiagramm und ein dazugehöriger Betriebsablauf einer detaillierteren Beispielimplementierung des Systems von 1. Ein Beispielarbeitsablauf einer Implementierung mit einer Stimmensuchschnittstelle wird im Zusammenhang mit der 4 beschrieben. In dem Beispiel von 4 kommuniziert eine Nutzervorrichtung 402 mit einem Server 404.
-
In der 4 und wie es vorstehend beschrieben ist, kann eine Schnittstelle bei der Nutzervorrichtung 402 zum Erhalten einer Nutzerstimmenabfrage und eines einzelnen Dokuments als Eingabe ausgebildet sein. Insbesondere stellt der Nutzer eine stimmenbasierte Abfrage für die Schnittstelle bereit, die anschließend in eine Textabfrage umgewandelt wird (406).
-
Die Textabfrage und das Dokument werden dann für eine Vorverarbeitung zu dem Server 404 gesendet (408). In dem Beispiel von 4 kann, wie es vorstehend erwähnt worden ist und nachstehend detaillierter beschrieben wird, die Vorverarbeitung des Dokuments mit derjenigen der Abfrage identisch sein.
-
Ferner werden in der 4 Merkmale für jedes Abfrage-Satz-Paar in dem Dokument extrahiert (410), die dann zu einem vortrainierten Modell zum Einstufen der Sätze in Bezug auf die Relevanz für die Abfrage gesendet werden. Das trainierte Modell gibt dann eine Einstufungsbewertung für jedes Paar aus (412). Mittels dieser Einstufungsbewertungen wird der Satz oder werden die Sätze mit der höchsten Relevanz für den Nutzer ausgegeben und angezeigt (414).
-
Nachstehend ist eine detaillierte Erläuterung von Beispielimplementierungen von jedem der Vorgänge 406 bis 414 angegeben. Insbesondere wird bei dem Vorgang 406 die Suchabfrage, die durch den Nutzer für ein gegebenes Dokument bereitgestellt wird, als eine Eingabe erhalten, und die Stimmensuchabfrage wird dann mittels einer geeigneten Stimme-zu-Text- oder Sprache-API, wie in der 1, in einen Abfragetext umgewandelt. Dann wird in dem Beispiel der Abfragetext z.B. zusammen mit dem Dokument zu dem Server 404 gesendet. In Fällen, bei denen das Dokument gespeichert wird oder aus der Entfernung zugänglich ist, wird unter Verwendung des Servers 404 ein Dokumentidentifikator (ID) beim Abfragen und Zugreifen auf das Dokument verwendet.
-
Für den Verabeitungsvorgang (412) wird die Abfrage, nachdem sie zu Text umgewandelt worden ist, zu dem Server 404 gesendet. Wie es beschrieben worden ist, kann oder können in einigen Implementierungen das oder die dazugehörige(n) Dokument(e) mit der Abfrage zu dem Server 404 gesendet werden und kann oder können zusammen mit der Abfrage vorverarbeitet werden. In weiteren Implementierungen kann das Dokument bereits auf dem Server 404 gespeichert sein oder für diesen verfügbar sein, und die Abfrage kann mit einem Dokumentidentifikator zum Identifizieren des Dokuments gesendet werden. Demgemäß kann die beschriebene Vorverarbeitung mit dem Dokument vor dem Erhalten der Abfrage durchgeführt werden.
-
Auf dem Server 404 kann ein Tokenizer (lexikalischer Scanner) zum Trennen aller Begriffe in der Abfrage (und gegebenenfalls dem Dokument) als Token verwendet werden. Beispielsweise können Begriffe oder Zeichenketten als Worte oder Interpunktion und als spezifische Arten von Worten (z.B. Substantiv, Verb oder Adjektiv) klassifiziert werden. Die klassifizierte Interpunktion kann zum Kategorisieren von grammatischen Einheiten, wie z.B. Formulierungen, Halbsätzen oder Sätzen, verwendet werden.
-
Dann kann eine Ko-Referenzauflösung zum Auflösen von jedweden einbezogenen Pronomen verwendet werden, z.B. durch Zuordnen jedes Pronoms zu dessen Bezugswortbasis. Stoppworte (z.B. gebräuchliche Worte wie z.B. „der“, „die“, „das“, „zu“, usw.) können dann entfernt werden. Ferner können Stammbildungs- oder Lemmatisierungstechniken durchgeführt werden, um die Token zu deren Basisformen zu reduzieren.
-
Dann kann eine Merkmalsextraktion (410) mit der Abfrage und dem Dokument, die vorverarbeitet worden sind, durchgeführt werden. In dem Beispiel von 4 können die folgenden beschriebenen Merkmale für jeden Satz in dem Dokument in Bezug auf die erhaltene Abfrage berechnet werden.
-
Zuerst kann eine Sprachmodellbewertung zum Charakterisieren des Wortvorkommens innerhalb der Sätze eines Dokuments relativ zu der Abfrage berechnet werden. In Allgemeinen charakterisiert ein Sprachmodell eine gewünschte Wahrscheinlichkeitsverteilung für jeden Satz. Beispielsweise kann ein Abfragewahrscheinlichkeitsmodell zum Berechnen dieser Art von Merkmal verwendet werden. In solchen Beispielen wird ein Sprachmodell für jeden Satz in dem Dokument konstruiert. Das Satzsprachmodell kann geglättet werden, um die Abschätzungsergebnisse für eine Datenausdünnung einzustellen, die vorkommen kann, wenn einzelne Sätze von einem einzelnen Dokument analysiert werden, wie z.B. mittels einer Dirichlet-Glättung.
-
Jeder Satz kann dann auf der Basis einer Wahrscheinlichkeit der Relevanz jedes Satzes unter Berücksichtigung der vorliegenden Abfrage eingestuft werden. Mit anderen Worten, die Einstufung für dieses Merkmal kann als die Wahrscheinlichkeit eines Satzes interpretiert werden, für eine gegebene Abfrage relevant zu sein, und kann so berechnet werden, wie es in der Gleichung 1 gezeigt ist:
-
In der Gleichung 1ist tfw,Q die Anzahl, mit der ein Wort win der Abfrage Q vorkommt, tfw,s ist die Anzahl, mit der ein Wort w in dem Satz S vorkommt, |S| ist die Länge des Satzes und P(w|C) ist das Hintergrundsprachmodell, berechnet als die Wahrscheinlichkeit, dass das Wort w in dem Dokument C vorkommt. µ ist ein Parameter für die Dirichlet-Glättung.
-
In einem zweiten Beispielmerkmal kann eine semantische Ähnlichkeit berechnet werden. Beispielsweise bezieht sich Word2Vec auf eine Gruppe von verwandten Modellen, die zum Erzeugen von Worteinbettungen verwendet werden, wobei sich Worteinbettungen auf kontinuierliche Vektordarstellungen von Worten beziehen, die aus großen Mengen von Textdaten mittels neuronalen Netzwerken gelernt worden sind. In diesem Zusammenhang bezieht sich eine Vektordarstellung eines Worts auf das Konzept, dass eine gegebene Menge von Textdaten (z.B. ein Dokument oder ein Korpus von Dokumenten) eine Anzahl von Dimensionen oder Elementen aufweist, die durch einen Nutzer in dem Kontext des Trainierens eines neuronalen Netzwerks oder von neuronalen Netzwerken bestimmt werden. Dann kann jeder Vektor als eine verteilte Darstellung jedes Worts konstruiert werden. Auf diese Weise können Worte in einer numerischen Form als Vektoren dargestellt werden, die einfacher untersucht und verarbeitet werden können, um Ähnlichkeiten zwischen diesen zu bestimmen. Mit anderen Worten, Vektoren von ähnlichen Worten werden innerhalb des festgelegten Vektorraums nahe beieinander vorliegen (d.h., gruppiert sein), so dass die Ähnlichkeiten mathematisch erfasst werden können.
-
Unter Verwendung dieser oder ähnlicher Techniken liegen Worte mit ähnlichen Bedeutungen in geringen Abständen innerhalb des Vektorraums vor, der durch die Vektoren festgelegt ist. Im Betrieb des Systems der 1 und 4 kann ein vortrainiertes Modell zum Erzeugen von Vektordarstellungen der Abfrage und jedes Satzes verwendet werden. Dann kann ein Ähnlichkeitsmerkmalswert für ein Abfrage-Satz-Paar z.B. als eine durchschnittliche paarweise Kosinusähnlichkeit zwischen jedem Abfragewort-Vektor und Satzwort-Vektor oder unter Verwendung jedweden anderen angemessenen oder geeigneten Ähnlichkeitsmaßes zwischen den festgelegten Vektoren berechnet werden. Durch Berechnen der Merkmalswerte auf diese Weise wird eine semantische Ähnlichkeit zwischen der Abfrage und jedem Satz erhalten.
-
In einem letzten Beispiel für Satzmerkmale, die während der Merkmalsextraktion (410) berechnet werden können, umfassen Kontextmerkmale Merkmale, die für den Kontext eines gegebenen potenziellen Satzes spezifisch sind. Beispielsweise kann für einen bestimmten Satz ein vorhergehender Satz und/oder ein nachfolgender Satz als Kontext verwendet werden. Allgemeiner kann jedweder von einem oder mehreren benachbarten Satz oder Sätzen verwendet werden, wie z.B. Sätze innerhalb desselben Absatzes als ein ausgewählter Satz. In diesen Implementierungen wird davon ausgegangen, dass für eine bestimmte Abfrage ein relevanter Satz mit einer größeren Wahrscheinlichkeit durch andere Sätze umgeben ist, die ebenfalls in gewisser Weise in Bezug auf die Abfrage relevant sind.
-
Beispielsweise wenn das Kontextmerkmal mit den früher beschriebenen Merkmalen der Sprachmodellbewertung (LM) und der semantischen (z.B. Word2Vec) Ähnlichkeit kombiniert wird oder darauf basiert, dann können diese zwei Merkmale als Satz Fn für den n-ten Satz in dem Dokument dargestellt werden, d.h., Fn = {LMn, W2Vn}. Dann können die Kontextmerkmale (CF) für den n-ten Satz als der Satz von LM & W2V Merkmalen für den n- 1-ten bzw. den n+ 1-ten Satz festgelegt werden, d.h., CFn = {Fn-1, Fn+1}.
-
Für den Satzeinstufungsvorgang (412) kann in manchen Implementierungen ein Lernen zum Einstufen (L2R)-Verfahren zum Einstufen der Sätze auf der Basis der Merkmalswerte verwendet werden. Beispielsweise kann das Modell, das als MART (Mehrzahl von additiven Regressionsbäumen („Multiple Additive Regression Trees“)), ein gradientenverstärktes Regressionsbaummodell, als das Satzeinstufungsmodell verwendet werden. Die Aufgabe des Modells ist die Berechnung der Relevanzbewertung für den Merkmalsvektor, der aus dem Abfrage-Satz-Paar erzeugt worden ist, und das Erzeugen einer eingestuften Liste von Sätzen in der absteigenden Reihenfolge der Relevanzbewertung. Das Modell kann mit dem Merkmalssatz zum Optimieren der Gewichtungen des Modells und dadurch zum Erhalten der bestmöglichen Reihenfolge der Ergebnisse trainiert werden.
-
Im Allgemeinen umfasst das Trainieren eines Modells, wie es vorstehend in Bezug auf die verschiedenen Modelle genannt worden ist, die im Kontext des Beispiels von 4 verwendet werden, das Lernen einer großen Anzahl von Parametern mittels Trainingsbeispielen. In dem Kontext von neuronalen Netzwerken aktualisiert ein Optimierungsalgorithmus iterativ die Parameter (Gewichtungen) eines Netzwerks auf der Basis einer Charge von Trainingsbeispielen, wie z.B. den ausgewählten Merkmalswerten, zum Minimieren einer objektiven Funktion. Der am häufigsten verwendete Optimierungsalgorithmus ist die stochastische Gradientenabnahme („Stochastic Gradient Descent“) (SGD), obwohl andere Optimierungsalgorithmen wie z.B. Adagrad, Adadelta, RMSProp und Adam, ebenfalls verwendet werden können.
-
Als weitere Hintergrundinformation sind neuronale Netzwerke Rechenmodelle, die bei einem Maschinenlernen verwendet werden, das aus Knoten ausgebildet ist, die in Schichten organisiert sind. Die Knoten werden auch als künstliche Neuronen oder nur Neuronen bezeichnet und führen eine Funktion mit einer bereitgestellten Eingabe zum Erzeugen eines Ausgabewerts aus. Ein neuronales Netzwerk erfordert einen Trainingszeitraum zum Lernen der Parameter, d.h., von Gewichtungen, die zum Zuordnen der Eingabe zu einer gewünschten Ausgabe verwendet werden. Das Zuordnen findet mittels der Funktion statt. Folglich sind die Gewichtungen Gewichtungen für die Zuordnungsfunktion des neuronalen Netzwerks. Jedes neuronale Netzwerk ist für eine bestimmte Aufgabe traininiert, z.B. eine Vorhersage, eine Klassifizierung, ein Kodieren, usw. Die Aufgabe, die durch das neuronale Netzwerk durchgeführt wird, wird durch die bereitgestellten Eingaben, die Zuordnungsfunktion und die gewünschte Ausgabe bestimmt.
-
Das Trainieren kann entweder überwacht oder nicht überwacht sein. Bei einem überwachten Training werden Trainingsbeispiele für das neuronale Netzwerk bereitgestellt. Ein Trainingsbeispiel umfasst die Eingaben und eine gewünschte Ausgabe. Trainingsbeispiele werden auch als markierte Daten bezeichnet, da die Eingabe mit der gewünschten Ausgabe markiert ist. Das Netzwerk lernt die Werte für die Gewichtungen, die in der Zuordnungsfunktion verwendet werden, die am häufigsten zu der gewünschten Ausgabe führen, wenn die Eingaben vorgegeben sind. Bei einem nicht überwachten Training lernt das Netzwerk, eine Struktur oder ein Muster in der bereitgestellten Eingabe zu identifizieren. Mit anderen Worten, das Netzwerk identifiziert implizite Beziehungen in den Daten. Ein nicht überwachtes Training wird in tiefen neuronalen Netzwerken sowie anderen neuronalen Netzwerken verwendet und erfordert typischerweise einen großen Satz von unmarkierten Daten und einen längeren Trainingszeitraum. Sobald der Trainingszeitraum abgeschlossen ist, kann das neuronale Netzwerk verwendet werden, um die Aufgabe auszuführen, für die es trainiert worden ist, wie z.B. diejenigen, auf die hier Bezug genommen wird.
-
In einer noch spezifischeren Beispielimplementierung des Systems der 1 und 4 kann das System mittels einer Android-Anwendung implementiert werden, die eine stimmenbasierte Suchschnittstelle für Textdokumente bereitstellt. In der Anwendung kann der Nutzer Textdokumente öffnen und betrachten, die auch auf dem Server vorliegen, und kann Stimmensuchabfragen für die Anwendung bereitstellen, um relevante Suchergebnisse zu finden.
-
In diesen und ähnlichen Implementierungen kann die Stimmenabfrage zu Text mittels verfügbarer Sprach-API(s) durchgeführt werden, um eine Stimmenabfrage in Text umzuwandeln. Diese Textabfrage wird dann zusammen mit der ID des Dokuments, das in der Anwendung geöffnet ist, zu dem Server gesendet.
-
Die Vorverarbeitung kann unter Verwendung einer Ko-Referenzauflösung auf der Basis der bekannten Stanford Core NLP-Bibliothek durchgeführt werden, während eine Stammbildung mit herkömmlichen Stammbildungstechniken durchgeführt werden kann.
-
Merkmale können für jeden vorverarbeiteten Satz entsprechend der Abfrage extrahiert werden, wobei das beschriebene Sprachmodellbewertungsmerkmal unter Verwendung des vorstehend genannten Abfragewahrscheinlichkeitsmodells berechnet werden kann, das mittels einer geeignet parametrisierten Dirichlet-Glättung (z.B. mit einem Parameterwert von µ = 10) geglättet werden kann. Die Word2Vec (semantische)-Ähnlichkeit kann mittels eines vortrainierten Modells von Word2Vec berechnet werden, das mit einem Teil eines großen Nachrichtendatensatzes trainiert werden kann, wobei das Modell z.B. 300-dimensionale Vektoren für 3 Millionen Worte und Formulierungen enthält.
-
Das trainierte Modell, das zur Einstufung der Sätze auf der Basis der extrahierten Merkmale verwendet wird, kann unter Verwendung des „Web Answer Passages“-Datensatzes (WebAP) trainiert werden, so dass die im Vorhinein vorliegenden Marker zum Trainieren des Modells durch Eingeben der verarbeiteten Markerwerte in den Lernen-zum-Einstufen-Algorithmus verwendet werden können. Beispielsweise wenn ein perfekter Marker mit einem Wert von 4 angegeben wird, ein ausreichender Marker mit einem Wert von 1 angegeben wird und eine nicht-relevante Übereinstimmung mit einem Wert von 0 angegeben wird, dann kann 2x - 1 als die Eingabe in den L2R-Algorithmus verwendet werden, wobei x der Markerwert ist.
-
Implementierungen der verschiedenen hier beschriebenen Techniken können in einer digitalen elektronischen Schaltung oder in Computerhardware, -firmware, -software oder in Kombinationen davon implementiert werden. Implementierungen können als ein Computerprogrammprodukt implementiert werden, d.h., ein Computerprogramm, das materiell in einem Informationsträger verkörpert ist, z.B. in einer maschinenlesbaren Speichervorrichtung, zum Ausführen durch oder zum Steuern des Betriebs eine(r) Datenverarbeitungsvorrichtung, wie z.B. eines programmierbaren Prozessors, eines Computers oder einer Mehrzahl von Computern. Ein Computerprogramm, wie z.B. das oder die Computerprogramm(e), das oder die vorstehend beschrieben worden ist oder sind, kann in jedweder Form von Programmiersprache geschrieben sein, einschließlich kompilierte oder interpretierte Sprachen, und kann in jedweder Form verwendet werden, einschließlich als eigenständiges Programm oder als Modul, Komponente, Teilroutine oder eine andere Einheit, die zur Verwendung in einer Rechenumgebung geeignet ist. Ein Computerprogramm kann so verwendet werden, dass es auf einem Computer oder einer Mehrzahl von Computern an einer Stelle oder verteilt über mehrere Stellen und verbunden mit einem Kommunikationsnetzwerk ausgeführt werden kann.
-
Verfahrensschritte können durch einen oder mehrere programmierbare(n) Prozessor(en) durchgeführt werden, der oder die ein Computerprogramm zum Durchführen von Funktionen durch Bearbeiten von Eingabedaten und Erzeugen einer Ausgabe ausführt oder ausführen. Die Verfahrensschritte können auch durch eine spezifische Logikschaltung durchgeführt werden und eine Vorrichtung kann als solche implementiert werden, wie z.B. ein FPGA (feldprogrammierbares Gatter-Array) oder eine ASIC (anwendungsspezifische integrierte Schaltung).
-
Prozessoren, die für die Ausführung eines Computerprogramms geeignet sind, umfassen beispielsweise sowohl allgemeine als auch spezifische Mikroprozessoren und jedweden einen oder mehrere Prozessor(en) von jedweder Art von digitalem Computer. Im Allgemeinen wird ein Prozessor Anweisungen und Daten von einem Festwertspeicher oder einem Direktzugriffsspeicher oder beiden erhalten. Elemente eines Computers können mindestens einen Prozessor zum Ausführen von Anweisungen und eine oder mehrere Speichervorrichtung(en) zum Speichern von Anweisungen und Daten umfassen. Im Allgemeinen kann ein Computer auch eine oder mehrere Massenspeichervorrichtung(en) zum Speichern von Daten, wie z.B. magnetische, magnetooptische Platten oder optische Platten, umfassen oder funktionell mit diesen gekoppelt sein, um Daten von diesen zu empfangen oder zu diesen zu übertragen oder beides. Informationsträger, die zum Verkörpern von Computerprogrammanweisungen und Daten geeignet sind, umfassen alle Formen eines nicht-flüchtigen Speichers, einschließlich z.B. Halbleiterspeichervorrichtungen, wie z.B. EPROM, EEPROM und Flashspeichervorrichtungen; Magnetplatten, z.B. interne Festplatten oder entnehmbare Platten; magneto-optische Platten; und CD-ROM- und DVD-ROM-Platten. Der Prozessor und der Speicher können durch eine spezifische Logikschaltung ergänzt oder in diese einbezogen sein.
-
Zur Bereitstellung einer Interaktion mit einem Nutzer können Implementierungen auf einem Computer implementiert sein, der eine Anzeigevorrichtung, z.B. einen Kathodenstrahlröhre (CRT)- oder Flüssigkristallanzeige (LCD)-Monitor, zum Anzeigen von Informationen für den Nutzer und eine Tastatur sowie eine Zeigevorrichtung, wie z.B. eine Maus oder einen Trackball, durch die der Nutzer eine Eingabe in den Computer eingeben kann, aufweist. Andere Arten von Vorrichtungen können zum Bereitstellen einer Interaktion mit einem Nutzer verwendet werden; beispielsweise kann eine Rückmeldung, die für den Nutzer bereitgestellt wird, jedwede Form von sensorischer Rückmeldung, z.B. eine visuelle Rückmeldung, eine hörbare Rückmeldung oder eine taktile Rückmeldung sein, und eine Eingabe von dem Nutzer kann in jedweder Form erhalten werden, einschließlich akustisch, mittels Sprache oder einer taktilen Eingabe.
-
Implementierungen können in einem Rechensystem implementiert werden, das eine Backend-Komponente umfasst, wie z.B. einen Datenserver, oder das eine Middleware-Komponente umfasst, wie z.B. einen Anwendungsserver, oder das eine Frontend-Komponente umfasst, wie z.B. einen Clientcomputer mit einer graphischen Nutzerschnittstelle oder einem Webbrowser, durch den ein Nutzer mit einer Implementierung interagieren kann, oder jedwede Kombination solcher Backend-, Middleware- oder Frontend-Komponenten umfasst. Komponenten können durch jedwede Form oder jedwedes Medium einer digitalen Datenkommunikation, z.B. einem Kommunikationsnetzwerk, verbunden werden. Beispiele für Kommunikationsnetzwerke umfassen ein lokales Netzwerk (LAN) und ein Weitbereichsnetzwerk (WAN), wie z.B. das Internet.
-
Während bestimmte Merkmale der Implementierungen hier beschrieben worden sind, sind für den Fachmann viele Modifizierungen, Ersetzungen, Veränderungen und Äquivalente ersichtlich. Es sollte daher beachtet werden, dass die beigefügten Ansprüche alle derartigen Modifizierungen und Veränderungen, die vom Umfang der Ausführungsformen umfasst sind, umfassen sollen.