gate.creole.coref
Class NominalCoref

java.lang.Object
  |
  +--gate.util.AbstractFeatureBearer
        |
        +--gate.creole.AbstractResource
              |
              +--gate.creole.AbstractProcessingResource
                    |
                    +--gate.creole.AbstractLanguageAnalyser
                          |
                          +--gate.creole.coref.AbstractCoreferencer
                                |
                                +--gate.creole.coref.NominalCoref
All Implemented Interfaces:
ANNIEConstants, Executable, FeatureBearer, LanguageAnalyser, NameBearer, ProcessingResource, Resource, Serializable

public class NominalCoref
extends AbstractCoreferencer
implements ProcessingResource, ANNIEConstants

See Also:
Serialized Form

Nested Class Summary
 
Nested classes inherited from class gate.creole.AbstractProcessingResource
AbstractProcessingResource.InternalStatusListener, AbstractProcessingResource.IntervalProgressListener
 
Field Summary
private  HashMap anaphor2antecedent
          ---
private  String annotationSetName
          ---
static String COREF_ANN_SET_PARAMETER_NAME
           
static String COREF_DOCUMENT_PARAMETER_NAME
           
private static boolean DEBUG
          ---
private  AnnotationSet defaultAnnotations
          ---
private static String JOBTITLE_CATEGORY
           
private static String LOOKUP_CATEGORY
           
private static String ORGANIZATION_CATEGORY
           
private static String ORGANIZATION_NOUN_CATEGORY
           
private static String PERSON_CATEGORY
           
 
Fields inherited from class gate.creole.coref.AbstractCoreferencer
COREF_ANTECEDENT_FEATURE_NAME, COREF_TYPE_FEATURE_NAME, coreferenceType
 
Fields inherited from class gate.creole.AbstractLanguageAnalyser
corpus, document
 
Fields inherited from class gate.creole.AbstractProcessingResource
interrupted
 
Fields inherited from class gate.creole.AbstractResource
name
 
Fields inherited from class gate.util.AbstractFeatureBearer
features
 
Fields inherited from interface gate.creole.ANNIEConstants
ANNOTATION_COREF_FEATURE_NAME, DATE_ANNOTATION_TYPE, DOCUMENT_COREF_FEATURE_NAME, LOCATION_ANNOTATION_TYPE, LOOKUP_ANNOTATION_TYPE, LOOKUP_CLASS_FEATURE_NAME, LOOKUP_MAJOR_TYPE_FEATURE_NAME, LOOKUP_MINOR_TYPE_FEATURE_NAME, LOOKUP_ONTOLOGY_FEATURE_NAME, MONEY_ANNOTATION_TYPE, ORGANIZATION_ANNOTATION_TYPE, PERSON_ANNOTATION_TYPE, PERSON_GENDER_FEATURE_NAME, PR_NAMES, SENTENCE_ANNOTATION_TYPE, SPACE_TOKEN_ANNOTATION_TYPE, TOKEN_ANNOTATION_TYPE, TOKEN_CATEGORY_FEATURE_NAME, TOKEN_KIND_FEATURE_NAME, TOKEN_LENGTH_FEATURE_NAME, TOKEN_ORTH_FEATURE_NAME, TOKEN_STRING_FEATURE_NAME
 
Constructor Summary
NominalCoref()
          ---
 
Method Summary
private  int advanceTokenPosition(Annotation target, int currentPosition, Object[] tokens)
          Use this method to keep the current token pointer at the right point in the token list
private  int countInterveningTokens(Annotation first, Annotation second, int currentPosition, Object[] tokens)
          Return the number of tokens between the end of annotation 1 and the beginning of annotation 2.
 void execute()
          This method runs the coreferencer.
 String getAnnotationSetName()
          ---
private  Annotation getFollowingToken(Annotation current, int currentPosition, Object[] tokens)
          Get the next token after an annotation
 HashMap getResolvedAnaphora()
          ---
private  Object[] getSortedTokens(Annotation a)
          Get a sorted array of the tokens that make up a given annotation.
 Resource init()
          Initialise this resource, and return it.
private  boolean overlapsAnnotations(Annotation a, AnnotationSet annotations)
          This method specifies whether a given annotation overlaps any of a set of annotations.
private  void preprocess()
          ---
 void reInit()
          Reinitialises the processing resource.
 void setAnnotationSetName(String annotationSetName)
          ---
 void setDocument(Document newDocument)
          Set the document to run on.
private  String stringValue(Annotation ann)
          Get the text of an annotation
 
Methods inherited from class gate.creole.coref.AbstractCoreferencer
generateCorefChains
 
Methods inherited from class gate.creole.AbstractLanguageAnalyser
getCorpus, getDocument, setCorpus
 
Methods inherited from class gate.creole.AbstractProcessingResource
addProgressListener, addStatusListener, cleanup, fireProcessFinished, fireProgressChanged, fireStatusChanged, interrupt, isInterrupted, removeProgressListener, removeStatusListener
 
Methods inherited from class gate.creole.AbstractResource
checkParameterValues, getName, getParameterValue, getParameterValue, removeResourceListeners, setName, setParameterValue, setParameterValue, setParameterValues, setParameterValues, setResourceListeners
 
Methods inherited from class gate.util.AbstractFeatureBearer
getFeatures, setFeatures
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface gate.Resource
cleanup, getParameterValue, setParameterValue, setParameterValues
 
Methods inherited from interface gate.util.FeatureBearer
getFeatures, setFeatures
 
Methods inherited from interface gate.util.NameBearer
getName, setName
 
Methods inherited from interface gate.Executable
interrupt, isInterrupted
 

Field Detail

COREF_DOCUMENT_PARAMETER_NAME

public static final String COREF_DOCUMENT_PARAMETER_NAME
See Also:
Constant Field Values

COREF_ANN_SET_PARAMETER_NAME

public static final String COREF_ANN_SET_PARAMETER_NAME
See Also:
Constant Field Values

DEBUG

private static final boolean DEBUG
---

See Also:
Constant Field Values

PERSON_CATEGORY

private static final String PERSON_CATEGORY
See Also:
Constant Field Values

JOBTITLE_CATEGORY

private static final String JOBTITLE_CATEGORY
See Also:
Constant Field Values

ORGANIZATION_CATEGORY

private static final String ORGANIZATION_CATEGORY
See Also:
Constant Field Values

LOOKUP_CATEGORY

private static final String LOOKUP_CATEGORY
See Also:
Constant Field Values

ORGANIZATION_NOUN_CATEGORY

private static final String ORGANIZATION_NOUN_CATEGORY
See Also:
Constant Field Values

annotationSetName

private String annotationSetName
---


defaultAnnotations

private AnnotationSet defaultAnnotations
---


anaphor2antecedent

private HashMap anaphor2antecedent
---

Constructor Detail

NominalCoref

public NominalCoref()
---

Method Detail

init

public Resource init()
              throws ResourceInstantiationException
Initialise this resource, and return it.

Specified by:
init in interface Resource
Overrides:
init in class AbstractCoreferencer
ResourceInstantiationException

reInit

public void reInit()
            throws ResourceInstantiationException
Reinitialises the processing resource. After calling this method the resource should be in the state it is after calling init. If the resource depends on external resources (such as rules files) then the resource will re-read those resources. If the data used to create the resource has changed since the resource has been created then the resource will change too after calling reInit().

Specified by:
reInit in interface ProcessingResource
Overrides:
reInit in class AbstractCoreferencer
ResourceInstantiationException

setDocument

public void setDocument(Document newDocument)
Set the document to run on.

Specified by:
setDocument in interface LanguageAnalyser
Overrides:
setDocument in class AbstractCoreferencer

setAnnotationSetName

public void setAnnotationSetName(String annotationSetName)
---

Specified by:
setAnnotationSetName in class AbstractCoreferencer

getAnnotationSetName

public String getAnnotationSetName()
---

Specified by:
getAnnotationSetName in class AbstractCoreferencer

execute

public void execute()
             throws ExecutionException
This method runs the coreferencer. It assumes that all the needed parameters are set. If they are not, an exception will be fired. The process goes like this: - Create a sorted list of Person and JobTitle annotations. - Loop through the annotations If it is a Person, we add it to the top of a stack. If it is a job title, we subject it to a series of tests. If it passes, we associate it with the Person annotation at the top of the stack

Specified by:
execute in interface Executable
Overrides:
execute in class AbstractProcessingResource
ExecutionException

overlapsAnnotations

private boolean overlapsAnnotations(Annotation a,
                                    AnnotationSet annotations)
This method specifies whether a given annotation overlaps any of a set of annotations. For instance, JobTitles occasionally are part of Person annotations.


advanceTokenPosition

private int advanceTokenPosition(Annotation target,
                                 int currentPosition,
                                 Object[] tokens)
Use this method to keep the current token pointer at the right point in the token list


countInterveningTokens

private int countInterveningTokens(Annotation first,
                                   Annotation second,
                                   int currentPosition,
                                   Object[] tokens)
Return the number of tokens between the end of annotation 1 and the beginning of annotation 2. Will return 0 if they are not in order


getFollowingToken

private Annotation getFollowingToken(Annotation current,
                                     int currentPosition,
                                     Object[] tokens)
Get the next token after an annotation


stringValue

private String stringValue(Annotation ann)
Get the text of an annotation


getSortedTokens

private Object[] getSortedTokens(Annotation a)
Get a sorted array of the tokens that make up a given annotation.


getResolvedAnaphora

public HashMap getResolvedAnaphora()
---


preprocess

private void preprocess()
                 throws ExecutionException
---

ExecutionException