Transformers 文档

BertJapanese

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

BertJapanese

PyTorch TensorFlow Flax

概述

在日文文本上训练的 BERT 模型。

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

  • 使用 MeCab 和 WordPiece 进行分词。这需要一些额外的依赖,fugashiMeCab 的一个包装器。
  • 按字符分词。

要使用 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

class 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`) — 指向每行一个 wordpiece 的词汇表文件的路径。
  • spm_file (`str`, *可选*) — 指向 SentencePiece 文件的路径(通常具有 .spm 或 .model 扩展名),该文件包含词汇表。
  • do_lower_case (`bool`, *可选*, 默认为 `True`) — 是否将输入转换为小写。仅当 do_basic_tokenize=True 时有效。
  • do_word_tokenize (`bool`, *可选*, 默认为 `True`) — 是否进行单词分词。
  • do_subword_tokenize (`bool`, *可选*, 默认为 `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: list token_ids_1: typing.Optional[list[int]] = None ) `List[int]`

参数

  • token_ids_0 (`List[int]`) — 将要添加特殊标记的 ID 列表。
  • token_ids_1 (`List[int]`, *可选*) — 可选的用于序列对的第二组 ID 列表。

返回

List[int]

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

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

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

convert_tokens_to_string

< >

( tokens )

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

get_special_tokens_mask

< >

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

参数

  • token_ids_0 (`List[int]`) — ID 列表。
  • token_ids_1 (`List[int]`, *可选*) — 可选的用于序列对的第二组 ID 列表。
  • already_has_special_tokens (`bool`, *可选*, 默认为 `False`) — 标记列表是否已使用模型的特殊标记进行格式化。

返回

List[int]

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

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

< > 在 GitHub 上更新