Это общая проблема в машинном обучении, и многие алгоритмы предполагают, что вы изменили свои категориальные столбцы на числовые.
Во-первых, вы можете использовать LabelEncoder , который будет
Кодировать метки со значением от 0 до n_classes-1.
Этот метод преобразует ваши строки в целые числа.
Тогда вам нужно подумать, уместен ли этот метод. Часто это не так, потому что между вашими разными словами будет иерархия, и алгоритмы могут подумать, что слово 5 больше слова 4 (а это не так).
Вы можете использовать OneHotEncoder (после использования LabelEncoder, поскольку OneHotEncoder кодирует числовые столбцы).
Это создает двоичный столбец для каждой категории и возвращает разреженную матрицу или плотный массив.
Имейте в виду, что OneHotEncoder умножит количество функций, которые могут быть проблемой при обучении ваших моделей.
Вы также можете использовать get_dummies от панд вместо LabelEncoder и OneHotEncoder. См. статью , в которой сравниваются два подхода.
Многие алгоритмы НЛП также используют модель " мешок слов ". Загляните в библиотеку NLTK , которая может помочь вам решить вашу проблему.