Удалить часть речевых тегов после разбиения на фрагменты - PullRequest
0 голосов
/ 05 октября 2018

Как убрать часть речевых тегов из результатов разбиения на фрагменты?Я использую NLTK для этого.В настоящее время я могу перебирать фрагменты только с помощью этого кода:

for i in sent_list:
tagged = nltk.pos_tag(i)

ChunkGram = r"""Chunk: {<VB.?>+<JJ.?>*<NN.?>}"""

ChunkParser = nltk.RegexpParser(ChunkGram)
chunked = ChunkParser.parse(tagged)
for subtree in chunked.subtrees(filter=lambda t: t.label() == 'Chunk'):
    print(subtree)

Допустим, мои результаты таковы:

(Chunk routing/VBG rework/NN build/NN)
(Chunk build/VBP instruction/NN schedule/NN lot/NN)
(Chunk based/VBN firm/NN plan/NN)

Ожидаемые результаты:

'routing','rework','build'

ИЛИ

'routing rework build'

возможно ли это сделать?или, пожалуйста, посоветуйте мне, что я могу сделать, чтобы извлечь эти фразы.

1 Ответ

0 голосов
/ 10 октября 2018

Я нашел этот код, который помог мне достичь желаемых результатов.

for subtree in chunked.subtrees(filter=lambda t: t.label() == 'Verb'):
            verblist.append(" ".join([a for (a,b) in subtree.leaves()]))
...