så før vi opretter ordindlejringer, der skaber meningsrepræsentationer af ord og reducerer dimensionalitet, hvordan skaber vi et godt ordforråd, der fanger noget af essensen på vores sprog. Der er forskellige sprog rundt om i verden og forskellig struktur til hvert sprog. Agglutinative sprog som tyrkisk agglutinat (Tilføj øverst) af hvert ord for at skabe en anden betydning fra det samme oprindelige ord. Tilsvarende på engelsk er suffiksdelen af smart – est est, hvor den kan bruges i mange ord.
for eksempel kan vi i vores ordforråd ikke have ordet højest, men måske have ordet højt, når det tokeniserer som højt – est indlejring af token vil have en repræsentation af est, så det vil have en information til ordet højest.
i barn finder en lignende struktur også sted. Et barn behøver ikke at høre hvert ord og deres flertalsform for at forstå. Efter at have hørt masser af flertalsformer af objekt som biler, bier og andre objekter, strukturerer barnets hjerne det på en måde, hvor når et barn ved, hvad en hat er, behøver han/hun ikke at høre ordet hatte for at bruge det. Sprogmodeller bør også tilkendegive den strukturelle mekanisme i vores ordforråd.
BPE har to fordele, det ved, hvordan man skal håndtere ukendte ord og kan udlede mening fra ukendte ord
Hvordan virker det
Vi har brug for en fil, der er en god repræsentant for det sprog, som du forsøger at tilkendegive.
- ring til .tekstfil opdel hvert ord i strengen og tilføj </h> til slutningen af hvert ord. Opret en ordbog med ordfrekvens.
2. Opret en funktion, der får ordforråd og i hvert ord i ordforråd opdele hvert ord i tegn og skabe en frekvens ordbog over de fleste parrede tegn.
3. Under vores træningsproces vil vi fortsætte med at opdatere vores ordforråd. TH merge_vocabulary funktion vil få den gamle ordforråd ordbog og opdatere den med den hyppigste karakter par.
4. Få tokens vil blive brugt senere til at tilkendegive input strenge
oprettelse af ordforråd
så efter fodring vores oprindelige ordforråd og hyppigheden af ord. Vi vil skabe en løkke, der vil skabe tokenisering ud af ordforrådet. Hver iteration det finder det tegn, der opstår sammen, og tilføjer dem til ordforrådet.
I eksempel kan vi sige, at vores ordforråd er
- Vi tilføjer vores ende af ordtoken
- de oprindelige tokens vil være
- Vi går til vokaben og tjekker for bigrams og tæller frekvensen af bigrams i dette tilfælde er det ‘r’ og ‘</h>’ vi opdaterer tokenordbogen
- vi tilføjer det nye tegn til vores ordforråd ‘r</h>’
du bestemmer, hvor mange gentagelser dette skal finde sted. Det kan være 10.000 eller 100.000. Du bestemmer, hvad der skal være din ordforrådsstørrelse.
kodning og afkodning
for at kode den givne sætning skal vi først konvertere vores token ordbog fra længste ord til korteste ord. Vi tilføjer split hvert ord i sætningen og tilføjer </h> til slutningen af ordet. Vi gentager gennem hvert token, og hvis substring af ordet indeholder token, sætter vi det token som tokeniseringsproces. Afkodning gives vores tokens vi fusionerer ordet har ikke </h> og tilføj ” hvis ordet har </h> i slutningen.