【发布时间】:2020-07-04 13:36:52
【问题描述】:
给定一个“Roberta 是 BERT 的高度优化版本”类型的句子,我需要使用 RoBERTa 获取该句子中每个单词的嵌入。我试图在网上查看示例代码,但未能找到明确的答案。
我的看法如下:
tokens = roberta.encode(headline)
all_layers = roberta.extract_features(tokens, return_all_hiddens=True)
embedding = all_layers[0]
n = embedding.size()[1] - 1
embedding = embedding[:,1:n,:]
其中embedding[:,1:n,:] 用于仅提取句子中单词的嵌入,没有开始和结束标记。
对吗?
【问题讨论】:
-
我假设您为此使用了 huggingface 的库?如果是这样,请相应地更新您的标签(
bert未使用,但您可以使用huggingface-transformers代替)。由于有多种实现方式,否则很难确定正确的实现方式并给出正确答案。 -
我不认为这是正确的。我的理解是
embedding = all_layers[-1][-1]
标签: encoding nlp word-embedding