Here are two recent assignments I completed for the University of St Andrews relating to Natural Language Processing.
The objective of this project was to produce a natural language processing model to determine parts of speech tags, based on a given corpus using the Viterbi algorithm. Three corpora were provided to implement and evaluate: English, French and Ukrainian. The model also aimed to make informed predictions on unknown words based on UNK tags. The UNK tags relate to common patterns seen within the language corpus.
The objective of this project was to design a grammatical model that parses a limited subset of English, consisting of eight valid sentences and three invalid sentences. Initially, context-free grammar was developed to define rules for parsing sentences. Then, the grammar was refined to become unification grammar which incorporates more rigorous rules to prevent parsing of invalid sentences.