Hvad er leksikalsk analyse?
Leksikalsk analyse er processen med at tage en streng med tegn - eller mere enkelt tekst - og konvertere den til meningsfulde grupper kaldet tokens. Denne metodik har anvendelser i en lang række applikationer, fra tolkning af computersprog til analyse af bøger. Leksikalsk analyse er ikke synonym med parsing; snarere er det det første trin i den samlede analyseproces, og det skaber råmateriale til senere brug.
Byggestenene af tokens, også kaldet lexemer, kan genereres på mange måder, afhængigt af den grammatik, der kræves til leksikalsk analyse. Et almindeligt eksempel på dette er opdeling af sætninger med ord; Dette gøres ofte ved at opdele sætninger omkring mellemrum. Hver kontinuerlig streng med tegn, der genereres uden mellemrum, er et leksem. Tekststrenge kan deles på en eller mange typer karakterer, hvilket skaber flere versioner af lexemer med varierende kompleksitet. Tokens genereres, efter at hvert lexeme er blevet evalueret og parret med dets tilsvarende værdi; pr. definition henviser tegn til denne parring, ikke kun lexeme.
Leksikalsk analyse striber en smule modintuitivt en tekststreng af dens kontekst. Dets formål er kun at generere byggesten til videre undersøgelse og ikke at afgøre, om disse stykker er gyldige eller ugyldige. I tilfælde af computersprogtolkning foretages validering ved syntaksanalyse, og validering af tekst kan udføres med hensyn til kontekst eller indhold. Hvis en inputstreng er helt opdelt i passende leksemer, og hver af disse leksemer har en passende værdi, betragtes analysen som en succes.
Uden kontekst eller evnen til at udføre validering kan leksikalsk analyse ikke pålideligt bruges til at finde fejl i input. En leksikalsk grammatik kan have fejlværdier, der er tildelt specifikke leksemaer, og en sådan analyse kan også registrere ulovlige eller misdannede tokens. Selvom det at finde et ulovligt eller misdannet token signaliserer ugyldig input, har det ingen betydning for, om de andre symboler er gyldige, og det er derfor ikke strengt en type validering.
Selvom leksikalsk analyse er en integreret del af mange algoritmer, skal den ofte bruges sammen med andre metoder til at skabe meningsfulde resultater. For eksempel bruger splitsning af en tekststreng i ord for at bestemme frekvenser brug af lexeme-oprettelse, men lexeme-oprettelse alene kan ikke overvåge antallet af gange, en bestemt lexeme vises i input. Leksikalsk analyse kan være nyttig på egen hånd, hvis lexeme i sig selv er opmærksomme, men store mængder input kan gøre analyse af rå lexeme vanskelig på grund af datamængden.