Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
talit:indexing [2025-10-30 08:38] – [Aufgabe 2 - Movie Index] hoftalit:indexing [2025-11-11 06:22] (aktuell) – [Wortfrequenzen] hof
Zeile 130: Zeile 130:
  
 Normalerweise werden solche _Stop Words_ bereits bei der Indexierung ignoriert. Natürlich könnten wir eine Stop-Word-Liste aus dem Internet laden - aber eigentlich haben wir ja alle Informationen selber bereits zur Hand, um eine solche zu erstellen: Wir kennen die Häufigkeit jedes Wortes, also in wie vielen Artikeln es vorkommt. Wörter, die in mehr als der Hälfte der Artikel vorkommen, dürften kaum interessant sein. Mehr als an der _absoluten_ Häufigkeit sind wir also interessiert an der _relativen_ Dokumentenhäufigkeit (_en._ document frequency): $\frac{frequency}{n}$. Normalerweise werden solche _Stop Words_ bereits bei der Indexierung ignoriert. Natürlich könnten wir eine Stop-Word-Liste aus dem Internet laden - aber eigentlich haben wir ja alle Informationen selber bereits zur Hand, um eine solche zu erstellen: Wir kennen die Häufigkeit jedes Wortes, also in wie vielen Artikeln es vorkommt. Wörter, die in mehr als der Hälfte der Artikel vorkommen, dürften kaum interessant sein. Mehr als an der _absoluten_ Häufigkeit sind wir also interessiert an der _relativen_ Dokumentenhäufigkeit (_en._ document frequency): $\frac{frequency}{n}$.
- 
 ### Aufgabe 3 - Stop Words ### Aufgabe 3 - Stop Words
 Erstelle eine Liste aller Wörter in unserem Index, absteigend sortiert nach relativer Dokumentenhäufigkeit. Erstelle eine Liste aller Wörter in unserem Index, absteigend sortiert nach relativer Dokumentenhäufigkeit.
Zeile 142: Zeile 141:
 cutoff = 0.5 cutoff = 0.5
 freqs = [(word, len(docs) / n) for word, docs in movie_idx.items() if len(docs) / n > cutoff] freqs = [(word, len(docs) / n) for word, docs in movie_idx.items() if len(docs) / n > cutoff]
 +# Absteigend sortieren nach relativer Frequenz:
 import operator import operator
 freqs.sort(reverse=True, key=operator.itemgetter(1)) freqs.sort(reverse=True, key=operator.itemgetter(1))
Zeile 152: Zeile 152:
     import re     import re
     for token in re.findall("\w+", text):     for token in re.findall("\w+", text):
 +        token = token.lower()
         if not token in stop_words:         if not token in stop_words:
-            yield token.lower()+            yield token
          
 </code> </code>
 ++++ ++++
 </nodisp> </nodisp>
 +
 +
 ## Ranking ## Ranking
 Beim Information Retrieval geht es nicht nur darum, welche Dokumente zur Query passen, sondern welche _am besten_ dazu passen. Ranking ist eine komplexe und manchmal undurchsichtige Wissenschaft, die von vielen gegenläufigen Interessen getrieben ist: Beispielsweise möchten ganz viele Webseitenbetreiber zuoberst in den Suchresultaten von Google landen - andererseits möchten die Benutzer die wirklich relevante Webseite zuoberst haben. Und Google möchte irgendwie Geld verdienen, indem es die obersten Plätze verkauft. Beim Information Retrieval geht es nicht nur darum, welche Dokumente zur Query passen, sondern welche _am besten_ dazu passen. Ranking ist eine komplexe und manchmal undurchsichtige Wissenschaft, die von vielen gegenläufigen Interessen getrieben ist: Beispielsweise möchten ganz viele Webseitenbetreiber zuoberst in den Suchresultaten von Google landen - andererseits möchten die Benutzer die wirklich relevante Webseite zuoberst haben. Und Google möchte irgendwie Geld verdienen, indem es die obersten Plätze verkauft.
Zeile 204: Zeile 207:
  
 Die Vereinigungsmenge hingegen liefert sehr viele Resultate für eine Query wie ''michael fox delorean''. Die Vereinigungsmenge hingegen liefert sehr viele Resultate für eine Query wie ''michael fox delorean''.
- 
 #### Wortfrequenzen #### Wortfrequenzen
-Zuerst werden die Inverse Document Frequencies in ein Dictionary überführt, das einfach auszulesen ist:+Zuerst werden die Document Frequencies in ein Dictionary überführt, das einfach auszulesen ist:
  
 <code python> <code python>
  • talit/indexing.1761813494.txt.gz
  • Zuletzt geändert: 2025-10-30 08:38
  • von hof