Heim >Backend-Entwicklung >Python-Tutorial >Wie können wir Regex-Ersetzungen zum Entfernen von Wörtern aus Millionen von Sätzen in Python beschleunigen?
Der folgende Python-Code zielt darauf ab, bestimmte Wörter effizient aus einer großen Sammlung von Sätzen zu entfernen und so dies sicherzustellen Ersetzungen erfolgen nur an Wortgrenzen:
import re for sentence in sentences: for word in compiled_words: sentence = re.sub(word, "", sentence)
Dieser Ansatz funktioniert zwar, ist aber langsam und dauert Stunden, um Millionen von Sätzen zu verarbeiten. Es ist notwendig, schnellere Lösungen zu erforschen.
Eine optimierte Version des Regex-Ansatzes kann die Leistung erheblich verbessern. Anstatt eine langsame Regex-Vereinigung zu verwenden, die mit zunehmender Anzahl verbotener Wörter ineffizient wird, kann ein Trie-basierter Regex erstellt werden.
Ein Trie ist eine Datenstruktur, die verbotene Wörter effizient organisiert. Durch die Verwendung eines Trie kann ein einzelnes Regex-Muster generiert werden, das Wörter an Wortgrenzen genau ersetzt, ohne dass der Leistungsaufwand für die Prüfung jedes Wortes einzeln anfällt.
Dieser Trie-basierte Regex-Ansatz kann mit den folgenden Schritten implementiert werden:
Für Situationen, in denen Regex nicht geeignet ist, ist eine schnellere Alternative möglich unter Verwendung eines satzbasierten Ansatzes.
Diese Methode vermeidet den Aufwand für den Abgleich regulärer Ausdrücke, ihre Geschwindigkeit hängt jedoch von der Größe des gesperrten Worts ab set.
Um die Leistung weiter zu verbessern, ziehen Sie zusätzliche Optimierungen in Betracht:
Das obige ist der detaillierte Inhalt vonWie können wir Regex-Ersetzungen zum Entfernen von Wörtern aus Millionen von Sätzen in Python beschleunigen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!