Mengoptimumkan Penggantian Regex dalam Python 3
Dalam senario anda, anda menyasarkan untuk melakukan penggantian regex pada sejumlah besar rentetan, dengan tambahan kerumitan untuk memastikan penggantian berlaku hanya pada sempadan perkataan. Walaupun pendekatan regex asas menggunakan gelung bersarang boleh menjadi perlahan, terdapat penyelesaian yang lebih cekap.
Menggunakan Kaedah str.replace
Kaedah str.replace boleh memberikan yang ketara peningkatan kelajuan berbanding regex. Walau bagaimanapun, untuk menguatkuasakan penggantian sempadan perkataan, anda boleh menggunakan ungkapan biasa dalam argumen str.replace:
sentence = sentence.replace(r'\b' + word + r'\b', '')
Kaedah ini menggabungkan kelajuan str.replace dengan penguatkuasaan sempadan perkataan bagi ungkapan biasa.
Mengoptimumkan Kaedah re.sub
Jika anda lebih suka untuk menggunakan kaedah re.sub, terdapat teknik untuk mengoptimumkan prestasinya:
Contoh Pelaksanaan Menggunakan Trie
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)
Pendekatan ini memanfaatkan kelajuan Trie untuk pemadanan sempadan perkataan, dengan ketara mengurangkan masa pemprosesan untuk besar set data.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengoptimumkan Penggantian Regex dalam Python 3 untuk Kepantasan dan Ketepatan Sempadan Kata?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!