Szöveg tokenizálása NLTK használatával a pythonban

A szöveg tokenizálása egy alapvető természetes nyelvi feldolgozási (NLP) technika, és az egyik ilyen technika Tokenizálás.  Ez a szöveg kisebb komponensekre vagy tokenekre való felosztásának folyamata. Ezek lehetnek:

  • Szavak: Imádom az NLP-t → ['I' 'love' 'NLP']
  • Mondatok: Imádom az NLP-t. A Python nagyszerű. → ['Imádom az NLP-t.' "A Python nagyszerű."]

A Python népszerű könyvtárával  NLTK (Natural Language Toolkit) a szöveg értelmes egységekre bontása egyszerűvé és rendkívül hatékonyvá válik.

Alapvető megvalósítás

Lássuk a tokenizálás megvalósítását az NLTK használatával Pythonban

1. lépés: Telepítés és beállítás

Telepítse a pont A mondat- és szótokenizáláshoz szükséges tokenizáló modellek.

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

2. lépés: Mondatok tokenizálása

A send_tokenize() egy karakterláncot az írásjeleket és a rövidítéseket kezelő mondatok listájára oszt fel.

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  )   

Kimenet:

['Az NLTK egy nagyszerű NLP-eszköztár.' 'Ez megkönnyíti a szöveg feldolgozását!']

3. lépés: Szavak tokenizálása

  • A word_tokenize() a mondatot szavakra és írásjelekre osztja fel külön tokenként.
  • Kezeli az összehúzódásokat, az írásjeleket és egyebeket.
Python
   from   nltk.tokenize   import   word_tokenize   sentence   =   'Tokenization is easy with NLTK's word_tokenize.'   words   =   word_tokenize  (  sentence  )   print  (  words  )   

Kimenet:

[A "Tokenization" "egyszerű" "az" "NLTK" "s" "word_tokenize" ".']

Lássunk még néhány példát

1. WordPunctTokenizer

Azt A szöveget alfabetikus és nem alfabetikus karakterekre osztja fel

  • A szókarakterek és írásjelek összes sorozatát tokenekre választja szét.
  • Főleg az összehúzódásokat hasítja fel (ne nem lesz Don 't).
  • Az e-maileket e-mailekre osztja fel.
Python
   from   nltk.tokenize   import   WordPunctTokenizer   tokenizer   =   WordPunctTokenizer  ()   tokens   =   tokenizer  .  tokenize  (   'Don't split contractions. E-mails: [email protected]!'  )   print  (  tokens  )   

Kimenet:

['Don' '' 'ne' 'split' 'contractions' '.' 'E' '-' 'levelek' ':' 'helló' '@' 'példa' '.' 'com' '!']

2. TreebankWordTokenizer

Alkalmas nyelvi elemzésre, kezeli az írásjeleket és a kontrakciókat.

  • Utánozza a Penn Treebank-stílusú tokenizációt, amelyet általánosan használnak az NLP nyelvi elemzéséhez.
  • Intelligensebben kezel bizonyos angol nyelvtani szerkezeteket.
Python
   from   nltk.tokenize   import   TreebankWordTokenizer   tokenizer   =   TreebankWordTokenizer  ()   tokens   =   tokenizer  .  tokenize  (  'Have a look at NLTK's tokenizers.'  )   print  (  tokens  )   

Kimenet:

["Nézze meg" "NLTK" "tokenizerjeit".]

3. Regex Tokenizer

Testreszabhatja a minta alapú felosztást.

  • Szabályos kifejezésminta alapján tokenizál.
  • A w+ megfelel a szavaknak és a számoknak, teljesen kihagyva az írásjeleket.
Python
   from   nltk.tokenize   import   RegexpTokenizer   tokenizer   =   RegexpTokenizer  (  r  'w+'  )   tokens   =   tokenizer  .  tokenize  (   'Custom rule: keep only words & numbers drop punctuation!'  )   print  (  tokens  )   

Kimenet:

["Egyéni" "szabály" "megtartás" "csak" "szavak" "számok" "eldobás" "központozás"]

Az NLTK hasznos és felhasználóbarát eszközkészletet biztosít a Python szövegének tokenizálásához, amely számos tokenizálási igényt támogat az alapvető szó- és mondatfelosztástól a speciális egyéni mintákig.

Kvíz létrehozása