from rule import Rule # TODO: nepovinný token/fráze pomocí "(ADVP)?" # TODO: umožnit načítání pomocí --rules cz1 --rules cz2 z nového adresáře rules # TODO: váhy pravidel? # TODO: head=True pro head-driven chart parser ;-) rules = ( # pozor, NP nemusí být jen podmět, takže ty kategorie nekopírovat vždy! '(S a e g m n) → (NP g n c=1) (CLITICS) (VP a e g m n)', '(S a e g m n) → (NP) (CLITICS) (VP a e g m n)', '(S g n) → (VP g n) (CLITICS) (ADVP)', # '(S a e g m n lemma) → (S a e g m n lemma) (word="\.")', '(S a e g m n) → (S a e g m n) (word="\.")', # Líbí se mi to. # '(S a e g m n lemma) → (k=5 a e g m n lemma) (CLITICS)', '(S a e g m n) → (k=5 a e g m n) (CLITICS)', # Líbí se mi to, co jsi napsal. # '(S a e g m n lemma) → (k=5 a e g m n lemma) (CLITICS) (NP c=4)', '(S a e g m n) → (k=5 a e g m n) (CLITICS) (NP)', '(S) → (S) (k=8) (S)', '(S) → (S) (OPT_COMMA) (S)', # pro zajímavost klidně zkopírovat i k=1 jako slovní zařazení hlavy '(NP c g n) → (k=1 c g n)', '(NP c g n) → (k=2 c g n) (NP c g n)', # pozor, „to“ má myslím menší požadavky na vztažnou větu (na rozdíl od # „ten“, „ta“ atd. '(NP c g n) → (k=3 c g n lemma=ten)', # TODO: a co pád toho „který“? '(NP c g n z) → (NP c g n z) (REL_CLAUSE g n)', # zS '(CLITICS) → (word="jsem|jsi|jsme|jste" k)?' ' (word="se|si" k)?' ' (word="mi" k)?' ' (word="to" k)?', # '(CLITICS) → (word="jsem|jsi|jsme|jste") (word="to")', # '(CLITICS) → (word="jsem|jsi|jsme|jste")', # '(CLITICS) → (word="se|si") (word="mi") (word="to")', # '(CLITICS) → (word="se|si") (word="mi")', # '(CLITICS) → (word="se|si") (word="to")', # '(CLITICS) → (word="se|si")', # '(CLITICS) → (word="to")', # '(CLITICS) → ', # ε '(VP a e g m n) → (k=5 a e g m n)', '(VP a e g m n) → (ADVP) (VP a e g m n)', '(OPT_COMMA) → (word=,)', '(OPT_COMMA) → ', # ε '(ADVP) → (k=6)', # TODO: a co pád? '(REL_CLAUSE g n) → (OPT_COMMA) (word=na) (lemma="který" g n) (VP) (OPT_COMMA)', '(REL_CLAUSE) → (OPT_COMMA) (word=co) (CLITICS) (VP) (OPT_COMMA)', # '(REL_CLAUSE g n) → (OPT_COMMA) (REL_CLAUSE_COMMA) (OPT_COMMA)', # '(REL_CLAUSE_COMMA g n) → (REL_CLAUSE_COMMA)', # On je pytel blech. '(NP g n c) → (k=3 lemma=on g n c)', '(NP g n c) → (k=1 g n c) (k=1 c=2)', '(VP a e g m n) → (lemma="být" a e g m n) (NP)' )