public void TestTwoWordsWihtProperModifierToStringUsingDictionaryWord()
        {
            WordSet set = new WordSet();

            set.Add(Words.jan);
            set.Add(new Word("Mato"));
            Assert.AreEqual(2, set.Count);
            Assert.AreEqual("jan Mato", set.ToString());
        }
示例#2
0
        /// <summary>
        /// Convenience constructor.
        /// </summary>
        public HeadedPhrase(Word head, Word modifier1, Word modifier2 = null, Word modifier3 = null)
        {
            //if (new[] {"mi", "sina", "ona"}.Contains(head.Text))
            //{
            //    throw new ArgumentException("mi, sina, ona can only be pronouns, so you must use ComplexPronoun");
            //}
            WordSet set = new WordSet();

            set.Add(modifier1);
            if (modifier2 != null)
            {
                set.Add(modifier2);
            }
            if (modifier3 != null)
            {
                set.Add(modifier3);
            }

            ValidateConstruction(head, set);

            this.head      = head;
            this.modifiers = set;
        }
示例#3
0
        private VerbPhrase VerbPhraseParser(string[] verbPhraseText)
        {
            //Adjectives & noun phrases will sneak in here. Maybe need more punctuation?

            Word[]      asWords = verbPhraseText.Select(x => new Word(x)).ToArray();
            List <Word> tokens  = TurnThisWordsIntoWordsWithTaggedWords(asWords);

            WordSet modals   = new WordSet();
            Word    headVerb = null;
            WordSet adverbs  = new WordSet();

            foreach (Word token in tokens)
            {
                //modals until used up. Strictly by dictionary.
                if (headVerb == null)
                {
                    if (Token.IsModal(token))
                    {
                        modals.Add(token);
                        continue;
                    }
                }

                //head verb, only because we ran out of modals. (unless there is only one word!)
                if (headVerb == null)
                {
                    headVerb = token; //If number, proper modifier, etc, then this is not really a verb!
                    continue;
                }
                //Adverbs thereafter.
                adverbs.Add(token);
            }



            if (headVerb == null)
            {
                //Shoot!
                modals   = new WordSet();
                headVerb = null;
                adverbs  = new WordSet();
                foreach (Word token in tokens)
                {
                    //modals until used up. Strictly by dictionary.
                    //if (headVerb == null)
                    //{
                    //    if (Token.IsModal(token))
                    //    {
                    //        modals.Add(token);
                    //        continue;
                    //    }
                    //}

                    //head verb, only because we ran out of modals. (unless there is only one word!)
                    if (headVerb == null)
                    {
                        headVerb = token; //If number, proper modifier, etc, then this is not really a verb!
                        continue;
                    }
                    //Adverbs thereafter.
                    adverbs.Add(token);
                }
            }

            if (headVerb != null && (headVerb.Text == "tawa" || headVerb.Text == "kama") && adverbs.Count > 0)
            {
                //This could be a noun complement.
                string possibleNounPhrase = adverbs.ToString("g");
                Console.WriteLine(possibleNounPhrase);
            }

            return(new VerbPhrase(headVerb, modals, adverbs));
        }