Regex-Ersetzungen in Python 3 optimieren
In Ihrem Szenario möchten Sie Regex-Ersetzungen für eine große Anzahl von Zeichenfolgen durchführen und diese hinzufügen Komplexität, sicherzustellen, dass Ersetzungen nur an Wortgrenzen erfolgen. Während ein einfacher Regex-Ansatz mit verschachtelten Schleifen langsam sein kann, gibt es effizientere Lösungen.
Verwendung der str.replace-Methode
Die str.replace-Methode kann erhebliche Ergebnisse liefern Geschwindigkeitsverbesserungen im Vergleich zu Regex. Um jedoch Wortgrenzenersetzungen zu erzwingen, können Sie einen regulären Ausdruck innerhalb der str.replace-Argumente verwenden:
sentence = sentence.replace(r'\b' + word + r'\b', '')
Diese Methode kombiniert die Geschwindigkeit von str.replace mit der Wortgrenzenerzwingung eines regulären Ausdrucks.
Optimierung der re.sub-Methode
Wenn Sie lieber die re.sub-Methode verwenden möchten, gibt es Techniken zur Optimierung Leistung:
Beispielimplementierung mithilfe eines Versuchs
import re import trie banned_words = ['word1', 'word2', ...] trie_obj = trie.Trie() for word in banned_words: trie_obj.add(word) trie_regex = r"\b" + trie_obj.pattern() + r"\b" pattern = re.compile(trie_regex) for sentence in sentences: sentence = pattern.sub('', sentence)
Dieser Ansatz nutzt die Geschwindigkeit eines Trie für den Wortgrenzenabgleich und reduziert so die Verarbeitungszeit für große Datensätze erheblich.
Das obige ist der detaillierte Inhalt vonWie kann ich Regex-Ersetzungen in Python 3 hinsichtlich Geschwindigkeit und Wortgrenzengenauigkeit optimieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!