Przetwarzanie Języka Naturalnego (NLP)


1. Wprowadzenie: Czym jest NLP?

Przetwarzanie Języka Naturalnego (NLP) to dziedzina sztucznej inteligencji, która skupia się na enabling komputerów do rozumienia, interpretowania i generowania języka ludzkiego w sposób użyteczny i znaczący.

Główny paradoks NLP polega na tym, że język jest dla ludzi naturalny i intuicyjny, ale dla komputera – który operuje na liczbach – jest niezwykle złożony, niejednoznaczny i pełen ukrytych znaczeń.


2. Jak komputer „rozumie” tekst? Od słów do liczb

Komputer nie rozumie słów tak jak człowiek. Dla niego słowo "kot" to nie futrzaste zwierzę, a ciąg bajtów. Aby komputer mógł "przetwarzać" tekst, musi zostać on przekształcony w formę numeryczną.

Kroki od tekstu do zrozumienia:

  • Tokenizacja (Segmentacja):

    • Co to jest? Proces dzielenia ciągu tekstowego na pojedyncze, mniejsze jednostki, called tokeny.
    • Przykład: Zdanie "Koty to wspaniałe zwierzęta." po tokenizacji może stać się listą: ["Koty", "to", "wspaniałe", "zwierzęta", "."]
    • Tokenami mogą być pojedyncze słowa, pary słów (bigramy), a nawet części słów (subword tokenization, używane w modelach jak BERT).
  • Budowanie słownika (Vocabulary):

    • Co to jest? Tworzymy unikalny zbiór wszystkich tokenów występujących w naszym datasetcie. Każdemu tokenowi przypisujemy unikalny indeks (liczbę całkowitą).
    • Przykład: Słownik: {"[PAD]": 0, "[UNK]": 1, "koty": 2, "to": 3, "wspaniałe": 4, "zwierzęta": 5, ".": 6, ...}
    • [PAD] to token używany do uzupełniania sekwencji do tej samej długości.
    • [UNK] (unknown) to token reprezentujący słowa nieznane, niewystępujące w słowniku.
  • Kodowanie indeksowe (Index Encoding):

    • Co to jest? Zamieniamy tokeny w tekście na ich numeryczne indeksy ze słownika.
    • Przykład: Zdanie "Koty to wspaniałe zwierzęta." zamienia się w ciąg liczb: [2, 3, 4, 5, 6].
    • Problem: Ta reprezentacja jest uboga w informację. Liczby 2, 3, 4... nie niosą żadnego znaczenia semantycznego. Są jedynie symbolicznymi etykietami. System nie wie, że słowa "koty" i "zwierzęta" są semantycznie bliższe niż "koty" i "samochody".

To prowadzi nas do kluczowego przełomu w NLP: embeddingów słów.


3. Embeddingi słów (Word Embeddings) – Reprezentacja ze znaczeniem

  • Co to jest? To technika, w której każde słowo jest reprezentowane przez gęsty wektor (array) liczb zmiennoprzecinkowych w przestrzeni o wielu wymiarach (np. 50, 100, 300 wymiarów). Każdy wymiar reprezentuje ukrytą, abstrakcyjną cechę słowa.
  • Cel: Odwzorowanie semantycznych i syntaktycznych relacji między słowami w strukturze geometrycznej wektorów.
  • Zasada: Słowa używane w podobnym kontekście mają podobne znaczenie i, co za tym idzie, podobne wektory embeddingowe.

Słynna Analogia: "Król - Mężczyzna + Kobieta = Królowa" Dobre embeddingi przechwytują takie relacje. Wektor dla słowa "król" pomniejszony o wektor "mężczyzna" i powiększony o wektor "kobieta" daje w wyniku wektor bardzo bliski wektorowi "królowa".

Jak to działa? * Word2Vec, GloVe: Wcześniejsze metody. Uczyły się embeddingów na podstawie dużych korpusów tekstu, przewidując słowo na podstawie sąsiadów (lub na odwrót). * Intuicja: "Powiedz mi, z kim przystajesz, a powiem ci, kim jesteś" – znaczenie słowa definiuje się poprzez jego sąsiedztwo w tekście.

Dlaczego to takie ważne? Embeddingi zamieniają słowa z "gołych" indeksów (np. kot = 421) na bogate w informację reprezentacje numeryczne (np. kot = [0.25, -0.72, 0.66, ..., 0.02]), które doskonale nadają się jako dane wejściowe dla sieci neuronowych. Są fundamentem nowoczesnego NLP.


4. Sekwencje i modele sekwencyjne

Język jest z natury sekwencyjny – kolejność słów ma fundamentalne znaczenie dla sensu wypowiedzi.

  • Zdanie "Pies goni kota" ma zupełnie inne znaczenie niż "Kota goni pies".

Tradycyjne sieci neuronowe (np. gęsto połączone) radzą sobie z tym słabo, ponieważ traktują dane wejściowe jako nieuporządkowany zbiór. Nie pamiętają one kolejności.

Rozwiązanie: Modele zaprojektowane specjalnie dla danych sekwencyjnych

  • Rekurencyjne Sieci Neuronowe (RNN - Recurrent Neural Networks):

    • Idea: Posiadają pętlę lub stan ukryty, który działa jak "pamięć" sieci. Informacja z przetworzonego wcześniej słowa w sekwencji jest przekazywana do obliczeń dla słowa następnego.
    • Problemy: Cierpią na problem zanikającego gradientu. Z trudnością uczą się długoterminowych zależności w długich sekwencjach (np. między pierwszym a ostatnim zdaniem akapitu).
  • Sieci LSTM (Long Short-Term Memory) i GRU (Gated Recurrent Unit):

    • Idea: Specjalny, bardziej zaawansowany typ RNN. Posiadają mechanizm "bramek" (gates), który decyduje, jaką informację zapamiętać, a jaką zapomnieć.
    • Zaleta: Znakomicie radzą sobie z przechowywaniem informacji na długi czas i wychwytywaniem dalekosiężnych zależności.
  • Transformery (Transformers) – Nowy król NLP:

    • Idea: Architektura, która porzuca rekurencję na rzecz mechanizmu *samouwagi (Self-Attention)*..
    • Jak to działa? Mechanizm samouwagi pozwala każdemu słowu w sekwencji "patrzeć" na wszystkie inne słowa i "decydować", na których powinno się najbardziej skupić, aby lepiej się zakodować.
    • Przykład: Przetwarzając słowo "bank" w zdaniu "Usiadł na brzegu rzeki i poszedł do banku", model dzięki samo uwadze może stwierdzić: "Słowo rzeki jest bardzo ważne dla rozstrzygnięcia, że chodzi o brzeg (bank ziemny), a nie instytucję finansową (bank finansowy)".
    • Zaleta: Znacznie lepsze przechwytywanie kontekstu, massive równoległość obliczeń (szybsze uczenie) i nieograniczony zasięg zależności. To na transformatorach oparte są modele jak GPT, BERT czy T5.

Podsumowanie przetwarzania sekwencji: Od RNN, przez LSTM, do Transformers – ewolucja szła w kierunku coraz lepszego radzenia sobie z kontekstem i długimi zależnościami w tekście.

Zastosowania NLP:

  • Tłumaczenie maszynowe (Google Translate)
  • Chatboty i asystenci głosowi (ChatGPT, Siri, Alexa)
  • Analiza sentimentu (np. wykrywanie negatywnych komentarzy)
  • Podsumowywanie tekstu
  • Korekta gramatyczna i autouzupełnianie
  • Wyszukiwanie semantyczne (wyszukiwanie według znaczenia, a nie tylko słów kluczowych)