是的,BERT可以使用超过2个句子进行词嵌入。BERT的输入是一个包含多个句子的句子对,每个句子对由两个句子组成。下面是使用Hugging Face库来实现BERT多句子输入的示例代码:
from transformers import AutoTokenizer, AutoModel
tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
model = AutoModel.from_pretrained("bert-base-uncased")
# 输入句子
sentences = [
"I love Hugging Face",
"BERT is awesome",
"Transformers library is great"
]
# 将句子编码为输入张量
encoded_input = tokenizer(sentences, padding=True, truncation=True, return_tensors="pt")
# 使用BERT模型获取词嵌入
outputs = model(**encoded_input)
# 获取词嵌入张量
embeddings = outputs.last_hidden_state
print(embeddings.shape) # 输出张量的形状
在上述代码中,我们使用了Hugging Face的transformers
库,通过AutoTokenizer
和AutoModel
加载了预训练的BERT模型和分词器。我们定义了一个包含多个句子的列表,然后使用分词器将句子编码为输入张量。最后,我们使用BERT模型获取词嵌入,并输出词嵌入张量的形状。
请注意,BERT模型有最大输入长度的限制,通常为512个标记。如果输入的句子超过了这个长度,你需要进行适当的截断或缩短处理。