我正在尝试使用 Word2Vec 嵌入来衡量词性信息的影响,但没有获得预期的结果。
我希望 POS 包含 word2vec 嵌入在机器翻译任务中表现更好,但实际上表现更差。
我正在使用 Gensim 从同一个语料库中创建两组嵌入,一组是普通的 Word2Vec,另一组是我将标记更改为“[WORD]__[POS]”。
我通过在 Seq2Seq 机器翻译任务中使用嵌入来衡量性能差异。我正在使用 BLEU 评估这两种方法
这就是我使用 SpaCy 训练 word2vec + POS 嵌入的方式:
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 相同,或者比正常的 Word2Vec 嵌入低 0.01-0.02 分。
有谁知道为什么会发生这种情况?我的推理或期望是否存在差距?