==========================================================================================
Introduction to Natural Laguage Processing Assignment 3
==========================================================================================
- In this assignment, you will be asked to:
From Incrementality in Deterministic Dependency Parsing(2004, Nivre)
- implement the arc-standard algorithm
From A Fast and Accurate Dependency Parser using Neural Networks(2014, Danqi and Manning)
- implement feature extraction
- implement the neural network architecture including activation function
- implement loss function
- You will need to copy your embeddings to this folder, and name it as "word2vec.model" Also, change "embedding_size" in Config.py to match your model.
- This package contains several files:
-
DependencyParser.py: This file is the main script for training your dependency parser.
-
DependencyTree.py The dependency tree class file.
-
ParsingSystem.py This file contains the class for a transition-based parsing framework for dependency parsing.
-
Configuration.py The configuration class file.
-
Config.py This file contains all hyper parameters.
-
Util.py This file contains functions for reading and writing CONLL file.
-
data/ train.conll - train set, labeld dev.conll - dev set, labeld test.conll - test set, unlabeled
- What you should do:
- Implement the arc-standard algorithm in ParsingSystem.py
- Implement feature extraction in DependencyParser.py: getFeatures(...)
- Implement neural network architecture including activation function: forward_pass(...)
- Implement loss function and calculate loss value: in DependencyParserModel.build_graph(...)
- Try different number of hidden layers
- Try different non-linear activation functions
- Train a parser with Fixed embeddings -- by setting trainable=False in tf.Variable