docs = [[] for i in range(1)]
Серьёзно?
Из-за ваших "генераторов списков" страдает ваша же производительность и читабельность. Да, они быстрее, но что, если ваша функция preprocessing, вызываемая в
некоторых случаях дважды, только усугубляет скорость выполнения?
document = []
for line in open(mypath + '\\' + files[0]).readlines():
for word in line.split():
w = preprocessing(word, stop_words_list)
if w:
document.append(w)
Не используйте такие громоздкие конструкции, вроде if w != ''. Во-первых, в булевом виде ноль, пустая строка, None, пустой список, пустое множество и словарь (и много ещё чего, что логично) дают False. Обычно так конкретно сравнивают, если переменная может быть другого типа и в булевом виде давать False (например, None) и это нужно учесть.