当我运行此脚本时->
tokenizer.fit_on_texts(df['text'].values)
sequences = tokenizer.texts_to_sequences(df['text'].values)
word_index = tokenizer.word_index
print('Found %s unique tokens.' % len(word_index))
我收到此错误
AttributeError Traceback (most recent call
last)
<ipython-input-4-7c08b89b116a> in <module>()
----> 1 tokenizer.fit_on_texts(df['text'].values)
2 sequences = tokenizer.texts_to_sequences(df['text'].values)
3 word_index = tokenizer.word_index
4 print('Found %s unique tokens.' % len(word_index))
/opt/conda/lib/python3.6/site-packages/keras_preprocessing/text.py in
fit_on_texts(self, texts)
220 self.filters,
221 self.lower,
--> 222 self.split)
223 for w in seq:
224 if w in self.word_counts:
/opt/conda/lib/python3.6/site-packages/keras_preprocessing/text.py in
text_to_word_sequence(text, filters, lower, split)
41 """
42 if lower:
---> 43 text = text.lower()
44
45 if sys.version_info < (3,):
AttributeError: 'float' object has no attribute 'lower'
当我减小CSV文件的大小时,我的CSV文件大小为6970963,是否存在keras Tokenizer的大小限制,或者我做错了事
答案 0 :(得分:0)
我认为文件大小不是问题,请尝试使用try块并查看正在传递的数据。用这样的东西代替行
#instead of this
tokenizer.fit_on_texts(df['text'].values)
#use this to look at the data when it is causing that error.
try:
tokenizer.fit_on_texts(df['text'].values)
except Exception as e:
print("exceiption is", e)
print("data passedin ", df['text'].values)
然后,您可以相应地修复所得到的错误。
答案 1 :(得分:0)
检查适合标记器的文本的数据类型。它认为它是浮点数而不是字符串。您需要先将其转换为字符串,然后再为其添加标记符。 尝试这样的事情: train_x = [str_x中的x的str(x [1])]
答案 2 :(得分:0)
虽然它是一个旧线程,但仍然可以回答。
您的数据可能具有nan,它被解释为浮点数而不是nan。要么将类型强制为str(word)要么使用data.fillna('empty')删除nan