Kreieren Sie Ihre ersten Syntaxbäume, indem Sie das folgende Python-Skript ausführen!
Warum gibt die parse-Funktion in Zeile 16 des Skripts vermutlich eine Sequenz zurück?
Warum ist die Alternative tree = parser.parse(sent)
weniger wünschenswert?
Worin liegen die Unterschiede zwischen den ausgegebenen Bäumen?
Warum ist der gegebene Satz „I shot an elephant in my pajamas“ syntaktisch ambig?
In [1]:
import nltk
grammar = nltk.CFG.fromstring("""
S -> NP VP
PP -> P NP
NP -> Det N | Det N PP | 'I'
VP -> V NP | VP PP
Det -> 'an' | 'my'
N -> 'elephant' | 'pajamas'
V -> 'shot'
P -> 'in'
""")
parser = nltk.ChartParser(grammar)
sent = "I shot an elephant in my pajamas".split()
for tree in parser.parse(sent):
print(tree)
display(tree)