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.
- Dr. Roland Pleger
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.
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.
- 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.