lemmatizer = nltk.WordNetLemmatizer()
…
from nltk.stem import WordNetLemmatizer
…
lemmatizer = WordNetLemmatizer
lemmatizer = WordNetLemmatizer
во-первых тут же удаляет этот экзмепляр и во-вторых помещает в переменную lemmatizer ссылку на сам класс WordNetLemmatizer. lemmatizer = WordNetLemmatizer()
добавить в конце круглые скобки, это, по-идее, поместит в переменную lemmatizer ссылку на экземпляр класса WordNetLemmatizer. Вероятно, именно это было целью всего этого безобразия. words.append(word_list)
делает не совсем очевидную вещь:words = []
for i in range(3):
words_list = ['qwa', 'wow', 'meow']
words.append(words_list)
print(words)
>>> [['qwa', 'wow', 'meow'], ['qwa', 'wow', 'meow'], ['qwa', 'wow', 'meow']]
words = []
for i in range(3):
words_list = ['qwa', 'wow', 'meow']
words.extend(words_list)
print(words)
>>>['qwa', 'wow', 'meow', 'qwa', 'wow', 'meow', 'qwa', 'wow', 'meow']
for word in words
попадают не список слов, а, вероятно, список списков слов.
Вот моя попытка "в лоб" решить то, как я понял собственно вопрос.
Получить же вторую версию, из комментариев, у меня простым логическим путем не получается.
Также непонятно, всегда ли будет достаточное количество элементов во входных данных, всегда ли будут идти один за другим пары ключей для создания вложенного словаря, и т.п.
И вдогонку: я бы рекомендовал сообщить контекст, в котором возникла эта задача: возможно, сам подход можно упростить и улучшить, тогда не придется изобретать этот костыльный велосипед.