Views
No views yet
1pretrained_tokenizer_name = "junnyu/ChineseBERT-large"
2tokenizer = ChineseBertTokenizerFast.from_pretrained(pretrained_tokenizer_name)1pip install chinesebert
2or
3pip install git+https://github.com/JunnYu/ChineseBert_pytorch.git1import torch
2from chinesebert import ChineseBertForMaskedLM, ChineseBertTokenizerFast, ChineseBertConfig
3pretrained_model_name = "junnyu/ChineseBERT-large"
4tokenizer = ChineseBertTokenizerFast.from_pretrained(pretrained_model_name )
5chinese_bert = ChineseBertForMaskedLM.from_pretrained(pretrained_model_name)
6
7text = "北京是[MASK]国的首都。"
8inputs = tokenizer(text, return_tensors="pt")
9print(inputs)
10maskpos = 4
11
12with torch.no_grad():
13 o = chinese_bert(**inputs)
14 value, index = o.logits.softmax(-1)[0, maskpos].topk(10)
15
16pred_tokens = tokenizer.convert_ids_to_tokens(index.tolist())
17pred_values = value.tolist()
18
19outputs = []
20for t, p in zip(pred_tokens, pred_values):
21 outputs.append(f"{t}|{round(p,4)}")
22print(outputs)
23
24# base ['中|0.711', '我|0.2488', '祖|0.016', '法|0.0057', '美|0.0048', '全|0.0042', '韩|0.0015', '英|0.0011', '两|0.0008', '王|0.0006']
25# large ['中|0.8341', '我|0.1479', '祖|0.0157', '全|0.0007', '国|0.0005', '帝|0.0001', '该|0.0001', '法|0.0001', '一|0.0001', '咱|0.0001']