Python 如何组合两个标记化的bert序列
假设我有两个标记化的BERT序列:Python 如何组合两个标记化的bert序列,python,tokenize,bert-language-model,huggingface-transformers,Python,Tokenize,Bert Language Model,Huggingface Transformers,假设我有两个标记化的BERT序列: seq1=张量([[101202320061996123032102]] seq2=张量([[101202320039015101202]] 这是由huggingface的标记器生成的: seq=torch.tensor(tokenizer.encode(text=query,add_special_tokens=True)).unsqueze(0) 组合标记化序列以获得最终序列的最佳方法是什么,其中[sep]标记是自动递增的 例如: combined=t
seq1=张量([[101202320061996123032102]]
seq2=张量([[101202320039015101202]]
这是由huggingface的标记器生成的:
seq=torch.tensor(tokenizer.encode(text=query,add_special_tokens=True)).unsqueze(0)
组合标记化序列以获得最终序列的最佳方法是什么,其中[sep]标记是自动递增的
例如:
combined=tensor([[1012023203199612303210220232000191015,
102]])
似乎我应该循环使用并增加特殊标记,但这也似乎有点不对劲。有几个选项可以实现您想要的。例如,如果可以直接使用字符串,可以使用标记器的测试对输入。您还可以将张量与。请看下面的示例:
导入火炬
从transformers导入标记器
标记器=BertTokenizer.from_pretrained('bert-base-uncased'))
query1='hello stackoverflow'
query2=‘你好,拥抱面孔’
#使用原始字符串创建输入对
打印(tokenizer.encode(text=query1,text\u pair=query2,return\u tensors='pt'))
seq1=tokenizer.encode(text=query1,return\u tensors='pt')
seq2=tokenizer.encode(text=query2,return\u tensors='pt')
#连接现有张量
打印(火炬类别((序号1,序号2[:,1:]),尺寸=1))
输出:
tensor([[ 101, 7592, 9991, 7840, 12314, 102, 7592, 17662, 12172, 102]])
tensor([[ 101, 7592, 9991, 7840, 12314, 102, 7592, 17662, 12172, 102]])
有必要使用
seq1
和seq2
吗?或者您也可以使用实际字符串吗?这不理想,不是吗