info.ephyra.trec
Class CorefResolver

java.lang.Object
  extended by info.ephyra.trec.CorefResolver

public class CorefResolver
extends java.lang.Object

This class resolves references within a question string to the target description, previous questions or previous answers as required since the TREC 13 QA track.

Version:
2007-07-20
Author:
Petra Gieselmann, Nico Schlaefer, Manas Pathak

Field Summary
static java.util.regex.Pattern pluralDemPronounPattern
           
static java.lang.String pluralDemPronounString
          Regular expression for English singular demonstrative pronoun.
static java.util.regex.Pattern pluralThirdPersonPronounPattern
           
static java.util.regex.Pattern pluralThirdPersonPronounPatternGen
           
static java.lang.String pluralThirdPersonPronounString
          Regular expression for English plural third person personal pronouns.
static java.lang.String pluralThirdPersonPronounStringGen
          Regular expression for English plural third person possessive pronouns.
static java.util.regex.Pattern singularDemPronounPattern
           
static java.lang.String singularDemPronounString
          Regular expression for English singular demonstrative pronoun.
static java.util.regex.Pattern singularThirdPersonPronounPattern
           
static java.util.regex.Pattern singularThirdPersonPronounPatternAmb
           
static java.util.regex.Pattern singularThirdPersonPronounPatternGen
           
static java.lang.String singularThirdPersonPronounString
          Regular expression for English singular third person personal pronouns for persons.
static java.lang.String singularThirdPersonPronounStringAmb
          Regular expression for English singular third person personal and possessive pronoun her.
static java.lang.String singularThirdPersonPronounStringGen
          Regular expression for English singular third person possessive pronouns for persons.
static java.util.regex.Pattern singularThirdThingPronounPattern
           
static java.util.regex.Pattern singularThirdThingPronounPatternGen
           
static java.lang.String singularThirdThingPronounString
          Regular expression for English singular third person personal pronouns for things.
static java.lang.String singularThirdThingPronounStringGen
          Regular expression for English singular third person possessive pronouns for things.
static java.util.regex.Pattern verifyTargetPattern
           
static java.lang.String verifyTargetString
          Regular expression for targets.
 
Constructor Summary
CorefResolver()
           
 
Method Summary
private static boolean checkPl(java.lang.String[] targetTokens)
           
private static java.util.Map<java.lang.Integer,java.lang.String> find(java.lang.String parse, java.lang.String POS)
          Finds all POS instances in parse
private static boolean isAllUpper(java.lang.String s)
           
private static boolean isAnswerTypePerson(java.lang.String question)
           
private static boolean isAnswerTypeThing(java.lang.String question)
           
private static java.lang.String isTargetPerson(java.lang.String currentTarget)
           
static void main(java.lang.String[] args)
           
private static boolean match(java.lang.String npq, java.lang.String npt)
          Checks if the first phrase is inclusive of the second
private static java.lang.String parse(java.lang.String q)
          Returns the lexical parse of the string
static void resolveNounPhrasesToTarget(TRECTarget target, int next)
           
static void resolvePronouns(TRECTarget target, int next)
          Resolves references to the target description, previous questions or answers.
static void resolvePronounsToTarget(TRECTarget target, int next)
          Resolves references ONLY to the target description.
private static java.util.ArrayList<java.lang.String> resoveNP(java.lang.String targetString, java.lang.String question)
          Resolves questions given a target
private static java.lang.String substitute(java.lang.String questionParse, java.lang.String npt, int lenq, int iq)
          Substitutes a target noun phrase for another noun phrase within a question string
private static java.lang.String unparse(java.lang.String questionParse)
          Gets the original string back from its parse
private static java.lang.String usePreviousAnswer(TRECQuestion[] questions, int next, int exp)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

singularThirdPersonPronounString

public static final java.lang.String singularThirdPersonPronounString
Regular expression for English singular third person personal pronouns for persons.

See Also:
Constant Field Values

singularThirdPersonPronounPattern

public static final java.util.regex.Pattern singularThirdPersonPronounPattern

singularThirdThingPronounString

public static final java.lang.String singularThirdThingPronounString
Regular expression for English singular third person personal pronouns for things.

See Also:
Constant Field Values

singularThirdThingPronounPattern

public static final java.util.regex.Pattern singularThirdThingPronounPattern

pluralThirdPersonPronounString

public static final java.lang.String pluralThirdPersonPronounString
Regular expression for English plural third person personal pronouns.

See Also:
Constant Field Values

pluralThirdPersonPronounPattern

public static final java.util.regex.Pattern pluralThirdPersonPronounPattern

singularThirdPersonPronounStringGen

public static final java.lang.String singularThirdPersonPronounStringGen
Regular expression for English singular third person possessive pronouns for persons.

See Also:
Constant Field Values

singularThirdPersonPronounPatternGen

public static final java.util.regex.Pattern singularThirdPersonPronounPatternGen

singularThirdThingPronounStringGen

public static final java.lang.String singularThirdThingPronounStringGen
Regular expression for English singular third person possessive pronouns for things.

See Also:
Constant Field Values

singularThirdThingPronounPatternGen

public static final java.util.regex.Pattern singularThirdThingPronounPatternGen

pluralThirdPersonPronounStringGen

public static final java.lang.String pluralThirdPersonPronounStringGen
Regular expression for English plural third person possessive pronouns.

See Also:
Constant Field Values

pluralThirdPersonPronounPatternGen

public static final java.util.regex.Pattern pluralThirdPersonPronounPatternGen

singularThirdPersonPronounStringAmb

public static final java.lang.String singularThirdPersonPronounStringAmb
Regular expression for English singular third person personal and possessive pronoun her.

See Also:
Constant Field Values

singularThirdPersonPronounPatternAmb

public static final java.util.regex.Pattern singularThirdPersonPronounPatternAmb

singularDemPronounString

public static final java.lang.String singularDemPronounString
Regular expression for English singular demonstrative pronoun.

See Also:
Constant Field Values

singularDemPronounPattern

public static final java.util.regex.Pattern singularDemPronounPattern

pluralDemPronounString

public static final java.lang.String pluralDemPronounString
Regular expression for English singular demonstrative pronoun.

See Also:
Constant Field Values

pluralDemPronounPattern

public static final java.util.regex.Pattern pluralDemPronounPattern

verifyTargetString

public static final java.lang.String verifyTargetString
Regular expression for targets.

See Also:
Constant Field Values

verifyTargetPattern

public static final java.util.regex.Pattern verifyTargetPattern
Constructor Detail

CorefResolver

public CorefResolver()
Method Detail

resolvePronounsToTarget

public static void resolvePronounsToTarget(TRECTarget target,
                                           int next)
Resolves references ONLY to the target description. This method is called once for each factoid and list question in the series.

Parameters:
target - the question series including answers to previous questions
next - the next question in the series to be answered

isTargetPerson

private static java.lang.String isTargetPerson(java.lang.String currentTarget)

isAllUpper

private static boolean isAllUpper(java.lang.String s)

resolvePronouns

public static void resolvePronouns(TRECTarget target,
                                   int next)
Resolves references to the target description, previous questions or answers. This method is called once for each factoid and list question in the series.

Parameters:
target - the question series including answers to previous questions
next - the next question in the series to be answered

resolveNounPhrasesToTarget

public static void resolveNounPhrasesToTarget(TRECTarget target,
                                              int next)
Parameters:
target -
next -

resoveNP

private static java.util.ArrayList<java.lang.String> resoveNP(java.lang.String targetString,
                                                              java.lang.String question)
Resolves questions given a target

Parameters:
targetString - target
question - question
Returns:
ArrayList of resolved questions

parse

private static java.lang.String parse(java.lang.String q)
Returns the lexical parse of the string


find

private static java.util.Map<java.lang.Integer,java.lang.String> find(java.lang.String parse,
                                                                      java.lang.String POS)
Finds all POS instances in parse

Parameters:
parse - input parsed string
POS - part of speech tag
Returns:
A Map of POS tagged strings in input along with the position where they occur

substitute

private static java.lang.String substitute(java.lang.String questionParse,
                                           java.lang.String npt,
                                           int lenq,
                                           int iq)
Substitutes a target noun phrase for another noun phrase within a question string

Parameters:
questionParse - question String
npt - target noun phrase
lenq - length of original noun phrase in question string
iq - position of original noun phrase in question string
Returns:
resolved question string

unparse

private static java.lang.String unparse(java.lang.String questionParse)
Gets the original string back from its parse


match

private static boolean match(java.lang.String npq,
                             java.lang.String npt)
Checks if the first phrase is inclusive of the second

Parameters:
npq - parsed string
npt - parsed string

checkPl

private static boolean checkPl(java.lang.String[] targetTokens)

isAnswerTypePerson

private static boolean isAnswerTypePerson(java.lang.String question)

isAnswerTypeThing

private static boolean isAnswerTypeThing(java.lang.String question)

usePreviousAnswer

private static java.lang.String usePreviousAnswer(TRECQuestion[] questions,
                                                  int next,
                                                  int exp)

main

public static void main(java.lang.String[] args)
                 throws java.lang.Exception
Throws:
java.lang.Exception