Звучит так, будто в ваших текстах есть цифры, и они заставляют панд стать слишком умными.Добавьте параметр dtype
в pandas.read_csv()
, чтобы все в столбце text
было импортировано в виде строки:
doc = pd.read_csv(file_path, encoding = "ISO-8859-1", dtype={'text':str})
Как только ваш код заработает, вы можете заметить, что он работает медленно:вещи в списке неэффективны.Поместите свои стоп-слова в такой набор, и вы будете поражены ускорением.(Оператор in
работает как с наборами, так и со списками, но имеет огромную разницу в скорости.)
stop = set(stopwords.words('english'))
Наконец, измените x.split()
на nltk.word_tokenize(x)
.Если ваши данные содержат реальный текст, это отделит пунктуацию от слов и позволит вам правильно сопоставить стоп-слова.