У меня есть список под названием Treebank, в котором, вероятно, сотни деревьев nltk.
Treebank = [Tree('S', [Tree('NP', [Tree('DT', ['the']), Tree('NN', , ['horse'])]), Tree('VP', [Tree('VBD', ['fell']), Tree('PP', [Tree('IN', ['past']), Tree('NP', [Tree('DT', ['the']), Tree('NN', ['barn'])])])])]), Tree('S', [Tree('NP', [Tree('DT', ['the']), Tree('NN', ['horse'])]), Tree('VP', [Tree('VBD', ['raced']), Tree('PP', [Tree('IN', ['past']), Tree('NP', [Tree('DT', ['the']), Tree('NN', ['horse'])])])])]),Tree('S', [Tree('NP', [Tree('DT', ['the']), Tree('NN', ['barn'])]), Tree('VP', [Tree('VBN', ['raced']), Tree('PP', [Tree('IN', ['past']), Tree('NP', [Tree('DT', ['the']), Tree('NN', ['horse'])])])])])]
Если вы сделаете что-то вроде Treebank[0]
, оно выведет одно из предложений дерева nltk в списке.Treebank[0][0]
выведет первую часть NP структуры предложения NP VP (S).
Мне нужно иметь возможность извлечь все уникальные части, которые не являются словами (NP, S, DT и т. Д.), И поместить их в список.Я попытался проиндексировать список, но я не могу получить доступ к отдельным элементам, если это не лист дерева.