Токенизирайте текст с помощта на NLTK в python

Текстовото токенизиране е фундаментална техника за обработка на естествен език (NLP) и една такава техника е Токенизация.  Това е процес на разделяне на текст на по-малки компоненти или токени. Те могат да бъдат:

  • Думи: I love NLP → ['I' 'love' 'NLP']
  • Изречения: Обичам НЛП. Python е страхотен. → ['Обичам НЛП.' „Python е страхотен.“]

С популярната библиотека на Python  NLTK (Natural Language Toolkit) разделянето на текст на смислени единици става както просто, така и изключително ефективно.

Основно изпълнение

Нека да видим реализацията на токенизация с помощта на NLTK в Python

Стъпка 1: Инсталиране и настройка

Инсталирайте точка модели на токенизатори, необходими за токенизиране на изречения и думи.

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

Стъпка 2: Токенизиране на изречения

sent_tokenize() разделя низ на списък от изречения, обработващи пунктуация и съкращения.

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  )   

Изход:

[„NLTK е страхотен инструментариум за НЛП.“ „Улеснява обработката на текст!“]

Стъпка 3: Токенизиране на думи

  • word_tokenize() разделя изречение на думи и препинателни знаци като отделни токени.
  • Обработва контракции, препинателни числа и др.
Python
   from   nltk.tokenize   import   word_tokenize   sentence   =   'Tokenization is easy with NLTK's word_tokenize.'   words   =   word_tokenize  (  sentence  )   print  (  words  )   

Изход:

['Токенизирането' 'е' 'лесно' 'с' 'NLTK' ''s' 'word_tokenize' '.']

Да видим още няколко примера

1. WordPunctTokenizer

то Разделя текста на азбучни и неазбучни знаци

  • Разделя всички поредици от знаци на думи и препинателни знаци в токени.
  • Особено разделя контракциите (Don't става Don't).
  • Разделя имейлите на електронни писма.
Python
   from   nltk.tokenize   import   WordPunctTokenizer   tokenizer   =   WordPunctTokenizer  ()   tokens   =   tokenizer  .  tokenize  (   'Don't split contractions. E-mails: [email protected]!'  )   print  (  tokens  )   

Изход:

['Не' ''' 't' 'разделяне' 'контракции' '.' 'E' '-' 'mails' ':' 'hello' '@' 'example' '.' 'com' '!']

2. TreebankWordTokenizer

Подходящ е за лингвистичен анализ, обработва пунктуация и съкращения.

  • Имитира токенизиране в стил Penn Treebank, което обикновено се използва за NLP лингвистичен анализ.
  • Борави с определени английски граматически структури по-интелигентно.
Python
   from   nltk.tokenize   import   TreebankWordTokenizer   tokenizer   =   TreebankWordTokenizer  ()   tokens   =   tokenizer  .  tokenize  (  'Have a look at NLTK's tokenizers.'  )   print  (  tokens  )   

Изход:

['Разгледайте' 'NLTK' ''s' 'токенизатори' '.']

3. Regex Tokenizer

Той персонализира разделянето на базата на шаблони.

  • Токенизира въз основа на модел на регулярен израз.
  • w+ съвпада с думи и числа, пропускащи напълно пунктуацията.
Python
   from   nltk.tokenize   import   RegexpTokenizer   tokenizer   =   RegexpTokenizer  (  r  'w+'  )   tokens   =   tokenizer  .  tokenize  (   'Custom rule: keep only words & numbers drop punctuation!'  )   print  (  tokens  )   

Изход:

['Custom' 'rule' 'keep' 'only' 'words' 'numbers' 'drop' 'punctuation']

NLTK предоставя полезен и удобен за потребителя набор от инструменти за токенизиране на текст в Python, поддържащ набор от нужди за токенизиране от основно разделяне на думи и изречения до разширени потребителски модели.

Създаване на тест