Co to jest analiza leksykalna?

Analiza leksykalna to proces polegający na wzięciu ciągu znaków — lub prościej tekstu — i przekształceniu go w znaczące grupy zwane tokenami. Metodologia ta ma wiele zastosowań, od tłumaczenia języków komputerowych po analizę książek. Analiza leksykalna nie jest równoznaczna z parsowaniem; jest raczej pierwszym etapem całego procesu parsowania i tworzy surowiec do późniejszego wykorzystania.

Bloki budulcowe tokenów, zwane również leksemami, można generować na wiele sposobów, w zależności od gramatyki wymaganej do analizy leksykalnej. Typowym tego przykładem jest dzielenie zdań na słowa; często robi się to poprzez dzielenie zdań wokół spacji. Każdy ciągły ciąg znaków generowany bez spacji jest leksemem. Ciągi tekstowe można podzielić na jeden lub wiele rodzajów znaków, tworząc wiele wersji leksemów o różnej złożoności. Tokeny są generowane po ocenie każdego leksemu i sparowaniu z odpowiadającą mu wartością; z definicji tokeny odnoszą się do tego parowania, a nie tylko do leksemu.

Analiza leksykalna, nieco sprzecznie z intuicją, wydziera ciąg tekstowy z kontekstu. Jego celem jest jedynie generowanie bloków budulcowych do dalszych badań, a nie ustalenie, czy te elementy są ważne czy nieważne. W przypadku interpretacji języka komputerowego walidację przeprowadza się za pomocą analizy składni, a walidację tekstu można przeprowadzić pod względem kontekstu lub treści. Jeśli ciąg wejściowy jest całkowicie podzielony na odpowiednie leksemy i każdy z tych leksemów ma odpowiednią wartość, analizę uznaje się za udaną.

Bez kontekstu lub możliwości przeprowadzenia walidacji analiza leksykalna nie może być wiarygodnie wykorzystywana do znajdowania błędów w danych wejściowych. Gramatyka leksykalna może mieć wartości błędów przypisane do określonych leksemów, a taka analiza może również wykryć niedozwolone lub zniekształcone tokeny. Chociaż znalezienie niedozwolonego lub zniekształconego tokena sygnalizuje nieprawidłowe dane wejściowe, nie ma to wpływu na to, czy inne tokeny są prawidłowe, a zatem nie jest to ściśle rodzaj walidacji.

Chociaż analiza leksykalna jest integralną częścią wielu algorytmów, często musi być używana w połączeniu z innymi metodologiami, aby uzyskać sensowne wyniki. Na przykład dzielenie ciągu tekstowego na słowa w celu określenia częstotliwości wykorzystuje tworzenie leksemów, ale samo tworzenie leksemów nie może monitorować, ile razy dany leksem pojawia się na wejściu. Analiza leksykalna może być użyteczna sama w sobie, jeśli same leksemy są warte uwagi, ale duże ilości danych wejściowych mogą utrudnić analizę surowych leksemów ze względu na ilość danych.