# BertJapanese

## Visão geral

Os modelos BERT treinados em texto japonês.

Existem modelos com dois métodos diferentes de tokenização:

- Faça a tokenização com MeCab e WordPiece. Isso requer algumas dependências extras, [fugashi](https://github.com/polm/fugashi), que é um wrapper para [MeCab](https://taku910.github.io/mecab/).
- Tokenize em caracteres.

Para usar o *MecabTokenizer*, você deve instalar as dependências com `pip install transformers["ja"]` (ou `pip install -e .["ja"]` se estiver instalando a partir do código-fonte).

Veja [os detalhes no repositório cl-tohoku](https://github.com/cl-tohoku/bert-japanese).

Exemplo de uso de um modelo com tokenização MeCab e WordPiece:

```python
import torch
from transformers import AutoModel, AutoTokenizer

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

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

inputs = tokenizer(line, return_tensors="pt").to(model.device)

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

outputs = bertjapanese(**inputs)
```

Exemplo de uso de um modelo com tokenização por caractere:

```python
bertjapanese = AutoModel.from_pretrained("cl-tohoku/bert-base-japanese-char", device_map="auto")
tokenizer = AutoTokenizer.from_pretrained("cl-tohoku/bert-base-japanese-char")

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

inputs = tokenizer(line, return_tensors="pt").to(model.device)

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

outputs = bertjapanese(**inputs)
```

Este modelo foi contribuído por [cl-tohoku](https://huggingface.co/cl-tohoku).

Esta implementação é a mesma do BERT, exceto pelo método de tokenização. Consulte a [documentação do BERT](bert) para informações de referência da API.

## BertJapaneseTokenizer[[transformers.BertJapaneseTokenizer]]

#### transformers.BertJapaneseTokenizer[[transformers.BertJapaneseTokenizer]]

```python
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)
```

[Origem](https://github.com/huggingface/transformers/blob/main/src/transformers/models/bert_japanese/tokenization_bert_japanese.py#L58)

**Parâmetros:**

vocab_file (`str`) : Caminho para um arquivo de vocabulário com uma palavra por linha.

spm_file (`str`, *opcional*) : Caminho para o arquivo [SentencePiece](https://github.com/google/sentencepiece) (geralmente com extensão .spm ou .model) que contém o vocabulário.

do_lower_case (`bool`, *opcional*, padrão `True`) : Se deve converter a entrada para minúsculas. Tem efeito apenas quando do_basic_tokenize=True.

do_word_tokenize (`bool`, *opcional*, padrão `True`) : Se deve realizar a tokenização de palavras.

do_subword_tokenize (`bool`, *opcional*, padrão `True`) : Se deve realizar a tokenização de subpalavras.

word_tokenizer_type (`str`, *opcional*, padrão `"basic"`) : Tipo de tokenizador de palavras. Escolha entre ["basic", "mecab", "sudachi", "jumanpp"].

subword_tokenizer_type (`str`, *opcional*, padrão `"wordpiece"`) : Tipo de tokenizador de subpalavras. Escolha entre ["wordpiece", "character", "sentencepiece",].

mecab_kwargs (`dict`, *opcional*) : Dicionário passado para o construtor do `MecabTokenizer`.

sudachi_kwargs (`dict`, *opcional*) : Dicionário passado para o construtor do `SudachiTokenizer`.

jumanpp_kwargs (`dict`, *opcional*) : Dicionário passado para o construtor do `JumanppTokenizer`.

Construa um tokenizador BERT para texto em japonês.

Este tokenizer herda de [PreTrainedTokenizer](/docs/transformers/main/pt/main_classes/tokenizer#transformers.PythonBackend), que contém a maioria dos métodos principais. Os usuários devem consultar essa superclasse para obter mais informações sobre esses métodos.

#### convert_tokens_to_string[[transformers.BertJapaneseTokenizer.convert_tokens_to_string]]

```python
convert_tokens_to_string(tokens)
```

[Origem](https://github.com/huggingface/transformers/blob/main/src/transformers/models/bert_japanese/tokenization_bert_japanese.py#L256)

Converte uma sequência de tokens (string) em uma única string.

