NLTK Tokenize: Sanat ja lauseet Tokenizer esimerkillä

⚡ Älykäs yhteenveto

NLTK Tokenize jakaa suuren tekstin pienempiin yksiköihin, joita kutsutaan tokeneiksi, mikä on luonnollisen kielen prosessoinnin perustavanlaatuinen vaihe. Työkalupakki tarjoaa word_tokenize-työkalun lauseiden jakamiseen sanoiksi ja sent_tokenize-työkalun tekstin jakamiseen yksittäisiin lauseisiin.

  • ✂️ tokenization: Jakaa suuren tekstin pienempiin yksiköihin, joita kutsutaan tokeneiksi analyysia varten.
  • 🧠 NLP Foundation: Toimii perusvaiheena stemmaus-, lemmatisointi- ja tekstin muuntamiselle numeeriseksi.
  • 🔤 sana_tokenize(): Jakaa lauseen yksittäisiin sanoihin erottamalla välimerkit.
  • 📝 sent_tokenize(): Jakaa tekstin erillisiin lauseisiin.
  • 📊 Käyttötapa: Yhdistämällä molemmat voit laskea ominaisuuksia, kuten keskimääräisen sanamäärän lausetta kohden, koneoppimista varten.

NLTK Tokenizointi

Mikä on tokenisaatio?

tokenization on prosessi, jolla suuri määrä tekstiä jaetaan pienempiin osiin, joita kutsutaan tunnuksiksi. Nämä tunnukset ovat erittäin hyödyllisiä kuvioiden löytämisessä, ja niitä pidetään perusvaiheina stemmingissä ja lemmatisaatiossa. Tokenisointi auttaa myös korvaamaan arkaluontoiset tietoelementit ei-arkaluonteisilla tietoelementeillä.

Luonnollisen kielen käsittelyä käytetään rakennussovelluksissa, kuten tekstin luokittelussa, älykäs chatbot, tunteellinen analyysi, kielen käännös jne. On elintärkeää ymmärtää tekstin kaava edellä mainitun tarkoituksen saavuttamiseksi.

Älä toistaiseksi ole huolissasi stemmingistä ja lemmatisoinnista, vaan käsittele niitä tekstitietojen puhdistamisen vaiheina NLP:n (Natural Language Processing) avulla. Keskustelemme stemmingistä ja lemmatisaatiosta myöhemmin opetusohjelmassa. Tehtäviä mm Tekstin luokittelu tai roskapostin suodatus käyttää NLP:tä sekä syväoppimiskirjastoja, kuten Keras ja Tensorflow.

Luonnollisen kielen työkalupakkissa on erittäin tärkeä NLTK-moduuli merkitä lauseita, jotka lisäksi sisältävät alamoduuleja

  1. sana tokenisoida
  2. lauseen merkki

Sanojen tokenointi

Käytämme menetelmää word_tokenize() jakaa lause sanoiksi. Sanan tokenisoinnin tulos voidaan muuntaa Data Frameksi tekstin ymmärtämiseksi paremmin koneoppimissovelluksissa. Se voidaan myös tarjota syötteenä tekstin lisäpuhdistusvaiheisiin, kuten välimerkkien poistoon, numeeristen merkkien poistoon tai varsinaiseen muotoon. Koneoppimismallit tarvitsevat numeerista dataa kouluttaakseen ja tehdäkseen ennusteen. Sanan tokenisoinnista tulee tärkeä osa tekstin (merkkijono) muuntamista numeerisiksi tiedoiksi. Ole hyvä ja lue aiheesta Pussi sanoja tai CountVectorizer. Katso alla oleva sana tokenize NLTK-esimerkki ymmärtääksesi teorian paremmin.

from nltk.tokenize import word_tokenize
text = "God is Great! I won a lottery."
print(word_tokenize(text))

Output: ['God', 'is', 'Great', '!', 'I', 'won', 'a', 'lottery', '.']

Sanojen tokenointi

Code Selitys

  1. word_tokenize-moduuli tuodaan NLTK-kirjastosta.
  2. Muuttuja "teksti" alustetaan kahdella lauseella.
  3. Tekstimuuttuja välitetään word_tokenize-moduulissa ja tulostetaan tulos. Tämä moduuli katkaisee jokaisen sanan välimerkeillä, jotka näet tulosteessa.

Lauseiden tokenointi

Yllä olevaa varten käytettävissä oleva alimoduuli on sent_tokenize. Mielessäsi ilmeinen kysymys olisi miksi lauseen tokenointia tarvitaan, kun meillä on mahdollisuus sanan tokenointiin. Kuvittele, että sinun on laskettava keskimääräiset sanat lausetta kohti, miten lasket? Tällaisen tehtävän suorittamiseksi tarvitset sekä NLTK-lauseen tokenisaattorin että NLTK-sanamerkinnän suhteen laskemiseen. Tällainen tulos on tärkeä ominaisuus konekoulutuksessa, koska vastaus olisi numeerinen.

Katso alla olevasta NLTK-tunnisteesimerkistä oppiaksesi, kuinka lauseiden merkintä eroaa sanojen tunnuksesta.

from nltk.tokenize import sent_tokenize
text = "God is Great! I won a lottery."
print(sent_tokenize(text))

Output: ['God is Great!', 'I won a lottery ']

Meillä on 12 sanat ja kaksi virkettä samalle tulolle.

Lauseiden tokenointi

Ohjelman selitys

  1. Edellisen ohjelman kaltaisessa rivissä tuotiin sent_tokenize-moduuli.
  2. Olemme ottaneet saman lauseen. NLTK-moduulin lisälause tokenizer jäsensi kyseiset lauseet ja näyttää tulosteen. On selvää, että tämä funktio katkaisee jokaisen lauseen.

Yllä sana tokenizer Python esimerkkejä ovat hyviä asetuskiviä ymmärtääksesi sanan ja lauseen tokenoinnin mekaniikkaa.

UKK

Sana tokenisointi jakaa tekstin yksittäisiin sanoihin ja välimerkkeihin käyttämällä word_tokenize()-funktiota, kun taas lauseen tokenisointi jakaa tekstin erillisiin lauseisiin käyttämällä sent_tokenize()-funktiota. Molempia yhdistetään usein ominaisuuksien, kuten sanojen määrän lausetta kohden, johtamiseksi.

Tokenisointi on ensimmäinen askel, joka muuttaa raakatekstin hallittaviksi yksiköiksi, mahdollistaen kuvioiden havaitsemisen, stemmauksen, lemmatisoinnin ja muuntamisen numeerisiksi ominaisuuksiksi, joita koneoppimismallit tarvitsevat tehtävissä, kuten luokittelussa ja kääntämisessä.

Kyllä. NLTK tukee useita kieliä lataamalla sopivan Punkt-mallin, esimerkiksi sent_tokenize(text, language='french'). Tuki vaihtelee kielen mukaan, ja jotkin skriptit saattavat tarvita erikoistuneita tokenisoijia.

Suuret kielimallit muuntavat tekstin tokeneiksi, usein osiksi sanoja, ennen käsittelyä. Malli ennustaa seuraavan tokenin edellisten perusteella, joten tokenisointi vaikuttaa suoraan kontekstin pituuteen, kustannuksiin ja tulosteen laatuun.

Kyllä. Nykyaikaiset tekoälytokenizerit käyttävät alysanojen menetelmiä, kuten Byte Pair Encoding tai WordPiece, jakaen harvinaiset sanat pienempiin osiin. Tämä pitää sanastot tiiviinä ja edustaa silti vieraita tai yhdyssanoja.

Tiivistä tämä viesti seuraavasti: