Wie Sie Dokumente mit Python indizieren und finden

Das Maß für Worthäufigkeiten TF-IDF schlägt Transformer-basierte Textsuche bei kleinen Datensammlungen, beschleunigt die Suche und liefert ein Ergebnis-Ranking.

Artikel verschenken
In Pocket speichern vorlesen Druckansicht 3 Kommentare lesen
Lesezeit: 17 Min.
Von
  • Dr. Roland Pleger
Inhaltsverzeichnis

Transformer-basierte Sprachmodelle können viel, solange sie mit riesigen Datenmengen trainieren dürfen. Ist das nicht der Fall oder bezieht sich eine Dokumentensuche nur auf wenige Tausend Dateien, helfen klassische Verfahren weiter: Ein Text-Crawler sammelt das Material für eine Textsuche, das statistische Verfahren TF-IDF liefert die Basis für eine Suchmaschine, die auch Wildcards und Freitexteingaben interpretiert. Darüber hinaus identifiziert es die Sprache von Texten oder bildet die Grundlage für ein Schlagwortregister.

Mehr zum Programmieren mit Python
Dr. Roland Pleger

Dr. Roland Pleger arbeitet beim Institut für Softwaretechnologie des Deutschen Zentrums für Luft- und Raumfahrt (DLR). Er ist begeistert von den Möglichkeiten, die Python für das Prototyping von Software bietet.

Der vollständige Code ist als Jupyter-Notebook auf GitHub zu finden, Steuervariablen im Skript legen die Herkunft der Datenquellen fest. Obwohl das System einfach gehalten ist, bietet es eine Reihe von Hyperparametern. Sie laden zu weiteren Experimenten ein, um der Suchmaschine bei der Arbeit über die Schulter zu schauen.

iX-tract
  • Sind Dokumentensammlungen zu klein, versagen Methoden, die auf neuronalen Netzen basieren. Es verbleiben die klassischen Methoden wie TF-IDF, die auf einer statistischen Analyse beruhen.
  • TF-IDF (Term Frequency – Inverse Document Frequency) findet über Worthäufigkeiten innerhalb der Dokumentensammlung spezifische Einträge.
  • Eine Matrixmultiplikation der TF-IDF-Matrix mit dem Suchvektor beschleunigt die Suche und gibt für jedes Dokument eine Rückmeldung für das Maß der Übereinstimmung mit der Suchanfrage.
  • Reguläre Ausdrücke werten Wildcards aus und führen das Ergebnis einer normalen Suche zu.

Das Kernelement des Indizierers bildet eine sogenannte TF-IDF-Matrix, die Worthäufigkeiten unterschiedlicher Dokumente auswertet. Ein Wort, das in jedem Dokument auftritt, ist weniger prägnant als eines, das nur in einer Datei vorkommt.