Co to jest analiza leksykalna?
Analiza leksykalna polega na pobieraniu ciągu znaków - lub prościej - tekstu - i przekształcaniu go w znaczące grupy zwane tokenami. Metodologia ta znajduje zastosowanie w wielu różnych aplikacjach, od tłumaczenia języków komputerowych po analizę książek. Analiza leksykalna nie jest równoznaczna z analizą; jest raczej pierwszym krokiem całego procesu analizowania i tworzy surowiec do późniejszego wykorzystania.
Elementy składowe 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 odbywa się to poprzez dzielenie zdań wokół spacji. Każdy ciąg znaków generowany bez spacji jest leksemem. Ciągi tekstowe można podzielić na jeden lub wiele typów znaków, tworząc wiele wersji leksemów o różnym stopniu złożoności. Tokeny są generowane po ocenie każdego leksemu i sparowaniu z odpowiednią wartością; z definicji tokeny odnoszą się do tej pary, a nie tylko leksemu.
Analiza leksykalna, nieco sprzeczna z intuicją, usuwa ciąg tekstowy z jego kontekstu. Jego celem jest jedynie generowanie bloków konstrukcyjnych do dalszych badań, a nie ustalanie, czy te elementy są ważne, czy nieważne. W przypadku interpretacji języka komputerowego sprawdzanie poprawności odbywa się poprzez analizę składni, a sprawdzanie poprawności tekstu może odbywać się w kontekście 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 pomyślną.
Bez kontekstu i możliwości przeprowadzenia walidacji analiza leksykalna nie może być niezawodnie wykorzystana do znalezienia błędów na wejściu. Gramatyka leksykalna może mieć przypisane wartości błędów do określonych leksemów, a taka analiza może również wykryć niedozwolone lub źle sformułowane tokeny. Chociaż znalezienie nielegalnego lub źle sformułowanego tokena sygnalizuje nieprawidłowe wejście, nie ma ono wpływu na to, czy inne tokeny są prawidłowe, a zatem nie jest to ściśle rodzaj sprawdzania poprawności.
Chociaż analiza leksykalna jest integralną częścią wielu algorytmów, często musi być stosowana w połączeniu z innymi metodologiami w celu uzyskania znaczących wyników. Na przykład podzielenie ciągu tekstowego na słowa w celu ustalenia częstotliwości wykorzystuje tworzenie leksemu, ale samo tworzenie leksemu nie może monitorować liczby pojawień się danego leksemu na wejściu. Analiza leksykalna może być przydatna sama w sobie, jeśli same leksemy są godne uwagi, ale duże ilości danych wejściowych mogą utrudnić analizę surowych leksemów ze względu na ilość danych.