Я пытаюсь оценить влияние части речевой информации на вложения Word2Vec, но не получаю ожидаемых результатов.
Я ожидал, что POS включит вложения word2vec для более эффективной работы в задаче машинного перевода, но на самом деле это хуже.
Я создаю два набора встраивания одного и того же корпуса с использованием Gensim, один из них - обычный Word2Vec, другой - я изменяю токены на "[WORD] __ [POS]".
Я измеряю различия в производительности, используя вложения в задачу машинного перевода Seq2Seq. Я оцениваю два подхода с BLEU
Вот как я тренирую вложения Word2vec + POS с SpaCy:
sentences = []
for sent in doc.sents:
tokens = []
for t in sent:
tokens += ["{}__{}".format(t.text, t.pos_)]
sentences += tokens
pos_train += [sentences]
Это моя эталонная модель машинного перевода с Keras + Tensorflow:
encoder_inputs = Input(shape=(None, num_encoder_tokens))
encoder = LSTM(LATENT_DIM, return_state=True)
_, state_h, state_c = encoder(encoder_inputs)
encoder_states = [state_h, state_c]
decoder_inputs = Input(shape=(None, num_decoder_tokens))
decoder_lstm = LSTM(LATENT_DIM, return_sequences=True, return_state=True)
decoder_outputs, _, _ = decoder_lstm(decoder_inputs, initial_state=encoder_states)
decoder_dense = Dense(num_decoder_tokens, activation='softmax')
decoder_outputs = decoder_dense(decoder_outputs)
model = Model([encoder_inputs, decoder_inputs], decoder_outputs)
При использовании BLEU подход Word2Vec + POS неизменно получает те же результаты, что и Word2Vec, или на 0,01-0,02 балла ниже нормальных вложений Word2Vec.
Кто-нибудь знает, почему это может происходить? Есть ли пробел в моих рассуждениях или ожиданиях?