在较大的数据集上运行代码时出现此错误。它适用于较小的数据集。
在1.4m个问题数据集上运行代码。并使用split函数会出错。
def build_vocab(sentences, verbose=True):
vocab = {}
for sentence in tqdm(sentences):
for word in sentence:
try:
vocab[word] += 1
except KeyError:
vocab[word] = 1
return vocab
sentences = train_df["question_text"].progress_apply(lambda x: x.split()).values
vocab = build_vocab(sentences)
〜\ Documents \ anaconda3 \ lib \ site-packages \ pandas \ core \ series.py在 apply(self,func,convert_dtype,args,** kwds)3589
pandas._libs.lib.map_infer()中的
否则:3590值= self.astype(object).values -> 3591映射= lib.map_infer(值,f,convert = convert_dtype)3592 3593如果len(被映射)和 isinstance(映射[0],系列):pandas / _libs / lib.pyx
〜\ Documents \ anaconda3 \ lib \ site-packages \ tqdm_tqdm.py在 包装器(* args,** kwargs) 671#采取快速或慢速代码路径;所以在t.total == t.n时停止 672 t.update(n = 1,如果不是t.total或t.n
673 return func(* args,** kwargs) 674 675#应用提供的功能(以** kwargs为单位) 在(x)中 11 12返回vocab ---> 13个句子= train_df [“ question_text”]。progress_apply(lambda x:x.split())。values 14 vocab = build_vocab(句子)
AttributeError:“ float”对象没有属性“ split”
30%|██▉| 310851/1048575 [00:20 <00:08,86263.52it / s] 30%|██▉
| 310851/1048575 [00:20 <00:04,163203.19it / s]
答案 0 :(得分:0)
将x转换为字符串,然后使用split。您的数据集可能在某处具有浮点值,这就是例外的原因。