nlp - 需要 "bag of words"类型的变压器

标签 nlp word2vec huggingface-transformers transformer-model

我有一个 NLP 项目,其中当前由 w2v 编码单词集合,以与其他单词集合进行比较。我想尝试 transformers ,它可以提供比 w2v 更好的编码。但是,由于数据的性质,我根本不需要位置编码(因为单词的集合没有顺序)。 是否存在不进行位置编码的预训练变压器

最佳答案

您可以使用 get_input_embeddings() 访问相应的嵌入层。请看一下 roberta 的示例:

import torch
from transformers import RobertaTokenizerFast, RobertaModel
t = RobertaTokenizerFast.from_pretrained('roberta-base')
m = RobertaModel.from_pretrained('roberta-base')
e = m.get_input_embeddings()
 
myWordCollection = ['This', 'That', 'stackoverflow', 'huggingface']

#some of the words will consist of several tokens (i.e. several vectors)
i = t(myWordCollection, return_attention_mask=False, add_special_tokens=False)
#a dictionary with words:vectors for each token
o = {word:e(torch.tensor(ids))    for word, ids in zip(myWordCollection, i.input_ids)}

关于nlp - 需要 "bag of words"类型的变压器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67047188/

相关文章:

machine-learning - WSD 任务的细粒度和粗粒度分数之间的差异?

machine-learning - 如何创建自定义特征提取器函数并将其与 Scikit-learn 管道中的 countvectorizer 一起使用

python - 了解 gensim Word2Vec most_similar 结果的 3 个单词

nlp - 如何使用 Transformers 库从 XLNet 的输出中获取单词

deep-learning - 深度学习模型训练过程中修改学习率

azure - 虚拟助理 -> LUIS、QnA、调度程序最佳实践

neural-network - 预训练的 GloVe 矢量文件(例如 glove.6B.50d.txt)中的 "unk"是什么?

python - Word2Vec:使用 Gensim 和 Google-News 数据集 - 执行时间非常慢

python - Word2Vec 模型未进行训练,输入句子尝试使用列表中的句子序列和标记化单词