Optimisation des remplacements d'expressions régulières dans Python 3
Dans votre scénario, vous souhaitez effectuer des remplacements d'expressions régulières sur un grand nombre de chaînes, avec en plus la complexité de garantir que les remplacements se produisent uniquement aux limites des mots. Bien qu'une approche regex de base utilisant des boucles imbriquées puisse être lente, il existe des solutions plus efficaces.
Utilisation de la méthode str.replace
La méthode str.replace peut apporter des résultats significatifs améliorations de vitesse par rapport aux regex. Cependant, pour appliquer le remplacement des limites de mots, vous pouvez utiliser une expression régulière dans les arguments str.replace :
sentence = sentence.replace(r'\b' + word + r'\b', '')
Cette méthode combine la vitesse de str.replace avec l'application des limites de mots d'une expression régulière.
Optimiser la méthode re.sub
Si vous préférez utiliser la méthode re.sub, il existe des techniques pour optimiser sa performances :
Exemple de mise en œuvre à l'aide d'un 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)
Cette approche exploite la vitesse d'un Trie pour la correspondance des limites de mots, réduisant considérablement le temps de traitement pour les grands ensembles de données.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!