Parsování je proces, při kterém software rozebírá vstupní text na menší logické části a převádí ho do podoby, se kterou už dokáže dál pracovat. Bez parsování by počítače nedokázaly zpracovat zdrojový kód, JSON odpověď z API, e-mailovou hlavičku ani fakturu v PDF. V tomhle článku si vysvětlíme, co parsování je, jak funguje, kde se s ním v roce 2026 reálně setkáte a jak ho mění nástup velkých jazykových modelů.
Co je parsování a proč ho potřebujeme
Parsování (anglicky parsing, česky také syntaktická analýza) je proces, při kterém program přečte posloupnost znaků a rozpozná v ní strukturu podle předem daných pravidel. Výstupem je obvykle datový strom nebo strukturovaný objekt, se kterým může pracovat zbytek aplikace.
Slangový výraz „parsování“ pochází z anglického parsing a v informatice i lingvistice označuje totéž — analýzu posloupnosti formálních prvků s cílem určit jejich gramatickou strukturu vůči předem dané gramatice. Program, který tuhle úlohu vykonává, se nazývá parser nebo také syntaktický analyzátor.
Bez parsování by žádný moderní software nefungoval. Pokaždé, když prohlížeč načte webovou stránku, server zpracuje API požadavek nebo váš účetní systém přijme fakturu jako e-mail, někde v pozadí pracuje parser. Rozkládá data na bloky, které jsou pro počítač čitelné, a předává je dál ke zpracování.
Jednoduchý příklad: jak parser čte větu
Představte si větu „Pes štěká.“ Když ji člověk čte, automaticky chápe, že „pes“ je podmět a „štěká“ je přísudek. Parser musí udělat totéž — jen formálně. Nejdřív rozdělí text na jednotlivá slova (tokeny), pak podle pravidel jazyka přiřadí každému slovu roli a nakonec sestaví strom, který popisuje vztahy mezi nimi.
Stejný princip se používá u programovacích jazyků, JSON dat, XML souborů, URL adres, e-mailových adres, dat a časů, faktur, účtenek a v posledních letech i u dokumentů zpracovaných pomocí AI.
Jak parsování technicky funguje
Parsování není jeden krok, ale typicky dvě fáze, které jdou za sebou. Lexikální analýza rozdělí vstupní text na nejmenší stavební jednotky — tokeny. Syntaktická analýza z těchto tokenů sestaví strukturu (syntaktický strom) a zkontroluje, jestli odpovídá zadané gramatice.
Fáze 1: Lexikální analýza (tokenizace)
V první fázi program prochází vstupní text znak po znaku a rozděluje ho na tokeny. U programovacího jazyka to jsou identifikátory, čísla, klíčová slova, operátory a oddělovače. U JSON souboru jsou to závorky, dvojtečky, řetězce a hodnoty.
Tokenizér (lexer) typicky pracuje pomocí regulárních výrazů a konečných automatů. Výstupem je proud tokenů, který se předá další fázi.
Fáze 2: Syntaktická analýza
Druhá fáze sestavuje z tokenů strom podle pravidel gramatiky. Existují dvě základní strategie, jak na to.
- Analýza shora dolů (LL parser) — parser začíná u kořene gramatiky a postupně rozkládá pravidla na menší části, dokud se nedostane k samotnému textu. Příkladem je rekurzivní sestup, který se snadno píše ručně.
- Analýza zdola nahoru (LR parser) — parser začíná u jednotlivých tokenů a postupně skládá větší celky, dokud nedosáhne kořene. Tento přístup zvládne víc gramatik a používají ho generátory parserů jako Yacc nebo Bison.
Gramatika programovacího jazyka se obvykle popisuje pomocí Backus–Naurovy notace (BNF) nebo její rozšířené verze EBNF. Z tohoto formálního popisu pak parser generátor vytvoří hotový parser v cílovém jazyce.
Kde se s parsováním setkáte v praxi
Parsování zní akademicky, ale je to jeden z nejčastějších procesů v současném IT. Tady je přehled situací, kde se používá denně.
Kompilace a běh programů
Každý kompilátor a interpretr nejdřív zparsuje zdrojový kód. Bez toho by nemohl vytvořit spustitelný program ani vyhodnotit příkaz. Programovací jazyky se obvykle popisují deterministickými bezkontextovými gramatikami, pro které se dají vytvořit rychlé a efektivní parsery. Když napíšete chybnou syntax v Pythonu nebo v JavaScriptu, hláška „SyntaxError“ pochází právě z parseru.
Zpracování dat: JSON, XML, CSV
Pokaždé, když nějaká aplikace komunikuje s API, posílá nebo přijímá JSON. JSON je dnes de facto standardem pro výměnu dat na webu, protože se snadno parsuje, je kompaktní a čitelný i pro člověka. Téměř všechny moderní programovací jazyky mají vestavěnou podporu pro JSON parsing.
XML je starší formát, který se ale pořád drží v podnikových systémech, RSS kanálech, SOAP API a všude tam, kde je potřeba striktní validace dat podle schématu. K jeho parsování se používají specializované knihovny — v Pythonu třeba lxml nebo BeautifulSoup, v JavaScriptu zabudovaný DOMParser.
Web scraping a HTML parsování
Když potřebujete získat data z webu, který nenabízí API, použijete HTML parser. Knihovny jako BeautifulSoup, lxml nebo Cheerio dokážou rozebrat i nedokonale napsanou HTML stránku, najít v ní konkrétní elementy a extrahovat z nich text, odkazy nebo strukturovaná data.
V e-commerce se HTML parsování používá pro monitoring cen konkurence, sledování dostupnosti zboží, agregaci recenzí nebo sběr dat o produktech. V SEO se parsuje pro analýzu meta tagů, strukturovaných dat (Schema.org), interních odkazů a obsahové struktury stránky.
Zpracování e-mailů, faktur a dokumentů
V byznysu se parsování často používá pro automatizaci rutinních úkolů — třídění e-mailů, extrakci informací z faktur, zpracování objednávek nebo analýzu formulářů. E-mailový parser dokáže z příchozí pošty automaticky vytáhnout kontaktní údaje, čísla objednávek, částky nebo data a předat je dál do CRM nebo účetního systému.
PDF parsování je samostatná disciplína. Na rozdíl od HTML totiž PDF dokumenty nemají strukturovanou hierarchii — jsou to v podstatě řady znaků a obrázků rozmístěné na ploše stránky. Pro extrakci dat z PDF se používají specializované knihovny jako PyPDF, pdfplumber nebo komerční služby. V roce 2026 se v této oblasti čím dál častěji nasazují nástroje na bázi AI.
Parser generátory: nástroje, které píší parsery za vás
Psát parser ručně pro složitý jazyk je práce na týdny. Proto vznikly parser generátory — nástroje, kterým zadáte gramatiku a ony vygenerují kompletní zdrojový kód parseru.
- Yacc / Bison — klasická dvojice z unixového světa. Yacc (Yet Another Compiler Compiler) generuje LR parsery v jazyce C. Bison je jeho GNU implementace a stále se hojně používá ve výuce i v reálných kompilátorech.
- ANTLR 4 — moderní parser generátor, který umí generovat parsery v Javě, C#, Pythonu, JavaScriptu, Go a dalších jazycích. Oproti Yaccu používá výkonnější LL(*) algoritmus a separuje gramatiku od logiky zpracování, takže tutéž gramatiku můžete použít pro víc jazyků.
- JavaCC, SableCC, Tree-sitter — další specializované nástroje. Tree-sitter získal popularitu zejména v IDE a editorech jako Neovim nebo VS Code, kde slouží pro rychlou a inkrementální analýzu kódu.
Volba nástroje záleží na cílovém jazyce, výkonových požadavcích a tom, jestli potřebujete inkrementální parsování (typické pro editory) nebo single-pass kompilaci.
Jak AI a velké jazykové modely mění parsování v roce 2026
Tradiční parsery jsou rychlé, deterministické a spolehlivé, ale velmi rigidní. Stačí, aby zdrojová data nedodržela formát na jednom místě, a celé parsování selže. Právě tady přicházejí ke slovu velké jazykové modely (LLM) jako GPT, Claude nebo Gemini.
LLM dokážou číst nestrukturovaná data — naskenovaný PDF dokument, freeform e-mail, web bez konzistentní struktury — a převést je na strukturovaný výstup (typicky JSON) podle zadaného schématu. Tomuto přístupu se říká structured output extraction a v roce 2026 je to jedna z nejrychleji rostoucích aplikací AI v podnikovém prostředí.
Praktické případy použití
- Automatizace zpracování faktur — místo psaní specifických parserů pro každého dodavatele dostane LLM fakturu, schéma očekávaných polí (částka, IČO, splatnost) a vrátí strukturovaný JSON.
- Extrakce dat z klinických zpráv — studie publikovaná v lednu 2026 na pracovištích Cleveland Clinic ukázala, že LLM významně snižují čas, kognitivní zátěž a náklady spojené s extrakcí a čištěním nestrukturovaných dat.
- Web scraping s adaptací na změny — tradiční scrapery se rozbijí pokaždé, když web změní HTML strukturu. LLM-based scraper rozumí obsahu sémanticky a přežije i podstatné redesigny.
- Zpracování právních a regulačních dokumentů — extrakce klíčových informací z dlouhých textů, kde ručně vytvořený parser nepřichází v úvahu.
Limity LLM parsování
LLM nejsou všespásné. Hlavními problémy v roce 2026 zůstávají halucinace (model si vymyslí hodnotu, která ve zdroji není), pomalejší rychlost, vyšší cena a nedeterminismus. Proto se v produkčním nasazení často kombinuje LLM s tradičními kontrolami — křížové ověření přes druhý model, OCR engine nebo ruční review člověkem u kritických dat.
V praxi platí jednoduché pravidlo: pro dobře strukturovaná data (JSON, XML, validní HTML) zůstávají tradiční parsery rychlejší a spolehlivější. Pro nestrukturovaná nebo polostrukturovaná data jsou LLM často jediným ekonomicky únosným řešením.
Parser jako programovací jazyk
Pojem „Parser“ může být občas matoucí, protože tak se jmenuje i samostatný programovací jazyk. Vznikl v roce 1997 v ruských studiích Artěmije Lebeděva jako nástroj pro tvorbu jednoduchých dynamických webových stránek a od roku 2000 je distribuován zdarma. V současné praxi se s ním setkáte zřídka — jde o niche technologii s omezenou komunitou — ale je dobré o něm vědět, abyste si nespletli pojmy.
Pokud se v běžné konverzaci o vývoji bavíte o „parseru“, téměř vždy máte na mysli syntaktický analyzátor, ne tento konkrétní jazyk.
Časté chyby při parsování a jak je řešit
Při parsování se nejčastěji setkáte s chybou typu „parse error“ nebo „syntax error“. Znamená to, že vstupní data se odchylují od očekávané gramatiky. Příčiny bývají typicky tyto.
- Chybějící nebo přebývající znaky — nezavřená závorka, chybějící uvozovka, špatně escapovaný apostrof v JSON.
- Špatné odsazení — typicky problém v Pythonu, kde struktura kódu závisí na mezerách. Záměna mezer a tabulátorů spolehlivě rozbije parser.
- Nevalidní kódování — vstup ve špatné kódové stránce (Windows-1250 místo UTF-8) způsobí, že parser nedokáže rozpoznat české znaky.
- Neuzavřené tagy v HTML/XML — XML je striktní a neodpustí ani drobnost. HTML parsery to obvykle tolerují, ale výsledný strom nemusí odpovídat očekávání.
Prevence je nudná, ale účinná: validujte vstupy předem (JSON Schema, XSD), používejte linter, dodržujte konvence cílového jazyka a u uživatelských vstupů vždy počítejte s tím, že přijde něco neočekávaného.
Nejčastější otázky
Jaký je rozdíl mezi parserem a kompilátorem?
Parser je jen jedna fáze kompilace. Kompilátor přečte zdrojový kód, parser z něj vytvoří strom, další fáze (sémantická analýza, optimalizace, generování kódu) ho převedou na spustitelný program. Parser sám o sobě nic nespouští, jen analyzuje strukturu.
Můžu napsat parser ručně, nebo musím použít generátor?
Pro jednoduché formáty (CSV, vlastní DSL) je ruční parser typu rekurzivní sestup naprosto v pořádku a často přehlednější než generovaný kód. Pro plnohodnotné programovací jazyky se ale vyplatí použít ANTLR, Bison nebo podobný nástroj — ušetří týdny práce a sníží počet chyb.
Co je tokenizace a jak souvisí s parsováním?
Tokenizace je první fáze parsování — rozdělení vstupního textu na nejmenší smysluplné jednotky (tokeny). Teprve potom syntaktická analýza z tokenů sestavuje strom. V některých implementacích jsou tokenizér a parser jeden nástroj, jindy je každá fáze samostatná.
Nahradí AI klasické parsery?
Nenahradí, ale doplní. Pro strukturovaná data (JSON, XML, programovací jazyky) zůstávají tradiční parsery v roce 2026 výrazně rychlejší, levnější a spolehlivější. AI parsery se uplatňují tam, kde data nemají pevnou strukturu — naskenované faktury, e-maily, freeform texty, legacy dokumenty.
Jak začít s vlastním parserem?
Pokud se učíte, doporučuji začít s rekurzivním sestupem v jazyce, který znáte, a parsovat jednoduchý formát (například aritmetické výrazy nebo malou DSL). Až pochopíte princip, přejděte na ANTLR nebo Tree-sitter. Pro produkční nasazení skoro vždy stačí knihovna pro daný formát — JSON, XML i HTML mají v každém moderním jazyce vestavěnou nebo dobře známou implementaci.
Další zdroje:
- Syntaktická analýza – Wikipedie [online]. [cit. 9. 5. 2026]. Dostupné z: https://cs.wikipedia.org/wiki/Syntaktická_analýza
- What is Parsing? From Raw Data to Insights – Scrapfly Blog [online]. [cit. 9. 5. 2026]. Dostupné z: https://scrapfly.io/blog/posts/what-is-parsing-turning-data-into-insights
- An empirical evaluation of Lex/Yacc and ANTLR parser generation tools – Ortin et al., PLOS ONE [online]. [cit. 9. 5. 2026]. Dostupné z: https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0264326
- LLMs for Structured Data Extraction from PDFs in 2026 – Unstract [online]. [cit. 9. 5. 2026]. Dostupné z: https://unstract.com/blog/comparing-approaches-for-using-llms-for-structured-data-extraction-from-pdfs/
- Using LLMs for OCR and PDF Parsing – Cradl AI [online]. [cit. 9. 5. 2026]. Dostupné z: https://www.cradl.ai/posts/llm-ocr
- JSON vs XML: Key Differences and Modern Uses – Scrapfly Blog [online]. [cit. 9. 5. 2026]. Dostupné z: https://scrapfly.io/blog/posts/json-vs-xml
- Parsování – Workflow [online]. [cit. 9. 5. 2026]. Dostupné z: https://workflow.ooo/pojem/parsovani/
- A Smart Way of Chart Review for Research: Utilizing Large Language Models (LLM) for Extraction of Unstructured Text Data – Ejaz et al., Cleveland Clinic, 2026 [online]. [cit. 9. 5. 2026]. Dostupné z: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC12793465/