Ошибка TfidfTransformer.fit_transform (dataframe) - PullRequest
0 голосов
/ 12 октября 2019

Я пытаюсь построить преобразователь TF / IDF (отображает наборы слов в векторы счетчиков) на основе серии Pandas, в следующем коде:

tf_idf_transformer = TfidfTransformer()
return tf_idf_transformer.fit_transform( excerpts )

Сбой при следующем сообщении:

ValueError: could not convert string to float: "I'm trying to work out, in general terms..."

Теперь «отрывки» - это серии Pandas, состоящие из набора текстовых строк, извлеченных из сообщений StackOverflow, но когда я смотрю на выдержки из dtype, там написано object. Итак, я полагаю, что проблема может заключаться в том, что что-то выводит тип этой серии как float. Итак, я попробовал несколько способов сделать так, чтобы в Series была dtype str:

  1. . Я попытался принудительно заставить типы столбцов для информационного кадра, который включает «выдержки», равными str, но когда я смотрю наdtype результирующей серии, он все еще object
  2. Я попытался привести весь фрейм данных, который включает «выдержки» в dtypes str, используя Pandas.DataFrame.astype (), но «выдержки» упрямо имеютdtype object.

Это могут быть красные сельди;настоящая проблема с fit_transform. Может кто-нибудь предложить какой-нибудь способ, посредством которого я могу видеть, какие записи в «выдержках» вызывают проблемы, или, наоборот, просто игнорировать их (исключая их вклад в TF / IDF).

1 Ответ

0 голосов
/ 12 октября 2019

Я вижу проблему. Я думал , что tf_idf_transformer.fit_transform принимает в качестве исходного аргумента текстовые строки, похожие на массивы. Вместо этого теперь я понимаю, что для этого требуется (n, 2) -частица текстовых строк / количества токенов. Правильное использование больше похоже на:

count_vect = CountVectorizer()
excerpts_token_counts = count_vect.fit_transform( excerpts)
tf_idf_transformer = TfidfTransformer()
return tf_idf_transformer.fit_transform( excerpts_token_counts )

Извините за путаницу (я должен был взглянуть на "Пример конвейера для извлечения и оценки текстовых функций" в документации TfidfTransformer для sklearn).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...