Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Semantische Volltextsuche

Ähnliche Präsentationen


Präsentation zum Thema: "Semantische Volltextsuche"—  Präsentation transkript:

1 Semantische Volltextsuche
Antrittsvorlesung Uni Freiburg, 21. Juni 2012 Hannah Bast Lehrstuhl für Algorithmen und Datenstrukturen Institut für Informatik Universität Freiburg Gemeinsame Arbeit mit Björn Buchhold, Elmar Haussmann und Florian Bäurle

2 Semantische Volltextsuche
Was meinen wir hier mit "semantisch"? In einem Satz: Suche mit "Sprachverständnis" Demo: gewöhnliche Volltextsuche (Google) Demo: ein paar "semantische" Suchmaschinen Ziele unserer semantischen Suchmaschine Einfach zu benutzen ... keine komplizierte Anfragesprache Nachvollziehbar ... warum kommt das was kommt? Qualitativ hinreichend gut ... mindestens zu 80% korrekt Interaktiv schnell ... unter 100 Millisekunden / Anfrage Beliebig viel Text ... Millionen – Milliarden von Dokumenten

3 Broccoli — Übersicht

4 Übersicht über den Rest des Vortrages
Ein paar Folien für jedes dieser Teilprobleme Erstellen einer Ontologie Fakten wie: Broccoli ist eine Pflanze Erkennen von Entitäten im Text Erkennen, wer mit he oder Asimov gemeint ist Erkennen wesentlicher Satzstrukturen Welche Worte in einem Text "gehören zusammen" Erstellen eines Suchindexes für schnelle Antworten + Suchvorschläge Anfragesprache und Benutzerschnittstelle das haben wir schon in der Demo gesehen

5 Ontologien 1/2 Erstmal: was ist überhaupt eine Ontologie
Eine Menge von Subjekt Prädikat Objekt Tripeln "Isaac Asimov" "is a" "Chemist" "Isaac Asimoc" "is citizen of" "United States" "Chemist" "is subclass of" "Scientist" "Broccoli" "is a" "Plant" Wir benutzen hier z.Zt. eine Ontologie "von der Stange" YAGO: A Core of Semantic Knowledge, WWW 2007 Mittelfristig wollen wir unsere eigene Ontologie: nur das Wesentliche, aber das vollständig und korrekt

6 Ontologien 2/2 Grenzen einer Ontologie
Idealerweise (so scheint es) hat man das gesamte Weltwissen in so einer Ontologie In der Tat lassen sich viele Fakten sehr natürlich als Tripel formulieren / formalisieren ... siehe Beispiele letzte Folie Aber für mindestens genauso viele wäre es ein Krampf "Broccoli" "has edible part" "Leaf" Problem: konsistente Namensgebung + wie findet ein User heraus, dass es diese Relation gibt und wie sie heißt Genau deswegen kombinieren wir Ontologiesuche und Volltextsuche

7 Entitätserkennung 1/2 Erstmal: was ist das Problem
Gegeben ein Stück Text, etwa: The usable parts of rhubarb, a plant native to Eastern Asia, are the medicinally used roots and the edible stalks however its leaves are toxic. Erkenne darin alle Worte bzw. Wortfolgen, die eine Entität aus unserer Ontologie meinen ... und welche Man beachte: das beinhaltet auch die Auflösung von sogenannten Anaphora (he, she, its, her, him, ...) en.wikipedia.org/wiki/Rhubarb en.wikipedia.org/wiki/East_Asia en.wikipedia.org/wiki/Rhubarb

8 Entitätserkennung 2/2 Schwierigkeiten
Disambiguierung von Mehrdeutigkeiten Rhubarb, the plant Rhubarb, Australian rock band Rhubarb, US baseball comedy from 1951 Rhubarb, British short film from 1969 Rhubarb Jones, American disc jockey und mehr ... Idee: Wörter im selben Kontext beachten z.B. stalks und leaves  Rhubarb, the plant Methode: maschinelles Lernen (semi-supervised)

9 Satzzerlegung 1/6 Wir machen (erstmal) folgende Annahme:
Worte die zusammen gehören, stehen im selben Satz Das ist nach der Anaphora-Auflösung in der Tat meistens der Fall (davor nicht) Rhubarb is usually considered to be a vegetable. However, a New York court decided in 1947 that it has to be counted as a fruit for the purpose of regulations and duties. In einem Satz gehört aber keineswegs alles zusammen The usable parts of rhubarb, a plant native to eastern Asia, are the medicinally used roots and the edible stalks, however its leaves are toxic. (Die Stängel sind essbar, die Blätter nicht, die sind giftig.)

10 Satzzerlegung 2/6 Wie findet man heraus, was zusammen gehört?
Häufiger Ansatz: ein sog. full parse des Satze Demo: Stanford Parser Mit anschließendem sog. semantic role labeling was ist das Objekt von welchem Verb, was das Subjekt, steht der Satz im Aktiv oder Passiv, etc. Das ist aber sehr teuer: über 1 Sekunde pro Satz das sind 10 Jahre alleine für die Englische Wikipedia Außerdem gibt uns das einerseits viel mehr Informationen als wir brauchen andererseits fehlt Information, die wir brauchen

11 Satzzerlegung 3/6 Unser Ansatz
Phase 1: Erkennen von wesentlichen Satzbausteinen Sentence Constitutent Identification (SCI) Phase 2: Rekombination dieser Satzbausteine Sentence Constituent Recombination (SCR) Das schauen wir uns jetzt an einem Beispiel an ...

12 Satzzerlegung 4/6 Sentence Constituent Identification (SCI)
Wie unterscheiden im Wesentlichen zwei Satzteile: Teile von Aufzählungen und Relativsätze An unserem Beispiel (nach Anaphora-Auflösung) The usable parts of rhubarb, a plant native to Eastern Asia, are the medicinally used roots and the edible stalks however rhubarb leaves are toxic. Ein Relativsatz in rot, das worauf er sich bezieht in rosa Eine Aufzählung mit zwei Teilen in grün Auf der nächsten Folie eine vollständige Zerlegung in der Form eines Baumes

13 Satzzerlegung 5/6 Sentence Constituent Identification (SCI) ENUM CONC
SUB The usable parts of rhubarb a plant native to Eastern Asia are the medicinally used roots the edible stalks however rhubarb leaves are toxic

14 Satzzerlegung 6/6 Sentence Constituent Recombination (SCR)
Jetzt müssen wir den Baum nur noch "ausmultiplizieren" SUB: "rausnehmen" ENUM: "Vereinigung" CONC: "Kreuzprodukt" Das ergibt dann folgende sogenannte Kontexte : rhubarb a plant native to Eastern Asia The usable parts of rhubarb are the medicinally used roots The usable parts of rhubarb are the edible stalks however rhubarb leaves are toxic ENUM CONC SUB The usable parts of rhubarb a plant native to Eastern Asia are the medicinally used roots the edible stalks however rhubarb leaves are toxic

15 Suchindex 1/5 Was ist überhaupt ein Suchindex?
Hilft schnell gewünschte Informationen zu finden Man denke an den Stichwortindex am Ende eines Buches Ohne Index müsste man für jede Anfrage die ganze Textsammlung nach Treffern durchsuchen

16 Suchindex 2/5 Der invertierte Index
Das ist der klassische Index für Volltextsuche Für jedes Wort, das überhaupt nur irgendwo vorkommt, wird eine Liste aller Vorkommen vorberechnet freiburg: Doc17, Doc37, Doc113, Doc271, ... universität: Doc15, Doc17, Doc25, Doc37, Doc48, ... informatik: Doc5, Doc11, Doc17, Doc22, Doc37, ... Um die Suchanfrage universität freiburg zu beantworten, muss man dann einfach nur die Schnittmenge der beiden vorberechneten Listen für universität und freiburg berechnen Dafür gibt es schnelle Algorithmen: 100M Elemente/Sekunde

17 Suchindex 3/5 Typisch für Suche: sehr lange solcher Listen
10 Millionen Einträge sind nicht untypisch Wir wollen interaktive Anfragezeiten, d.h. < 100 Millisekunden Damit verbieten sich "nicht-lineare" Operationen Sortieren von 100 Millionen Zahlen braucht 2 Sekunden Und ebenso hochgradig "nicht-lokale" Operationen Permutieren von 100 Millionen Zahlen braucht 12 Sekunden Von links nach rechts drüberlaufen ist dagegen schnell Scan von 100 Millionen Zahlen braucht 0.1 Sekunden

18 Suchindex 4/5 Invertierter Index für semantische Volltextsuche
Das würde zum Beispiel so aussehen ... C wie Context WORD:robotics C117, C213, C445, C497, C512, ... ENTITY:Asimov C117, C983, C1115, C4123, ... CLASS:Scientist C45, C97, C117, C178, C224, ... Damit könnte man unsere Suchanfragen zwar beantworten Problem 1: Viele Duplikate  hoher Platzverbrauch Problem 2: Damit kriegt man kein "suggest" Problem 3: Die Listen für z.B. CLASS:Person werden riesig, da dauert dann selbst einfaches Listenschneiden zu lange ganz zu schweigen von der Liste für CLASS:Entity

19 Suchindex 5/5 Unser Ansatz
Gemischte Präfix / Entitätslisten ... C wie Context WORD:rob* : (C17, WORD:robots) (C17, ENTITY:Isaac_Asimov) (C17, ENTITY:New_York) (C24, WORD:robinson) usw. Warum klappt das? ... siehe Vorlesung im WS 2012/2013 Braucht das nicht viel zu viel Speicherplatz? Eine Entität steht jetzt bei jedem Präfix mit dem sie in einem Kontext vorkommt ... aber unsere Kontexte sind klein! Unsere Kontextzerlegung ermöglicht also gleichzeitig eine "sinnhafte" Suche und einen effizienten Index dafür!

20 Letzte Folie Wie geht's weiter mit Broccoli
Vorlesung Information Retrieval im WS 2012/2013 Wir machen in der Zwischenzeit alles noch schneller, besser, schöner, ...

21

22 Demos Show demos for Google Search http://www.google.com/
Swoogle YAGO ontology search Neofonie faceted search Broccoli Stanford Parser

23 Demos Example queries Google: scientists robotics
Swoogle: scientist robotics YAGO: ?x isA scientist; keywords: robotics Neofonie: Class:scientists robotics Broccoli: Class:scientist occurs-with robotic* Broccoli: add is-citizen-of Germany Broccoli: Class:plants occurs-with edible leaves


Herunterladen ppt "Semantische Volltextsuche"

Ähnliche Präsentationen


Google-Anzeigen