예제 #1
0
        public virtual void stringIndefiniteArticleInflectionVowelTest()
        {
            SPhraseSpec senSpec = phraseFactory.createClause();

            senSpec.addComplement(phraseFactory.createStringElement("I see a"));
            NPPhraseSpec firstNoun = phraseFactory.createNounPhrase("elephant");

            senSpec.addComplement(firstNoun);
            DocumentElement completeSen = phraseFactory.createSentence();

            completeSen.addComponent(senSpec);
            Assert.AreEqual("I see an elephant.", realiser.realise(completeSen).Realisation);
        }
예제 #2
0
        public virtual void stringIndefiniteArticleInflectionConsonantTest()
        {
            SPhraseSpec senSpec = phraseFactory.createClause();

            senSpec.addComplement(phraseFactory.createStringElement("I see an"));
            NPPhraseSpec firstNoun = phraseFactory.createNounPhrase("cow");

            senSpec.addComplement(firstNoun);
            DocumentElement completeSen = phraseFactory.createSentence();

            completeSen.addComponent(senSpec);
            // Do not attempt "an" -> "a"
            Assert.AreNotSame("I see an cow.", realiser.realise(completeSen).Realisation);
        }
예제 #3
0
        public virtual void frontNPStringElementTest()
        {
            SPhraseSpec  senSpec = phraseFactory.createClause();
            NPPhraseSpec np      = phraseFactory.createNounPhrase();

            np.setHead("cat");
            np.setDeterminer("the");
            senSpec.addComplement(np);
            senSpec.addComplement(phraseFactory.createStringElement("loves a dog"));
            DocumentElement completeSen = phraseFactory.createSentence();

            completeSen.addComponent(senSpec);
            Assert.AreEqual("The cat loves a dog.", realiser.realise(completeSen).Realisation);
        }
예제 #4
0
        public virtual void pointAbsorptionTrailingWhiteSpaceTest()
        {
            SPhraseSpec  senSpec   = phraseFactory.createClause();
            NPPhraseSpec firstNoun = phraseFactory.createNounPhrase();

            firstNoun.setNoun("yaha");
            senSpec.addComplement(firstNoun);
            senSpec.addComplement("was sleeping on his own and dreaming etc.      ");
            DocumentElement completeSen = phraseFactory.createSentence();

            completeSen.addComponent(senSpec);
            Assert.AreEqual("Yaha was sleeping on his own and dreaming etc.",
                            realiser.realise(completeSen).Realisation);
        }
예제 #5
0
        public virtual void mulitpleStringElementsTest()
        {
            SPhraseSpec senSpec = phraseFactory.createClause();

            senSpec.addComplement(phraseFactory.createStringElement("the world loves"));
            NPPhraseSpec np = phraseFactory.createNounPhrase();

            np.setHead("ABBA");
            senSpec.addComplement(np);
            senSpec.addComplement(phraseFactory.createStringElement("but not a sore loser"));
            DocumentElement completeSen = phraseFactory.createSentence();

            completeSen.addComponent(senSpec);
            Assert.AreEqual("The world loves ABBA but not a sore loser.", realiser.realise(completeSen).Realisation);
        }
예제 #6
0
        public virtual void testPassiveWithPPCompl()
        {
            // passive with just complement
            NPPhraseSpec subject = phraseFactory.createNounPhrase("wave");

            subject.setFeature(Feature.NUMBER, NumberAgreement.PLURAL);
            NPPhraseSpec @object = phraseFactory.createNounPhrase("surfer");

            @object.setFeature(Feature.NUMBER, NumberAgreement.PLURAL);

            SPhraseSpec
                _s1 = phraseFactory.createClause(subject, "carry", @object); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$


            // add a PP complement
            PPPhraseSpec pp =
                phraseFactory.createPrepositionPhrase("to", phraseFactory.createNounPhrase("the", "shore"));

            pp.setFeature(InternalFeature.DISCOURSE_FUNCTION, DiscourseFunction.INDIRECT_OBJECT);
            _s1.addComplement(pp);

            _s1.setFeature(Feature.PASSIVE, true);

            Assert.AreEqual("surfers are carried to the shore by waves",
                            realiser.realise(_s1).Realisation); //$NON-NLS-1$
        }
예제 #7
0
        public virtual void section13_Test()
        {
            Lexicon    lexicon    = Lexicon.DefaultLexicon;  // default simplenlg lexicon
            NLGFactory nlgFactory = new NLGFactory(lexicon); // factory based on lexicon

            Realiser realiser = new Realiser(lexicon);

            SPhraseSpec s1 = nlgFactory.createClause("my cat", "like", "fish");
            SPhraseSpec s2 = nlgFactory.createClause("my dog", "like", "big bones");
            SPhraseSpec s3 = nlgFactory.createClause("my horse", "like", "grass");

            CoordinatedPhraseElement c = nlgFactory.createCoordinatedPhrase();

            c.addCoordinate(s1);
            c.addCoordinate(s2);
            c.addCoordinate(s3);

            string outputA = realiser.realiseSentence(c);

            Assert.AreEqual("My cat likes fish, my dog likes big bones and my horse likes grass.", outputA);

            SPhraseSpec p = nlgFactory.createClause("I", "be", "happy");
            SPhraseSpec q = nlgFactory.createClause("I", "eat", "fish");

            q.setFeature(Feature.COMPLEMENTISER, "because");
            q.setFeature(Feature.TENSE, Tense.PAST);
            p.addComplement(q);

            string outputB = realiser.realiseSentence(p);

            Assert.AreEqual("I am happy because I ate fish.", outputB);
        }
예제 #8
0
        public virtual void mulitpleNPElementsTest()
        {
            SPhraseSpec  senSpec   = phraseFactory.createClause();
            NPPhraseSpec frontNoun = phraseFactory.createNounPhrase();

            frontNoun.setHead("john");
            senSpec.addComplement(frontNoun);
            senSpec.addComplement(phraseFactory.createStringElement("is a trier"));
            NPPhraseSpec backNoun = phraseFactory.createNounPhrase();

            backNoun.setDeterminer("for");
            backNoun.setNoun("cheese");
            senSpec.addComplement(backNoun);
            DocumentElement completeSen = phraseFactory.createSentence();

            completeSen.addComponent(senSpec);
            Assert.AreEqual("John is a trier for cheese.", realiser.realise(completeSen).Realisation);
        }
예제 #9
0
        public virtual void section7_Test()
        {
            Lexicon    lexicon    = Lexicon.DefaultLexicon;  // default simplenlg lexicon
            NLGFactory nlgFactory = new NLGFactory(lexicon); // factory based on lexicon
            Realiser   realiser   = new Realiser(lexicon);

            SPhraseSpec p = nlgFactory.createClause();

            p.setSubject("Mary");
            p.setVerb("chase");
            p.setObject("the monkey");
            p.addComplement("very quickly");
            p.addComplement("despite her exhaustion");

            string output = realiser.realiseSentence(p);

            Assert.AreEqual("Mary chases the monkey very quickly despite her exhaustion.", output);
        }
예제 #10
0
        public virtual void aggregationStringElementTest()
        {
            CoordinatedPhraseElement coordinate = phraseFactory.createCoordinatedPhrase(
                new StringElement("John is going to Tesco"), new StringElement("Mary is going to Sainsburys"));
            SPhraseSpec sentence = phraseFactory.createClause();

            sentence.addComplement(coordinate);

            Assert.AreEqual("John is going to Tesco and Mary is going to Sainsburys.",
                            realiser.realiseSentence(sentence));
        }
예제 #11
0
        public virtual void middleAbbreviationTest()
        {
            SPhraseSpec  senSpec   = phraseFactory.createClause();
            NPPhraseSpec firstNoun = phraseFactory.createNounPhrase();

            firstNoun.setNoun("yahya");
            senSpec.addComplement(firstNoun);
            senSpec.addComplement(phraseFactory.createStringElement("and friends etc. went to"));
            NPPhraseSpec secondNoun = phraseFactory.createNounPhrase();

            secondNoun.setDeterminer("the");
            secondNoun.setNoun("park");
            senSpec.addComplement(secondNoun);
            senSpec.addComplement("to play");
            DocumentElement completeSen = phraseFactory.createSentence();

            completeSen.addComponent(senSpec);
            Assert.AreEqual("Yahya and friends etc. went to the park to play.",
                            realiser.realise(completeSen).Realisation);
        }
예제 #12
0
        public virtual void whiteSpaceNPTest()
        {
            SPhraseSpec  senSpec   = phraseFactory.createClause();
            NPPhraseSpec firstNoun = phraseFactory.createNounPhrase();

            firstNoun.setDeterminer("the");
            firstNoun.setNoun("Nasdaq");
            senSpec.addComplement(firstNoun);
            senSpec.addComplement(phraseFactory.createStringElement(" rose steadily during "));
            NPPhraseSpec secondNoun = phraseFactory.createNounPhrase();

            secondNoun.setSpecifier("early");
            secondNoun.setNoun("trading");
            senSpec.addComplement(secondNoun);
            senSpec.addComplement(phraseFactory.createStringElement(" , however it plummeted due to"));
            NPPhraseSpec thirdNoun = phraseFactory.createNounPhrase();

            thirdNoun.setSpecifier("a");
            thirdNoun.setNoun("shock");
            senSpec.addComplement(thirdNoun);
            senSpec.addComplement(phraseFactory.createStringElement(" after "));
            NPPhraseSpec fourthNoun = phraseFactory.createNounPhrase();

            fourthNoun.setNoun("IBM");
            senSpec.addComplement(fourthNoun);
            senSpec.addComplement(phraseFactory.createStringElement("announced poor    "));
            NPPhraseSpec fifthNoun = phraseFactory.createNounPhrase();

            fifthNoun.setSpecifier("first quarter");
            fifthNoun.setNoun("results");
            fifthNoun.Plural = true;
            senSpec.addComplement(fifthNoun);
            DocumentElement completeSen = phraseFactory.createSentence();

            completeSen.addComponent(senSpec);
            Assert.AreEqual(
                "The Nasdaq rose steadily during early trading, however it plummeted due to a shock after IBM announced poor first quarter results.",
                realiser.realise(completeSen).Realisation);
        }
예제 #13
0
        public virtual void kerberTest()
        {
            SPhraseSpec sp       = phraseFactory.createClause("he", "need");
            SPhraseSpec secondSp = phraseFactory.createClause();

            secondSp.setVerb("build");
            secondSp.setObject("a house");
            secondSp.setFeature(Feature.FORM, Form.INFINITIVE);
            sp.setObject("stone");
            sp.addComplement(secondSp);
            Assert.AreEqual("he needs stone to build a house", realiser.realise(sp).Realisation);

            SPhraseSpec sp2 = phraseFactory.createClause("he", "give");

            sp2.setIndirectObject("I");
            sp2.setObject("the book");
            Assert.AreEqual("he gives me the book", realiser.realise(sp2).Realisation);
        }
예제 #14
0
        public virtual void section11_Test()
        {
            Lexicon    lexicon    = Lexicon.DefaultLexicon;  // default simplenlg lexicon
            NLGFactory nlgFactory = new NLGFactory(lexicon); // factory based on lexicon

            Realiser realiser = new Realiser(lexicon);

            SPhraseSpec pA = nlgFactory.createClause("Mary", "chase", "the monkey");

            pA.addComplement("in the park");

            string outputA = realiser.realiseSentence(pA);

            Assert.AreEqual("Mary chases the monkey in the park.", outputA);

            // alternative build paradigm
            NPPhraseSpec place = nlgFactory.createNounPhrase("park");
            SPhraseSpec  pB    = nlgFactory.createClause("Mary", "chase", "the monkey");

            // next line is depreciated ~ may be corrected in the API
            place.setDeterminer("the");
            PPPhraseSpec pp = nlgFactory.createPrepositionPhrase();

            pp.addComplement(place);
            pp.setPreposition("in");

            pB.addComplement(pp);

            string outputB = realiser.realiseSentence(pB);

            Assert.AreEqual("Mary chases the monkey in the park.", outputB);

            place.addPreModifier("leafy");

            string outputC = realiser.realiseSentence(pB);

            Assert.AreEqual("Mary chases the monkey in the leafy park.", outputC);
        } // testSection11