机器学习使用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("")