#!/usr/bin/env python3 import re from attrs import Attrs from log import log from rule import Rule from rules import rules from top_down_chart_parser import TopDownChartParser if __name__ == '__main__': top_down = TopDownChartParser(rules) tokens = top_down.add_parsed_attibutes_to_tokens([ dict(tag='k2gInSc1', word='krásný'), dict(tag='k2gInSc1', word='košatý'), dict(tag='k1', word='strom', g='I', n='S', c='1'), # dict(word=','), dict(tag='k7', word='na'), dict(tag='k3', lemma='který', g='I', n='S'), dict(tag='k6', word='silně'), dict(tag='k5', word='foukalo', e='A', a='I', m='A', g='N', n='S'), dict(tag='k3', word='se'), dict(tag='k5eNaPmAgInS', word='nevyvrátil'), ]) for token in tokens: log.info(Attrs(token)) top_down.parse(tokens) tokens = top_down.add_parsed_attibutes_to_tokens([ # ?košatý krásný strom (hodnoticí slovo by mělo být před upřesňujícím) dict(tag='k2', word='krásný', g='I', n='S', c='4'), dict(tag='k2', word='košatý', g='I', n='S', c='4'), dict(tag='k1', word='strom', g='I', n='S', c='1'), ]) top_down.parse(tokens, 'NP') tokens = ( 'Líbí líbit k5eAaImIp3nS', 'se sebe k3xPyFc4', 'mi já k3xPp1nSc3', 'to ten k3xDgNnSc1', ', , kIx,', 'co co k3yQnSc4', # cos? 'jsi být k5eAaImIp2nS', 'napsal napsat k5eAaPmAgMnS', # '. . kIx.', ) top_down.parse_from_vertical(tokens) tokens = ( 'On on k3xPp3gMnSc1', 'je být k5eAaImIp3nS', 'pytel pytel k1gInSc1', 'blech blechy k1gFnPc2', ) top_down.parse_from_vertical(tokens)