Trước khi vector hóa, cần xây dựng từ vựng từ các token xuất hiện trong dữ liệu. Cách phổ biến là thống kê tần suất và giữ lại top-N token phổ biến nhất.
Mã xây dựng từ vựng
print("Xây dựng từ vựng từ các token")
tokenized_ds = configure_dataset(tokenized_ds)
vocab_dict = collections.defaultdict(lambda: 0)
for toks in tokenized_ds.as_numpy_iterator():
for tok in toks:
vocab_dict[tok] += 1
print("Sắp xếp từ vựng theo tần suất")
vocab = sorted(vocab_dict.items(), key=lambda x: x[1], reverse=True)
vocab = [token for token, count in vocab]
vocab = vocab[:VOCAB_SIZE]
vocab_size = len(vocab)
print("Kích thước từ vựng:", vocab_size)
print("6 token đầu tiên:", vocab[:6])
Kết quả
Xây dựng từ vựng từ các token Sắp xếp từ vựng theo tần suất Kích thước từ vựng: 10000 6 token đầu tiên: [b',', b'the', b'and', b'"', b'of', b'.']
Giải thích
- Duyệt qua dataset đã token hóa, đếm tần suất mỗi token bằng
defaultdict. - Sắp xếp giảm dần theo tần suất, cắt giữ
VOCAB_SIZEtoken hàng đầu. - Các token phổ biến nhất thường là dấu câu, từ chức năng (the, and, of...).