Python и NLTK: как анализировать грамматику предложений?

У меня есть этот код, который должен показать синтаксическую структуру предложения в соответствии с определенной грамматикой. Однако он возвращает пустой []. Что я пропускаю или делаю неправильно?

import nltk

grammar = nltk.parse_cfg("""
S -> NP VP 
PP -> P NP
NP -> Det N | Det N PP 
VP -> V NP | VP PP
N -> 'Kim' | 'Dana' | 'everyone'
V -> 'arrived' | 'left' |'cheered'
P -> 'or' | 'and'
""")

def main():
    sent = "Kim arrived or Dana left and everyone cheered".split()
    parser = nltk.ChartParser(grammar)
    trees = parser.nbest_parse(sent)
    for tree in trees:
        print tree

if __name__ == '__main__':
    main()

Ответы на вопрос(2)

Ваш ответ на вопрос