Kaj je leksikalna analiza?

Leksikalna analiza je postopek, pri katerem vzamemo niz znakov – ali, bolj preprosto, besedilo – in ga pretvorimo v smiselne skupine, imenovane žetoni. Ta metodologija se uporablja v najrazličnejših aplikacijah, od tolmačenja računalniških jezikov do analize knjig. Leksikalna analiza ni sinonim za razčlenjevanje; temveč je prvi korak celotnega procesa razčlenjevanja in ustvarja surovino za kasnejšo uporabo.

Gradnike žetonov, imenovanih tudi leksemi, je mogoče ustvariti na več načinov, odvisno od slovnice, potrebne za leksikalno analizo. Pogost primer tega je delitev stavkov po besedah; to se pogosto naredi z delitvijo stavkov po presledkih. Vsak neprekinjen niz znakov, ustvarjen brez presledkov, je leksem. Besedilne nize je mogoče razdeliti na eno ali več vrst znakov, kar ustvarja več različic leksemov z različno kompleksnostjo. Žetoni se generirajo, ko je vsak leksem ovrednoten in seznanjen z ustrezno vrednostjo; po definiciji se žetoni nanašajo na to združevanje, ne le na leksem.

Leksikalna analiza, nekoliko protiintuitivno, odstrani besedilni niz iz njegovega konteksta. Njegov namen je samo ustvariti gradnike za nadaljnje študije, ne pa ugotoviti, ali so ti deli veljavni ali neveljavni. V primeru interpretacije računalniškega jezika se validacija opravi z analizo sintakse, preverjanje besedila pa se lahko izvede glede na kontekst ali vsebino. Če je vhodni niz v celoti razdeljen na ustrezne lekseme in ima vsak od teh leksemov ustrezno vrednost, se analiza šteje za uspešno.

Brez konteksta ali zmožnosti izvajanja validacije leksikalne analize ni mogoče zanesljivo uporabiti za iskanje napak pri vnosu. Leksikalna slovnica ima lahko vrednosti napak, dodeljene določenim leksemom, in takšna analiza lahko odkrije tudi nezakonite ali napačno oblikovane žetone. Čeprav odkrivanje nezakonitega ali napačno oblikovanega žetona signalizira neveljaven vnos, ne vpliva na to, ali so drugi žetoni veljavni, zato ni strogo vrsta preverjanja veljavnosti.

Čeprav je leksikalna analiza sestavni del številnih algoritmov, jo je treba pogosto uporabljati v povezavi z drugimi metodologijami za ustvarjanje smiselnih rezultatov. Če na primer razdelite besedilni niz na besede, da določite frekvence, se uporablja ustvarjanje leksema, vendar samo ustvarjanje leksema ne more spremljati, kolikokrat se določen leksem pojavi v vhodu. Leksikalna analiza bi lahko bila uporabna sama po sebi, če so omembe sami leksemi, vendar lahko velike količine vhodnih podatkov otežijo analizo neobdelanih leksemov zaradi količine podatkov.