欢迎访问宙启技术站
智能推送

Python中的transformers.BertTokenizerfrom_pretrained()方法用于加载中文BERT模型

发布时间:2023-12-23 18:18:45

transformers.BertTokenizer.from_pretrained()方法用于加载预训练好的BERT模型,并返回一个处理文本的tokenizer对象。tokenizer对象可以将文本编码为模型所需的输入特征。以下是一个使用中文BERT模型加载tokenizer的例子:

首先,确保已安装transformers库:

pip install transformers

接下来,导入必要的库:

from transformers import BertTokenizer

然后,使用from_pretrained()方法加载BERT模型的tokenizer:

tokenizer = BertTokenizer.from_pretrained('bert-base-chinese')

这里的参数'bert-base-chinese'指定要加载的预训练模型,这是一个基于中文的BERT模型。

现在,可以使用tokenizer对象对文本进行编码。下面是一个使用例子:

text = "这是一个使用例子。"
tokens = tokenizer.tokenize(text)   # 对文本进行分词
input_ids = tokenizer.convert_tokens_to_ids(tokens)   # 将分词转换为模型的输入id序列

以上代码首先使用tokenizer.tokenize()方法对文本进行分词,返回一个分词后的token列表。然后,使用tokenizer.convert_tokens_to_ids()方法将token列表转换为模型的输入id序列。

如果要将多个文本编码为相同长度的输入特征,可以使用tokenizer.batch_encode_plus()方法。以下是一个使用例子:

texts = ["这是      个文本。", "这是第二个文本。"]
encoding = tokenizer.batch_encode_plus(
    texts,
    padding=True,
    truncation=True,
    max_length=512,
    return_tensors='pt'
)
input_ids = encoding['input_ids']
attention_mask = encoding['attention_mask']

以上代码将texts列表中的两个文本编码为相同长度的输入特征。参数padding=True指定对短文本进行填充,truncation=True指定对长文本进行截断,max_length指定输入特征的最大长度,return_tensors='pt'指定返回PyTorch张量。

可以通过打印input_ids和attention_mask来查看编码后的输入特征。

这就是使用transformers.BertTokenizer.from_pretrained()方法加载中文BERT模型的基本步骤以及编码文本的例子。希望对你有所帮助!