Керас токенизация (подходит для текста) - PullRequest
0 голосов
/ 14 февраля 2019

Когда я запускаю этот скрипт ->

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 составляет 6970963, когда я уменьшаю его размер,есть ли ограничение по размеру keras Tokenizer или я делаю что-то не так

Ответы [ 2 ]

0 голосов
/ 06 июня 2019

Проверьте тип данных текста, на котором вы устанавливаете токенизатор.Он видит это как поплавок вместо строки.Вам нужно преобразовать в строку перед установкой токенизатора.Попробуйте что-то вроде этого: train_x = [str (x [1]) для x в train_x]

0 голосов
/ 14 февраля 2019

Я думаю, размер файла не является проблемой, попробуйте использовать блок 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)

Тогда вы можете соответственно исправить полученную ошибку.

...