Sklearn: ошибка типа извлечения признаков

Как новичок в программировании, у меня есть некоторые проблемы с категоризацией текста с помощью эксперимента по машинному обучению с помощью Scikit Learn. Я использую 10-кратную перекрестную проверку, поэтому нет разделения на данные поезда и теста.

Моя проблема начинается в модуле извлечения функций. Это код с ошибкой:

vec = DictVectorizer() 
X = vec.fit_transform(instances).toarray()

Последняя строка выдает следующую ошибку:

TypeError: аргумент float() должен быть строкой или числом, а не 'dict'

Экземпляры — это список словарей векторов признаков со словарем для каждого документа. Пример начала списка экземпляров (вы видите часть словаря для первого документа).

instances Некоторые объекты представляют собой словарь, вложенный в словарь векторов объектов. Я не знаю, как сделать его не вложенным, но, может быть, это проблема?


person Bambi    schedule 12.07.2017    source источник
comment
Да, вложенные словари - это проблема. Вы должны найти способ либо закодировать их в определенные значения, либо развернуть их и сделать их на том же уровне, что и другие ключи-значения.   -  person mkaran    schedule 12.07.2017


Ответы (1)


Да, проблема в вашем векторе признаков вложенного словаря. Разделите их и сделайте их независимыми функциями.

person ashukid    schedule 12.07.2017