Извлечение только кусков в выводе с использованием PoS-тегов и chunkParser с использованием Python - PullRequest
0 голосов
/ 24 сентября 2019

Я написал код для добавления тегов PoS к каждому слову в абзаце, а также использовал регулярные выражения для фрагментирования имен существительных в абзаце, но я не могу извлечь только найденные фрагменты, а не все остальные теги.

Я попытался зациклить теги и удалить данные с помощью оператора точки: - для s в теге: print (s.Chunk), но из-за этого ошибка в том, что объект кортежа не имеет атрибута chunk

import nltk
from pattern.en import parse
example_string = """To make sure image creatives look great on any device, you can upload great density image assets up to twice the dimensions 
of your creative. Display & Video 360 will scale down the image based on the resolution of the device where it serves.
Display & Video 360 will only scale the image into sizes with the same aspect ratio as the original asset. For example,
if you're making a 300 x 250 creative,
you can upload a high-density image up to 600 x 500."""
import re 
from nltk import sent_tokenize
from nltk import word_tokenize, pos_tag

tokenized = sent_tokenize(example_string)
def process_content():
    try:
        for i in tokenized:
            words=nltk.word_tokenize(i)
            tagged=nltk.pos_tag(words)

            chunkGram= r"""Chunk:{<NN.?>*|<NNS.?><NNP.?>*}"""

            chunkParser=nltk.RegexpParser(chunkGram)
            chunked=chunkParser.parse(tagged)
            print(chunkGram())
    except Exception as e:
        print(str(e))

    chunked.draw()
process_content()

прямо сейчас,если я печатаю чанкинг, вывод будет следующим: - (S To / TO сделать / VB уверен / JJ (Изображение чанка / NN креативы / NNS) выглядит / VBP отлично / JJ включен / IN any / DT (Устройство чанка / NN), /, вы / PRP можете / MD загрузить / VB great / JJ (плотность порций / NN-изображения / NN-активы / NNS) вверх / RB в / TO в два раза / VB / DT (размеры порций / NNS) из / IN your / PRP $(Объявление чанка / NN) ./.) (S (отображение чанка / NNP) & / CC (Чанк видео / NNP) 360 / CD будет / масштабироваться по MD / VB вниз / RP на основе / DT (изображение чанка / NN) /VBN включен / IN / DT (разрешение блока / NN) из / IN / DT (блок устройства / NN), где / WRB it / PRP обслуживает / VBZ ./.) (S (дисплей блока / NNP) & / CC (Чанк видео / NNP) 360 / CD будет / MD Oтолько / масштаб RB / VB / DT (изображение фрагмента / NN) в / IN (размеры фрагмента / NNS) с / IN / / DT же / JJ (аспект фрагмента / отношение NN / NN) в качестве / IN оригинала / DT /JJ (актив блока / NN) ./.) (S For / IN (пример блока / NN), /, если / IN you / PRP '/ создание VBP / VBG a / DT 300 / CD (блок x / NN)250 / CD креатив / JJ, /, вы / PRP можете / MD загрузить / VB a / DT (Чанк высокой плотности / NN изображение / NN) up / RB до / TO 600 / CD (Chunk x / NNS) 500 / CD./.)

, который включает в себя все виды тегов

...