uk.ac.essex.malexa.nlp.dp.GuiTAR
Class PersonalPronoun

java.lang.Object
  extended byuk.ac.essex.malexa.nlp.dp.GuiTAR.Cf
      extended byuk.ac.essex.malexa.nlp.dp.GuiTAR.NominalGroup
          extended byuk.ac.essex.malexa.nlp.dp.GuiTAR.PersonalPronoun
All Implemented Interfaces:
AnaphoraResolution

public class PersonalPronoun
extends NominalGroup

A class that holds the functionality for processing Personal Pronouns (i.e. he, it). It's mainly meant to provide the implementation for resolving the antecedent of a personal pronoun. The algorithm employed for the purpose is covered in detail in: - Ruslan Mitkov. Robust Pronoun Resolution with Limited Knowledge. Proceedings of the 18th International Conference on Computational Linguistics (COLING'98)/ACL'98 Conference, 869-875. Montreal, Canada.

Version:
1.0
Author:
Mijail A. Kabadjov

Nested Class Summary
(package private)  class PersonalPronoun.PotentialAntecedent
          An internal class to store the antecedent preferences ("indicators") and to provide the sorting functionality for the potential antecedents.(Note: here I have placed and adapted code from class NounGroup from my MSc project, so in some way NounGroup maps to this class)
 
Field Summary
private  String leftCollocate
          Holds the first verb to the left of this NP (if any)
private  String rightCollocate
          Holds the first verb to the right of this NP (if any)
private static String[] VERB_LIST
          The list of indicating verbs.
static int WINDOW_SIZE
          Specifies how many sentences back to look for antecedent
 
Fields inherited from class uk.ac.essex.malexa.nlp.dp.GuiTAR.NominalGroup
A_NP, ANOTHER_NP, BARE_NP, COORD_NP, DEFINITE, DIRECT_OBJECT, INDEFINITE, INDIRECT_OBJECT, MEAS_NP, NUM_NP, PERS_PRO, PN, POSS_NP, POSS_PRO, PRONOUNS, Q_NP, Q_PRO, SUBJECT, SUCH_NP, THAT_NP, THAT_PRO, THE_NP, THE_PN, THIS_NP, THIS_PRO, WH_PRO
 
Fields inherited from class uk.ac.essex.malexa.nlp.dp.GuiTAR.Cf
 
Constructor Summary
PersonalPronoun(Node theNode, Utterance utt, byte theType)
          Constructor.
 
Method Summary
 Cf firstMatchresolveAnaphor(DiscourseModel dm)
          A baseline algorithm for processing Personal Pronouns.
 Cf goldStandardresolveAnaphor(DiscourseModel dm)
          A gold standard algorithm for processing Personal Pronouns based on corpus annotation.
 Cf resolveAnaphor(DiscourseModel dm)
          The implementation of Mitkov's algorithm for processing Personal Pronouns.
private  NominalGroup selectAntecedent(Set anteSet, int nextCriterion)
          A recursive method to select the preferred antecedent.
 
Methods inherited from class uk.ac.essex.malexa.nlp.dp.GuiTAR.NominalGroup
findType, getAgreement, getAntecedentIndicators, getByteType, getHeadNode, getPostModifiers, getPreModifiers, getStringType, newInstance, setAntecedentIndicators
 
Methods inherited from class uk.ac.essex.malexa.nlp.dp.GuiTAR.Cf
findCfById, getNode, getType, getUtterance, isAnaphoric, setAnaphoric, setNode, setType, setUtterance
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

WINDOW_SIZE

public static final int WINDOW_SIZE
Specifies how many sentences back to look for antecedent

See Also:
Constant Field Values

VERB_LIST

private static final String[] VERB_LIST
The list of indicating verbs. (discuss, present, illustrate, identify, summarise, examine, describe, define, show, check, develop, review, report, outline, consider, investigate, explore, assess, analyse, synthesise, study, survey, deal, cover)


leftCollocate

private String leftCollocate
Holds the first verb to the left of this NP (if any)


rightCollocate

private String rightCollocate
Holds the first verb to the right of this NP (if any)

Constructor Detail

PersonalPronoun

public PersonalPronoun(Node theNode,
                       Utterance utt,
                       byte theType)
Constructor. Just calls the constructor of NominalGroup.

Method Detail

resolveAnaphor

public Cf resolveAnaphor(DiscourseModel dm)
The implementation of Mitkov's algorithm for processing Personal Pronouns.

Specified by:
resolveAnaphor in interface AnaphoraResolution
Overrides:
resolveAnaphor in class NominalGroup
Parameters:
dm - The Discourse Model to which this Cf belongs
Returns:
Cf The proposed antecedent

firstMatchresolveAnaphor

public Cf firstMatchresolveAnaphor(DiscourseModel dm)
A baseline algorithm for processing Personal Pronouns. Takes as an antecedent the first Cf that syntactically agrees with the anaphor. The processing goes backwards utterance by utterance and from left to right over the list of Cfs of a given utterance.

Parameters:
dm - The Discourse Model to which this Cf belongs
Returns:
Cf The proposed antecedent

goldStandardresolveAnaphor

public Cf goldStandardresolveAnaphor(DiscourseModel dm)
A gold standard algorithm for processing Personal Pronouns based on corpus annotation.

Parameters:
dm - The Discourse Model to which this Cf belongs
Returns:
Cf The antecedent

selectAntecedent

private NominalGroup selectAntecedent(Set anteSet,
                                      int nextCriterion)
A recursive method to select the preferred antecedent.

Parameters:
anteSet - the sorted Set of antecedents to be searched
Returns:
NominalGroup the resulting antecedent