Tokenize a paragraph into sentence and then into words in NLTK
我试着把整个段落输入文字处理器,先分成句子,然后再分成单词。
我试过以下代码,但它不起作用,
1 2 3 4 5 | #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 2 3 4 5 6 7 8 | 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) |
这里有一个较短的版本。这将为您提供一个数据结构,其中包含每个单独的句子和句子中的每个标记。我更喜欢tweettokenizer的混乱,真实世界的语言。句子标记器被认为是体面的,但小心不要降低你的单词大小写,直到这一步之后,因为它可能影响检测混乱文本边界的准确性。
1 2 3 4 5 6 | 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) |
下面是输出的外观,我将其清理干净,使结构突出:
1 2 3 4 5 6 | [ ['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', '.'] ] |