public override bool CanResolve(MentionContext mention) { string tag = mention.HeadTokenTag; return(tag != null && PartsOfSpeech.IsPersonalOrPossessivePronoun(tag) && Linker.PluralThirdPersonPronounPattern.IsMatch(mention.HeadTokenText)); }
protected internal override bool IsOutOfRange(MentionContext mention, DiscourseEntity entity) { MentionContext cec = entity.LastExtent; //System.err.println("MaxentSingularPronounresolve.outOfRange: ["+entity.getLastExtent().toText()+" ("+entity.getId()+")] ["+mention.toText()+" ("+mention.getId()+")] entity.sentenceNumber=("+entity.getLastExtent().getSentenceNumber()+")-mention.sentenceNumber=("+mention.getSentenceNumber()+") > "+numSentencesBack); return(mention.SentenceNumber - cec.SentenceNumber > NumberSentencesBack); }
protected internal override List<string> GetFeatures(MentionContext mention, DiscourseEntity entity) { List<string> features = base.GetFeatures(mention, entity); if (entity != null) { features.AddRange(GetPronounMatchFeatures(mention, entity)); List<string> contexts = GetContextFeatures(mention); MentionContext cec = entity.LastExtent; if (mention.HeadTokenTag.StartsWith("PRP") && cec.HeadTokenTag.StartsWith("PRP")) { features.Add(mention.HeadTokenText + "," + cec.HeadTokenText); } else if (mention.HeadTokenText.StartsWith("NNP")) { for (int ci = 0, cl = contexts.Count; ci < cl; ci++) { features.Add(contexts[ci]); } features.Add(mention.NameType + "," + cec.HeadTokenText); } else { List<string> ccontexts = GetContextFeatures(cec); for (int ci = 0, cl = ccontexts.Count; ci < cl; ci++) { features.Add(ccontexts[ci]); } features.Add(cec.NameType + "," + mention.HeadTokenText); } } return (features); }
protected internal override bool IsExcluded(MentionContext mention, DiscourseEntity entity) { if (base.IsExcluded(mention, entity)) { return(true); } string mentionGender = null; foreach (MentionContext entityMention in entity.Mentions) { string tag = entityMention.HeadTokenTag; if (tag != null && PartsOfSpeech.IsPersOrPossPronoun(tag) && Linker.SingularThirdPersonPronounPattern.IsMatch(mention.HeadTokenText)) { if (mentionGender == null) { //lazy initilization mentionGender = GetPronounGender(mention.HeadTokenText); } string entityGender = GetPronounGender(entityMention.HeadTokenText); if (!entityGender.Equals("u") && !mentionGender.Equals(entityGender)) { return(true); } } } return(false); }
protected internal override bool IsExcluded(MentionContext context, DiscourseEntity discourseEntity) { MentionContext currentContext = discourseEntity.LastExtent; //System.err.println("IsAResolver.excluded?: ec.span="+ec.getSpan()+" cec.span="+cec.getSpan()+" cec="+cec.toText()+" lastToken="+ec.getNextToken()); if (context.SentenceNumber != currentContext.SentenceNumber) { //System.err.println("IsAResolver.excluded: (true) not same sentence"); return(true); } //shallow parse appositives //System.err.println("IsAResolver.excluded: ec="+ec.toText()+" "+ec.span+" cec="+cec.toText()+" "+cec.span); if (currentContext.IndexSpan.End == context.IndexSpan.Start - 2) { return(false); } //full parse w/o trailing comma if (currentContext.IndexSpan.End == context.IndexSpan.End) { //System.err.println("IsAResolver.excluded: (false) spans share end"); return(false); } //full parse w/ trailing comma or period if (currentContext.IndexSpan.End <= context.IndexSpan.End + 2 && (context.NextToken != null && (context.NextToken.ToString().Equals(",") || context.NextToken.ToString().Equals(".")))) { //System.err.println("IsAResolver.excluded: (false) spans end + punct"); return(false); } //System.err.println("IsAResolver.excluded: (true) default"); return(true); }
protected internal override List <string> GetFeatures(MentionContext mention, DiscourseEntity entity) { List <string> features = base.GetFeatures(mention, entity); if (entity != null) { features.AddRange(GetPronounMatchFeatures(mention, entity)); List <string> contexts = GetContextFeatures(mention); MentionContext cec = entity.LastExtent; if (mention.HeadTokenTag.StartsWith("PRP") && cec.HeadTokenTag.StartsWith("PRP")) { features.Add(mention.HeadTokenText + "," + cec.HeadTokenText); } else if (mention.HeadTokenText.StartsWith("NNP")) { for (int ci = 0, cl = contexts.Count; ci < cl; ci++) { features.Add(contexts[ci]); } features.Add(mention.NameType + "," + cec.HeadTokenText); } else { List <string> ccontexts = GetContextFeatures(cec); for (int ci = 0, cl = ccontexts.Count; ci < cl; ci++) { features.Add(ccontexts[ci]); } features.Add(cec.NameType + "," + mention.HeadTokenText); } } return(features); }
public override bool CanResolve(MentionContext mention) { //System.err.println("MaxentSingularPronounResolver.canResolve: ec= ("+mention.id+") "+ mention.toText()); string tag = mention.HeadTokenTag; return(tag != null && tag.StartsWith("PRP") && Linker.SingularThirdPersonPronounPattern.IsMatch(mention.HeadTokenText)); }
public override bool CanResolve(MentionContext mention) { string firstTok = mention.FirstTokenText.ToLower(); string firstTokTag = mention.FirstToken.SyntacticType; bool rv = mention.HeadTokenTag.Equals("NNS") && !IsDefiniteArticle(firstTok, firstTokTag); return rv; }
protected internal override List <string> GetFeatures(MentionContext mention, DiscourseEntity entity) { var features = base.GetFeatures(mention, entity); if (entity != null) { features.AddRange(GetPronounMatchFeatures(mention, entity)); var contexts = GetContextFeatures(mention); var cec = entity.LastExtent; if (PartsOfSpeech.IsPersOrPossPronoun(mention.HeadTokenTag) && PartsOfSpeech.IsPersOrPossPronoun(cec.HeadTokenTag)) { features.Add(mention.HeadTokenText + "," + cec.HeadTokenText); } else if (PartsOfSpeech.IsProperNoun(mention.HeadTokenText)) { for (int ci = 0, cl = contexts.Count; ci < cl; ci++) { features.Add(contexts[ci]); } features.Add(mention.NameType + "," + cec.HeadTokenText); } else { var ccontexts = GetContextFeatures(cec); for (int ci = 0, cl = ccontexts.Count; ci < cl; ci++) { features.Add(ccontexts[ci]); } features.Add(cec.NameType + "," + mention.HeadTokenText); } } return(features); }
protected internal override bool IsExcluded(MentionContext context, DiscourseEntity discourseEntity) { MentionContext currentContext = discourseEntity.LastExtent; if (context.SentenceNumber != currentContext.SentenceNumber) { return true; } //shallow parse appositives if (currentContext.IndexSpan.End == context.IndexSpan.Start - 2) { return false; } //full parse w/o trailing comma if (currentContext.IndexSpan.End == context.IndexSpan.End) { return false; } //full parse w/ trailing comma or period if (currentContext.IndexSpan.End <= context.IndexSpan.End + 2 && (context.NextToken != null && (context.NextToken.ToString() == PartsOfSpeech.Comma || context.NextToken.ToString() == PartsOfSpeech.SentenceFinalPunctuation))) { return false; } return true; }
public override bool CanResolve(MentionContext mention) { string firstTok = mention.FirstTokenText.ToLower(); string firstTokTag = mention.FirstToken.SyntacticType; bool rv = mention.HeadTokenTag == PartsOfSpeech.NounPlural && !IsDefiniteArticle(firstTok, firstTokTag); return rv; }
protected internal override bool IsExcluded(MentionContext context, DiscourseEntity discourseEntity) { MentionContext currentContext = discourseEntity.LastExtent; if (context.SentenceNumber != currentContext.SentenceNumber) { return(true); } //shallow parse appositives if (currentContext.IndexSpan.End == context.IndexSpan.Start - 2) { return(false); } //full parse w/o trailing comma if (currentContext.IndexSpan.End == context.IndexSpan.End) { return(false); } //full parse w/ trailing comma or period if (currentContext.IndexSpan.End <= context.IndexSpan.End + 2 && (context.NextToken != null && (context.NextToken.ToString() == PartsOfSpeech.Comma || context.NextToken.ToString() == PartsOfSpeech.SentenceFinalPunctuation))) { return(false); } return(true); }
protected internal override bool IsOutOfRange(MentionContext mention, DiscourseEntity entity) { MentionContext cec = entity.LastExtent; //System.err.println("MaxentPluralPronounResolver.outOfRange: ["+ec.toText()+" ("+ec.id+")] ["+cec.toText()+" ("+cec.id+")] ec.sentenceNumber=("+ec.sentenceNumber+")-cec.sentenceNumber=("+cec.sentenceNumber+") > "+NUM_SENTS_BACK_PRONOUNS); return(mention.SentenceNumber - cec.SentenceNumber > NUM_SENTS_BACK_PRONOUNS); }
public override bool CanResolve(MentionContext mention) { string tag = mention.HeadTokenTag; bool fpp = tag != null && tag.StartsWith("PRP") && Linker.SpeechPronounPattern.IsMatch(mention.HeadTokenText); bool pn = tag != null && tag.StartsWith("NNP"); return (fpp || pn); }
public override bool CanResolve(MentionContext mention) { var tag = mention.HeadTokenTag; var fpp = tag != null && PartsOfSpeech.IsPersOrPossPronoun(tag) && Linker.SpeechPronounPattern.IsMatch(mention.HeadTokenText); var pn = tag != null && PartsOfSpeech.IsProperNoun(tag); return(fpp || pn); }
public override bool CanResolve(MentionContext mention) { string tag = mention.HeadTokenTag; bool fpp = tag != null && tag.StartsWith("PRP") && Linker.SpeechPronounPattern.IsMatch(mention.HeadTokenText); bool pn = tag != null && tag.StartsWith("NNP"); return(fpp || pn); }
public override bool CanResolve(MentionContext context) { if (PartsOfSpeech.IsNoun(context.HeadTokenTag)) { return (context.PreviousToken != null && predicativePattern.IsMatch(context.PreviousToken.ToString())); } return false; }
public override bool CanResolve(MentionContext context) { if (PartsOfSpeech.IsNoun(context.HeadTokenTag)) { return(context.PreviousToken != null && predicativePattern.IsMatch(context.PreviousToken.ToString())); } return(false); }
public override bool CanResolve(MentionContext mention) { string firstTok = mention.FirstTokenText.ToLower(); string firstTokTag = mention.FirstToken.SyntacticType; bool rv = mention.HeadTokenTag.Equals("NNS") && !IsDefiniteArticle(firstTok, firstTokTag); return(rv); }
public override bool CanResolve(MentionContext context) { if (context.HeadTokenTag.StartsWith("NN")) { return(context.PreviousToken != null && predicativePattern.IsMatch(context.PreviousToken.ToString())); } return(false); }
public override bool CanResolve(MentionContext mention) { Object[] mtokens = mention.Tokens; string firstTok = mention.FirstTokenText.ToLower(); bool rv = mtokens.Length > 1 && !PartsOfSpeech.IsProperNoun(mention.HeadTokenTag) && IsDefiniteArticle(firstTok, mention.FirstTokenTag); return (rv); }
public override bool CanResolve(MentionContext mention) { string firstTok = mention.FirstTokenText.ToLower(); string firstTokTag = mention.FirstToken.SyntacticType; bool rv = mention.HeadTokenTag == PartsOfSpeech.NounPlural && !IsDefiniteArticle(firstTok, firstTokTag); return(rv); }
public override bool CanResolve(MentionContext mention) { string tag = mention.HeadTokenTag; bool fpp = tag != null && PartsOfSpeech.IsPersonalOrPossessivePronoun(tag) && Linker.SpeechPronounPattern.IsMatch(mention.HeadTokenText); bool pn = tag != null && PartsOfSpeech.IsProperNoun(tag); return(fpp || pn); }
public override bool CanResolve(MentionContext context) { if (context.HeadTokenTag.StartsWith("NN")) { return (context.PreviousToken != null && predicativePattern.IsMatch(context.PreviousToken.ToString())); } return false; }
public override bool CanResolve(MentionContext mention) { Object[] mtokens = mention.Tokens; string firstTok = mention.FirstTokenText.ToLower(); bool rv = mtokens.Length > 1 && !PartsOfSpeech.IsProperNoun(mention.HeadTokenTag) && IsDefiniteArticle(firstTok, mention.FirstTokenTag); return(rv); }
protected internal override List<string> GetFeatures(MentionContext mention, DiscourseEntity entity) { List<string> features = base.GetFeatures(mention, entity); if (entity != null) { features.AddRange(GetContextFeatures(mention)); features.AddRange(GetStringMatchFeatures(mention, entity)); } return features; }
protected internal override List <string> GetFeatures(MentionContext mention, DiscourseEntity entity) { List <string> features = base.GetFeatures(mention, entity); if (entity != null) { features.AddRange(GetStringMatchFeatures(mention, entity)); features.AddRange(getAcronymFeatures(mention, entity)); } return(features); }
public override bool CanResolve(MentionContext mention) { System.Object[] mtokens = mention.Tokens; string firstTok = mention.FirstTokenText.ToLower(); bool rv = mtokens.Length > 1 && !mention.HeadTokenTag.StartsWith("NNP") && IsDefiniteArticle(firstTok, mention.FirstTokenTag); //if (rv) { // System.err.println("defNp "+ec); //} return (rv); }
protected internal override bool IsExcluded(MentionContext mention, DiscourseEntity entity) { if (base.IsExcluded(mention, entity)) { return true; } else { MentionContext cec = entity.LastExtent; return (cec.HeadTokenTag != PartsOfSpeech.NounPlural || base.IsExcluded(mention, entity)); } }
protected internal override bool IsExcluded(MentionContext mention, DiscourseEntity entity) { if (base.IsExcluded(mention, entity)) { return(true); } else { MentionContext cec = entity.LastExtent; return(!cec.HeadTokenTag.Equals("NNS") || base.IsExcluded(mention, entity)); } }
public override bool CanResolve(MentionContext mention) { System.Object[] mtokens = mention.Tokens; string firstTok = mention.FirstTokenText.ToLower(); bool rv = mtokens.Length > 1 && !mention.HeadTokenTag.StartsWith("NNP") && IsDefiniteArticle(firstTok, mention.FirstTokenTag); //if (rv) { // System.err.println("defNp "+ec); //} return(rv); }
protected internal override bool IsExcluded(MentionContext mention, DiscourseEntity entity) { if (base.IsExcluded(mention, entity)) { return(true); } else { MentionContext cec = entity.LastExtent; return(cec.HeadTokenTag != PartsOfSpeech.NounPlural || base.IsExcluded(mention, entity)); } }
protected internal override List <string> GetFeatures(MentionContext mention, DiscourseEntity entity) { //System.err.println("ProperNounResolver.getFeatures: "+mention.toText()+" -> "+entity); List <string> features = base.GetFeatures(mention, entity); if (entity != null) { features.AddRange(GetStringMatchFeatures(mention, entity)); features.AddRange(getAcronymFeatures(mention, entity)); } return(features); }
//UPGRADE_NOTE: Access modifiers of method 'excluded' were changed to 'public'. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1204'" protected internal override bool IsExcluded(MentionContext mention, DiscourseEntity entity) { if (base.IsExcluded(mention, entity)) { return(true); } var cec = entity.LastExtent; if (!CanResolve(cec)) { return(true); } if (PartsOfSpeech.IsProperNoun(mention.HeadTokenTag)) { //mention is a propernoun if (PartsOfSpeech.IsProperNoun(cec.HeadTokenTag)) { return(true); // both NNP } else { if (entity.MentionCount > 1) { return(true); } return(!CanResolve(cec)); } } else if (PartsOfSpeech.IsPersOrPossPronoun(mention.HeadTokenTag)) { // mention is a speech pronoun // cec can be either a speech pronoun or a propernoun if (PartsOfSpeech.IsProperNoun(cec.HeadTokenTag)) { //exclude antecedents not in the same sentence when they are not pronoun return(mention.SentenceNumber - cec.SentenceNumber != 0); } else if (PartsOfSpeech.IsPersOrPossPronoun(cec.HeadTokenTag)) { return(false); } else { Console.Error.WriteLine("Unexpected candidate exluded: " + cec.ToText()); return(true); } } else { Console.Error.WriteLine("Unexpected mention exluded: " + mention.ToText()); return(true); } }
protected internal override List <string> GetFeatures(MentionContext mention, DiscourseEntity entity) { List <string> features = base.GetFeatures(mention, entity); if (entity != null) { //generate pronoun w/ referent features MentionContext cec = entity.LastExtent; //string gen = getPronounGender(pronoun); features.AddRange(GetPronounMatchFeatures(mention, entity)); features.AddRange(GetContextFeatures(cec)); features.AddRange(GetDistanceFeatures(mention, entity)); features.Add(GetMentionCountFeature(entity)); /* * //lexical features * Set featureSet = new HashSet(); * for (Iterator ei = entity.getExtents(); ei.hasNext();) { * MentionContext ec = (MentionContext) ei.next(); * List toks = ec.tokens; * Parse tok; * int headIndex = PTBHeadFinder.getInstance().getHeadIndex(toks); * for (int ti = 0; ti < headIndex; ti++) { * tok = (Parse) toks.get(ti); * featureSet.add(gen + "mw=" + tok.ToString().toLowerCase()); * featureSet.add(gen + "mt=" + tok.getSyntacticType()); * } * tok = (Parse) toks.get(headIndex); * featureSet.add(gen + "hw=" + tok.ToString().toLowerCase()); * featureSet.add(gen + "ht=" + tok.getSyntacticType()); * //semantic features * if (ec.neType != null) { * featureSet.add(gen + "," + ec.neType); * } * else { * for (Iterator si = ec.synsets.iterator(); si.hasNext();) { * Integer synset = (Integer) si.next(); * featureSet.add(gen + "," + synset); * } * } * } * Iterator fset = featureSet.iterator(); * while (fset.hasNext()) { * string f = (string) fset.next(); * features.add(f); * } */ } return(features); }
protected internal override List<string> GetFeatures(MentionContext mention, DiscourseEntity entity) { List<string> features = base.GetFeatures(mention, entity); if (entity != null) { //generate pronoun w/ referent features MentionContext cec = entity.LastExtent; //string gen = getPronounGender(pronoun); features.AddRange(GetPronounMatchFeatures(mention, entity)); features.AddRange(GetContextFeatures(cec)); features.AddRange(GetDistanceFeatures(mention, entity)); features.Add(GetMentionCountFeature(entity)); /* //lexical features Set featureSet = new HashSet(); for (Iterator ei = entity.getExtents(); ei.hasNext();) { MentionContext ec = (MentionContext) ei.next(); List toks = ec.tokens; Parse tok; int headIndex = PTBHeadFinder.getInstance().getHeadIndex(toks); for (int ti = 0; ti < headIndex; ti++) { tok = (Parse) toks.get(ti); featureSet.add(gen + "mw=" + tok.toString().toLowerCase()); featureSet.add(gen + "mt=" + tok.getSyntacticType()); } tok = (Parse) toks.get(headIndex); featureSet.add(gen + "hw=" + tok.toString().toLowerCase()); featureSet.add(gen + "ht=" + tok.getSyntacticType()); //semantic features if (ec.neType != null) { featureSet.add(gen + "," + ec.neType); } else { for (Iterator si = ec.synsets.iterator(); si.hasNext();) { Integer synset = (Integer) si.next(); featureSet.add(gen + "," + synset); } } } Iterator fset = featureSet.iterator(); while (fset.hasNext()) { string f = (string) fset.next(); features.add(f); } */ } return (features); }
protected internal virtual List <string> getAcronymFeatures(MentionContext mention, DiscourseEntity entity) { MentionContext xec = getProperNounExtent(entity); string ecStrip = StripNounPhrase(mention); string xecStrip = StripNounPhrase(xec); if (ecStrip != null && xecStrip != null) { if (isAcronym(ecStrip, xecStrip)) { List <string> features = new List <string>(1); features.Add("knownAcronym"); return(features); } } return(new List <string>()); }
protected internal override bool IsExcluded(MentionContext mention, DiscourseEntity entity) { if (base.IsExcluded(mention, entity)) { return(true); } foreach (MentionContext xec in entity.Mentions) { if (PartsOfSpeech.IsProperNoun(xec.HeadTokenTag)) { // || initialCaps.matcher(xec.headToken.ToString()).find()) { return(false); } } return(true); }
protected internal override bool IsExcluded(MentionContext mention, DiscourseEntity entity) { if (base.IsExcluded(mention, entity)) { return(true); } foreach (MentionContext xec in entity.Mentions) { if (xec.HeadTokenTag.StartsWith("NNP")) { // || initialCaps.matcher(xec.headToken.toString()).find()) { //System.err.println("MaxentProperNounResolver.exclude: kept "+xec.toText()+" with "+xec.headTag); return(false); } } return(true); }
protected internal override List <string> GetFeatures(MentionContext mention, DiscourseEntity entity) { List <string> features = base.GetFeatures(mention, entity); //features.add("eid="+pc.id); if (entity != null) { //generate pronoun w/ referent features features.AddRange(GetPronounMatchFeatures(mention, entity)); MentionContext cec = entity.LastExtent; features.AddRange(GetDistanceFeatures(mention, entity)); features.AddRange(GetContextFeatures(cec)); features.Add(GetMentionCountFeature(entity)); /* * //lexical features * Set featureSet = new HashSet(); * for (Iterator ei = entity.getExtents(); ei.hasNext();) { * MentionContext ec = (MentionContext) ei.next(); * int headIndex = PTBHeadFinder.getInstance().getHeadIndex(ec.tokens); * Parse tok = (Parse) ec.tokens.get(headIndex); * featureSet.add("hw=" + tok.ToString().toLowerCase()); * if (ec.parse.isCoordinatedNounPhrase()) { * featureSet.add("ht=CC"); * } * else { * featureSet.add("ht=" + tok.getSyntacticType()); * } * if (ec.neType != null){ * featureSet.add("ne="+ec.neType); * } * } * Iterator fset = featureSet.iterator(); * while (fset.hasNext()) { * string f = (string) fset.next(); * features.add(f); * } */ } return(features); }
protected internal override List<string> GetFeatures(MentionContext mention, DiscourseEntity entity) { List<string> features = base.GetFeatures(mention, entity); //features.add("eid="+pc.id); if (entity != null) { //generate pronoun w/ referent features features.AddRange(GetPronounMatchFeatures(mention, entity)); MentionContext cec = entity.LastExtent; features.AddRange(GetDistanceFeatures(mention, entity)); features.AddRange(GetContextFeatures(cec)); features.Add(GetMentionCountFeature(entity)); /* //lexical features Set featureSet = new HashSet(); for (Iterator ei = entity.getExtents(); ei.hasNext();) { MentionContext ec = (MentionContext) ei.next(); int headIndex = PTBHeadFinder.getInstance().getHeadIndex(ec.tokens); Parse tok = (Parse) ec.tokens.get(headIndex); featureSet.add("hw=" + tok.toString().toLowerCase()); if (ec.parse.isCoordinatedNounPhrase()) { featureSet.add("ht=CC"); } else { featureSet.add("ht=" + tok.getSyntacticType()); } if (ec.neType != null){ featureSet.add("ne="+ec.neType); } } Iterator fset = featureSet.iterator(); while (fset.hasNext()) { string f = (string) fset.next(); features.add(f); } */ } return features; }
public override bool CanResolve(MentionContext mention) { return(PartsOfSpeech.IsProperNoun(mention.HeadTokenTag) || mention.HeadTokenTag.StartsWith(PartsOfSpeech.CardinalNumber)); }
protected internal override bool IsExcluded(MentionContext mention, DiscourseEntity entity) { if (base.IsExcluded(mention, entity)) { return true; } else { MentionContext cec = entity.LastExtent; return (!cec.HeadTokenTag.Equals("NNS") || base.IsExcluded(mention, entity)); } }
protected internal override bool IsExcluded(MentionContext mention, DiscourseEntity entity) { if (base.IsExcluded(mention, entity)) { return true; } foreach (MentionContext xec in entity.Mentions) { if (xec.HeadTokenTag.StartsWith("NNP")) { // || initialCaps.matcher(xec.headToken.toString()).find()) { //System.err.println("MaxentProperNounResolver.exclude: kept "+xec.toText()+" with "+xec.headTag); return false; } } return true; }
protected internal override bool IsOutOfRange(MentionContext mention, DiscourseEntity entity) { var cec = entity.LastExtent; return(mention.SentenceNumber - cec.SentenceNumber > NumberSentencesBack); }
public override bool CanResolve(MentionContext mention) { return (mention.HeadTokenTag.StartsWith("NNP") || mention.HeadTokenTag.StartsWith("CD")); }
protected internal virtual List<string> getAcronymFeatures(MentionContext mention, DiscourseEntity entity) { MentionContext xec = getProperNounExtent(entity); string ecStrip = StripNounPhrase(mention); string xecStrip = StripNounPhrase(xec); if (ecStrip != null && xecStrip != null) { if (isAcronym(ecStrip, xecStrip)) { List<string> features = new List<string>(1); features.Add("knownAcronym"); return features; } } return new List<string>(); }
protected internal override bool IsExcluded(MentionContext context, DiscourseEntity discourseEntity) { MentionContext currentContext = discourseEntity.LastExtent; //System.err.println("IsAResolver.excluded?: ec.span="+ec.getSpan()+" cec.span="+cec.getSpan()+" cec="+cec.toText()+" lastToken="+ec.getNextToken()); if (context.SentenceNumber != currentContext.SentenceNumber) { //System.err.println("IsAResolver.excluded: (true) not same sentence"); return true; } //shallow parse appositives //System.err.println("IsAResolver.excluded: ec="+ec.toText()+" "+ec.span+" cec="+cec.toText()+" "+cec.span); if (currentContext.IndexSpan.End == context.IndexSpan.Start - 2) { return false; } //full parse w/o trailing comma if (currentContext.IndexSpan.End == context.IndexSpan.End) { //System.err.println("IsAResolver.excluded: (false) spans share end"); return false; } //full parse w/ trailing comma or period if (currentContext.IndexSpan.End <= context.IndexSpan.End + 2 && (context.NextToken != null && (context.NextToken.ToString().Equals(",") || context.NextToken.ToString().Equals(".")))) { //System.err.println("IsAResolver.excluded: (false) spans end + punct"); return false; } //System.err.println("IsAResolver.excluded: (true) default"); return true; }
public override bool CanResolve(MentionContext mention) { //System.err.println("MaxentSingularPronounResolver.canResolve: ec= ("+mention.id+") "+ mention.toText()); string tag = mention.HeadTokenTag; return (tag != null && tag.StartsWith("PRP") && Linker.SingularThirdPersonPronounPattern.IsMatch(mention.HeadTokenText)); }
protected internal override List<string> GetFeatures(MentionContext mention, DiscourseEntity entity) { List<string> features = base.GetFeatures(mention, entity); if (entity != null) { MentionContext ant = entity.LastExtent; List<string> leftContexts = GetContextFeatures(ant); for (int ci = 0, cn = leftContexts.Count; ci < cn; ci++) { features.Add("l" + leftContexts[ci]); } List<string> rightContexts = GetContextFeatures(mention); for (int ci = 0, cn = rightContexts.Count; ci < cn; ci++) { features.Add("r" + rightContexts[ci]); } features.Add("hts" + ant.HeadTokenTag + "," + mention.HeadTokenTag); } /* if (entity != null) { //System.err.println("MaxentIsResolver.getFeatures: ["+ec2.toText()+"] -> ["+de.getLastExtent().toText()+"]"); //previous word and tag if (ant.prevToken != null) { features.add("pw=" + ant.prevToken); features.add("pt=" + ant.prevToken.getSyntacticType()); } else { features.add("pw=<none>"); features.add("pt=<none>"); } //next word and tag if (mention.nextToken != null) { features.add("nw=" + mention.nextToken); features.add("nt=" + mention.nextToken.getSyntacticType()); } else { features.add("nw=<none>"); features.add("nt=<none>"); } //modifier word and tag for c1 int i = 0; List c1toks = ant.tokens; for (; i < ant.headTokenIndex; i++) { features.add("mw=" + c1toks.get(i)); features.add("mt=" + ((Parse) c1toks.get(i)).getSyntacticType()); } //head word and tag for c1 features.add("mh=" + c1toks.get(i)); features.add("mt=" + ((Parse) c1toks.get(i)).getSyntacticType()); //modifier word and tag for c2 i = 0; List c2toks = mention.tokens; for (; i < mention.headTokenIndex; i++) { features.add("mw=" + c2toks.get(i)); features.add("mt=" + ((Parse) c2toks.get(i)).getSyntacticType()); } //head word and tag for n2 features.add("mh=" + c2toks.get(i)); features.add("mt=" + ((Parse) c2toks.get(i)).getSyntacticType()); //word/tag pairs for (i = 0; i < ant.headTokenIndex; i++) { for (int j = 0; j < mention.headTokenIndex; j++) { features.add("w=" + c1toks.get(i) + "|" + "w=" + c2toks.get(j)); features.add("w=" + c1toks.get(i) + "|" + "t=" + ((Parse) c2toks.get(j)).getSyntacticType()); features.add("t=" + ((Parse) c1toks.get(i)).getSyntacticType() + "|" + "w=" + c2toks.get(j)); features.add("t=" + ((Parse) c1toks.get(i)).getSyntacticType() + "|" + "t=" + ((Parse) c2toks.get(j)).getSyntacticType()); } } features.add("ht=" + ant.headTokenTag + "|" + "ht=" + mention.headTokenTag); features.add("ht1=" + ant.headTokenTag); features.add("ht2=" + mention.headTokenTag); */ //semantic categories /* if (ant.neType != null) { if (re.neType != null) { features.add("sc="+ant.neType+","+re.neType); } else if (!re.headTokenTag.startsWith("NNP") && re.headTokenTag.startsWith("NN")) { Set synsets = re.synsets; for (Iterator si=synsets.iterator();si.hasNext();) { features.add("sc="+ant.neType+","+si.next()); } } } else if (!ant.headTokenTag.startsWith("NNP") && ant.headTokenTag.startsWith("NN")) { if (re.neType != null) { Set synsets = ant.synsets; for (Iterator si=synsets.iterator();si.hasNext();) { features.add("sc="+re.neType+","+si.next()); } } else if (!re.headTokenTag.startsWith("NNP") && re.headTokenTag.startsWith("NN")) { //System.err.println("MaxentIsaResolover.getFeatures: both common re="+re.parse+" ant="+ant.parse); Set synsets1 = ant.synsets; Set synsets2 = re.synsets; for (Iterator si=synsets1.iterator();si.hasNext();) { Object synset = si.next(); if (synsets2.contains(synset)) { features.add("sc="+synset); } } } } } */ //System.err.println("MaxentIsResolver.getFeatures: "+features.toString()); return features; }
protected internal override bool IsExcluded(MentionContext mention, DiscourseEntity entity) { if (base.IsExcluded(mention, entity)) { return (true); } string mentionGender = null; foreach (MentionContext entityMention in entity.Mentions) { string tag = entityMention.HeadTokenTag; if (tag != null && tag.StartsWith("PRP") && Linker.SingularThirdPersonPronounPattern.IsMatch(mention.HeadTokenText)) { if (mentionGender == null) { //lazy initilization mentionGender = GetPronounGender(mention.HeadTokenText); } string entityGender = GetPronounGender(entityMention.HeadTokenText); if (!entityGender.Equals("u") && !mentionGender.Equals(entityGender)) { return (true); } } } return (false); }
public override bool CanResolve(MentionContext mention) { string tag = mention.HeadTokenTag; return (tag != null && tag.StartsWith("PRP") && Linker.PluralThirdPersonPronounPattern.IsMatch(mention.HeadTokenText)); }
public override DiscourseEntity Resolve(MentionContext ec, DiscourseModel dm) { return (null); }
protected internal override bool IsOutOfRange(MentionContext ec, DiscourseEntity de) { return (false); }
public override bool CanResolve(MentionContext ec) { return (true); }
protected internal override bool IsOutOfRange(MentionContext mention, DiscourseEntity entity) { MentionContext cec = entity.LastExtent; //System.err.println("MaxentPluralPronounResolver.outOfRange: ["+ec.toText()+" ("+ec.id+")] ["+cec.toText()+" ("+cec.id+")] ec.sentenceNumber=("+ec.sentenceNumber+")-cec.sentenceNumber=("+cec.sentenceNumber+") > "+NUM_SENTS_BACK_PRONOUNS); return (mention.SentenceNumber - cec.SentenceNumber > NUM_SENTS_BACK_PRONOUNS); }
protected internal override bool IsOutOfRange(MentionContext mention, DiscourseEntity entity) { MentionContext cec = entity.LastExtent; //System.err.println("MaxentSingularPronounresolve.outOfRange: ["+entity.getLastExtent().toText()+" ("+entity.getId()+")] ["+mention.toText()+" ("+mention.getId()+")] entity.sentenceNumber=("+entity.getLastExtent().getSentenceNumber()+")-mention.sentenceNumber=("+mention.getSentenceNumber()+") > "+numSentencesBack); return (mention.SentenceNumber - cec.SentenceNumber > NumberSentencesBack); }
protected internal override bool IsOutOfRange(MentionContext context, DiscourseEntity discourseEntity) { MentionContext currentContext = discourseEntity.LastExtent; return (currentContext.SentenceNumber != context.SentenceNumber); }
//UPGRADE_NOTE: Access modifiers of method 'excluded' were changed to 'public'. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1204'" protected internal override bool IsExcluded(MentionContext mention, DiscourseEntity entity) { if (base.IsExcluded(mention, entity)) { return true; } MentionContext cec = entity.LastExtent; if (!CanResolve(cec)) { return true; } if (mention.HeadTokenTag.StartsWith("NNP")) { //mention is a propernoun if (cec.HeadTokenTag.StartsWith("NNP")) { return true; // both NNP } else { if (entity.MentionCount > 1) { return true; } return !CanResolve(cec); } } else if (mention.HeadTokenTag.StartsWith("PRP")) { // mention is a speech pronoun // cec can be either a speech pronoun or a propernoun if (cec.HeadTokenTag.StartsWith("NNP")) { //exclude antecedents not in the same sentence when they are not pronoun return (mention.SentenceNumber - cec.SentenceNumber != 0); } else if (cec.HeadTokenTag.StartsWith("PRP")) { return false; } else { System.Console.Error.WriteLine("Unexpected candidate exluded: " + cec.ToText()); return true; } } else { System.Console.Error.WriteLine("Unexpected mention exluded: " + mention.ToText()); return true; } }
protected internal override bool IsOutOfRange(MentionContext mention, DiscourseEntity entity) { MentionContext cec = entity.LastExtent; return (mention.SentenceNumber - cec.SentenceNumber > NumberSentencesBack); }