Существует простой способ справиться с этим, немного изменив код (отредактированный в соответствии с комментариями Джона):
stopWords = set(['a', 'an', 'the', ...])
fullWords = re.findall(r'\w+', allText)
d = defaultdict(int)
for word in fullWords:
if word not in stopWords:
d[word] += 1
finalFreq = sorted(d.iteritems(), key=lambda t: t[1], reverse=True)
self.response.out.write(finalFreq)
Этот подход создает отсортированный список в два этапа: сначала он отфильтровывает любые слова в вашем желаемом списке «стоп-слов» (который был преобразован в set
для эффективности), затем сортирует остальные записи.