Я пытаюсь оценить влияние части речевой информации с помощью вложений 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.
Кто-нибудь знает, почему это может происходить? Есть ли пробелы в моих рассуждениях или ожиданиях?