Понимание того, как gpt-2 токенизирует строки

Используя здесь руководства , я написал следующие коды:

      from transformers import GPT2Tokenizer, GPT2Model
import torch

tokenizer = GPT2Tokenizer.from_pretrained('gpt2')
model = GPT2Model.from_pretrained('gpt2')

inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")
outputs = model(**inputs)

last_hidden_states = outputs.last_hidden_state

Итак, я понимаю, что «входы» состоят из токенизированных элементов моего предложения. Но как я могу получить значения токенизированных элементов? (см., например, [«привет», «,», «мой», «собака», «это», «милый»])

Я спрашиваю об этом, потому что иногда мне кажется, что он отделяет слово, если этого слова нет в его словаре (т.е. слова из другого языка). Поэтому я хочу проверить это в своих кодах.

1 ответ

Ты можешь позвонить tokenizer.decode на выходе токенизатора, чтобы получить слова из его словаря с заданными индексами:

      >>> inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")
>>> list(map(tokenizer.decode, inputs.input_ids[0]))
['Hello', ',', ' my', ' dog', ' is', ' cute']
Другие вопросы по тегам