deci, înainte de a crea încorporări de cuvinte care creează reprezentări de semnificație ale cuvintelor și reduce dimensionalitatea, cum creăm un vocabular bun care surprinde o parte din esență în limba noastră. Există limbi diferite în întreaga lume și structură diferită pentru fiecare limbă. Limbi aglutinative precum aglutinarea turcă (adăugați deasupra) fiecărui cuvânt pentru a crea un alt sens din același cuvânt inițial. Similar, în engleză, partea sufixului smart-est este est unde poate fi folosit în multe cuvinte.
de exemplu, în vocabularul nostru s – ar putea să nu avem cuvântul cel mai tare, dar ar putea avea cuvântul tare atunci când tokenizes ca tare-Est încorporarea token va avea o reprezentare a est, astfel încât acesta va avea o informație pentru cuvântul cel mai tare.
la copil are loc și o structură similară. Un copil nu are nevoie să audă fiecare cuvânt și forma lor de plural pentru a înțelege. După ce a auzit o mulțime de forme plurale de Obiect, cum ar fi mașini, albine și alte obiecte, creierul copilului îl structurează într-un mod în care, atunci când un copil știe ce este o pălărie, nu are nevoie să audă cuvântul pălării pentru a-l folosi. Modelele lingvistice ar trebui, de asemenea, să tokenizeze mecanismul structural al vocabularului nostru.
BPE are două avantaje pe care le știu cum să se ocupe cu cuvinte necunoscute și poate deduce sensul de cuvinte necunoscute
cum funcționează
avem nevoie de un fișier care este un bun reprezentant al limbii pe care încercați să tokenize.
- sunați la .fișierul txt împarte fiecare cuvânt în șir și adaugă </w> la sfârșitul fiecărui cuvânt. Creați un dicționar de frecvență a cuvintelor.
2. Creați o funcție care primește vocabularul și în fiecare cuvânt din vocabular împărțiți fiecare cuvânt în caractere și creați un dicționar de frecvență al celor mai multe caractere împerecheate.
3. În timpul procesului nostru de instruire vom continua să ne actualizăm vocabularul. Funcția merge_vocabulary va primi vechiul dicționar de vocabular și îl va actualiza cu cea mai frecventă pereche de caractere.
4. Get token – uri vor fi folosite mai târziu pentru a tokenize intrări siruri de caractere
crearea vocabularului
deci, după alimentarea vocabularul nostru inițial și frecvența cuvintelor. Vom crea o buclă care va crea tokenizarea din vocabular. Fiecare iterație se va găsi caracterul care apare împreună și adăugați-le la vocabularul.
În exemplu, să spunem că vocabularul nostru este
- adăugăm sfârșitul cuvântului token
- jetoanele inițiale vor fi
- mergem la vocabular și verificăm bigramele și numărăm frecvența bigramelor în acest caz este”r”și”</w> ‘actualizăm dicționarul token
- adăugăm noul caracter vocabularului nostru’ R</w> ‘
tu decizi câte iterații ar trebui să aibă loc. Poate fi 10.000 sau 100.000. Tu decizi ce ar trebui să fie dimensiunea de vocabular.
codare și decodare
pentru a codifica propoziția dată mai întâi trebuie să convertim dicționarul nostru token de la cel mai lung cuvânt la cel mai scurt cuvânt. Adăugăm împărțit fiecare cuvânt în propoziție și adăugăm </w> la sfârșitul cuvântului. Iterăm prin fiecare jeton și dacă subșirul cuvântului include jetonul, punem acel jeton ca proces de tokenizare. Decodarea este dată jetoanele noastre fuzionăm cuvântul nu avem </w> și adăugăm ” dacă cuvântul are </w> la sfârșit.