BERT 是预训练的神经网络模型,可以用于各种自然语言处理任务,包括词语的含义理解。我们可以使用 BERT 模型中的 Token Embeddings 来获取每个单词的含义。
下面是一个使用 BERT 获取每个单词的含义的示例代码:
import torch
import transformers
# 加载 BERT 模型和 tokenizer
model_name = "bert-base-uncased"
tokenizer = transformers.BertTokenizer.from_pretrained(model_name)
model = transformers.BertModel.from_pretrained(model_name)
# 待处理的文本
text = "Is it possible to get the meaning of each word using BERT?"
# 将文本转换为 BERT 模型需要的格式
tokens = tokenizer.tokenize(text)
indexed_tokens = tokenizer.convert_tokens_to_ids(tokens)
segments_ids = [1] * len(tokens)
tokens_tensor = torch.tensor([indexed_tokens])
segments_tensors = torch.tensor([segments_ids])
# 使用 BERT 模型获取 Token Embeddings
with torch.no_grad():
outputs = model(tokens_tensor, segments_tensors)
token_embeddings = outputs[0]
# 获取每个单词的 Token Embedding
for i, token in enumerate(tokens):
print(f"{token}: {token_embeddings[0][i]}")
运行以上代码,会打印出每个单词对应的 Token Embedding,即该单词的含义向量。可以使用这些向量来进行下游任务,如文本分类、命名实体识别等。