public virtual void Annotate(Annotation ann) { Document document; try { document = docMaker.MakeDocument(ann); } catch (Exception e) { throw new Exception("Error making document", e); } CorefUtils.CheckForInterrupt(); corefAlgorithm.RunCoref(document); if (removeSingletonClusters) { CorefUtils.RemoveSingletonClusters(document); } CorefUtils.CheckForInterrupt(); IDictionary <int, CorefChain> result = Generics.NewHashMap(); foreach (CorefCluster c in document.corefClusters.Values) { result[c.clusterID] = new CorefChain(c, document.positions); } ann.Set(typeof(CorefCoreAnnotations.CorefChainAnnotation), result); }
/// <summary>main entry of coreference system.</summary> /// <param name="anno">Input annotation.</param> /// <returns>Map of coref chain ID and corresponding chain</returns> /// <exception cref="System.Exception"/> public virtual IDictionary <int, CorefChain> Coref(Annotation anno) { return(Coref(docMaker.MakeDocument(anno))); }