Tokenizuj tekst za pomocą NLTK w Pythonie

Tokenizacja tekstu to podstawowa technika przetwarzania języka naturalnego (NLP), a jedną z takich technik jest Tokenizacja.  Jest to proces dzielenia tekstu na mniejsze elementy lub tokeny. Mogą to być:

  • Słowa: Kocham NLP → [„Kocham” „NLP”]
  • Zdania: Kocham NLP. Python jest świetny. → ['Uwielbiam NLP.' „Python jest świetny.”]

Z popularną biblioteką Pythona  NLTK (Natural Language Toolkit) dzielenie tekstu na znaczące jednostki staje się zarówno proste, jak i niezwykle skuteczne.

Podstawowa implementacja

Zobaczmy implementację tokenizacji przy użyciu NLTK w Pythonie

Krok 1: Zainstaluj i skonfiguruj

Zainstaluj punkt modele tokenizatora potrzebne do tokenizacji zdań i słów.

Python
   !  pip   install   nltk   import   nltk   nltk  .  download  (  'punkt'  )   

Krok 2: Tokenizuj zdania

send_tokenize() dzieli ciąg znaków na listę zdań obsługujących znaki interpunkcyjne i skróty.

Python
   from   nltk.tokenize   import   sent_tokenize   text   =   'NLTK is a great NLP toolkit. It makes processing text easy!'   sentences   =   sent_tokenize  (  text  )   print  (  sentences  )   

Wyjście:

['NLTK to świetny zestaw narzędzi NLP.' 'Dzięki temu przetwarzanie tekstu jest łatwe!']

Krok 3: Tokenizuj słowa

  • word_tokenize() dzieli zdanie na słowa i znaki interpunkcyjne jako osobne tokeny.
  • Obsługuje skurcze, liczby interpunkcyjne i nie tylko.
Python
   from   nltk.tokenize   import   word_tokenize   sentence   =   'Tokenization is easy with NLTK's word_tokenize.'   words   =   word_tokenize  (  sentence  )   print  (  words  )   

Wyjście:

[„Tokenizacja” „jest” „łatwa” „z” „NLTK” „s” „word_tokenize” „.”]

Zobaczmy więcej przykładów

1. WordPunctTokenizer

To Dzieli tekst na znaki alfabetyczne i niealfabetyczne

  • Rozdziela wszystkie ciągi znaków słownych i znaków interpunkcyjnych na tokeny.
  • Zwłaszcza rozdziela skurcze (nie staje się nie rób).
  • Dzieli e-maile na e-maile.
Python
   from   nltk.tokenize   import   WordPunctTokenizer   tokenizer   =   WordPunctTokenizer  ()   tokens   =   tokenizer  .  tokenize  (   'Don't split contractions. E-mails: [email protected]!'  )   print  (  tokens  )   

Wyjście:

['Nie' ''' 't' 'rozdzielaj' 'skurcze' '.' 'E' '-' 'maile' ':' 'cześć' '@' 'przykład' '.' „com” „!”]

2. TreebankWordTokenizer

Nadaje się do analizy językowej, obsługuje interpunkcję i skróty.

  • Naśladuje tokenizację w stylu Penn Treebank, która jest powszechnie używana w analizie językowej NLP.
  • Bardziej inteligentnie radzi sobie z niektórymi angielskimi strukturami gramatycznymi.
Python
   from   nltk.tokenize   import   TreebankWordTokenizer   tokenizer   =   TreebankWordTokenizer  ()   tokens   =   tokenizer  .  tokenize  (  'Have a look at NLTK's tokenizers.'  )   print  (  tokens  )   

Wyjście:

[„Przyjrzyj się” „NLTK” „tokenizatorom” „.”]

3. Tokenizator Regex

Dostosowuje podział oparty na wzorach.

  • Tokenizuje w oparciu o wzorzec wyrażenia regularnego.
  • w+ dopasowuje słowa i liczby, całkowicie pomijając znaki interpunkcyjne.
Python
   from   nltk.tokenize   import   RegexpTokenizer   tokenizer   =   RegexpTokenizer  (  r  'w+'  )   tokens   =   tokenizer  .  tokenize  (   'Custom rule: keep only words & numbers drop punctuation!'  )   print  (  tokens  )   

Wyjście:

[„Niestandardowa” „reguła” „zachowaj” „tylko” „słowa” „liczby” „upuść” „interpunkcja”]

NLTK zapewnia użyteczny i przyjazny dla użytkownika zestaw narzędzi do tokenizacji tekstu w Pythonie, obsługujący szereg potrzeb w zakresie tokenizacji, od podstawowego dzielenia słów i zdań po zaawansowane niestandardowe wzorce.

Utwórz quiz