Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Tokenisointi | Tekstin Esikäsittelyn Perusteet
Johdatus NLP:hen

bookTokenisointi

Ennen kuin siirrytään tokenisoinnin prosessiin, on ensin määriteltävä, mitä tokenit ovat.

Note
Määritelmä

Tokenit ovat itsenäisiä ja minimaalisia tekstin osia, joilla on tietty syntaksi ja semantiikka.

Tämän seurauksena tokenisointi on prosessi, jossa teksti jaetaan tokeneihin. Esimerkiksi tekstikappale, tekstiasiakirja tai tekstikorpus koostuu useista osista, jotka voidaan jakaa lauseisiin, ilmauksiin ja sanoihin. Yleisimpiä tokenisointimenetelmiä ovat lause- ja sanatasoinen tokenisointi, joita käytetään jakamaan tekstiasiakirja (tai korpus) lauseisiin ja jokainen lause sanoihin.

Note
Määritelmä

Tekstikorpus (monikko: korpukset) on suuri ja rakenteellinen tekstikokoelma, jota käytetään kielitieteellisessä ja laskennallisessa kielitieteellisessä tutkimuksessa. Käytännössä se on kattava kokoelma kirjoitettua tai puhuttua materiaalia, joka toimii tietyn kielen, murteen tai aihealueen edustavana otoksena.

Lauseiden tokenisointi

Aloitetaan lauseiden tokenisoinnilla. Onneksemme nltk tarjoaa sent_tokenize()-funktion tokenize-moduulissa. Tämän funktion ensisijainen tarkoitus on jakaa annettu teksti lauseiden listaksi.

sent_tokenize() hyödyntää esikoulutettua mallia, joka on tyypillisesti koneoppimismalli, koulutettu suurella tekstikorpuksella lauseiden rajojen tunnistamiseksi. Se ottaa huomioon erilaisia vihjeitä tekstissä, kuten välimerkit (esim. pisteet, huutomerkit, kysymysmerkit), isot alkukirjaimet sekä muita kielellisiä rakenteita, jotka yleensä merkitsevät yhden lauseen loppua ja toisen alkua.

123456789
# Importing the sent_tokenize() function from nltk.tokenize import sent_tokenize import nltk # Downloading the "Punkt" tokenizer models nltk.download('punkt_tab') text = "Hello world. This is an example of sentence tokenization. NLTK makes it easy!" # Sentence tokenization sentences = sent_tokenize(text) print(sentences)
copy

Kuten huomaat, tässä ei ole mitään monimutkaista. Sinun tarvitsee vain välittää merkkijono, joka sisältää tekstisi, sent_tokenize()-funktion argumenttina saadaksesi lauseiden listan. Mitä tulee nltk.download('punkt_tab')-komentoon, se lataa erityisesti "Punkt"-tokenisointimallit. Lataamalla Punkt-tokenisointimallit varmistat, että NLTK:lla on tarvittavat tiedot tarkan lause- ja sanatokenisoinnin suorittamiseen.

Note
Huomio

Jokaisen lauseen lopussa olevat välimerkit sisältyvät lauseeseen.

Sanatokenisointi

Sanatokenisoinnissa on useita yleisiä menetelmiä, mutta käsittelemme vain kahta yleisintä.

Yksinkertaisin ja suoraviivaisin tapa on käyttää string-luokan split()-funktiota, joka käyttää oletuksena rivinvaihtomerkkejä, välilyöntejä ja sarkaimia erottimina. Voit kuitenkin myös välittää minkä tahansa merkkijonon argumenttina, jolloin sitä käytetään erottimena.

123456
text = "This is an example of word tokenization." # Convert the text to lowercase text = text.lower() # Word tokenization using split() words = text.split() print(words)
copy
Note
Huomio

Jotta varmistetaan, että tokenit kuten 'This' ja 'this' käsitellään samana, on tärkeää muuntaa merkkijono pieniksi kirjaimiksi ennen tokenisointia.

Joustavampi lähestymistapa on kuitenkin käyttää word_tokenize()-funktiota tokenize-kirjaston nltk-moduulista. Tämä funktio tunnistaa ja erottaa sanat välilyöntien ja välimerkkien perusteella, pilkkoen lauseet tehokkaasti osiin. Samoin kuin sent_tokenize(), tämä funktio vaatii merkkijonon argumenttina.

Tarkastellaan tätä lähestymistapaa verrattuna split()-menetelmään. Alla olevassa esimerkissä käytetään word_tokenize()-funktiota:

12345678
from nltk import word_tokenize import nltk nltk.download('punkt_tab') text = "Good muffins cost $3.88 in New York. Please buy me two of them. Thanks" text = text.lower() # Word tokenization using word_tokenize() words = word_tokenize(text) print(words)
copy

Tarkastellaan nyt, miten split()-menetelmä toimii saman tekstin kanssa:

12345
text = "Good muffins cost $3.88 in New York. Please buy me two of them. Thanks" text = text.lower() # Word tokenization using split() words = text.split() print(words)
copy

Esimerkissämme word_tokenize() tunnistaa toisin kuin split() välimerkit ja erikoismerkit omiksi tokenikseen. Se erottaa oikein dollarimerkin numerosta ja tunnistaa pisteet itsenäisiksi tokeniksi. Tämä tarkka tokenisointi on olennainen monissa NLP-tehtävissä, joissa sanojen ja välimerkkien täsmällinen erottelu voi merkittävästi vaikuttaa analyysin tarkkuuteen ja saatuihin oivalluksiin.

question mark

Kun lauseeseen "It wasn't me, I swear!" sovelletaan split()-metodia, mikä on tulos?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 3

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Suggested prompts:

Can you explain the difference between sentence and word tokenization?

Why is it important to use the Punkt tokenizer models in NLTK?

Can you give more examples of when precise tokenization is necessary?

Awesome!

Completion rate improved to 3.45

bookTokenisointi

Pyyhkäise näyttääksesi valikon

Ennen kuin siirrytään tokenisoinnin prosessiin, on ensin määriteltävä, mitä tokenit ovat.

Note
Määritelmä

Tokenit ovat itsenäisiä ja minimaalisia tekstin osia, joilla on tietty syntaksi ja semantiikka.

Tämän seurauksena tokenisointi on prosessi, jossa teksti jaetaan tokeneihin. Esimerkiksi tekstikappale, tekstiasiakirja tai tekstikorpus koostuu useista osista, jotka voidaan jakaa lauseisiin, ilmauksiin ja sanoihin. Yleisimpiä tokenisointimenetelmiä ovat lause- ja sanatasoinen tokenisointi, joita käytetään jakamaan tekstiasiakirja (tai korpus) lauseisiin ja jokainen lause sanoihin.

Note
Määritelmä

Tekstikorpus (monikko: korpukset) on suuri ja rakenteellinen tekstikokoelma, jota käytetään kielitieteellisessä ja laskennallisessa kielitieteellisessä tutkimuksessa. Käytännössä se on kattava kokoelma kirjoitettua tai puhuttua materiaalia, joka toimii tietyn kielen, murteen tai aihealueen edustavana otoksena.

Lauseiden tokenisointi

Aloitetaan lauseiden tokenisoinnilla. Onneksemme nltk tarjoaa sent_tokenize()-funktion tokenize-moduulissa. Tämän funktion ensisijainen tarkoitus on jakaa annettu teksti lauseiden listaksi.

sent_tokenize() hyödyntää esikoulutettua mallia, joka on tyypillisesti koneoppimismalli, koulutettu suurella tekstikorpuksella lauseiden rajojen tunnistamiseksi. Se ottaa huomioon erilaisia vihjeitä tekstissä, kuten välimerkit (esim. pisteet, huutomerkit, kysymysmerkit), isot alkukirjaimet sekä muita kielellisiä rakenteita, jotka yleensä merkitsevät yhden lauseen loppua ja toisen alkua.

123456789
# Importing the sent_tokenize() function from nltk.tokenize import sent_tokenize import nltk # Downloading the "Punkt" tokenizer models nltk.download('punkt_tab') text = "Hello world. This is an example of sentence tokenization. NLTK makes it easy!" # Sentence tokenization sentences = sent_tokenize(text) print(sentences)
copy

Kuten huomaat, tässä ei ole mitään monimutkaista. Sinun tarvitsee vain välittää merkkijono, joka sisältää tekstisi, sent_tokenize()-funktion argumenttina saadaksesi lauseiden listan. Mitä tulee nltk.download('punkt_tab')-komentoon, se lataa erityisesti "Punkt"-tokenisointimallit. Lataamalla Punkt-tokenisointimallit varmistat, että NLTK:lla on tarvittavat tiedot tarkan lause- ja sanatokenisoinnin suorittamiseen.

Note
Huomio

Jokaisen lauseen lopussa olevat välimerkit sisältyvät lauseeseen.

Sanatokenisointi

Sanatokenisoinnissa on useita yleisiä menetelmiä, mutta käsittelemme vain kahta yleisintä.

Yksinkertaisin ja suoraviivaisin tapa on käyttää string-luokan split()-funktiota, joka käyttää oletuksena rivinvaihtomerkkejä, välilyöntejä ja sarkaimia erottimina. Voit kuitenkin myös välittää minkä tahansa merkkijonon argumenttina, jolloin sitä käytetään erottimena.

123456
text = "This is an example of word tokenization." # Convert the text to lowercase text = text.lower() # Word tokenization using split() words = text.split() print(words)
copy
Note
Huomio

Jotta varmistetaan, että tokenit kuten 'This' ja 'this' käsitellään samana, on tärkeää muuntaa merkkijono pieniksi kirjaimiksi ennen tokenisointia.

Joustavampi lähestymistapa on kuitenkin käyttää word_tokenize()-funktiota tokenize-kirjaston nltk-moduulista. Tämä funktio tunnistaa ja erottaa sanat välilyöntien ja välimerkkien perusteella, pilkkoen lauseet tehokkaasti osiin. Samoin kuin sent_tokenize(), tämä funktio vaatii merkkijonon argumenttina.

Tarkastellaan tätä lähestymistapaa verrattuna split()-menetelmään. Alla olevassa esimerkissä käytetään word_tokenize()-funktiota:

12345678
from nltk import word_tokenize import nltk nltk.download('punkt_tab') text = "Good muffins cost $3.88 in New York. Please buy me two of them. Thanks" text = text.lower() # Word tokenization using word_tokenize() words = word_tokenize(text) print(words)
copy

Tarkastellaan nyt, miten split()-menetelmä toimii saman tekstin kanssa:

12345
text = "Good muffins cost $3.88 in New York. Please buy me two of them. Thanks" text = text.lower() # Word tokenization using split() words = text.split() print(words)
copy

Esimerkissämme word_tokenize() tunnistaa toisin kuin split() välimerkit ja erikoismerkit omiksi tokenikseen. Se erottaa oikein dollarimerkin numerosta ja tunnistaa pisteet itsenäisiksi tokeniksi. Tämä tarkka tokenisointi on olennainen monissa NLP-tehtävissä, joissa sanojen ja välimerkkien täsmällinen erottelu voi merkittävästi vaikuttaa analyysin tarkkuuteen ja saatuihin oivalluksiin.

question mark

Kun lauseeseen "It wasn't me, I swear!" sovelletaan split()-metodia, mikä on tulos?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 3
some-alt