BERTweet
概述
BERTweet模型由Dat Quoc Nguyen、Thanh Vu和Anh Tuan Nguyen在BERTweet: A pre-trained language model for English Tweets中提出。
论文的摘要如下:
我们介绍了BERTweet,这是第一个公开的大规模预训练语言模型,专门用于英文推文。我们的BERTweet,具有与BERT-base相同的架构(Devlin等人,2019),并使用RoBERTa预训练程序进行训练(Liu等人,2019)。实验表明,BERTweet在三个推文NLP任务上优于强大的基线模型RoBERTa-base和XLM-R-base(Conneau等人,2020),在词性标注、命名实体识别和文本分类任务上产生了比之前最先进模型更好的性能结果。
使用示例
>>> import torch
>>> from transformers import AutoModel, AutoTokenizer
>>> bertweet = AutoModel.from_pretrained("vinai/bertweet-base")
>>> # For transformers v4.x+:
>>> tokenizer = AutoTokenizer.from_pretrained("vinai/bertweet-base", use_fast=False)
>>> # For transformers v3.x:
>>> # tokenizer = AutoTokenizer.from_pretrained("vinai/bertweet-base")
>>> # INPUT TWEET IS ALREADY NORMALIZED!
>>> line = "SC has first two presumptive cases of coronavirus , DHEC confirms HTTPURL via @USER :cry:"
>>> input_ids = torch.tensor([tokenizer.encode(line)])
>>> with torch.no_grad():
... features = bertweet(input_ids) # Models outputs are now tuples
>>> # With TensorFlow 2.0+:
>>> # from transformers import TFAutoModel
>>> # bertweet = TFAutoModel.from_pretrained("vinai/bertweet-base")
此实现与BERT相同,除了分词方法。有关API参考信息,请参阅BERT文档。
BertweetTokenizer
类 transformers.BertweetTokenizer
< source >( vocab_file merges_file normalization = False bos_token = '' eos_token = '' sep_token = '' cls_token = '' unk_token = '
参数
- vocab_file (
str
) — 词汇表文件的路径。 - merges_file (
str
) — 合并文件的路径。 - normalization (
bool
, optional, defaults toFalse
) — 是否应用归一化预处理。 - bos_token (
str
, optional, defaults to"<s>"
) — The beginning of sequence token that was used during pretraining. Can be used a sequence classifier token.在使用特殊标记构建序列时,这不是用于序列开头的标记。使用的标记是
cls_token
。 - eos_token (
str
, optional, defaults to"</s>"
) — The end of sequence token.在使用特殊标记构建序列时,这不是用于序列结束的标记。 使用的标记是
sep_token
。 - sep_token (
str
, 可选, 默认为""
) — 分隔符标记,用于从多个序列构建序列时,例如用于序列分类的两个序列或用于问答的文本和问题。它也用作使用特殊标记构建的序列的最后一个标记。 - cls_token (
str
, 可选, 默认为"
) — 用于序列分类(对整个序列进行分类而不是对每个标记进行分类)的分类器标记。当使用特殊标记构建时,它是序列的第一个标记。" - unk_token (
str
, 可选, 默认为"
) — 未知标记。不在词汇表中的标记无法转换为ID,而是设置为该标记。" - pad_token (
str
, optional, defaults to"
) — 用于填充的标记,例如在对不同长度的序列进行批处理时使用。" - mask_token (
str
, 可选, 默认为"
) — 用于屏蔽值的标记。这是在训练此模型时用于屏蔽语言建模的标记。这是模型将尝试预测的标记。"
构建一个BERTweet分词器,使用字节对编码。
此分词器继承自PreTrainedTokenizer,其中包含了大部分主要方法。用户应参考此超类以获取有关这些方法的更多信息。
从文本文件加载预先存在的字典并将其符号添加到此实例中。
build_inputs_with_special_tokens
< source >( token_ids_0: typing.List[int] token_ids_1: typing.Optional[typing.List[int]] = None ) → List[int]
通过连接和添加特殊标记,从序列或序列对构建序列分类任务的模型输入。BERTweet序列的格式如下:
- 单一序列:
X - 序列对:
AB
将一系列标记(字符串)转换为单个字符串。
create_token_type_ids_from_sequences
< source >( token_ids_0: typing.List[int] token_ids_1: typing.Optional[typing.List[int]] = None ) → List[int]
从传递给序列对分类任务的两个序列中创建一个掩码。BERTweet不使用标记类型ID,因此返回一个零列表。
get_special_tokens_mask
< source >( token_ids_0: typing.List[int] token_ids_1: typing.Optional[typing.List[int]] = None already_has_special_tokens: bool = False ) → List[int]
从没有添加特殊标记的标记列表中检索序列ID。当使用标记器的prepare_for_model
方法添加特殊标记时,会调用此方法。
标准化推文中的标记
标准化原始推文