1

我正在使用 spacy 3.0 使用变压器模型对文本进行矢量化。由于数据隐私的原因,矢量化必须在与训练模型的机器不同的机器上。为了减少我生成的数据量以及必须在机器之间传输的数据量,我提取了文本的令牌 ID,如下所示:

import spacy
nlp = spacy.load("de_dep_news_trf")
doc = nlp("Eine Bank steht im Park.")
print(doc._.trf_data.tokens["input_ids"])

返回

tensor([[    3,   917,  2565,  1302,   106,  3087, 26914,     4]])

现在有了 id,是否可以de_dep_news_trf使用 spacy 从语言模型 () 中提取正确的张量?

4

1 回答 1

1

不幸的是,这是不可能的。问题是 Transformer 模型为上下文中的单个标记生成嵌入。这意味着,如果您token_id在两个不同的句子中使用相同的他,那么它们可能具有(显着)不同的嵌入。唯一的方法是返回与每个标记关联的张量,但您不能仅基于input_ids.

于 2021-07-29T12:53:50.693 回答