Esempio n. 1
0
def test3():

    print("\n\n------ Test 3 ---------")

    p = BIN_Parser()
    g = p.grammar()

    print("Reynir.grammar has {0} nonterminals, {1} terminals, {2} productions"
        .format(g.num_nonterminals(), g.num_terminals(), g.num_productions()))

    def create_sentence_table():
        """ Only used to create a test fresh sentence table if one doesn't exist """
        with closing(Test_DB.open_db()) as db:

            try:
                db.create_sentence_table()

                TEXTS = [
                    "Páll fór út með stóran kött og Jón keypti heitan graut.",
                    "Unga fallega konan frá Garðabæ elti ljóta og feita karlinn rösklega og fumlaust í svörtu myrkrinu",
                    "Kötturinn sem strákurinn átti veiddi feitu músina",
                    "Gamla bláa kommóðan var máluð fjólublá með olíumálningu",
                    "Landsframleiðslan hefur aukist frá því í fyrra",
                    "Guðmundur og Guðrún kusu Framsóknarflokkinn",
                    "Þú skalt fara til Danmerkur.",
                    "Ég og þú fórum til Frakklands í utanlandsferð",
                    "Stóru bláu könnunni mun hafa verið fleygt í ruslið",
                    "Már Guðmundsson segir margskonar misskilnings gæta hjá Hannesi Hólmsteini",
                    "Már Guðmundsson seðlabankastjóri Íslands segir þetta við Morgunblaðið í dag.",
                    "Það er náttúrlega einungis í samfélögum sem eiga við býsna stór vandamál að stríða að ný stjórnmálaöfl geta snögglega sveiflast upp í þriðjungs fylgi.",
                    "Áætlaður kostnaður verkefnisins var tíu milljónir króna og áætluð verklok eru í byrjun september næstkomandi.",
                    "Pakkinn snerist um að ábyrgjast innlán og skuldabréfaútgáfu danskra fjármálafyrirtækja.",
                    "Kynningarfundurinn sem ég hélt í dag fjallaði um lausnina á þessum vanda.",
                    "Kynningarfundurinn sem haldinn var í dag fjallaði um lausnina á þessum vanda.",
                    "Það sakamál sé til meðferðar við Héraðsdóm Suðurlands."
                ]

                for t in TEXTS:
                    db.add_sentence(t)

                slist = db.sentences()
                for s in slist:
                    print("{0}".format(s))

            except Exception as e:
                print("{0}".format(e))

    for test in run_test(p):

        print("\n'{0}'\n{1} parse trees found in {2:.3f} seconds\n"
            .format(test["sentence"], test["numtrees"], test["parse_time"]))

        if test["numtrees"] > 0:
            Parser.print_parse_forest(test["forest"])
            # print("{0}".format(Parser.make_schema(test["forest"])))
        elif test["err"]:
            print("Error: {0}".format(test["err"]))