首页 > 解决方案 > AttributeError:“float”对象在进行情绪分析时没有属性“split”

问题描述

得到错误: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()

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')

标签: python

解决方案


因为你不能拆分浮动类型!

从您的代码中,t.split()似乎会导致错误type(t) == float

result.append(LabeledSentence(t.split(), [prefix + '_%s' % i]))

例子:

In [1]: float_var = 12.22

In [2]: float_var.split()

结果

AttributeError: 'float' 对象没有属性 'split'


str如果它适合您,那么您可以在应用拆分之前转换为

result.append(LabeledSentence(str(t).split(), [prefix + '_%s' % i]))

或者您可以在应用 之前检查type变量tsplit()例如:

if isinstance(t, str):
   # then apply split
else:
   # perform based on your need 

推荐阅读