BPE уровня персонажаPython

Программы на Python
Anonymous
BPE уровня персонажа

Сообщение Anonymous »

Наверное, это глупый вопрос, но
Я создаю алгоритм BPE на уровне символов для использования в языковой модели. Я обучаю его на 10 тысячах статей, полученных из дампа Википедии, код, используемый для получения данных:

Код: Выделить всё

import os
import re
from datasets import load_dataset

def clean_text(text):
text = text.replace("\u200e", "")
text = text.replace("\u200f", "")

text = re.sub(r"[\u200b-\u200f\u202a-\u202e]", "", text)

text = " ".join(text.split())

return text

def save_wiki_subset(output_path="datasets/wikipedia/v1/wiki_subset.txt", n=10000):
os.makedirs(os.path.dirname(output_path), exist_ok=True)

ds = load_dataset(
"wikimedia/wikipedia",
"20231101.en",
split=f"train[:{n}]"
)

with open(output_path, "w", encoding="utf-8") as f:
for item in ds:
text = item["text"]

text = clean_text(text)

f.write(text + "\n")

print(f"Saved {n} articles to:", output_path)

if __name__ == "__main__":
save_wiki_subset()
Теперь я понимаю основную идею того, как работает BPE, но я не могу понять, каким должен быть корпус. Должна ли это быть целая строка из дампа Википедии или просто слова (но тогда я пропускаю " " и заменяю ее на "U+0120"), или корпус должен представлять собой массив всех символов?

Вернуться в «Python»