edu.umass.cs.mallet.projects.seg_plus_coref.coreference
Class CorefClusterAdv

java.lang.Object
  extended byedu.umass.cs.mallet.projects.seg_plus_coref.coreference.CorefClusterAdv
Direct Known Subclasses:
MultipleCorefClusterer

public class CorefClusterAdv
extends java.lang.Object


Nested Class Summary
 class CorefClusterAdv.EdgeComparator
           
 class CorefClusterAdv.PseudoEdge
           
 class CorefClusterAdv.PseudoEdgeComparator
           
 class CorefClusterAdv.PseudoVertex
           
 
Constructor Summary
CorefClusterAdv()
           
CorefClusterAdv(double threshold)
           
CorefClusterAdv(double threshold, Matrix2 sgdParameters, int numSGDFeatures)
           
CorefClusterAdv(double threshold, MaxEnt classifier, Pipe p)
           
CorefClusterAdv(double threshold, MaxEnt classifier, TreeModel tm, Pipe p)
           
CorefClusterAdv(Pipe p)
           
CorefClusterAdv(Pipe p, TreeModel tm)
           
CorefClusterAdv(TreeModel tm)
           
 
Method Summary
 java.util.Collection absoluteCluster(InstanceList ilist, java.util.List mentions)
           
 void addVerticesToGraph(salvo.jesus.graph.WeightedGraph graph, java.util.List mentions, java.util.HashMap alreadyAddedVertices)
           
protected  salvo.jesus.graph.WeightedGraph buildGraphFromPseudoEdges(java.util.List pedges, java.util.List mentions)
           
 salvo.jesus.graph.WeightedEdge chooseEdge2(java.util.List edges, double minVal, double total, java.util.Random rand)
           
 salvo.jesus.graph.WeightedEdge chooseEdge3(java.util.List edges, double minVal, double total, java.util.Random rand)
           
 java.util.Collection clusterMentions(InstanceList ilist, java.util.List mentions)
           
 java.util.Collection clusterMentions(InstanceList ilist, java.util.List mentions, int optimalNBest, boolean stochastic)
           
protected  double collectionAvg(java.util.Collection collection)
           
 void completeGraphNBest(salvo.jesus.graph.WeightedGraph graph, java.util.Collection keyPartitioning, java.util.Map citMap)
           
 double computeInitialTreeObjScore(java.util.Collection pvertices)
           
protected  void constructEdgesFromPseudoEdges(salvo.jesus.graph.WeightedGraph graph, CorefClusterAdv.PseudoEdge pedge, java.util.HashMap alreadyAdded)
           
 void constructEdgesUsingTrainedClusterer(salvo.jesus.graph.WeightedGraph graph, Instance instPair, java.util.HashMap alreadyAdded)
           
 void constructEdgesUsingTrainedClusterer(salvo.jesus.graph.WeightedGraph graph, Instance instPair, java.util.HashMap alreadyAdded, java.lang.Double edgeWeight)
           
 void constructEdgesUsingTrainedClusterer(salvo.jesus.graph.WeightedGraph graph, Instance instPair, java.util.HashMap alreadyAdded, java.lang.Double edgeWeight, MaxEnt classifier)
           
 salvo.jesus.graph.WeightedGraph constructOptimalEdgesUsingNBest(java.util.List mentions, int N)
           
 salvo.jesus.graph.WeightedGraph copyGraph(salvo.jesus.graph.WeightedGraph graph)
           
 salvo.jesus.graph.WeightedGraph createGraph(InstanceList ilist, java.util.List mentions)
           
 salvo.jesus.graph.WeightedGraph createGraph(InstanceList ilist, java.util.List mentions, salvo.jesus.graph.WeightedGraph graph)
           
 salvo.jesus.graph.WeightedGraph createGraph(InstanceList ilist, java.util.List mentions, salvo.jesus.graph.WeightedGraph graph, MaxEnt classifier)
           
 java.util.List createPseudoEdges(InstanceList instances, java.util.Map map)
           
 java.util.Collection createPseudoVertices(InstanceList instances, java.util.List mentions, java.util.HashMap map)
           
 double evaluateAgainstKey(java.util.Collection col)
           
 double evaluatePartitioning(java.util.Collection clustering, salvo.jesus.graph.WeightedGraph graph)
           
 double evaluatePartitioningExternal(InstanceList ilist, java.util.List mentions, java.util.Collection collection)
           
 double evaluatePartitioningExternal(InstanceList ilist, java.util.List mentions, java.util.Collection collection, int nBestList)
           
 void exportGraph(java.lang.String file)
           
 MaxEnt getClassifier()
           
protected  java.util.Collection getClusteringFromPseudo(java.util.Collection pvertices)
           
 java.util.Collection getCollectionOfOriginalObjects(java.util.Collection vertices)
          Construct a Collection of Collections where the objects in the collections are the original objects (i.e.
protected  java.util.Collection getPseudoClustering(java.util.Collection pvertices)
           
 void getUnNormalizedScores(Matrix2 lambdas, FeatureVector fv, double[] scores)
           
protected  boolean hasNextIndexList(int[] indexList, int N)
           
 boolean inSameCluster(java.util.Collection clustering, java.lang.Object o1, java.lang.Object o2)
           
 void loadME(java.lang.String file)
           
 void mergeVertices(salvo.jesus.graph.WeightedGraph g, salvo.jesus.graph.VertexImpl v1, salvo.jesus.graph.VertexImpl v2)
           
protected  int[] nextIndexList(int[] indexList, int N)
           
protected  int[] nextIndexListStochastic(int[] indexList, int N)
           
protected  int numSingletons(java.util.Collection clustering)
           
 java.util.Collection partitionGraph(salvo.jesus.graph.WeightedGraph origGraph)
           
 void printGraph(salvo.jesus.graph.WeightedGraph g)
           
 java.lang.String printParamDetails(FeatureVector vec, Classification classification, MaxEnt classifier)
           
 void printParams(MaxEnt me)
           
 void setConfWeightedScores(boolean b)
           
 void setFullPartition(boolean f)
           
 void setKeyPartitioning(java.util.Collection keyP)
           
 void setNBestInference(boolean b)
           
 void setOptimality(boolean b)
           
 void setRBeamSize(int s)
           
 void setSearchParams(int iters, int reductions)
           
 void setThreshold(double t)
           
 void setTrueNumStop(boolean b)
           
 void testClassifier(InstanceList tlist)
           
 void testClassifier(InstanceList tlist, MaxEnt classifier)
           
 void train(InstanceList ilist)
           
 MaxEnt trainClassifier(InstanceList ilist)
           
 java.util.Collection typicalClusterAdv(InstanceList ilist, java.util.List mentions)
           
 java.util.Collection typicalClusterPartition(salvo.jesus.graph.WeightedGraph graph)
           
 void updateGraphNBest(salvo.jesus.graph.WeightedGraph graph, int[] indexList, java.util.List instList, java.util.HashMap alreadyAdded)
           
 double updateScore(double curScore, double[] treeScore, CorefClusterAdv.PseudoVertex v1, CorefClusterAdv.PseudoVertex v2, java.util.Set s1, java.util.Set s2, boolean over_ride)
           
 double weightOfConfig(int[] indexList, java.util.List instList)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CorefClusterAdv

public CorefClusterAdv()

CorefClusterAdv

public CorefClusterAdv(TreeModel tm)

CorefClusterAdv

public CorefClusterAdv(Pipe p)

CorefClusterAdv

public CorefClusterAdv(Pipe p,
                       TreeModel tm)

CorefClusterAdv

public CorefClusterAdv(double threshold)

CorefClusterAdv

public CorefClusterAdv(double threshold,
                       MaxEnt classifier,
                       Pipe p)

CorefClusterAdv

public CorefClusterAdv(double threshold,
                       MaxEnt classifier,
                       TreeModel tm,
                       Pipe p)

CorefClusterAdv

public CorefClusterAdv(double threshold,
                       Matrix2 sgdParameters,
                       int numSGDFeatures)
Method Detail

setConfWeightedScores

public void setConfWeightedScores(boolean b)

setRBeamSize

public void setRBeamSize(int s)

setOptimality

public void setOptimality(boolean b)

setNBestInference

public void setNBestInference(boolean b)

setTrueNumStop

public void setTrueNumStop(boolean b)

setSearchParams

public void setSearchParams(int iters,
                            int reductions)

setThreshold

public void setThreshold(double t)

setKeyPartitioning

public void setKeyPartitioning(java.util.Collection keyP)

setFullPartition

public void setFullPartition(boolean f)

loadME

public void loadME(java.lang.String file)

train

public void train(InstanceList ilist)

trainClassifier

public MaxEnt trainClassifier(InstanceList ilist)

testClassifier

public void testClassifier(InstanceList tlist)

testClassifier

public void testClassifier(InstanceList tlist,
                           MaxEnt classifier)

printParamDetails

public java.lang.String printParamDetails(FeatureVector vec,
                                          Classification classification,
                                          MaxEnt classifier)

printParams

public void printParams(MaxEnt me)

getClassifier

public MaxEnt getClassifier()

clusterMentions

public java.util.Collection clusterMentions(InstanceList ilist,
                                            java.util.List mentions)

clusterMentions

public java.util.Collection clusterMentions(InstanceList ilist,
                                            java.util.List mentions,
                                            int optimalNBest,
                                            boolean stochastic)

createGraph

public salvo.jesus.graph.WeightedGraph createGraph(InstanceList ilist,
                                                   java.util.List mentions)

createGraph

public salvo.jesus.graph.WeightedGraph createGraph(InstanceList ilist,
                                                   java.util.List mentions,
                                                   salvo.jesus.graph.WeightedGraph graph)

createGraph

public salvo.jesus.graph.WeightedGraph createGraph(InstanceList ilist,
                                                   java.util.List mentions,
                                                   salvo.jesus.graph.WeightedGraph graph,
                                                   MaxEnt classifier)

exportGraph

public void exportGraph(java.lang.String file)

copyGraph

public salvo.jesus.graph.WeightedGraph copyGraph(salvo.jesus.graph.WeightedGraph graph)

addVerticesToGraph

public void addVerticesToGraph(salvo.jesus.graph.WeightedGraph graph,
                               java.util.List mentions,
                               java.util.HashMap alreadyAddedVertices)

chooseEdge3

public salvo.jesus.graph.WeightedEdge chooseEdge3(java.util.List edges,
                                                  double minVal,
                                                  double total,
                                                  java.util.Random rand)

chooseEdge2

public salvo.jesus.graph.WeightedEdge chooseEdge2(java.util.List edges,
                                                  double minVal,
                                                  double total,
                                                  java.util.Random rand)

evaluatePartitioningExternal

public double evaluatePartitioningExternal(InstanceList ilist,
                                           java.util.List mentions,
                                           java.util.Collection collection)

evaluatePartitioningExternal

public double evaluatePartitioningExternal(InstanceList ilist,
                                           java.util.List mentions,
                                           java.util.Collection collection,
                                           int nBestList)

evaluatePartitioning

public double evaluatePartitioning(java.util.Collection clustering,
                                   salvo.jesus.graph.WeightedGraph graph)

inSameCluster

public boolean inSameCluster(java.util.Collection clustering,
                             java.lang.Object o1,
                             java.lang.Object o2)

createPseudoEdges

public java.util.List createPseudoEdges(InstanceList instances,
                                        java.util.Map map)

createPseudoVertices

public java.util.Collection createPseudoVertices(InstanceList instances,
                                                 java.util.List mentions,
                                                 java.util.HashMap map)

updateScore

public double updateScore(double curScore,
                          double[] treeScore,
                          CorefClusterAdv.PseudoVertex v1,
                          CorefClusterAdv.PseudoVertex v2,
                          java.util.Set s1,
                          java.util.Set s2,
                          boolean over_ride)

computeInitialTreeObjScore

public double computeInitialTreeObjScore(java.util.Collection pvertices)

absoluteCluster

public java.util.Collection absoluteCluster(InstanceList ilist,
                                            java.util.List mentions)

getPseudoClustering

protected java.util.Collection getPseudoClustering(java.util.Collection pvertices)

typicalClusterAdv

public java.util.Collection typicalClusterAdv(InstanceList ilist,
                                              java.util.List mentions)

numSingletons

protected int numSingletons(java.util.Collection clustering)

getClusteringFromPseudo

protected java.util.Collection getClusteringFromPseudo(java.util.Collection pvertices)

buildGraphFromPseudoEdges

protected salvo.jesus.graph.WeightedGraph buildGraphFromPseudoEdges(java.util.List pedges,
                                                                    java.util.List mentions)

typicalClusterPartition

public java.util.Collection typicalClusterPartition(salvo.jesus.graph.WeightedGraph graph)

partitionGraph

public java.util.Collection partitionGraph(salvo.jesus.graph.WeightedGraph origGraph)

evaluateAgainstKey

public double evaluateAgainstKey(java.util.Collection col)

getCollectionOfOriginalObjects

public java.util.Collection getCollectionOfOriginalObjects(java.util.Collection vertices)
Construct a Collection of Collections where the objects in the collections are the original objects (i.e. the object of the vertices)


mergeVertices

public void mergeVertices(salvo.jesus.graph.WeightedGraph g,
                          salvo.jesus.graph.VertexImpl v1,
                          salvo.jesus.graph.VertexImpl v2)

printGraph

public void printGraph(salvo.jesus.graph.WeightedGraph g)

collectionAvg

protected double collectionAvg(java.util.Collection collection)

hasNextIndexList

protected boolean hasNextIndexList(int[] indexList,
                                   int N)

nextIndexList

protected int[] nextIndexList(int[] indexList,
                              int N)

nextIndexListStochastic

protected int[] nextIndexListStochastic(int[] indexList,
                                        int N)

weightOfConfig

public double weightOfConfig(int[] indexList,
                             java.util.List instList)

updateGraphNBest

public void updateGraphNBest(salvo.jesus.graph.WeightedGraph graph,
                             int[] indexList,
                             java.util.List instList,
                             java.util.HashMap alreadyAdded)

constructOptimalEdgesUsingNBest

public salvo.jesus.graph.WeightedGraph constructOptimalEdgesUsingNBest(java.util.List mentions,
                                                                       int N)

completeGraphNBest

public void completeGraphNBest(salvo.jesus.graph.WeightedGraph graph,
                               java.util.Collection keyPartitioning,
                               java.util.Map citMap)

constructEdgesFromPseudoEdges

protected void constructEdgesFromPseudoEdges(salvo.jesus.graph.WeightedGraph graph,
                                             CorefClusterAdv.PseudoEdge pedge,
                                             java.util.HashMap alreadyAdded)

constructEdgesUsingTrainedClusterer

public void constructEdgesUsingTrainedClusterer(salvo.jesus.graph.WeightedGraph graph,
                                                Instance instPair,
                                                java.util.HashMap alreadyAdded)

constructEdgesUsingTrainedClusterer

public void constructEdgesUsingTrainedClusterer(salvo.jesus.graph.WeightedGraph graph,
                                                Instance instPair,
                                                java.util.HashMap alreadyAdded,
                                                java.lang.Double edgeWeight)

constructEdgesUsingTrainedClusterer

public void constructEdgesUsingTrainedClusterer(salvo.jesus.graph.WeightedGraph graph,
                                                Instance instPair,
                                                java.util.HashMap alreadyAdded,
                                                java.lang.Double edgeWeight,
                                                MaxEnt classifier)

getUnNormalizedScores

public void getUnNormalizedScores(Matrix2 lambdas,
                                  FeatureVector fv,
                                  double[] scores)