Я ищу, сколько раз все слова в сумке слов находятся в статье. Меня не интересует частота каждого слова, но общее количество раз все они найдены в статье. Мне нужно проанализировать сотни статей, поскольку я извлекаю их из Интернета. Мой алгоритм занимает много времени, так как каждая статья составляет около 800 слов.Самый быстрый способ подсчета списка слов в статье с использованием python
Вот что я (где количество этого количество раз слова были найдены в одной статье, статьи содержит строку со всеми словами формирования содержания статьи, и я использую NLTK к разметить)
bag_of_words = tokenize(bag_of_words)
tokenized_article = tokenize(article)
occurrences = [word for word in tokenized_article
if word in bag_of_words]
amount = len(occurrences)
Где tokenized_article выглядит следующим образом:.
[u'sarajevo', u'bosnia', u'herzegovi', u'war', ...]
и так же bag_of_words.
Мне было интересно, есть ли более эффективный/быстрый способ сделать это, например, с помощью функций NLTK или лямбда.
Я не уверен, как NTLK может помочь вам здесь - вы делаете сравнения строк, и это все. Теперь есть несколько способов сделать это немного более эффективно: сделайте 'bag_of_words'' set', так как это имеет проверку членства в постоянном времени (вместо линейного времени в размере списка). Теперь вы можете подсчитать вхождения N слов в любом наборе в O (N), который вы не можете победить (насколько я могу судить). –