= Anaphora resolution = [[https://is.muni.cz/auth/predmet/fi/ia161|IA161]] [[en/NlpInPracticeCourse|NLP in Practice Course]], Course Guarantee: Aleš Horák Prepared by: Marek Medveď == State of the Art == Anaphora resolution (or pronoun resolution) is the problem of resolving references to earlier or later items in the discourse. [[BR]] Main approaches: 1. Knowledge-rich approaches: 1. Syntax-based approaches 2. Discourse-Based Approaches 3. Hybrid Approaches 4. Corpus based Approaches 1. Knowledge-poor Approaches: 1. Machine learning techniques === References === 1. Anaphora Resolution, Studies in Language and Linguistics by Mitkov, R., 2014, Taylor & Francis 1. Wikicrem: A large unsupervised corpus for coreference resolution, Kocijan, V., Camburu, O.-M., Cretu, A.-M., Yordanov, Y., Blunsom, P., and Lukasiewicz, T. (2019). 1. A comprehensive review on feature set used for anaphora resolution, Lata, K., Singh, P., and Dutta, K. (2020). 1. The referential reader: A recurrent entity network for anaphora resolution, Liu, F., Zettlemoyer, L., and Eisenstein, J. (2019). 1. Petra: A sparsely supervised memory model for people tracking, Toshniwal, S., Ettinger, A., Gimpel, K., and Livescu, K. (2020). == Practical Session == Student has to understand Hobbs' definition of anaphora resolution and according to it implement the main function of Hobbs' algorithm in proposed python script that contains all necessary functions. According to real data (syntactic trees) student tests his program and evaluate it. At the and of the session student has to hand the results to prove completing the task. If the student finishes early the additional task is to find sentence structures that are not covered by Hobbs' algorithm. The task: 1. download the script with data from [[attachment:hobbs.zip|here]] 1. NLTK package is required for `hobbs.py`. When running at your computer, paste {{{pip3 install nltk --user}}} to terminal to install NLTK package. Faculty machines should have nltk already installed. 1. understand Hobbs' definition of anaphora resolution and replace `XXX` function calls with correct ones 1. find 20 nontrivial sentences wit anaphora: 10 that Hobbs algorithm can recognize and 10 sentences it dos not. You can use [https://nlp.fi.muni.cz/projekty/qa/parser/ the Stanford parser] to test new sentences - copy the tree to one line and remove the ROOT tag. 1. submit your `hobbs.py` script with 10 examples that are correctly recognized with `hobbs.py` and 10 examples that are not correctly recognized by `hobbs.py` in the homework vault. For each unrecognized example write an explanation into one separate file `unrecognized_notes.txt` (first column: ''example id'', second column: ''explanation''). Commands: 1. execute Hobbs script: {{{ python3 ./hobbs.py demosents.txt He }}}