Python 如何组合两个标记化的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

假设我有两个标记化的BERT序列:

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
吗?或者您也可以使用实际字符串吗?这不理想,不是吗