Итак, я пытаюсь написать программу для чтения в текстовом файле, затем удалить стоп-слова, затем найти наиболее распространенные слова и записать их в словарь, а затем отсортировать словарь.
Кажется, что я в состоянии найти самые обычные слова просто отлично, но когда я сортирую словарь, чтобы сначала отобразить большинство найденных слов, вместо списка возвращается NoneType, и я получаю TypeError. Почему это так?
import string
#Read in book and stopwords (lower case)
sense_and_sensibility_dirty = open("Sense_and_Sensibility.txt").read().rstrip("\n")
stop_words = open("stopwords.txt").read().split()
stop_words = [x.lower() for x in stop_words]
#Remove punctuation from the book and clean it up
translator = str.maketrans('', '', string.punctuation)
sns = sense_and_sensibility_dirty.translate(translator)
sns = sns.split()
#Convert words in book to lowercase
sns = [x.lower() for x in sns]
#Remove stop words from book
sns = [x for x in sns if x not in stop_words]
#Count up words in the book and write word and count to dictionary
word_count={}
for word in sns:
if word not in word_count:
word_count[word] = 1
else:
word_count[word] += 1
#Sort the dictionary to display most frequent
e = sorted(word_count.items(), key=lambda item: item[1])
e = e.reverse()
e[:4]
Например, e [: 4] должно вывести что-то вроде:
[('time', 237), ('dashwood', 224), ('sister', 213), ('miss', 209)]
но вместо этого я получаю:
"TypeError: 'NoneType' object is not subscriptable".