Técnica para remover palavras comuns (e suas versões plurais) de uma string

Estou tentando encontrar tags (palavras-chave) para uma receita analisando uma longa sequência de texto. O texto contém os ingredientes da receita, instruções e uma breve sinops

O que você acha que seria a maneira mais eficiente de remover palavras comuns da lista de tags?

Por palavras comuns, quero dizer palavras como: 'the', 'at', 'there', 'their' etc.

Tenho duas metodologias que posso usar, o que você acha mais eficiente em termos de velocidade e conhece uma maneira mais eficiente de fazer isso?

Methodology 1:
- Determine o número de vezes que cada palavra ocorre (usando a biblioteca Coleções)
- Tenha uma lista de palavras comuns e remova todas as 'Palavras comuns' do objeto Collection, tentando excluir essa chave do objeto Collection, se existi
- Portanto, a velocidade será determinada pelo comprimento da variável delimita

import collections from Counter
delim     = ['there','there\'s','theres','they','they\'re'] 
# the above will end up being a really long list!
word_freq = Counter(recipe_str.lower().split())
for delim in set(delims):
    del word_freq[delim]
return freq.most_common()

Methodology 2:
- Para palavras comuns que podem ser plurais, observe cada palavra na sequência de receitas e verifique se ela contém parcialmente a versão não plural de uma palavra comum. Por exemplo; Para a sequência "Existe um teste", verifique cada palavra para ver se contém "lá" e exclua-a, se houve

delim         = ['this','at','them'] # words that cant be plural
partial_delim = ['there','they',] # words that could occur in many forms
word_freq     = Counter(recipe_str.lower().split())
for delim in set(delims):
    del word_freq[delim]
# really slow 
for delim in set(partial_delims):
    for word in word_freq:
        if word.find(delim) != -1:
           del word_freq[delim]
return freq.most_common()

questionAnswers(6)

yourAnswerToTheQuestion