Version 25 (modified by Ales Horak, 14 months ago) (diff)


Parsing of Czech: Between Rules and Stats

IA161 Advanced NLP Course, Course Guarantee: Aleš Horák

Prepared by: Miloš Jakubíček

State of the Art


  1. Zhang, Y., Zhou, H., & Li, Z. (2020). Fast and Accurate Neural CRF Constituency Parsing. arXiv preprint arXiv:2008.03736.
  2. Qi, P., Dozat, T., Zhang, Y., & Manning, C. D. (2019). Universal dependency parsing from scratch. arXiv preprint arXiv:1901.10457.
  3. Straka, M., Straková, J., & Hajič, J. (2019, September). Czech Text Processing with Contextual Embeddings: POS Tagging, Lemmatization, Parsing and NER. In International Conference on Text, Speech, and Dialogue (pp. 137-150). Springer, Cham.

Practical Session

We will develop/adjust the grammar of the SET parser.

  1. Download the SET parser with evaluation dataset
  2. Unzip the downloaded file
  3. Go to the unziped folder
    cd ukol_ia161-parsing
  4. Test the prepared program that analyses 100 selected sentences
    make set_trees
    make compare
    The output should be
    ./ data/trees/pdt2_etest data/trees/set_pdt2_etest-sel100
    UAS =  66.1 %
    You can see detailed evaluation (sentence by sentence) with
    make compare SENTENCES=1
    You can watch differences for one tree with
    make diff SENTENCE=00009
    Exit the diff by pressing q.
    You can watch the two trees with (python-qt4 must be installed in the system)
    make view SENTENCE=00009
    You can extract the text of the sentence (e.g. for Google translate) easily with
    make text SENTENCE=00009
  5. Look at the files:
    • data/vert/pdt2_etest-sel100 - 100 input sentences in vertical format. The tag format is the Prague Dependency Treebank positional tagset
    • data/trees/pdt2_etest - 100 gold standard dependency trees from the Prague Dependency Treebank
    • data/trees/set_pdt2_etest-sel100 - 100 trees output from SET by running make set_trees
    • grammar.set - the grammar used in running SET


  1. Study the SET documentation. The tags used in the grammar are in the Brno tagset.
  2. Develop better grammar - repeat the process:
    edit grammar.set # use your favourite editor
    make set_trees
    make compare
    to improve the original UAS
  3. Write the final UAS in grammar.set
    # This is the SET grammar for Czech used in IA161 course
    # ===========   resulting UAS =  66.1 %  ===================
  4. Upload your grammar.set to the homework vault.

Attachments (2)

Download all attachments as: .zip