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.

Das war die Leseprobe unseres heise-Plus-Artikels "Wie Sie Dokumente mit Python indizieren und finden". Mit einem heise-Plus-Abo können sie den ganzen Artikel lesen und anhören.