#python
#python
Вопрос:
получение ошибки: AttributeError: объект ‘float’ не имеет атрибута ‘split’
не знаю почему.
я использовал код:
import os
import sys
import gensim
import pandas as pd
from gensim.models.doc2vec import LabeledSentence
csv = '~/clean_data.csv'
data = pd.read_csv(csv,index_col=0)
data.head()
from sklearn.model_selection import train_test_split
SEED = 2000
x_train, x_validation, y_train, y_validation = train_test_split(data.SentimentText, data.Sentiment, test_size=.2, random_state=SEED)
def labelize_text(text,label):
result = []
prefix = label
for i, t in zip(text.index, text):
result.append(LabeledSentence(t.split(), [prefix '_%s' % i]))
return result
all_x = pd.concat([x_train,x_validation])
all_x_w2v = labelize_text(all_x, 'ALL')
Ответ №1:
Потому что вы не можете разделить тип с плавающей запятой!
Из вашего кода, t.split()
похоже, возникает ошибка, когда type(t) == float
result.append(LabeledSentence(t.split(), [prefix '_%s' % i]))
Пример:
In [1]: float_var = 12.22
In [2]: float_var.split()
Результаты
Ошибка атрибута: объект ‘float’ не имеет атрибута ‘split’
Если это работает для вас, вы можете преобразовать в str
перед применением разделения
result.append(LabeledSentence(str(t).split(), [prefix '_%s' % i]))
или вы можете проверить type
t
значение переменной перед применением split()
, Пример:
if isinstance(t, str):
# then apply split
else:
# perform based on your need