Zpracování přirozeného jazyka (NLP)
Zpracování přirozeného jazyka (Natural Language Processing – NLP) je klíčová a extrémně rychle se rozvíjející disciplína na pomezí informatiky, umělé inteligence (AI) a počítačové lingvistiky. Jejím cílem je naučit počítače číst, analyzovat, chápat a generovat lidský jazyk (ať už psaný text, nebo mluvené slovo) způsobem, který je smysluplný a užitečný.
Zatímco tradiční programování vyžaduje striktní a jednoznačnou syntaxi (jako C++ nebo Python), lidský jazyk je plný nejednoznačností, dvojsmyslů, sarkasmu, idiomů a gramatických výjimek. NLP je mostem, který převádí tento „chaotický“ lidský projev do strukturovaných dat, kterým dokáže algoritmus porozumět.
Dvě hlavní poddisciplíny NLP
Proces komunikace se dělí na porozumění a tvorbu. Stejně tak se NLP historicky dělí na dvě hlavní větve:
- NLU (Natural Language Understanding – Porozumění jazyku): Zaměřuje se na čtení s porozuměním. Počítač analyzuje text a extrahuje z něj význam, záměr uživatele (intent) a entity. Zjišťuje odpověď na otázku: „Co se mi tento text snaží říct?“
- NLG (Natural Language Generation – Generování jazyka): Zaměřuje se na tvorbu textu. Na základě strukturovaných dat nebo předchozího kontextu počítač formuluje plynulé, gramaticky správné a logické věty. Názorným příkladem NLG je odpověď od ChatGPT.
Základní techniky a kroky zpracování (NLP Pipeline)
Než může starší analytický model nebo vyhledávač z textu něco vyvodit, musí surový text projít sekvencí úprav, takzvanou NLP Pipeline. Zde jsou nejčastější kroky:
- Tokenizace (Tokenization): Rozsekání dlouhého textu na nejmenší smysluplné jednotky – takzvané tokeny. Obvykle to znamená rozdělení věty na jednotlivá slova a interpunkční znaménka.
- Odstranění stop-slov (Stop words removal): Odfiltrování slov, která nemají téměř žádný sémantický význam a vyskytují se v textu příliš často (např. spojky a předložky jako „a“, „ale“, „se“, „v“, „na“). Tím se ušetří výpočetní výkon.
- Lematizace a Stemming: Převod slov na jejich základní tvar. Stemming hrubě oseká předpony a přípony (např. „rybářům“ → „ryb“), zatímco sofistikovanější Lematizace bere v potaz slovník a převede slovo na jeho kořen (např. „byl“ → „být“).
- Určování slovních druhů (POS Tagging): Algoritmus u každého tokenu určí, zda se jedná o podstatné jméno, sloveso, přídavné jméno atd. To je klíčové pro pochopení kontextu věty.
- Rozpoznávání jmenných entit (NER – Named Entity Recognition): Identifikace a kategorizace klíčových prvků v textu. Systém najde v textu jména osob, názvy firem, lokace, data nebo finanční částky (např. „Brno“ → [LOKACE], „Apple“ → [ORGANIZACE]).
Evoluce přístupů k NLP
Technologie NLP prošla od svých počátků obrovskou revolucí. Změnil se způsob, jakým počítače jazyk chápou.
1. Pravidlové systémy (50. – 80. léta)
Systémy založené na tvrdě nakódovaných gramatických pravidlech (if-then-else) a rozsáhlých slovnících, které tvořili lingvisté.
- Příklad: První chatbot ELIZA (1966), který fungoval jen na hledání klíčových slov a jejich mechanickém obracení do otázek.
- Nevýhoda: Lidský jazyk je příliš složitý, výjimky nelze pokrýt pravidly.
2. Statistické NLP (90. léta – 2010)
Nástup strojového učení (Machine Learning). Namísto psaní pravidel lingvisty se do počítače nahrály obrovské databáze textů (korpusy). Algoritmy (např. Naivní Bayes, Skryté Markovovy modely) počítaly pravděpodobnost, s jakou se slova vyskytují vedle sebe. Tímto způsobem fungovaly první úspěšné spam filtry.
3. Hluboké učení a Word Embeddings (2010 – 2017)
Počítače začaly využívat neuronové sítě a reprezentovat slova jako složité vektory v mnohorozměrném matematickém prostoru (technologie Word2Vec). Počítač sice nechápe význam slova „Král“, ale ví, že z matematického hlediska k němu má blízko „Muž“ a „Trůn“. Umožnilo to řešit matematické rovnice typu: Král - Muž + Žena = Královna.
4. Transformery a Velké jazykové modely (LLM) (2017 – současnost)
Zlomový okamžik přišel v roce 2017 s architekturou Transformer (vytvořenou společností Google). Tento algoritmus zavedl mechanismus „Self-Attention“ (Pozornost). Prohlíží celou větu najednou (nikoliv slovo po slovu) a určuje, jaké slovo souvisí s jakýmkoli jiným slovem v textu, i když jsou daleko od sebe. Na této technologii stojí moderní giganti jako rodina modelů GPT (OpenAI) nebo BERT (Google).
Praktické využití NLP
S prvky NLP se dnes setkáváme prakticky neustále:
- Strojový překlad (Machine Translation): Nástroje jako Google Translate nebo DeepL, které plynule překládají celé věty při zachování kontextu.
- Analýza sentimentu: Firmy automaticky skenují miliony tweetů a uživatelských recenzí, aby zjistily, zda se o jejich nové službě mluví pozitivně, negativně, nebo neutrálně.
- Extrakce informací a sumarizace: Lékařský software, který přečte 500stránkový chorobopis a vytáhne z něj do úhledné tabulky pouze podané léky a naměřený krevní tlak, nebo vygeneruje stručné jednostránkové shrnutí.
- Hlasoví asistenti: Siri, Alexa a Google Assistant využívají NLU pro pochopení mluveného příkazu a NLG pro vygenerování hlasové odpovědi.
Srovnání NLP přístupů
| Metoda | Doba největší slávy | Jak se systém učí? | Největší slabina | Typické nasazení |
|---|---|---|---|---|
| Pravidlová | 80. léta | Lingvista manuálně píše regex a gramatická IF/THEN pravidla | Extrémně nepružné, nezvládá slang a překlepy | Extrakce formátovaných dat (např. rodných čísel) |
| Statistická | Nulté roky | Počítá četnost a pravděpodobnost slov ve velkém textu (TF-IDF) | Chybí hlubší chápání kontextu a synonym | Detekce SPAMu v e-mailu |
| Transformery (LLM) | 2017 a dále | Pozornost (Self-Attention) a trénink na téměř celém internetu | Hardwarově extrémně náročné, občasné „halucinace“ (vymýšlení si) | ChatGPT, DeepL, Copilot |
