Anaphora resolution
IA161 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.
Main approaches:
- Knowledge-rich approaches:
- Syntax-based approaches
- Discourse-Based Approaches
- Hybrid Approaches
- Corpus based Approaches
- Knowledge-poor Approaches:
- Machine learning techniques
References
- Anaphora Resolution, Studies in Language and Linguistics by Mitkov, R., 2014, Taylor & Francis
- A neural entity coreference resolution review. Stylianou, N. and Vlahavas, I. (2021)
- A comprehensive review on feature set used for anaphora resolution. Lata, K., Singh, P., and Dutta, K. (2020).
- Efficient and interpretable neural models for entity tracking. Toshniwal, S. (2022)
Practical Session
Student has to understand Hobbs' definition of anaphora resolution and according to it implement the main function of Hobbs' algorithm in the proposed python script that contains all necessary functions. According to real data (syntactic trees) students test their adjusted program and evaluate it. At the end of the session students hand in the results to prove completing the task. An additional task is to find sentence structures that are not covered by Hobbs' algorithm.
The task:
- download the script with data from here -> correct solution here
- NLTK package is required for
hobbs.py
. When running at your computer, pastepip3 install nltk --user
in the terminal to install NLTK package. Faculty machines should havenltk
already installed. - understand Hobbs' definition of anaphora resolution and replace
XXX
function calls with correct ones - find 20 nontrivial sentences with anaphora: 10 that Hobbs algorithm can recognize and 10 sentences it dos not. You can use the Stanford parser to test new sentences - copy the tree to one line and remove the ROOT tag.
- submit your
hobbs.py
script with 10 examples that are correctly recognized withhobbs.py
and 10 examples that are not correctly recognized byhobbs.py
in the homework vault. For each unrecognized example write an explanation into one separate fileunrecognized_notes.txt
(first column: example id, second column: explanation).
Commands:
- execute Hobbs script:
python3 ./hobbs.py demosents.txt He