Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Tokenisointi | Osio
Practice
Projects
Quizzes & Challenges
Visat
Challenges
/
Luonnollisen Kielen Käsittely

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 tekstiasiakirjan (tai korpuksen) jakamiseen lauseisiin ja jokaisen lauseen jakamiseen 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, jota on koulutettu suurella tekstikorpuksella lauserajojen tunnistamiseksi. Se ottaa huomioon erilaisia vihjeitä tekstissä, kuten välimerkit (esim. pisteet, huutomerkit, kysymysmerkit), isot kirjaimet sekä muut kielelliset rakenteet, 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 sanajakamisen suorittamiseen.

Note
Huomio

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

Sanajakaminen

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

Joustavampi tapa on kuitenkin käyttää word_tokenize()-funktiota, joka löytyy 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 tarkastellaan tätä lähestymistapaa verrattuna split()-metodiin. 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ä hienovarainen tokenisointi on olennainen monissa NLP-tehtävissä, joissa sanojen ja välimerkkien tarkka erottelu voi merkittävästi vaikuttaa analyysin tarkkuuteen ja havaintoihin.

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

Osio 1. Luku 3
some-alt