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()); }
/// <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; }
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)); }