【发布时间】:2021-01-07 12:32:16
【问题描述】:
我不知道这怎么可能,但我想计算一个句子中词嵌入的加权平均值,例如 tfidf 分数。
就是这样,但只有权重:
averaging a sentence’s word vectors in Keras- Pre-trained Word Embedding
import keras
from keras.layers import Embedding
from keras.models import Sequential
import numpy as np
# Set parameters
vocab_size=1000
max_length=10
# Generate random embedding matrix for sake of illustration
embedding_matrix = np.random.rand(vocab_size,300)
model = Sequential()
model.add(Embedding(vocab_size, 300, weights=[embedding_matrix],
input_length=max_length, trainable=False))
# Average the output of the Embedding layer over the word dimension
model.add(keras.layers.Lambda(lambda x: keras.backend.mean(x, axis=1)))
model.summary()
如何通过自定义层或 lambda 层获得属于特定单词的正确权重?您需要以某种方式访问嵌入层以获取索引,然后查找适当的权重。
或者有没有我看不到的简单方法?
【问题讨论】:
标签: tensorflow keras