Согласно документам для TfidfVectorizer, функция fit
ожидает "итерируемое, которое возвращает либо str, unicode, либо файловые объекты" в качестве первого аргумента.Вы предоставляете ему список списков, который не удовлетворяет этому требованию.
Вы превратили каждую строку в список строк, используя метод split
, поэтому вам нужно либо присоединиться к строке,или вообще не разбивайте его.Конечно, это зависит от вашего формата ввода.
Это должно работать, если вы измените строку
dataset.append([str(n) for n in line.strip().split(',')])
В зависимости от формата ввода, вам может потребоваться заменить его на что-то вроде
dataset.append(" ".join([str(n) for n in line.strip().split(',')]))
или просто
dataset.append(line.strip().replace(",", " "))
(я могу только догадываться об использовании «,» во входном тексте).