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
Quizzes & Challenges
Quizzes
Challenges
/
Johdatus NLP:hen Pythonilla

bookTokenisointi

Ennen kuin siirrytään itse 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. Itse asiassa suosituimmat tokenisointimenetelmät 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.

Lauseen tokenisointi

Aloitetaan lauseen 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 ja koulutettu suurella tekstikorpuksella, tunnistaakseen lauseiden rajat. Se ottaa huomioon erilaisia vihjeitä tekstissä, kuten välimerkit (esim. pisteet, huutomerkit, kysymysmerkit), isot alkukirjaimet sekä muita kielellisiä piirteitä, 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 antaa string-tyyppinen teksti argumenttina sent_tokenize()-funktiolle 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

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 antaa sille minkä tahansa string-tyyppisen arvon erottimeksi.

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 tokenit kuten 'This' ja 'this' käsitellään samana, on tärkeää muuntaa merkkijono pieniksi kirjaimiksi ennen tokenisointia.

Joustavampi tapa 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.

Vertailun vuoksi alla oleva esimerkki käyttää split()-funktiota word_tokenize()-menetelmän sijaan:

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 olennaista 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

Awesome!

Completion rate improved to 3.45

bookTokenisointi

Pyyhkäise näyttääksesi valikon

Ennen kuin siirrytään itse 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. Itse asiassa suosituimmat tokenisointimenetelmät 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.

Lauseen tokenisointi

Aloitetaan lauseen 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 ja koulutettu suurella tekstikorpuksella, tunnistaakseen lauseiden rajat. Se ottaa huomioon erilaisia vihjeitä tekstissä, kuten välimerkit (esim. pisteet, huutomerkit, kysymysmerkit), isot alkukirjaimet sekä muita kielellisiä piirteitä, 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 antaa string-tyyppinen teksti argumenttina sent_tokenize()-funktiolle 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

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 antaa sille minkä tahansa string-tyyppisen arvon erottimeksi.

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 tokenit kuten 'This' ja 'this' käsitellään samana, on tärkeää muuntaa merkkijono pieniksi kirjaimiksi ennen tokenisointia.

Joustavampi tapa 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.

Vertailun vuoksi alla oleva esimerkki käyttää split()-funktiota word_tokenize()-menetelmän sijaan:

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 olennaista 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