Токсифицируйте абзац в предложении, а затем в словах в NLTK

Я пытаюсь ввести полный абзац в свой текстовый процессор, который сначала разбивается на предложения, а затем - на слова.

Я попробовал следующий код, но он не работает,

    #text is the paragraph input
    sent_text = sent_tokenize(text)
    tokenized_text = word_tokenize(sent_text.split)
    tagged = nltk.pos_tag(tokenized_text)
    print(tagged)

однако это не работает и дает мне ошибки. Итак, как я подделать абзацы в предложения, а затем слова?

Пример абзаца:

Эта вещь, казалось, одолевала и удивляла маленькую темно-коричневую собаку и ранила его в сердце. Он упал в отчаянии на ноги ребенка. Когда удар был повторен, вместе с увещеванием в детских предложениях, он повернулся на спину и с особым видом держал лапы. В то же время с ушами и глазами он предложил маленькую молитву ребенку.

** ПРЕДУПРЕЖДЕНИЕ: ** Это просто случайный текст из Интернета, я не владею вышеуказанным контентом.

Ответ 1

Вероятно, вы намеревались перебирать sent_text:

import nltk

sent_text = nltk.sent_tokenize(text) # this gives us a list of sentences
# now loop over each sentence and tokenize it separately
for sentence in sent_text:
    tokenized_text = nltk.word_tokenize(sentence)
    tagged = nltk.pos_tag(tokenized_text)
    print(tagged)

Ответ 2

Здесь короче версия. Это даст вам структуру данных с каждым отдельным предложением и каждый токен в предложении. Я предпочитаю TweetTokenizer для грязного, реального мира. Фрагмент предложения считается достойным, но будьте осторожны, чтобы не опустить словосочетание до этого шага, поскольку это может повлиять на точность обнаружения границ беспорядочного текста.

from nltk.tokenize import TweetTokenizer, sent_tokenize

tokenizer_words = TweetTokenizer()
tokens_sentences = [tokenizer_words.tokenize(t) for t in 
nltk.sent_tokenize(input_text)]
print(tokens_sentences)

Вот как выглядит вывод, который я очистил, поэтому выделяется структура:

[
['This', 'thing', 'seemed', 'to', 'overpower', 'and', 'astonish', 'the', 'little', 'dark-brown', 'dog', ',', 'and', 'wounded', 'him', 'to', 'the', 'heart', '.'], 
['He', 'sank', 'down', 'in', 'despair', 'at', 'the', "child's", 'feet', '.'], 
['When', 'the', 'blow', 'was', 'repeated', ',', 'together', 'with', 'an', 'admonition', 'in', 'childish', 'sentences', ',', 'he', 'turned', 'over', 'upon', 'his', 'back', ',', 'and', 'held', 'his', 'paws', 'in', 'a', 'peculiar', 'manner', '.'], 
['At', 'the', 'same', 'time', 'with', 'his', 'ears', 'and', 'his', 'eyes', 'he', 'offered', 'a', 'small', 'prayer', 'to', 'the', 'child', '.']
]

Ответ 3

import nltk  

textsample ="This thing seemed to overpower and astonish the little dark-brown dog, and wounded him to the heart. He sank down in despair at the child feet. When the blow was repeated, together with an admonition in childish sentences, he turned over upon his back, and held his paws in a peculiar manner. At the same time with his ears and his eyes he offered a small prayer to the child."  

sentences = nltk.sent_tokenize(textsample)  
words = nltk.word_tokenize(textsample)  
sentences 
[w for w in words if w.isalpha()]

Последняя строка выше гарантирует, что в выводе будут только слова, а не специальные символы Вывод предложения такой, как показано ниже

["Эта штука, казалось, подавила и поразила маленького темно-коричневого пса и ранила его до глубины души".  "Он в отчаянии опустился на ноги ребенка",  "Когда удар повторился вместе с предостережением в детских приговорах, он перевернулся на спину и своеобразно держал свои лапы".  "Одновременно своими ушами и глазами он предложил маленькую молитву ребенку".]

Вывод слов, как показано ниже, после удаления специальных символов

['Этот',  'вещь',  "Казалось",  "До",  "Осилить",  'а также',  'Astonish',  "Тем",  'немного',  'собака',  'а также',  "Раненые",  'его',  "До",  "Тем",  'сердце',  'Он',  "Затонул",  'вниз',  'в',  "Отчаяние",  'в',  "Тем",  "Ребенок",  "Ноги",  'Когда',  "Тем",  'дуть',  'был',  "Повторил",  'все вместе',  'с участием',  "Ань,  "Вразумления",  'в',  "Детские",  'предложения',  'он',  "Оказалось",  'над',  "На",  'его',  "Назад",  'а также',  'Ручной',  'его',  "Лапы",  'в',  "А",  "Своеобразно",  "Манера",  'В',  "Тем",  'такой же',  'время',  'с участием',  'его',  'уши',  'а также',  'его',  'глаза',  'он',  'предложенный',  "А",  'небольшой',  "Молитва",  "До",  "Тем",  "Ребенок"]