В этом токенайзере RegularExpressions используются для указания того, как могут выглядеть токены, которые вы хотите извлечь из текста.Я немного сбит с толку, какое из многих регулярных выражений выше вы использовали, но для очень простого токенизации на непробельные токены вы можете использовать:
>>> corpus = "this is a sentence. and another sentence. my homepage is http://test.com"
>>> nltk.regexp_tokenize(corpus, r"\S+")
['this', 'is', 'a', 'sentence.', 'and', 'another', 'sentence.', 'my', 'homepage', 'is', 'http://test.com']
, что эквивалентно:
>>> corpus.split()
['this', 'is', 'a', 'sentence.', 'and', 'another', 'sentence.', 'my', 'homepage', 'is', 'http://test.com']
другим подходом может быть использование функций nltk sent_tokenize () и nltk.word_tokenize ():
>>> sentences = nltk.sent_tokenize(corpus)
>>> sentences
['this is a sentence.', 'and another sentence.', 'my homepage is http://test.com']
>>> for sentence in sentences:
print nltk.word_tokenize(sentence)
['this', 'is', 'a', 'sentence', '.']
['and', 'another', 'sentence', '.']
['my', 'homepage', 'is', 'http', ':', '//test.com']
, хотя, если ваш текст содержит много URL-адресов веб-сайтов, это может быть не лучшим выбором.информацию о различных токенизаторах в NLTK можно найти здесь .
, если вы просто хотите извлечь URL из корпуса, вы можете использовать регулярное выражение, подобное этому:
nltk.regexp_tokenize(corpus, r'(http://|https://|www.)[^"\' ]+')
Надеюсь, это поможет.Если это был не тот ответ, который вы искали, пожалуйста, попробуйте немного более точно объяснить, что вы хотите сделать и как точно вы хотите, чтобы ваши токены выглядели (например, пример ввода / вывода, который вы хотели бы иметь), и мы можем помочьнайти правильное регулярное выражение.