Как видите, ошибка AttributeError: 'int' object has no attribute 'lower'
означает, что целое число не может быть в нижнем регистре.Где-то в вашем коде, он пытается в нижнем регистре целочисленный объект, что невозможно.
Почему это происходит?
CountVectorizer
конструктор имеетпараметр lowercase
, который по умолчанию равен True.Когда вы звоните .fit_transform()
, он пытается ввести строчные буквы, которые содержат целое число.Более конкретно, во ваших входных данных у вас есть элемент, который является целочисленным объектом.Например, ваш список содержит данные, подобные:
corpus = ['sentence1', 'sentence 2', 12930, 'sentence 100']
Когда вы передаете приведенный выше список в CountVectorizer
, он выдает такое исключение.
Как это исправить?
Вот несколько возможных решений, позволяющих избежать этой проблемы:
1) Преобразовать все строки в вашем корпусе в строковый объект.
corpus = ['sentence1', 'sentence 2', 12930, 'sentence 100']
corpus = [str (item) for item in corpus]
2) Удалить целые числа в вашем корпусе:
corpus = ['sentence1', 'sentence 2', 12930, 'sentence 100']
corpus = [item for item in corpus if not isinstance(item, int)]