Tokenisoi teksti NLTK:lla pythonissa
Tekstin tokenointi on perustavanlaatuinen NLP (Natural Language Processing) tekniikka, ja yksi tällainen tekniikka on Tokenointi. Se on prosessi, jossa teksti jaetaan pienempiin osiin tai tunnuksiin. Nämä voivat olla:
- Sanat: Rakastan NLP:tä → ['I' 'love' 'NLP']
- Lauseet: Rakastan NLP:tä. Python on hieno. → ['Rakastan NLP:tä.' 'Python on hieno.']
Pythonin suositulla kirjastolla NLTK (Natural Language Toolkit) tekstin jakamisesta merkityksellisiin yksiköihin tulee sekä yksinkertaista että äärimmäisen tehokasta.
Perustoteutus
Katsotaanpa Tokenisaation toteutusta NLTK:n avulla Pythonissa
Vaihe 1: Asenna ja määritä
Asenna kohta tokenizer-mallit, joita tarvitaan lauseen ja sanan tokenointiin.
Python ! pip install nltk import nltk nltk . download ( 'punkt' )
Vaihe 2: Tokenisoi lauseet
sent_tokenize() jakaa merkkijonon välimerkkejä ja lyhenteitä käsittelevien lauseiden luetteloon.
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 )
Lähtö:
['NLTK on loistava NLP-työkalupakki.' 'Se tekee tekstin käsittelystä helppoa!']
Vaihe 3: Tokenisoi sanat
- word_tokenize() jakaa lauseen sanoiksi ja välimerkit erillisinä tunnuksina.
- Käsittelee supistuksia, välimerkkejä ja paljon muuta.
from nltk.tokenize import word_tokenize sentence = 'Tokenization is easy with NLTK's word_tokenize.' words = word_tokenize ( sentence ) print ( words )
Lähtö:
["Tokenization" "on" "helppo" ""NLTK" "s" "word_tokenize" ".']
Katsotaanpa lisää esimerkkejä
1. WordPunctTokenizer
Se Jakaa tekstin aakkosllisiin ja ei-aakkosisiin merkkeihin
- Erottelee kaikki sanamerkkijonot ja välimerkit merkit.
- Erityisesti halkaisee supistuksia (älä muuta Don 't).
- Jakaa sähköpostit sähköpostiviesteiksi.
from nltk.tokenize import WordPunctTokenizer tokenizer = WordPunctTokenizer () tokens = tokenizer . tokenize ( 'Don't split contractions. E-mails: [email protected]!' ) print ( tokens )
Lähtö:
['Älä' ''' 't' 'jaa' 'supistuksia' '.' 'E' '-' 'postit' ':' 'hei' '@' 'esimerkki' '.' 'com''!']
2. TreebankWordTokenenizer
Se sopii lingvistiseen analyysiin, joka käsittelee välimerkkejä ja supistuksia.
- Jäljittelee Penn Treebank -tyylistä tokenointia, jota käytetään yleisesti NLP-kielianalyysissä.
- Käsittelee tiettyjä englannin kieliopillisia rakenteita älykkäämmin.
from nltk.tokenize import TreebankWordTokenizer tokenizer = TreebankWordTokenizer () tokens = tokenizer . tokenize ( 'Have a look at NLTK's tokenizers.' ) print ( tokens )
Lähtö:
["Katso" 'NLTK' 's' 'tunnuksia'.'.]
3. Regex Tokenizer
Se mukauttaa kuviopohjaista jakamista.
- Tokenisoi säännöllisen lausekkeen mallin perusteella.
- w+ vastaa sanoja ja numeroita jättäen välimerkit kokonaan pois.
from nltk.tokenize import RegexpTokenizer tokenizer = RegexpTokenizer ( r 'w+' ) tokens = tokenizer . tokenize ( 'Custom rule: keep only words & numbers drop punctuation!' ) print ( tokens )
Lähtö:
["Muokattu" "sääntö" "säilytä" "vain" "sanat" "numerot" "pudota" "välimerkit"]
NLTK tarjoaa hyödyllisen ja käyttäjäystävällisen työkalupakin tekstin tokenointiin Pythonissa, ja se tukee useita tokenointitarpeita perussanojen ja lauseiden jakamisesta kehittyneisiin mukautettuihin malleihin.
Luo tietokilpailu