/// <summary> /// Creates a new entity based on the specified mention and its specified gender and number properties. /// </summary> /// <param name="mention"> /// The first mention of this entity. /// </param> /// <param name="gender"> /// The gender of this entity. /// </param> /// <param name="genderProbability"> /// The probability that the specified gender is correct. /// </param> /// <param name="number"> /// The number for this entity. /// </param> /// <param name="numberProbability"> /// The probability that the specified number is correct. /// </param> public DiscourseEntity(Mention.MentionContext mention, Similarity.GenderEnum gender, double genderProbability, Similarity.NumberEnum number, double numberProbability) : base(mention) { Gender = gender; GenderProbability = genderProbability; Number = number; NumberProbability = numberProbability; }
private string GetGenderCompatibilityFeature(Mention.MentionContext entityContext, DiscourseEntity discourseEntity) { Similarity.GenderEnum entityGender = discourseEntity.Gender; if (entityGender == Similarity.GenderEnum.Unknown || entityContext.GetGender() == Similarity.GenderEnum.Unknown) { return(GenderUnknown); } else if (entityContext.GetGender() == entityGender) { return(GenderCompatible); } else { return(GenderIncompatible); } }
private string GetGenderCompatibilityFeature(Mention.MentionContext entityContext, DiscourseEntity discourseEntity) { Similarity.GenderEnum entityGender = discourseEntity.Gender; //System.err.println("getGenderCompatibility: mention="+ec.getGender()+" entity="+eg); if (entityGender == Similarity.GenderEnum.Unknown || entityContext.GetGender() == Similarity.GenderEnum.Unknown) { return(mGenderUnknown); } else if (entityContext.GetGender() == entityGender) { return(mGenderCompatible); } else { return(mGenderIncompatible); } }
public MentionContext(Util.Span span, Util.Span headSpan, int entityId, IParse parse, string extentType, string nameType, int mentionIndex, int mentionsInSentence, int mentionIndexInDocument, int sentenceIndex, IHeadFinder headFinder) : base(span, headSpan, entityId, parse, extentType, nameType, headFinder) { mNounLocation = mentionIndex; mMaxNounLocation = mentionsInSentence; mNounNumber = mentionIndexInDocument; mSentenceNumber = sentenceIndex; mIndexSpan = parse.Span; mPreviousToken = parse.PreviousToken; mNextToken = parse.NextToken; mHead = headFinder.GetLastHead(parse); List <IParse> headTokens = mHead.Tokens; Tokens = headTokens.ToArray(); mBasalNextToken = mHead.NextToken; //System.err.println("MentionContext.init: "+ent+" "+ent.getEntityId()+" head="+head); //mNonDescriptorStart = 0; InitializeHeads(headFinder.GetHeadIndex(mHead)); mGender = Similarity.GenderEnum.Unknown; mGenderProbability = 0d; mNumber = Similarity.NumberEnum.Unknown; mNumberProbability = 0d; }
public MentionContext(Util.Span span, Util.Span headSpan, int entityId, IParse parse, string extentType, string nameType, int mentionIndex, int mentionsInSentence, int mentionIndexInDocument, int sentenceIndex, IHeadFinder headFinder) : base(span, headSpan, entityId, parse, extentType, nameType, headFinder) { NounPhraseSentenceIndex = mentionIndex; MaxNounPhraseSentenceIndex = mentionsInSentence; NounPhraseDocumentIndex = mentionIndexInDocument; SentenceNumber = sentenceIndex; IndexSpan = parse.Span; PreviousToken = parse.PreviousToken; NextToken = parse.NextToken; Head = headFinder.GetLastHead(parse); List <IParse> headTokens = Head.Tokens; Tokens = headTokens.ToArray(); NextTokenBasal = Head.NextToken; //mNonDescriptorStart = 0; InitializeHeads(headFinder.GetHeadIndex(Head)); mGender = Similarity.GenderEnum.Unknown; GenderProbability = 0d; _number = Similarity.NumberEnum.Unknown; NumberProbability = 0d; }
/* * private static string[] getLemmas(MentionContext xec) { * //TODO: Try multi-word lemmas first. * string word = xec.getHeadTokenText(); * return DictionaryFactory.getDictionary().getLemmas(word,PartsOfSpeech.NounSingularOrMass); * } * * private static Set getSynsetSet(MentionContext xec) { * Set synsetSet = new HashSet(); * string[] lemmas = getLemmas(xec); * for (int li = 0; li < lemmas.length; li++) { * string[] synsets = DictionaryFactory.getDictionary().getParentSenseKeys(lemmas[li],PartsOfSpeech.NounSingularOrMass,0); * for (int si=0,sn=synsets.length;si<sn;si++) { * synsetSet.add(synsets[si]); * } * } * return (synsetSet); * } */ /// <summary> /// Assigns the specified gender with the specified probability to this mention. /// </summary> /// <param name="gender"> /// The gender to be given to this mention. /// </param> /// <param name="probability"> /// The probability assosicated with the gender assignment. /// </param> public virtual void SetGender(Similarity.GenderEnum gender, double probability) { mGender = gender; GenderProbability = probability; }
/* private static String[] getLemmas(MentionContext xec) { //TODO: Try multi-word lemmas first. String word = xec.getHeadTokenText(); return DictionaryFactory.getDictionary().getLemmas(word,"NN"); } private static Set getSynsetSet(MentionContext xec) { //System.err.println("getting synsets for mention:"+xec.toText()); Set synsetSet = new HashSet(); String[] lemmas = getLemmas(xec); for (int li = 0; li < lemmas.length; li++) { String[] synsets = DictionaryFactory.getDictionary().getParentSenseKeys(lemmas[li],"NN",0); for (int si=0,sn=synsets.length;si<sn;si++) { synsetSet.add(synsets[si]); } } return (synsetSet); } */ /// <summary> /// Assigns the specified gender with the specified probability to this mention. /// </summary> /// <param name="gender"> /// The gender to be given to this mention. /// </param> /// <param name="probability"> /// The probability assosicated with the gender assignment. /// </param> public virtual void SetGender(Similarity.GenderEnum gender, double probability) { mGender = gender; mGenderProbability = probability; }
public MentionContext(Util.Span span, Util.Span headSpan, int entityId, IParse parse, string extentType, string nameType, int mentionIndex, int mentionsInSentence, int mentionIndexInDocument, int sentenceIndex, IHeadFinder headFinder) : base(span, headSpan, entityId, parse, extentType, nameType, headFinder) { mNounLocation = mentionIndex; mMaxNounLocation = mentionsInSentence; mNounNumber = mentionIndexInDocument; mSentenceNumber = sentenceIndex; mIndexSpan = parse.Span; mPreviousToken = parse.PreviousToken; mNextToken = parse.NextToken; mHead = headFinder.GetLastHead(parse); List<IParse> headTokens = mHead.Tokens; Tokens = headTokens.ToArray(); mBasalNextToken = mHead.NextToken; //System.err.println("MentionContext.init: "+ent+" "+ent.getEntityId()+" head="+head); //mNonDescriptorStart = 0; InitializeHeads(headFinder.GetHeadIndex(mHead)); mGender = Similarity.GenderEnum.Unknown; mGenderProbability = 0d; mNumber = Similarity.NumberEnum.Unknown; mNumberProbability = 0d; }
public MentionContext(Util.Span span, Util.Span headSpan, int entityId, IParse parse, string extentType, string nameType, int mentionIndex, int mentionsInSentence, int mentionIndexInDocument, int sentenceIndex, IHeadFinder headFinder): base(span, headSpan, entityId, parse, extentType, nameType, headFinder) { NounPhraseSentenceIndex = mentionIndex; MaxNounPhraseSentenceIndex = mentionsInSentence; NounPhraseDocumentIndex = mentionIndexInDocument; SentenceNumber = sentenceIndex; IndexSpan = parse.Span; PreviousToken = parse.PreviousToken; NextToken = parse.NextToken; Head = headFinder.GetLastHead(parse); List<IParse> headTokens = Head.Tokens; Tokens = headTokens.ToArray(); NextTokenBasal = Head.NextToken; //mNonDescriptorStart = 0; InitializeHeads(headFinder.GetHeadIndex(Head)); mGender = Similarity.GenderEnum.Unknown; GenderProbability = 0d; _number = Similarity.NumberEnum.Unknown; NumberProbability = 0d; }