A список частот слов - это то, что вы хотите. Вы также можете создать свой собственный или настроить его для использования в определенном домене, и это хороший способ познакомиться с некоторыми хорошими библиотеками. Начните с некоторого текста, такого как обсуждаемый в этот вопрос , а затем попробуйте некоторые варианты этого сценария "обратно за конвертом":
from nltk.stem.porter import PorterStemmer
import os
import string
from collections import defaultdict
ps = PorterStemmer()
word_count = defaultdict(int)
source_directory = '/some/dir/full/of/text'
for root, dirs, files in os.walk(source_directory):
for item in files:
current_text = os.path.join(root, item)
words = open(current_text, 'r').read().split()
for word in words:
entry = ps.stem_word(word.strip(string.punctuation).lower())
word_count[entry] += 1
results = [[word_count[i], i] for i in word_count]
print sorted(results)
Это дает следующее для пары загруженных книг, наиболее распространенных слов:
[2955, 'that'], [4201, 'in'], [4658, 'to'], [4689, 'a'], [6441, 'and'], [6705, 'of'], [14508, 'the']]
Посмотрите, что происходит, когда вы отфильтровываете наиболее распространенные числа x y или z из своих запросов или полностью исключаете их из индекса текстового поиска. Также вы можете получить некоторые интересные результаты, если вы включите данные реального мира - например, «сообщество» «вики», скорее всего, не является общим словом в общем списке, но для SO это, очевидно, не так, и вы можете исключить их.