объект ‘int’ не имеет атрибута «ниже» при выполнении tokenizer.fit_on_text(d [‘имя столбца’])

#python #pandas #nlp #tokenize

Вопрос:

 tokenizer=Tokenizer(num_words=1000, split=' ')
tokenizer.fit_on_texts(d['column'].values)

x=tokenizer.texts_to_sequences(d['column'].values)
 

В столбце POS_words у меня есть все предложения, имеющие навыки (C#, Office365,…), есть некоторые nos. 91.

Я хочу преобразовать его в массив, но он выдает ошибку

 ---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-7-a59a11ef92f5> in <module>()
      1 tokenizer=Tokenizer(num_words=1000, split=' ')
----> 2 tokenizer.fit_on_texts(d['POS_words'].values)
      3 
      4 x=tokenizer.texts_to_sequences(d['POS_words'].values)
      5 #xtest=tokenizer.texts_to_sequences(test['POS_words'].values)

1 frames
/usr/local/lib/python3.7/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: 'int' object has no attribute 'lower'
 

Пожалуйста, скажите мне, как это исправить

Комментарии:

1. В них есть int, d['POS_words'] они должны быть строками. Нельзя lower() и int: [s.lower() for s in ['test', 5]]

2. У вас есть пример ввода и вывода? Это облегчит понимание того, что вы хотите сделать.

3. @BernardoTrindade Я тренирую свои данные с помощью LSTM, поэтому мне нужны nos. в предложениях. Если я хочу определить навыки, мне нужно иметь Office365 и ( 91 не навык)

4. @It_is_Chris Я не понимаю, что ты пытаешься сказать. Я не могу удалить этот int вчера он работал нормально, я мог тренироваться, но внезапно сегодня, когда я попытался выполнить эту команду, я получаю ошибку

Ответ №1:

Вопрос решен

 d['column']=d['column'].astype(str)