Transformers documentation
BERTweet
该模型于 2020-05-20 在 HF papers 上发布,并于 2020-11-16 贡献至 Hugging Face Transformers。
BERTweet
BERTweet
BERTweet 与 BERT-base 采用相同的架构,但它是像 RoBERTa 一样在英文推文上预训练的。它在词性标注、命名实体识别和文本分类等与推文相关的任务上表现非常出色。
您可以在 VinAI Research 组织下找到所有原始的 BERTweet 检查点。
有关如何将 BERTweet 应用于不同语言任务的更多示例,请参阅 BERT 文档。
以下示例演示了如何使用 Pipeline、AutoModel 以及命令行来预测 <mask> 标记。
from transformers import pipeline
pipeline = pipeline(
task="fill-mask",
model="vinai/bertweet-base",
device=0
)
pipeline("Plants create <mask> through a process known as photosynthesis.")import torch
from transformers import AutoModelForMaskedLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained(
"vinai/bertweet-base",
)
model = AutoModelForMaskedLM.from_pretrained(
"vinai/bertweet-base",
device_map="auto"
)
inputs = tokenizer("Plants create <mask> through a process known as photosynthesis.", return_tensors="pt").to(model.device)
with torch.no_grad():
outputs = model(**inputs)
predictions = outputs.logits
masked_index = torch.where(inputs['input_ids'] == tokenizer.mask_token_id)[1]
predicted_token_id = predictions[0, masked_index].argmax(dim=-1)
predicted_token = tokenizer.decode(predicted_token_id)
print(f"The predicted token is: {predicted_token}")备注
- 请使用 AutoTokenizer 或 BertweetTokenizer,因为它们预加载了针对推文特有标记(如话题标签(#)、提及(@)、表情符号和常见缩写)进行适配的自定义词汇表。请确保同时安装 emoji 库。
- 输入应在右侧进行填充(
padding="max_length"),因为 BERT 使用绝对位置嵌入。
BertweetTokenizer
class transformers.BertweetTokenizer
< source >( vocab_filemerges_filenormalization = Falsebos_token = '<s>'eos_token = '</s>'sep_token = '</s>'cls_token = '<s>'unk_token = '<unk>'pad_token = '<pad>'mask_token = '<mask>'**kwargs )
参数
- vocab_file (
str) — 词汇表文件的路径。 - merges_file (
str) — 合并文件的路径。 - normalization (
bool,可选,默认为False) — 是否应用归一化预处理。 - bos_token (
str, 可选, 默认为"<s>") — 预训练期间使用的序列起始标记。也可用作序列分类标记。在构建序列时,如果使用了特殊标记,序列开头使用的并不是这个标记。实际使用的标记是
cls_token。 - eos_token (
str, 可选, 默认为"</s>") — 序列结束标记。在构建包含特殊标记的序列时,序列结束使用的并非此标记,而是 sep_token。在构建包含特殊标记的序列时,序列末尾使用的并不是这个标记。 实际使用的是
sep_token。 - sep_token (
str,可选,默认为"</s>") — 分隔符 token,用于从多个序列构建序列时,例如用于序列分类的两个序列,或用于问答的文本和问题。它也用作使用特殊 token 构建的序列的最后一个 token。 - cls_token (
str,可选,默认为"<s>") — 用于序列分类(对整个序列进行分类,而非逐 token 分类)的分类器 token。当使用特殊 token 构建序列时,它是序列的第一个 token。 - unk_token (
str,可选,默认为"<unk>") — 未知标记。不在词汇表中的标记无法转换为 ID,因此会被设置为该标记。 - pad_token (
str,可选,默认为"<pad>") — 用于填充的标记,例如在对长度不同的序列进行批处理时。 - mask_token (
str, 可选,默认为"<mask>") — 用于掩码值的标记。这是在以掩码语言建模方式训练该模型时所使用的标记,也是模型将尝试预测的标记。
使用字节对编码(Byte-Pair-Encoding)构建 BERTweet 分词器。
该分词器继承自 PreTrainedTokenizer,其中包含了大部分主要方法。用户应参考该父类以获取有关这些方法的更多信息。
从文本文件加载现有的字典,并将其符号添加到当前实例中。
将单个字符串中的标记序列(字符串)进行转换。
对推文中的标记进行归一化
规范化原始推文
将词汇表和合并文件保存到目录中。