我使用spacy 3.0来用转换器模型向量化文本。由于数据隐私的原因,矢量化必须在与训练模型的机器不同的机器上进行。为了减少生成的数据量并在机器之间进行传输,我提取文本的令牌ids如下所示:
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]])现在就有ids了,是否可以使用spacy从语言模型(de_dep_news_trf)中提取正确的张量?
发布于 2021-07-29 12:53:50
不幸的是,这是不可能的。问题是转换器模型为上下文上的单个令牌生成它们的嵌入。意思是,如果在两个不同的句子中有相同的token_id,它们可能有(显著的)不同的嵌入。唯一的方法是返回与每个令牌相关联的张量,但是不能仅仅基于input_ids生成它们。
https://stackoverflow.com/questions/68573795
复制相似问题