赞
踩
使用以下命令安装:
pip install transformers
导入包:
from transformers import BertTokenizer
加载预训练模型bert-base-chinese,初次加载可能需要较长的时间。
#加载预训练字典和分词方法
tokenizer = BertTokenizer.from_pretrained(
# 下载或者从本地加载模型
pretrained_model_name_or_path='bert-base-chinese',
force_download=False,
)
接下来就可以看到tokenizer的内容:
tokenizer
#print:(name_or_path='bert-base-chinese', vocab_size=21128, model_max_len=512, is_fast=False, padding_side='right', truncation_side='right', special_tokens={'unk_token': '[UNK]', 'sep_token': '[SEP]', 'pad_token': '[PAD]', 'cls_token': '[CLS]', 'mask_token': '[MASK]'})
sents = [ '我在一所学院上大三。', '今天天气好,我来图书馆学习。', ] res= tokenizer.encode( # 可以一次编码两个句子,即text和text_pair text = sents[0], text_pair=sents[1], # 当句子长度大于max_length是选择截断 truncation=True, # 一律补pad到max_length长度 padding='max_length', add_special_tokens = True, max_length=30, return_tensors=None, )
可以打印出res的结果:
# 101为CLS 102为SEP 0为PAD
#print(res):[101, 2769, 1762, 671, 2792, 2110, 7368, 677, 1920, 676, 511, 102, 791, 1921, 1921, 3698, 1962, 8024, 2769, 3341, 1745, 741, 7667, 2110, 739, 511, 102, 0, 0, 0]
也可以查看编码之后的结果:
tokenizer.decode(res)
# [CLS] 我 在 一 所 学 院 上 大 三 。 [SEP] 今 天 天 气 好 , 我 来 图 书 馆 学 习 。 [SEP] [PAD] [PAD] [PAD]
res = tokenizer.encode_plus( # 可以一次编码两个句子 text = sents[0], text_pair=sents[1], # 当句子长度大于max_length是选择截断 truncation=True, # 一律补pad到max_length长度 padding='max_length', add_special_tokens = True, max_length=30, # 返回值的类型:tf pt np return_tensors=None, # 返回token_type_ids return_token_type_ids=True, # 返回attention_mask return_attention_mask = True, # 返回length标识长度 return_length = True, )
查看编码的结果:
for k,v in res.items():
print(k,':',v)
tokenizer.decode(res['input_ids'])
# input_ids:编码后的句子
# token_type_ids:第一个句子和特殊符号的位置是0,第二个句子的位置是1
# attention_mask:pad的位置是0,其它位置是1
# length:返回句子的长度
out = tokenizer.batch_encode_plus( batch_text_or_text_pairs=[sents[0],sents[1]], # 当句子长度大于max_length是选择截断 truncation=True, # 一律补pad到max_length长度 padding='max_length', add_special_tokens = True, max_length=30, # 返回值的类型:tf pt np return_tensors=None, # 返回token_type_ids return_token_type_ids=True, # 返回attention_mask return_attention_mask = True, # 返回length标识长度 return_length = True, )
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。