#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