więc zanim stworzymy osadzenie słów, które tworzy reprezentacje znaczeniowe słów i zmniejsza wymiarowość, jak stworzyć dobre słownictwo, które uchwyci część istoty w naszym języku. Istnieją różne języki na całym świecie i inna struktura dla każdego języka. Języki aglutynacyjne, takie jak turecki, aglutynują (dodają na górze) każde słowo, aby utworzyć inne znaczenie z tego samego początkowego słowa. Podobnie, w języku angielskim, przyrostkiem smart-est jest est, gdzie można go używać w wielu słowach.
na przykład, w naszym słownictwie możemy nie mieć słowa loudest, ale może mieć słowo loud, gdy tokenizuje jako loud – est osadzenie tokena będzie miało reprezentację est, więc będzie miało informację o słowie loudest.
u dziecka również zachodzi podobna struktura. Dziecko nie musi słyszeć każdego słowa i ich liczby mnogiej, aby zrozumieć. Po usłyszeniu wielu form liczby mnogiej przedmiotów, takich jak samochody, pszczoły i inne przedmioty, mózg dziecka strukturyzuje go w taki sposób, że gdy dziecko wie, czym jest kapelusz, nie musi słyszeć słowa kapelusze, aby go użyć. Modele językowe powinny również tokenizować mechanizm strukturalny naszego słownictwa.
BPE ma dwie zalety, potrafi radzić sobie z nieznanymi słowami i może wywnioskować znaczenie z nieznanych słów
jak to działa
potrzebujemy pliku, który jest dobrym przedstawicielem języka, który próbujesz tokenizować.
- zadzwoń .plik txt dzieli każde słowo w łańcuchu i dodaje </w> na koniec każdego słowa. Tworzenie słownika częstotliwości wyrazów.
2. Utwórz funkcję, która pobiera słownictwo i w każdym słowie w słownictwie dzieli każde słowo na znaki i tworzy słownik częstotliwości większości sparowanych znaków.
3. Podczas szkolenia będziemy na bieżąco aktualizować nasze słownictwo. Funkcja merge_vocabulary otrzyma Stary słownik słownictwa i zaktualizuje go o najczęstszą parę znaków.
4. Tokeny Get będą później używane do tokenizacji wejściowych łańcuchów
Tworzenie słownictwa
więc po podaniu początkowego słownictwa i częstotliwości słów. Stworzymy pętlę, która stworzy tokenizację ze słownictwa. Każda iteracja znajdzie postać, która występuje razem i doda je do słownictwa.
w przykładzie powiedzmy, że nasze słownictwo to
- dodajemy nasz token końca słowa
- początkowe tokeny będą
- przechodzimy do słownictwa i sprawdzamy bigramy i liczymy częstotliwość bigramów w tym przypadku jest to 'r’ I '</w>’ aktualizujemy słownik tokenów
- dodajemy nowy znak do naszego słownika 'r</w>’
Ty decydujesz, ile iteracji powinno się to odbyć. Może to być 10.000 lub 100.000. Ty decydujesz, jaki powinien być twój rozmiar słownictwa.
kodowanie i dekodowanie
aby zakodować podane zdanie najpierw musimy przekonwertować nasz słownik tokenowy z najdłuższego słowa na najkrótsze słowo. Dodajemy split każde słowo w zdaniu i dodajemy </w> na koniec słowa. Iterujemy przez każdy token i jeśli podłańcuch słowa zawiera token, umieszczamy go jako proces tokenizacji. Dekodowanie jest podane nasze tokeny łączymy słowo nie ma </w> I dodać”, jeśli słowo ma </w> na końcu.