我正在尝试理解如何使用Tensorflow2来训练没有预设标签的单词嵌入。
在Tensorflow2教程(https://www.tensorflow.org/beta/tutorials/text/word_embeddings)中,它展示了如何使用带标签的预结构化数据集来训练单词嵌入。
imdb = keras.datasets.imdb
(train_data, train_labels), (test_data, test_labels) = imdb.load_data(
num_words=vocab_size)
embedding_dim=16
model = keras.Sequential([
layers.Embedding(vocab_size, embedding_dim, input_length=maxlen),
layers.GlobalAveragePooling1D(),
layers.Dense(16, activation='relu'),
layers.Dense(1, activation='sigmoid')
])
model.compile(optimizer='adam',
loss='binary_crossentropy',
metrics=['accuracy'])
history = model.fit(
train_data,
train_labels,
epochs=30,
batch_size=512,
validation_data=(test_data, test_labels))然而,我想知道如何使用Tensorflow2训练未标记文本上的嵌入,类似于使用Gensim的Word2Vec可以做什么?
发布于 2019-08-07 17:10:38
训练Word2Vec模型不需要标签。它在标记化句子中查找上下文窗口,然后为句子中的每个唯一标记(单词)创建向量。
最后,不同向量之间的距离有助于在神经网络的嵌入层建立单词之间的关系。如果将Trainable=True参数赋给嵌入层,则在训练阶段向量会根据给定的标签进行更新,模型会得到更好的结果。
https://stackoverflow.com/questions/57335044
复制相似问题