Техника удаления общих слов (и их множественного числа) из строки

Я пытаюсь найти теги (ключевые слова) для рецепта, анализируя длинную строку текста. Текст содержит рецепт ингредиентов, указания и краткую аннотацию.

Как вы думаете, что будет наиболее эффективным способом удаления общих слов из списка тегов?

Под общими словами я подразумеваю такие слова, как: «там», «там», «их» и т. Д.

У меня есть 2 методологии, которые я могу использовать, которые, по вашему мнению, более эффективны с точки зрения скорости, и знаете ли вы более эффективный способ, которым я мог бы сделать это?

Методология 1:
- Определить, сколько раз каждое слово встречается (с использованием библиотеки Коллекции)
- Иметь список общих слов и удалить все «Общие слова» из объекта «Коллекция», пытаясь удалить этот ключ из объекта «Коллекция», если он существует.
- Поэтому скорость будет зависеть от длины переменной delims

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()

Методология 2:
- Для общих слов, которые могут быть во множественном числе, посмотрите на каждое слово в строке рецепта и проверьте, содержит ли оно частично не-множественную версию общего слова. Например; Для строки «Есть тест» проверьте каждое слово, чтобы увидеть, содержит ли оно «там», и удалите его, если оно есть.

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()

Ответы на вопрос(3)

Ваш ответ на вопрос