# BertJapanese

## Resumen

Los modelos BERT entrenados en texto japonés.

Hay modelos con dos métodos de tokenización diferentes:

- Tokeniza con MeCab y WordPiece. Esto requiere algunas dependencias adicionales, [fugashi](https://github.com/polm/fugashi), que es un envoltorio de [MeCab](https://taku910.github.io/mecab/).
- Tokenizar en caracteres.

Para usar *MecabTokenizer*, debes instalar las dependencias con `pip install transformers["ja"]` (o `pip install -e .["ja"]` si instalas desde el código fuente).

Vea los [detalles en el repositorio cl-tohoku](https://github.com/cl-tohoku/bert-japanese).

Ejemplo de uso de un modelo con tokenización MeCab y 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)
```

Ejemplo de uso de un modelo con tokenización por caracteres:

```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 fue aportado por [cl-tohoku](https://huggingface.co/cl-tohoku).

Esta implementación es la misma que la de BERT, excepto por el método de tokenización. Consulte la [documentación de BERT](bert) para obtener información de referencia de la 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)
```

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

**Parámetros:**

vocab_file (`str`) : Ruta a un archivo de vocabulario con una pieza de palabra por línea.

spm_file (`str`, *opcional*) : Ruta al archivo de [SentencePiece](https://github.com/google/sentencepiece) (generalmente con extensión .spm o .model) que contiene el vocabulario.

do_lower_case (`bool`, *opcional*, valor predeterminado `True`) : Si se debe convertir la entrada a minúsculas. Solo tiene efecto cuando do_basic_tokenize=True.

do_word_tokenize (`bool`, *opcional*, valor predeterminado `True`) : Si se debe realizar la tokenización de palabras.

do_subword_tokenize (`bool`, *opcional*, valor predeterminado `True`) : Si se debe realizar la tokenización de subpalabras.

word_tokenizer_type (`str`, *opcional*, valor predeterminado `"basic"`) : Tipo de tokenizador de palabras. Elija entre ["basic", "mecab", "sudachi", "jumanpp"].

subword_tokenizer_type (`str`, *opcional*, valor predeterminado `"wordpiece"`) : Tipo de tokenizador de subpalabras. Elija entre ["wordpiece", "character", "sentencepiece",].

mecab_kwargs (`dict`, *opcional*) : Diccionario que se pasa al constructor de `MecabTokenizer`.

sudachi_kwargs (`dict`, *opcional*) : Diccionario que se pasa al constructor de `SudachiTokenizer`.

jumanpp_kwargs (`dict`, *opcional*) : Diccionario que se pasa al constructor de `JumanppTokenizer`.

Construye un tokenizador BERT para texto en japonés.

Este tokenizador hereda de [PreTrainedTokenizer](/docs/transformers/main/es/main_classes/tokenizer#transformers.PythonBackend), que contiene la mayoría de los métodos principales. Los usuarios deben consultar esta superclase para obtener más información sobre dichos métodos.

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

```python
convert_tokens_to_string(tokens)
```

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

Convierte una secuencia de tokens (cadena) en una sola cadena.

