Esempio n. 1
0
 /// <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;
 }
Esempio n. 2
0
 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);
     }
 }
Esempio n. 3
0
 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;
        }
Esempio n. 5
0
        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;
        }
Esempio n. 6
0
        /*
         * 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;
 }
Esempio n. 9
0
        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;
		}