Acelera millones de reemplazos de expresiones regulares en Python 3

Estoy usando Python 3.5.2

Tengo dos listas

una lista de aproximadamente 750,000 "oraciones" (cadenas largas)una lista de aproximadamente 20,000 "palabras" que me gustaría eliminar de mis 750,000 oraciones

Entonces, tengo que recorrer 750,000 oraciones y realizar alrededor de 20,000 reemplazos,pero SOLO si mis palabras son en realidad "palabras" y no son parte de una cadena de caracteres más grande.

Estoy haciendo esto porprecompilación mis palabras para que estén flanqueadas por el\b metacarácter

compiled_words = [re.compile(r'\b' + word + r'\b') for word in my20000words]

Luego recorro mis "oraciones"

import re

for sentence in sentences:
  for word in compiled_words:
    sentence = re.sub(word, "", sentence)
  # put sentence into a growing list

Este bucle anidado está procesando aproximadamente50 oraciones por segundo, lo cual es bueno, pero todavía toma varias horas procesar todas mis oraciones.

¿Hay alguna manera de usar elstr.replace método (que creo que es más rápido), pero aún requiere que los reemplazos solo sucedan enlímites de palabras?

Alternativamente, ¿hay alguna manera de acelerar elre.sub ¿método? Ya he mejorado la velocidad marginalmente saltandore.sub si la longitud de mi palabra es> que la longitud de mi oración, pero no es una gran mejora.

Gracias por cualquier sugerencia

Respuestas a la pregunta(9)

Su respuesta a la pregunta