Понимание vocab.json в BERT: объяснение с примерами кода

В BERT (представления двунаправленного кодировщика из Transformers) vocab.json— это файл, содержащий словарь модели. Он сопоставляет каждый уникальный токен в обучающих данных с уникальным целочисленным индексом. Файл vocab.jsonиспользуется в процессе токенизации для преобразования ввода текста в последовательность токенов, которые могут быть обработаны моделью BERT.

Вот пример загрузки и использования vocab.jsonв Python:

import json
# Load the vocab.json file
with open('vocab.json', 'r', encoding='utf-8') as f:
    vocab = json.load(f)
# Convert a text into BERT tokens
def tokenize_text(text):
    tokens = []
    for word in text.split():
        if word in vocab:
            tokens.append(vocab[word])
        else:
            tokens.append(vocab['[UNK]'])  # Handle unknown words
    return tokens
# Example usage
text = "Hello, how are you?"
tokens = tokenize_text(text)
print(tokens)

В этом примере файл vocab.jsonзагружается с помощью функции json.load(). Функция tokenize_text()принимает вводимый текст, разбивает его на отдельные слова и преобразует каждое слово в соответствующий ему индекс токена, используя словарь vocab. Если слово не найдено в словаре, оно заменяется токеном [UNK].