Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: Babelfish 30. 03. 2017, 14:21:26

Název: Bezkontextové gramatiky a čeština
Přispěvatel: Babelfish 30. 03. 2017, 14:21:26
Zdravím, trochu si hraju s CF gramatikami a chápu anglické příklady, kde je struktura věty NP+VP. Jak se ale něco takového použije pro češtinu, když má tak volný slovosled? Připadá mi, že v češtině je pravidlo pro S něco jako S->X...X, kde X může být NP, VP, PP, vedlejší S atd. Na druhou stranu existují CF gramatiky třeba pro němčinu, takže nějak to jít musí (možná nějakou fintou), jenže tenhle obor moc neznám a ani nevím, co zadat do Googlu, abych našel nějaké řešení.
Název: Re:Bezkontextové gramatiky a čeština
Přispěvatel: Babelfish 30. 03. 2017, 17:20:06
P.S. Když už jsem u kladení otázek, jaký je vztah mezi CF a závislostní gramatikou? (Narazil jsem na to při googlení k původnímu tématu, ale dost v tom tápu.)
Název: Re:Bezkontextové gramatiky a čeština
Přispěvatel: Ivan Nový 30. 03. 2017, 18:04:18
Pro češtinu jsou vhodnější kontextové gramatiky, popřípadě by se dala použít PEG gramatika, která přijímá dostatečně komplexní jazyky pro analýzu češtiny. Oblast není tak formalizovaná, jako bezkontextové gramatiky a pracuje se s mnohem většími slovníky. Jinak kompletní gramatika exituje tuším pro španělštinu, viz zde https://books.google.cz/books?id=9eDaE-cAh_sC&pg=PA1&lpg=PA1&dq=computer+gramatic+for+spain&source=bl&ots=Q-qGhQiRBK&sig=rNyhv3D2nYh7s0m2ZnN0XMDDuSo&hl=cs&sa=X&ved=0ahUKEwjWgKaizf7SAhXL7hoKHWSBCFoQ6AEIHTAA#v=onepage&q=computer%20gramatic%20for%20spain&f=false

Hledejte https://www.google.cz/search?client=ubuntu&channel=fs&q=modelov%C3%A1n%C3%AD+p%C5%99irozen%C3%A9ho+jazyka&ie=utf-8&oe=utf-8&gfe_rd=cr&ei=IivdWPv7LpKO8QfgvaegDA

https://www.google.cz/search?client=ubuntu&channel=fs&q=gramatiky+p%C5%99irozen%C3%A9ho+jazyka&ie=utf-8&oe=utf-8&gfe_rd=cr&ei=4yvdWJmCHKqE8Qf4l4y4DA
Název: Re:Bezkontextové gramatiky a čeština
Přispěvatel: Ivan Nový 30. 03. 2017, 18:14:18
Jinak jste narazil na zajímavý problém a důvod, proč IT v podobě jaké ho známe dnes, mohlo vzniknout jen v anglosaském prostředí. Protože angličtina je primitivní analytický jazyk vhodný k zjednodušení pro strojové zpracování.
Název: Re:Bezkontextové gramatiky a čeština
Přispěvatel: Ivan Nový 30. 03. 2017, 18:21:12
Ke druhé otázce, na základě korpusu (zjednodušeně slovníku slovních tvarů, s přiřazeným významem) zjistíte, co které slovo ve větě může znamenat a na základě jeho možných významů přeuspořádáte větu, podle závislostních pravidel, která vám dají možnou interpretaci věty, závislostní strom, můžete linearizovat a na něj aplikovat už bezkontextovou gramatiku.
Název: Re:Bezkontextové gramatiky a čeština
Přispěvatel: Ivan Nový 30. 03. 2017, 18:25:19
Zde máte na hraní PEG parser napsaný v jazyce GO, existují i pro Python, například zde https://fdik.org/pyPEG/ a nebo jiný zde https://github.com/erikrose/parsimonious
Název: Re:Bezkontextové gramatiky a čeština
Přispěvatel: Ivan Nový 30. 03. 2017, 18:29:42
A nebo jiný přístup pomocí stochastické gramatiky https://en.wikipedia.org/wiki/Stochastic_grammar
Název: Re:Bezkontextové gramatiky a čeština
Přispěvatel: Ivan Nový 30. 03. 2017, 18:38:20
A slíbený PEG parser napsaný v GO https://github.com/pointlander/peg
Název: Re:Bezkontextové gramatiky a čeština
Přispěvatel: Polymath 30. 03. 2017, 18:56:11
Zdravím, trochu si hraju s CF gramatikami a chápu anglické příklady, kde je struktura věty NP+VP. Jak se ale něco takového použije pro češtinu, když má tak volný slovosled? Připadá mi, že v češtině je pravidlo pro S něco jako S->X...X, kde X může být NP, VP, PP, vedlejší S atd. Na druhou stranu existují CF gramatiky třeba pro němčinu, takže nějak to jít musí (možná nějakou fintou), jenže tenhle obor moc neznám a ani nevím, co zadat do Googlu, abych našel nějaké řešení.
Tak jasně, pro češtinu a jiné nekonfigurační jazyky je to pravidlo S->X+, protože v češtině se gramatické funkce vyjadřují pomocí tvarosloví. A to je ještě v klidu, jsou jazyky s volným slovosledem, které pády nemají, tam je formální gramatika ještě zajímavější. Prostě jazyk je sviňa, ne nadarmo Chomsky říkával: Let's take any language, say, English. Jinak o gramatikalitě rozhoduje v případě nekonfiguračních jazyků Knuth-Bendixův algoritmus.