Подготовка вектора вложения для классификации многопозиционного текста - ошибка с матрицей вложения - PullRequest
0 голосов
/ 28 мая 2020

Я готовлю код для классификации некоторого текста (многозначного) с использованием 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, так как они напрямую влияют на код, однако я не думаю, что смотрю справа вопрос. Я не ожидаю, что кто-то решит проблему, но, возможно, подскажет, где мне нужно искать, или объяснит, что происходит.

Спасибо!

...