如何计算单词在手套中嵌入的平均值

问题描述 投票:0回答:1

我已经下载了经过手套训练的矩阵,并在Keras层中使用了它。但是,我需要为另一项任务嵌入句子。

我想计算该句子中所有单词嵌入的均值。

由于大约有25000个句子,什么是最有效的方法?

而且,我也不想在Keras中使用Lambda层来获取平均值。

python word-embedding glove
1个回答
0
投票
中所有单词嵌入的均值

最佳方法是使用GlobalAveragePooling1D层。它从嵌入层接收形状为(n_sentence,n_token,emb_dim)形状的标记在句子内部的嵌入,并计算句子中每个标记的平均值。结果具有形状(n_sentence,emb_dim)

这里是代码示例

embedding_dim = 128
vocab_size = 100
sentence_len = 20

embedding_matrix = np.random.uniform(-1,1, (vocab_size,embedding_dim))
test_sentences = np.random.randint(0,vocab_size, (3,sentence_len))

inp = Input((sentence_len))
embedder = Embedding(vocab_size, embedding_dim,
                     trainable=False, weights=[embedding_matrix])(inp)
avg = GlobalAveragePooling1D()(embedder)

model = Model(inp, avg)
model.summary()

model(test_sentences) # the mean of all the word embeddings inside sentences 
© www.soinside.com 2019 - 2024. All rights reserved.