пожалуйста, помогите получить эту ошибку при выполнении

#python

#python

Вопрос:

 next_words = []
for _ in range(next_words):
    token_list = tokenizer.texts_to_sequences([seed_text])[0]
    token_list = pad_sequences([token_list], maxlen=max_sequence_length - 1, padding='pre')
    predicted = np.argmax(model.predict(token_list), axis=-1)
    output_word = ""
    for word, index in tokenizer.word_index.items():
        if index == predicted:
            output_word = word
            break
    seed_text  = " "   output_word
  
 TypeError: 'list' object cannot be interpreted as an integer
  

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

1. Вероятно, он должен читать for _ in next_words: .

2. И тогда это не будет иметь никакого смысла, потому что цикл над пустым списком имеет нулевые итерации, и ни один код не будет выполнен.

Ответ №1:

Вам нужно многократно повторять длину списка. Вы можете использовать len для этого функцию.

 for _ in range(len(next_words)):
   ....
   ....
  

Или вы можете перебирать список через

 for _ in next_words:
   ....
   ....
  

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

1. поскольку next_words пусто, цикл никогда не будет выполняться

2. @balderman: хотя это правда, эта проблема уже содержится в исходном вопросе. Циклы без использования переменной цикла, конечно, подозрительны в любом случае.

Ответ №2:

Строка

 for _ in range(next_words):
  

это ваша проблема.
вы передаете пустой список в range.
range ожидает получения int