加载模型
from transformers import BertTokenizer
model_names = 'bert-base-uncased'
tokenizer = BertTokenizer.from_pretrained(model_name)
tokenizer
tokenizer.special_tokens_map
special_tokens = list(tokenizer.special_tokens_map.values())
specical_tokens
tokenizer.convert_tokens_to_ids(special_tokens)
tokenizer.encode(special_tokens)
tokenizer.decode(...)
认识文本语料
获得语料信息
- newsgroups_train.DESCR
- newsgroups_train.data
- newsgroups_train.target
- newsgroups_train.target_names
from sklearn.datasets import fetch_20newsgroups
newsgroups_train = fetch_20newsgroups(subset='train')
newsgroups_train.DESCR
from collections import Counter
Counter(newsgroups_train.target)
newsgroups_train.target_names
tokenizer补充
- input_ids,attention_masks
- encode_plus,token_type_ids
- token_type_ids —> 表示第一句:1;表示第2句:0
- 句子对,一般用在nsp(next sentence predict)级别的,bert训练的1个预训练任务
test_news = newsgroups_train.data[:3]
len(test_news[2])
truncation截断
#single sentence级别
tokenizer(test_news,truncation=True,max_lengths=32)
#sentence pair级别的
tokenizer.encode_plus(text=text_news[0],text_pair=text_news[1])
tokenizer.decode