Mis on leksikaalne analüüs?

Leksikaalne analüüs on protsess, mille käigus võetakse tähemärkide jada – või lihtsamalt öeldes tekst – ja teisendatakse see tähenduslikeks rühmadeks, mida nimetatakse märgideks. Seda metoodikat kasutatakse paljudes rakendustes, alates arvutikeelte tõlgendamisest kuni raamatute analüüsini. Leksikaalne analüüs ei ole parsimise sünonüüm; pigem on see kogu sõelumisprotsessi esimene samm ja see loob tooraine hilisemaks kasutamiseks.

Märkide ehitusplokke, mida nimetatakse ka lekseemideks, saab genereerida mitmel viisil, olenevalt leksikaalseks analüüsiks vajalikust grammatikast. Selle levinud näide on lausete poolitamine sõnade järgi; seda tehakse sageli lausete jagamisel tühikute ümber. Iga ilma tühikuteta loodud pidev märgijada on lekseem. Tekstistringe saab jagada ühte või mitut tüüpi tähemärkide järgi, luues lekseemidest mitu erineva keerukusega versiooni. Märgid genereeritakse pärast seda, kui iga lekseem on hinnatud ja seostatud vastava väärtusega; definitsiooni järgi viitavad märgid sellele sidumisele, mitte ainult lekseemile.

Leksikaalne analüüs, mõnevõrra intuitiivselt vastuolus, eemaldab tekstistringi oma konteksti. Selle eesmärk on ainult luua ehitusplokke edasiseks uurimiseks, mitte teha kindlaks, kas need osad on kehtivad või kehtetud. Arvutikeele tõlgenduse puhul toimub valideerimine süntaksianalüüsiga ning teksti valideerimine võib toimuda konteksti või sisu osas. Kui sisendstring on täielikult jagatud sobivateks lekseemideks ja igal lekseemil on sobiv väärtus, loetakse analüüs edukaks.

Ilma konteksti või valideerimise võimaluseta ei saa leksikaalanalüüsi usaldusväärselt kasutada sisendis vigade leidmiseks. Leksikaalses grammatikas võivad olla konkreetsetele lekseemidele määratud veaväärtused ja selline analüüs võib tuvastada ka ebaseaduslikke või valesti vormindatud märke. Ehkki ebaseadusliku või valesti vormindatud märgi leidmine annab märku kehtetust sisendist, ei mõjuta see seda, kas teised märgid on kehtivad, ja seega ei ole see rangelt valideerimise tüüp.

Kuigi leksikaalne analüüs on paljude algoritmide lahutamatu osa, tuleb seda tähenduslike tulemuste loomiseks sageli kasutada koos teiste metoodikatega. Näiteks tekstistringi sõnadeks jagamisel sageduste määramiseks kasutatakse lekseemide loomist, kuid lekseemi loomine üksi ei saa jälgida, mitu korda konkreetne lekseem sisendis ilmub. Leksikaalne analüüs võib olla iseenesest kasulik, kui lekseemid ise on tähelepanuväärsed, kuid suured sisendmahud võivad andmemahu tõttu muuta töötlemata lekseemide analüüsi keeruliseks.