python - 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()
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')
解决方案
因为你不能拆分浮动类型!
从您的代码中,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
变量t
,split()
例如:
if isinstance(t, str):
# then apply split
else:
# perform based on your need
推荐阅读
- python - 将包含字典的嵌套元组展平为数据框的最快方法
- ansible - Ansible - 创建复杂变量
- jquery - 动态添加的复选框未触发 onCheck 或 onUncheck 事件
- r - 如何使用 R 上传/下载 Googledrive 包?
- vba - 使用 VBA 在 MS Access 查询文本数据类型字段中按金额过滤
- laravel - 删除链接而不是按钮 laravel
- java - Spring 循环依赖,即使使用通过 setter 注入
- graphql - GraphQL 数据存储在哪里?
- python - 为什么链接列表上的索引匹配失败?
- ios - 如何将对象传递给应该快速确认两个协议的函数?