epar is a Java implementation by Kilian Evang of Zhang and Clark (2011)'s shift-reduce CCG parser.
It differs in some details, such as using a hash kernel (Bohnet 2010) for weight lookup, but gives very similar evaluation results.
Before you run the experiment described below, you will need to get some
external dependencies. Create a directory called
ext and make sure it
contains the following repositories as subdirectories (you may also symlink
- supertagging, some software for producing the POS-tagged and supertagged inputs
- candc, the C&C tools, for evaluation scripts
- zpar, Yue Zhangs ZPar, for evaluation scripts
Follow the instructions in the
supertagging README file for producing the
needed POS-tagged and supertagged data.
The C&C tools need to be compiled, this can be done by running
make all bin/generate
To follow the steps below, you will also need:
produce are on your
To compile epar, run:
Training the parser model
To train the parser on the CCGbank sections 02-21 for 10 iterations, run:
Parsing the development test corpus
To parse the development test corpus with the above model, run:
For dependency evaluation:
For PARSEVAL evaluation:
Bug reports are very welcome, preferably as GitHub issues.
Bernd Bohnet (2010): Very High Accuracy and Fast Dependency Parsing Is Not a Contradiction. In Proceedings of the 23rd International Conference on Computational Linguistics, pages 89–97. Association for Computational Linguistics.
Yue Zhang and Stephen Clark (2011): Shift-reduce CCG Parsing. In Proceedings of the 49th Annual Meeting of the Association for Computational Linguistics: Human Language Technologies – Volume 1, pages 683–692. Association for Computational Linguistics.