Eine Full-Text-Suchmaschine mit 150 Zeilen Python-Code bauen
(bart.degoe.de)Ein Artikel, der anhand der vollständigen Daten aus Titeln und Zusammenfassungen der englischen Wikipedia die Grundlagen einer Suchmaschine Schritt für Schritt erklärt – ohne besondere Spezialtechniken
-
Daten vorbereiten, indem ein
Abstract-Objekt erstellt wird -
Index erstellen: Tokenisierung und Filterung
→ Kleinbuchstaben
→ Stemming
→ Die 25 am häufigsten verwendeten Wörter im Englischen ausschließen (the, be, to, of, a ..)
-
Eine einfache Suche erstellen
-
Relevanzfunktion hinzufügen: Term Frequency (wie oft das jeweilige Wort in der Zusammenfassung verwendet wird)
-
Inverse Document Frequency hinzufügen: die Anzahl anderer Dokumente, die mit diesem Dokument verknüpft sind
1 Kommentare
Auch unscharfe Stringsuche mit Unterstützung für die Suche nach koreanischen Anfangskonsonanten: https://de.news.hada.io/topic?id=3631
Technische Grundlage und Implementierung unterscheiden sich zwar völlig von diesem Artikel, aber ich fand ihn dennoch spannend zu lesen, weil die grundlegenden Teile Schritt für Schritt ausführlich erklärt werden.
Es gibt mehrere Python-Bibliotheken, die Funktionen rund um Full-Text-Suche / Topic Modeling / Dokumentenindizierung / Ähnlichkeit deutlich umfassender implementieren.
Whoosh : https://pypi.org/project/Whoosh/
GenSim : https://github.com/RaRe-Technologies/gensim
Für SQLite gibt es außerdem eine eigene Full-Text-Search-Erweiterung.