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.nan
s 在 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)
我在 Whosebug 上阅读的所有类似错误的答案都建议修复空值或修复数据类型。我的数据框中既没有空值也没有浮点数。但是,错误仍然存在。
以下是关于我的数据的一些信息:
关于空值(据我所知 numpy.nan
s 在 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)