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

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

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

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

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

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

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()
16
задан sazr 31 March 2012 в 06:37
поделиться