# Koden fra NLTK-boka. Kapittel 8, del 3.1 import nltk # Definerer en kontekstfri grammatikk som en streng over flere linjer grammatikk = nltk.CFG.fromstring(""" S -> NP VP VP -> V NP | V NP PP PP -> P NP V -> "saw" | "ate" | "walked" NP -> "John" | "Mary" | "Bob" | Det N | Det N PP Det -> "a" | "an" | "the" | "my" N -> "man" | "dog" | "cat" | "telescope" | "park" P -> "in" | "on" | "by" | "with" """) # Lager et parser-objekt med grammatikken over som grunnlag parser = nltk.RecursiveDescentParser(grammatikk) # Definerer en tokenliste tokenliste = ['Mary', 'saw', 'Bob'] # Itererer over alle analysene (her kun én analyse) for syntakstre in parser.parse(tokenliste): print(syntakstre)