tensorflow.keras.Tokenizer - AttributeError: 'float' object has no attribute 'lower' with no null values and no column with floats

tensorflow.keras.Tokenizer - AttributeError: 'float' object has no attribute 'lower' with no null values and no column with floats

我在 Whosebug 上阅读的所有类似错误的答案都建议修复空值或修复数据类型。我的数据框中既没有空值也没有浮点数。但是,错误仍然存​​在。

以下是关于我的数据的一些信息:
关于空值(据我所知 numpy.nans 在 pandas 中被编码为浮点数):

关于数据类型:

当我这样做时:

from tensorflow.keras.preprocessing.text import Tokenizer
title_tokeniser = Tokenizer(num_words=10)
title_tokeniser.fit_on_texts(train_set.loc[:,'title'] + test_set.loc[:,'title'])

这是错误:

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-38-26b704f1c0a1> in <module>()
      1 title_tokeniser = Tokenizer(num_words=10)
----> 2 title_tokeniser.fit_on_texts(train_set.loc[:,'title'] + test_set.loc[:,'title'])
      3 
      4 # unique tokens found in titles are:
      5 title_token_index = title_tokeniser.word_index

1 frames
/usr/local/lib/python3.6/dist-packages/keras_preprocessing/text.py in fit_on_texts(self, texts)
    223                                             self.filters,
    224                                             self.lower,
--> 225                                             self.split)
    226             for w in seq:
    227                 if w in self.word_counts:

/usr/local/lib/python3.6/dist-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'

编辑:
以下是我在调试和尝试解决此问题的过程中所做的工作:

我什至通过以下操作确保删除了所有数字:

import re
text = re.sub(r'[+-]?([0-9]*[.])?[0-9]+', ' ', text)

在我的训练集和测试集的所有列的每一行上。

并且还检查关闭 lower 参数是否通过初始化 Tokenizer 实例来执行任何操作:

title_tokeniser = Tokenizer(num_words=10, lower=None)

但是,错误是:

AttributeError: 'float' object has no attribute 'translate'

我无法追踪到我的数据中是否存在任何浮点数或空值。我该如何解决这个问题?

试试这个

texts = pd.concat([train_set['title'] , test_set['title']],axis=0).astype("str")
   
from tensorflow.keras.preprocessing.text import Tokenize
title_tokeniser = Tokenizer(num_words=10)
title_tokeniser.fit_on_texts(texts)