機器學習使用tokenizer.fit_on_texts報‘float‘ object has no attribute ‘lower‘錯解決辦法

機器學習使用tokenizer.fit_on_texts報'float' object has no attribute 'lower'錯解決辦法

最近在學習機器。在學習過程中使用kaggle中的Womens Clothing E-Commerce Reviews.csv數據集,用Keras分詞器Tokenizer,使用tokenizer.fit_on_texts生成詞典報'float' object has no attribute 'lower' 錯。

from keras.preprocessing.text import Tokenizer 
X_train_lst = df_train["Review Text"] 
y_train = df_train["Rating"].values 
dictionary_size = 20000 
tokenizer = Tokenizer(num_words=dictionary_size) 
tokenizer.fit_on_texts( X_train_lst) 
X_train_tokenized_lst = tokenizer.texts_to_sequences(X_train_lst)

在這裏插入圖片描述

分析原因:是數據集中"Review Text"中存在字段爲空的情況,pandas導入的時候自動轉成NaN了,所以報沒有lower的屬性的錯誤。

解決方法:增加fillna函數轉換將NaN轉成空字符串。

X_train_lst = df_train["Review Text"].fillna("")
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章