# BertJapanese

## نظرة عامة

نماذج BERT المدرَّبة على النص الياباني.

توجد نماذج تستخدم طريقتين مختلفتين لتجزئة الرموز:

- قم بتجزئة النص باستخدام MeCab وWordPiece. يتطلب هذا بعض التبعيات الإضافية، وهي [fugashi](https://github.com/polm/fugashi) الذي يعمل كواجهة حول [MeCab](https://taku910.github.io/mecab/).
- تجزئة إلى أحرف.

لاستخدام *MecabTokenizer*، يجب عليك `pip install transformers["ja"]` (أو `pip install -e .["ja"]` إذا قمت بالتثبيت من المصدر) لتثبيت التبعيات.

انظر إلى [التفاصيل في مستودع cl-tohoku](https://github.com/cl-tohoku/bert-japanese).

مثال على استخدام نموذج مع تقطيع MeCab و 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)
```

مثال على استخدام نموذج مع ترميز الأحرف:

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

تمت مساهمة هذا النموذج من قِبل [cl-tohoku](https://huggingface.co/cl-tohoku).

هذا التنفيذ مطابق لتنفيذ BERT، باستثناء طريقة التجزئة. راجع [توثيق BERT](bert) لمعلومات مرجع الـ 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)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/bert_japanese/tokenization_bert_japanese.py#L58)

**المعاملات:**

vocab_file (`str`) : مسار إلى ملف مفردات يحتوي على قطعة كلمة واحدة في كل سطر.

spm_file (`str`, *اختياري*) : مسار ملف [SentencePiece](https://github.com/google/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](/docs/transformers/main/ar/main_classes/tokenizer#transformers.PythonBackend) الذي يحتوي على معظم الطرق الرئيسية. ينبغي للمستخدمين الرجوع إلى: هذه الفئة الأصلية لمزيد من المعلومات حول تلك الطرق.

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

```python
convert_tokens_to_string(tokens)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/bert_japanese/tokenization_bert_japanese.py#L256)

يحوّل تسلسل الرموز (نص) إلى نص واحد.

