Я готовлю код для классификации некоторого текста (многозначного) с использованием LSTM и GLOVE. Часть процесса подготовки - это встраивание. Я работаю со ссылкой из kaggle , но у меня возникла ошибка с вектором внедрения, и я не знаю, в чем проблема.
embed_size = 50 # how big is each word vector
max_features = 20000 # how many unique words to use (i.e num rows in embedding vector)
maxlen = 200 # max number of words in a comment to use
tokenizer = Tokenizer(num_words=max_features)
tokenizer.fit_on_texts(list(list_sentences_train))
list_tokenized_train = tokenizer.texts_to_sequences(list_sentences_train)
list_tokenized_test = tokenizer.texts_to_sequences(list_sentences_test)
X_t = pad_sequences(list_tokenized_train, maxlen=maxlen)
X_te = pad_sequences(list_tokenized_test, maxlen=maxlen)
def get_coefs(word,*arr): return word, np.asarray(arr, dtype='float32')
embeddings_index = dict(get_coefs(*o.strip().split()) for o in open(EMBEDDING_FILE))
all_embs = np.stack(embeddings_index.values())
emb_mean,emb_std = all_embs.mean(), all_embs.std()
emb_mean,emb_std
word_index = tokenizer.word_index
nb_words = min(max_features, len(word_index))
embedding_matrix = np.random.normal(emb_mean, emb_std, (nb_words, embed_size))
for word, i in word_index.items():
if i >= max_features: continue
embedding_vector = embeddings_index.get(word)
if embedding_vector is not None: embedding_matrix[i] = embedding_vector
Что приводит к следующая ошибка:
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-14-9dffbd6ff093> in <module>
26 embedding_vector = embeddings_index.get(word)
27
---> 28 if embedding_vector is not None: embedding_matrix[i] = embedding_vector
IndexError: index 3595 is out of bounds for axis 0 with size 3595
Я попытался изменить параметры embed_size, max_features и maxlen, так как они напрямую влияют на код, однако я не думаю, что смотрю справа вопрос. Я не ожидаю, что кто-то решит проблему, но, возможно, подскажет, где мне нужно искать, или объяснит, что происходит.
Спасибо!