import nltk grammar = nltk.CFG.fromstring(""" S -> NP VP NP -> D N | N VP -> V | V NP D -> "the" | "a" N -> "she" | "city" | "car" V -> "saw" | "walked" """) parser = nltk.ChartParser(grammar) sentence = input("Sentence: ").split() try: for tree in parser.parse(sentence): tree.pretty_print() tree.draw() except ValueError: print("No parse tree possible.")