Я создал чанкер на основе пользовательского классификатора: DigDug_classifier
, который разбивает следующее предложение:
sentence = "There is high signal intensity evident within the disc at T1."
Чтобы создать эти куски:
(S
(NP There/EX)
(VP is/VBZ)
(NP high/JJ signal/JJ intensity/NN evident/NN)
(PP within/IN)
(NP the/DT disc/NN)
(PP at/IN)
(NP T1/NNP)
./.)
Мне нужно создать список только НП из вышеперечисленного, например:
NP = ['There', 'high signal intensity evident', 'the disc', 'T1']
Я написал следующий код:
output = []
for subtree in DigDug_classifier.parse(pos_tags):
try:
if subtree.label() == 'NP': output.append(subtree)
except AttributeError:
output.append(subtree)
print(output)
Но это дает мне ответ вместо этого:
[Tree('NP', [('There', 'EX')]), Tree('NP', [('high', 'JJ'), ('signal', 'JJ'), ('intensity', 'NN'), ('evident', 'NN')]), Tree('NP', [('the', 'DT'), ('disc', 'NN')]), Tree('NP', [('T1', 'NNP')]), ('.', '.')]
Что я могу сделать, чтобы получить желаемый ответ?