Ce este analiza lexicală?

Analiza lexicală este procesul prin care se ia un șir de caractere – sau, mai simplu, text – și îl transformă în grupuri semnificative numite jetoane. Această metodologie are utilizări într-o mare varietate de aplicații, de la interpretarea limbajelor de calculator până la analiza cărților. Analiza lexicală nu este sinonimă cu analizarea; mai degrabă, este primul pas al procesului total de analiză și creează materie primă pentru utilizare ulterioară.

Blocurile de bază ale jetoanelor, numite și lexeme, pot fi generate în mai multe moduri, în funcție de gramatica necesară analizei lexicale. Un exemplu comun în acest sens este împărțirea propozițiilor în cuvinte; acest lucru se face frecvent prin împărțirea propozițiilor în jurul spațiilor. Fiecare șir continuu de caractere generat fără spații este un lexem. Șirurile de text pot fi împărțite pe unul sau mai multe tipuri de caractere, creând versiuni multiple de lexeme cu complexitate diferită. Jetoanele sunt generate după ce fiecare lexem a fost evaluat și asociat cu valoarea corespunzătoare; prin definiție, jetoanele se referă la această împerechere, nu doar la lexem.

Analiza lexicală, oarecum contra-intuitiv, scoate un șir de text din contextul său. Scopul său este doar de a genera blocuri de construcție pentru studii ulterioare, nu de a determina dacă acele piese sunt valide sau invalide. În cazul interpretării limbajului computerizat, validarea se face prin analiză de sintaxă, iar validarea textului se poate face din punct de vedere al contextului sau al conținutului. Dacă un șir de intrare este complet împărțit în lexeme adecvate și fiecare dintre acele lexeme are o valoare adecvată, analiza este considerată a fi de succes.

Fără context sau capacitatea de a efectua validarea, analiza lexicală nu poate fi utilizată în mod fiabil pentru a găsi erori în introducere. O gramatică lexicală poate avea valori de eroare atribuite unor lexeme specifice, iar o astfel de analiză poate detecta, de asemenea, indicative ilegale sau malformate. Deși găsirea unui token ilegal sau malformat semnalează o intrare invalidă, nu are nicio legătură asupra faptului că celelalte simboluri sunt valide și, prin urmare, nu este strict un tip de validare.

Deși analiza lexicală este o parte integrantă a multor algoritmi, ea trebuie adesea folosită împreună cu alte metodologii pentru a crea rezultate semnificative. De exemplu, împărțirea unui șir de text în cuvinte pentru a determina frecvențele folosește crearea de lexem, dar numai crearea de lexem nu poate monitoriza de câte ori un anumit lexem apare în intrare. Analiza lexicală ar putea fi utilă singură dacă lexemele în sine sunt de remarcat, dar cantitățile mari de input ar putea face dificilă analiza lexemelor brute din cauza volumului de date.