Transformers 文档

Bert日语

BertJapanese

概述

基于日语文本训练的BERT模型。

有两种不同的分词方法的模型:

  • 使用MeCab和WordPiece进行分词。这需要一些额外的依赖项,fugashi,它是MeCab的一个封装。
  • 将文本分词为字符。

要使用MecabTokenizer,你应该pip install transformers["ja"](或者如果你从源代码安装,使用pip install -e .["ja"])来安装依赖项。

查看 cl-tohoku 仓库的详细信息

使用MeCab和WordPiece分词的模型示例:

>>> import torch
>>> from transformers import AutoModel, AutoTokenizer

>>> bertjapanese = AutoModel.from_pretrained("cl-tohoku/bert-base-japanese")
>>> tokenizer = AutoTokenizer.from_pretrained("cl-tohoku/bert-base-japanese")

>>> ## Input Japanese Text
>>> line = "吾輩は猫である。"

>>> inputs = tokenizer(line, return_tensors="pt")

>>> print(tokenizer.decode(inputs["input_ids"][0]))
[CLS] 吾輩 は 猫 で ある 。 [SEP]

>>> outputs = bertjapanese(**inputs)

使用字符标记化模型的示例:

>>> bertjapanese = AutoModel.from_pretrained("cl-tohoku/bert-base-japanese-char")
>>> tokenizer = AutoTokenizer.from_pretrained("cl-tohoku/bert-base-japanese-char")

>>> ## Input Japanese Text
>>> line = "吾輩は猫である。"

>>> inputs = tokenizer(line, return_tensors="pt")

>>> print(tokenizer.decode(inputs["input_ids"][0]))
[CLS] 吾 輩 は 猫 で あ る 。 [SEP]

>>> outputs = bertjapanese(**inputs)

该模型由cl-tohoku贡献。

此实现与BERT相同,除了分词方法。有关API参考信息,请参阅BERT文档

BertJapaneseTokenizer

transformers.BertJapaneseTokenizer

< >

( vocab_file spm_file = None do_lower_case = False do_word_tokenize = True do_subword_tokenize = True word_tokenizer_type = 'basic' subword_tokenizer_type = 'wordpiece' never_split = None unk_token = '[UNK]' sep_token = '[SEP]' pad_token = '[PAD]' cls_token = '[CLS]' mask_token = '[MASK]' mecab_kwargs = None sudachi_kwargs = None jumanpp_kwargs = None **kwargs )

参数

  • vocab_file (str) — 路径指向一个每行一个词片的词汇文件。
  • spm_file (str, 可选) — 指向SentencePiece文件的路径(通常具有.spm或.model扩展名),该文件包含词汇表。
  • do_lower_case (bool, optional, defaults to True) — 是否将输入转换为小写。仅在 do_basic_tokenize=True 时有效。
  • do_word_tokenize (bool, optional, defaults to True) — 是否进行分词操作.
  • do_subword_tokenize (bool, optional, defaults to True) — 是否进行子词分词.
  • word_tokenizer_type (str, 可选, 默认为 "basic") — 单词分词器的类型。可从 [“basic”, “mecab”, “sudachi”, “jumanpp”] 中选择。
  • subword_tokenizer_type (str, 可选, 默认为 "wordpiece") — 子词分词器的类型。可从 [“wordpiece”, “character”, “sentencepiece”] 中选择。
  • mecab_kwargs (dict, 可选) — 传递给 MecabTokenizer 构造函数的字典。
  • sudachi_kwargs (dict, 可选) — 传递给 SudachiTokenizer 构造函数的字典。
  • jumanpp_kwargs (dict, 可选) — 传递给 JumanppTokenizer 构造函数的字典。

为日语文本构建一个BERT分词器。

此分词器继承自PreTrainedTokenizer,其中包含了大部分主要方法。用户应参考此超类以获取有关这些方法的更多信息。

build_inputs_with_special_tokens

< >

( token_ids_0: typing.List[int] token_ids_1: typing.Optional[typing.List[int]] = None ) List[int]

参数

  • token_ids_0 (List[int]) — 特殊令牌将被添加到的ID列表。
  • token_ids_1 (List[int], optional) — 可选的第二个序列对的ID列表。

返回

List[int]

带有适当特殊标记的输入ID列表。

通过连接和添加特殊标记,从序列或序列对构建序列分类任务的模型输入。BERT序列的格式如下:

  • 单一序列: [CLS] X [SEP]
  • 序列对:[CLS] A [SEP] B [SEP]

convert_tokens_to_string

< >

( tokens )

将一系列标记(字符串)转换为单个字符串。

create_token_type_ids_from_sequences

< >

( token_ids_0: typing.List[int] token_ids_1: typing.Optional[typing.List[int]] = None ) List[int]

参数

  • token_ids_0 (List[int]) — ID列表.
  • token_ids_1 (List[int], optional) — 可选的第二个序列对的ID列表。

返回

List[int]

根据给定序列的token type IDs列表。

从传递给序列对分类任务的两个序列中创建一个掩码。一个BERT序列

pair mask 的格式如下:

0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1
| first sequence    | second sequence |

如果 token_ids_1None,此方法仅返回掩码的第一部分(0s)。

get_special_tokens_mask

< >

( token_ids_0: typing.List[int] token_ids_1: typing.Optional[typing.List[int]] = None already_has_special_tokens: bool = False ) List[int]

参数

  • token_ids_0 (List[int]) — ID列表.
  • token_ids_1 (List[int], optional) — 可选的第二个序列对的ID列表。
  • already_has_special_tokens (bool, optional, defaults to False) — 标记列表是否已经用模型的特殊标记格式化。

返回

List[int]

一个整数列表,范围在[0, 1]:1表示特殊标记,0表示序列标记。

从没有添加特殊标记的标记列表中检索序列ID。当使用标记器的prepare_for_model方法添加特殊标记时,会调用此方法。

< > Update on GitHub