tensorflow.keras.Tokenizer - AttributeError:“float”对象没有属性“lower”,没有空值,也没有带有浮点数的列

Nav*_*ala 1 python text tokenize keras tensorflow

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

以下是有关我的数据的一些信息:
关于空值(据我所知,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'])
Run Code Online (Sandbox Code Playgroud)

这是错误:

---------------------------------------------------------------------------
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'
Run Code Online (Sandbox Code Playgroud)

编辑:
这是我在调试和尝试解决此问题的过程中所做的事情:

我什至通过执行以下操作来确保已删除所有数字:

import re
text = re.sub(r'[+-]?([0-9]*[.])?[0-9]+', ' ', text)
Run Code Online (Sandbox Code Playgroud)

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

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

title_tokeniser = Tokenizer(num_words=10, lower=None)
Run Code Online (Sandbox Code Playgroud)

但是,错误是:

AttributeError: 'float' object has no attribute 'translate'
Run Code Online (Sandbox Code Playgroud)

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

Yef*_*fet 5

尝试这个

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)
Run Code Online (Sandbox Code Playgroud)