Как получить список уникальных нетерминалов из списка деревьев NLTK? - PullRequest
0 голосов
/ 03 марта 2019

У меня есть список под названием 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 и т. Д.), И поместить их в список.Я попытался проиндексировать список, но я не могу получить доступ к отдельным элементам, если это не лист дерева.

...