Адаптируйте код предобработки из уроков к задаче классификации твитов:
- Загрузите файл с твитами /datasets/tweets.csv.
- Токенизируйте каждый твит.
- Найдите максимальную длину векторов после токенизации.
- Примените padding к векторам и создайте маску для выделения важных токенов.
- Выведите на экран размер этой маски
Подсказка
Чтобы токенизировать все твиты, примените метод apply():
tokenized = df_tweets['text'].apply(
lambda x: tokenizer.encode(x, add_special_tokens=True))
import pandas as pd
import numpy as np
import torch
import transformers
# загрузим данные
df_tweets = pd.read_csv('/datasets/tweets.csv')
# инициализируем токенизатор
tokenizer = transformers.BertTokenizer(vocab_file='/datasets/ds_bert/vocab.txt')
# токенизируем текст
#vector = tokenizer.encode('Очень удобно использовать уже готовый трансформатор текста', add_special_tokens=True)
tokenized = df_tweets['text'].apply(lambda x: tokenizer.encode(x, add_special_tokens=True))
# находим максимальную длину векторов после токенизации
max_len = 0
for i in tokenized.values:
if len(i) > max_len:
max_len = len(i)
# применим padding к векторам
n = 280
# англ. вектор с отступами
padded = vector + [0]*(n - len(vector))
# создадим маску для важных токенов
attention_mask = np.where(padded != 0, 1, 0)
print(max_len)