NLP im Information Retrieval Tokenisierung Stoppwortlisten Stemming, Morphologische Analyse, Kompositazerlegung Flaches Parsing: Phrasen, Mehrwortlexeme N-Gramme Lesartendisambiguierung Thesauri, Semantische Netze Verfügbare Software für das Deutsche
Textaufbereitung - Motivation Nicht alle Wörter als Indexterme erwünscht Kontrolliertes Vokabular z.b. Nomen wichtig, Funktionswörter nicht Index wird kleiner Textnormalisierung: Haus, Häuser, Häusern Haus, wirtschaftliche Entwicklung, Wirtschaftsentwicklung, Entwicklung der Wirtschaft Entwicklung+Wirtschaft Verbesserung von Recall und Precision
Text- und Anfrageaufbereitung
Tokenisierung Zerlegung des Eingabestroms in Wörter: Mittels regulärer Ausdrücke Tokenisierungsregeln müssen in gleicher Weise auf Dokumente und Anfragen angewandt werden dürfen nicht mehr geändert werden
Tokenisierung - Probleme Zahlen haben vage Bedeutung: 1984 Bindestriche: Chaos-Tage, B-52, das Ausder-Haut-fahren-Wollen, Staub-Ecken Punkte: weglassen oder diambiguieren? usw., x.id Groß-/Kleinschreibung: alle Wörter klein machen: GAU, Gau gau Umlaute, Akzente: Bäume Baume, český cesky
Stoppwortlisten Zu häufige Wörter haben keine Unterscheidungskraft Kommen in über 80% der Dokumente vor Dokumentenfrequenz (df) als Kriterium:,. der und die in von den des mit auch ein wird deutscher (41) ISBN (73) Stadt (75) Zeit (82) musste (662) Linguistischer Ansatz: Wörter, die keinen Bedeutungsgehalt haben, entfernen. Funktionswörter: Artikel, Konjunktionen, Pronomen,...
Stoppwortlisten Entfernen von Stoppwörtern verkleinert Index um über 40% Problem: to be or not to be Web-Suchmaschinen behalten Stoppwörter
Stemming Normalisierung von Wortvarianten Flexion, Derivation Porter-Stemmer [1]: Suffixe entfernen Stems sind keine linguistisch motivierten Einheiten: proliferate, proliferates, proliferation, proliferating proliferat Verkleinert Index:
Stemming
Stemming
Stemming Verbessert Recall, verschlechtert Precision Overstemming vs. Understemming Windows window, Papiere Papier book store book storing, booking store 25% der Anfragen besser, 50% gleich, 25% schlechter [2] Keine deutliche Verbesserung für Englisch, aber für morphologisch reichere Sprachen [3]
Stemming Wann anwenden? 1: beim Indexieren der Dokumente und auf die Anfrage 2: nur Erweiterung der Anfrage 1 verkleinert Index, ist aber aufwändig 2 weniger rechenintensiv, aber verkleinert Index nicht [2]: Ansatz 2 besser, weil flexibler Stemming kann auf ausgewählte Terme angewandt werden (vermeidet Overstemming)
Stemming Verbesserung eines Stemmers durch Korpusanalyse [4]: Per Stemmer Liste mit allen Wortvarianten zu Term t erzeugen Durch Kookkurrenzanalyse Liste semantisch ähnlicher Wörter zu t generieren Schnittmenge beider Listen bilden news new, paste past Vermeidet Overstemming, führt bei schlechter Qualität der sem. Ähnlichkeitsliste zu Understemming
Stemming Anwendung auf ausgewählte Terme in der Anfrage [2]: Ziel: running shoes price comparisons: nur Terme shoes und comparisons stemmen Zusammenhängende Bigramme per korpusbasiertem Kollokationsmaß bestimmen: [running shoes] [price comparisons] Mit einfachen Regeln Kopf der NP bestimmen: shoes, comparisons Anfrage: running shoe shoes price comparison comparisons
Morphologische Analyse Lexikonbasiert, morphologische Regeln Erstellung & Pflege kostenintensiv Für morphologisch komplexere Sprachen geringfügig besser als Stemming, für Englisch kein Unterschied [3] Notwendig: Ergebnisdarstellung: Grundformen besser als Varianten oder Stems Crosslinguales Retrieval: Nachschlagen von Grundformen im Wörterbuch
Kompositazerlegung Komposita saliente Terme Häufig in Sprachen wie Deutsch, Holländisch, Schwedisch: 25% der Nomen sind Komposita Anfrage Energie findet keine Dokumente mit Sonnenenergie, Atomenergie, Energieknappheit,... Kompositazerlegung in Dokumenten und in Anfrage: zum Term Sonnenenergie werden Sonne u. Energie eingefügt
Kompositazerlegung [7]: Hinzufügen des Bestimmungswortes zur Anfrage bzw. zum Dokumentvektor nützlicher als Hinzufügen des Hauptwortes Diamantring -> +Diamant besser als +Ring
Kompositazerlegung Einfache Algorithmen: vollständige Zerlegung in alle Wörter, die im Lexikon stehen [3] Probleme: Fugenelemente u. Elision: Nachrichtensprecher, Friedensvertrag, Birnbaum Mehrdeutigkeiten: Staubecken -> Staub Ecken, Stau Becken Ministern -> Mini Stern Flugzeuge -> Flug Zeuge Abteilungen -> Abt Ei Lungen
Kompositazerlegung Problem: Bahnhof -> Bahn Hof, Werkzeug -> Werk Zeug Korpusbasierte Zerlegung [6]: Zerlegung in Wörter aus Korpus, Frequenz berücksichtigen Nur zerlegen, wenn Frequenz der Komponenten > Frequenz des Ganzen
Kompositazerlegung Deutliche Verbesserung: [3]: +25% deutsch, +69% holländisch (inkl. Lemmatisierung) [8]: +13% deutsch
Mehrwortlexeme Englisch: Offene Komposita: prime minister Eigennamen, Fremdwörter: New York, Open Source MWL als Terme verwenden Ganzes MWL den Teilen hinzufügen Lexikonbasiert Kollokationen, signifikante Bigramme +10% avg. precision
Termselektion Studierte arbeitete fand hielt vergleiche befasste beeinflusst übersiedelte zusammenarbeitete ging lehrte lebte
Termselektion Man Ray New York Kunst Maler Bildhauer Alfred Stieglitz Fotografie Film
Termselektion Nomen tragen den Großteil des Bedeutungsgehalt eines Textes Nur Nomen (bzw. NP) als Terme akzeptieren PoS-Tagger Gas pump prices rose
Phrasen (Chunks) Flaches Parsing NP identifizieren und als eigene Terme dem Index hinzufügen Dadurch werden manche Terme erst gefunden, sonst als Stoppwort eliminiert Joint venture Verteilungsmodell tf-idf nimmt Unabhängigkeit der Terme an, gilt definitiv nicht für Phrasen
Head-modifier-Paare Weapon proliferation Proliferation of weapons Proliferate weapons -> weapon+proliferate Problem: Abdeckung, kurze Anfragen
n-gramme Alle Wörter in 5-Gramme zerlegen, nur diese bilden die Terme Vergrößert Index Ersetzt Stemming, Kompositazerlegung Verbessert Ergebnisse [9]
Thesauri und Wortnetze Wortwahlproblem -> Synonyme Thesaurus, WordNet Relationen: Synonymie, Meronymie, Hyponomie Synonyme Terme auf gemeinsame Dimension abbilden Anfrage um Synonyme erweitern Problem: geringe Abdeckung, nicht domänenspezifisch
Semantische Ähnlichkeit WordNet::Similarity (Perl-Modul) http://www.d.umn.edu/~tpederse/similarity.html Alle ähnlichen Terme der Suchanfrage hinzufügen Semantische Ähnlichkeit zwischen Anfragevektor und Dokumentvektor berechnen
Lesartendisambiguierung Homonymie-Problem: Filz, Bank, Astra Verschlechtert Precision Lesarten (Bedeutungen) als Terme, nicht bloß Wörter Benötigt Lesarteninventar: GermaNet, EuroWordNet,... Ergebnisse gut für domänenspezifische Thesauri/Wortnetze: MeSH Ergebnisse schlecht für allgemeine Resourcen wie EuroWordNet [5]
Lesartendisambiguierung Problem: in kurzen Anfragen zu wenig Kontext zur Disambiguierung dann hilft auch Disambiguierung der Texte in Dokumentensammlung nicht Für längere Anfragen unnötig
Literaturangaben [1] M. Porter (1980): An algorithm for suffix stripping. Program, 14(3), S. 130-137. [2] F. Peng et al. (2007): Context sensitive stemming for web search. SIGIR 07, Amsterdam. [3] Ch. Monz u. M. de Rijke (2001): Shallow morphological analysis in monolingual information retrieval for Dutch, German and Italian. In Proc. of CLEF 2001. [4] J. Xu u. B. Croft (1998): Corpus-based stemming using cooccurrence of word variants. ACM TOIS, 16(1), S. 61-81. [5] Th. Brants (2003): Natural language processing in information retrieval. In Proc. of CLIN 2003.
Literaturangaben [6] Ph. Koehn u. K. Knight (2003): Empirical methods for compound splitting. In EACL 2003. [7] J. Karlgren (2005): Compound terms and their constituent elements in information retrieval. NODALIDA 2005. [8] M. Braschler u. B. Ripplinger (2004): How effective is stemming and decompounding for German text retrieval? Information Retrieval, 7:291-306. [9] P. McNamee (2006): Why you should use n-grams for multilingual information retrieval. Presentation slides: http://www.umiacs.umd.edu/research/clip/colloq/abstracts/2006-10-18-s