#python #tensorflow #keras
#python #тензорный поток #keras
Вопрос:
Я следую этому руководству по сети, генерирующей текст rnn, используя tensorflow и numpy. Я следовал руководству почти слово в слово, но 23 и 26 он обнаружил ошибку из-за «ошибки типа: может присоединиться только к interable». Я не уверен, что это может означать, поскольку я в значительной степени копировал руководство. У кого-нибудь есть идея относительно того, в чем может быть проблема? код:
import numpy
import sys
from nltk.tokenize import RegexpTokenizer
from nltk.corpus import stopwords
from keras.models import Sequential
from keras.layers import Dense, Dropout, LSTM
from keras.utils import np_utils
from keras.callbacks import ModelCheckpoint
file = open("C:/Users/alpha/Desktop/coding/pickles.txt").read()
def tokenizeWords(input):
# lowercase everything to standardize
input = input.lower()
# instantiate the tokenizer
tokenizer = RegexpTokenizer(r'w ')
tokens = tokenizer.tokenize(input)
# if the created token isn't in the stop words, make it part of "filtered"
filtered = filter(lambda token: token not in stopwords.words('english'), tokens)
return "".join(filter)
processed_inputs = tokenizeWords(file)
chars = sorted(list(set(processed_inputs)))
char_to_num = dict((c, i) for i, c in enumerate(chars))
input_len = len(processed_inputs)
vocab_len = len(chars)
print("Total number of characters", input_len)
print("Total vocab", vocab_len)
Ответ №1:
Ошибка говорит о том, что join()
метод требует итерации, такой как list
etc. но вы передаете filter()
метод, который неверен. Строка
return "".join(filter)
неверно. Вы хотите использовать отфильтрованный список, а не filter
метод
return "".join(filtered)
Комментарии:
1. конечно, мое падение — это опечатка, спасибо! Я не уловил этого в проверке различий
2. Рад, что смог помочь. Пожалуйста, отметьте ответ как правильный, чтобы кто-то другой мог извлечь выгоду из ответа
3. На самом деле, этот вопрос следует закрыть, поскольку он был вызван опечаткой, и маловероятно, что кто-либо еще выиграет от этого.