最近,我读到了一种最先进的方法,叫做注意模型。该方法采用编解码器模型.它可以为句子中的每个单词找到更好的编码。但是我怎么编码一个完整的句子呢?
例如,我有句“我爱读书”。
嵌入后,这句话将被转换为三个向量的列表。(或维数为number of words
乘以embedding dimension
的矩阵)。
经过几个层次的注意机制,我仍然会有相同的矩阵。
如何将此矩阵转换为包含完整句子编码表示的单个向量?
发布于 2021-06-01 14:01:00
使用伯特或它的任何其他派生词(如RoBERTa )来获得带有注意模型的句子表示的一个标准方法。在这些模型中,作为输入传递给模型的语句标记以特殊的令牌[CLS]
作为前缀。模型在第一个位置的输出是句子表示。
要使用这些模型,可以使用句子转换器库,例如:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer('paraphrase-distilroberta-base-v1')
sentences = ['This framework generates embeddings for each input sentence',
'Sentences are passed as a list of string.',
'The quick brown fox jumps over the lazy dog.']
sentence_embeddings = model.encode(sentences)
for sentence, embedding in zip(sentences, sentence_embeddings):
print("Sentence:", sentence)
print("Embedding:", embedding)
print("")
https://datascience.stackexchange.com/questions/95134
复制相似问题