Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Tokenisering | Grunnleggende Tekstforbehandling
Quizzes & Challenges
Quizzes
Challenges
/
Introduksjon til NLP med Python

bookTokenisering

Før vi faktisk går inn i prosessen med tokenisering, må vi først definere hva tokens er.

Note
Definisjon

Tokens er uavhengige og minimale tekstkomponenter, som har en spesifikk syntaks og semantikk.

Følgelig er tokenisering prosessen med å dele opp teksten i tokens. For eksempel består et tekstavsnitt, et tekstdokument eller et tekstkorpus av flere komponenter som kan deles inn i setninger, fraser og ord. Faktisk er de mest populære tokeniseringsmetodene setnings- og ordtokenisering, som brukes til å dele et tekstdokument (eller korpus) inn i setninger og hver setning inn i ord.

Note
Definisjon

Et tekstkorpus (flertall: korpora) er et stort og strukturert sett med tekster brukt i lingvistisk og datalingvistisk forskning. I hovedsak er det en omfattende samling av skriftlig eller muntlig materiale som fungerer som et representativt utvalg av et bestemt språk, dialekt eller fagområde.

Setnings-tokenisering

Vi starter med setnings-tokenisering. Heldigvis tilbyr nltk funksjonen sent_tokenize() i tokenize-modulen. Hovedformålet med denne funksjonen er å dele en gitt tekst inn i en liste med setninger.

sent_tokenize()ent_tokenize()` benytter en forhåndstrent modell, vanligvis en maskinlæringsmodell som er trent på et stort tekstkorpus, for å identifisere grensene mellom setninger. Den tar hensyn til ulike signaler i teksten, som tegnsetting (f.eks. punktum, utropstegn, spørsmålstegn), store bokstaver og andre språklige mønstre som vanligvis markerer slutten på én setning og begynnelsen på en annen.

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

Som du ser, er det ingenting komplisert her. Du skal ganske enkelt sende en streng med teksten din som et argument til sent_tokenize() for å få en liste med setninger. Når det gjelder nltk.download('punkt_tab'), laster denne kommandoen spesifikt ned "Punkt"-tokenizer-modellene. Ved å laste ned Punkt-tokenizer-modellene, sikrer du at NLTK har nødvendig data for å utføre nøyaktig setnings- og ordtokenisering.

Note
Merk

Tegnet for tegnsetting på slutten av hver setning er inkludert i setningen.

Ordtokenisering

Ved ordtokenisering finnes det flere vanlige metoder for å utføre dette; vi skal imidlertid kun diskutere de to mest utbredte.

Den mest direkte og enkleste metoden er å bruke split()-funksjonen til string-klassen, som bruker linjeskift, mellomrom og tabulatorer som skilletegn som standard. Du kan imidlertid også sende en vilkårlig streng som argument for å bruke den som skilletegn.

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
Merk

For å sikre at tokens som 'This' og 'this' behandles likt, er det viktig å konvertere strengen til små bokstaver før tokenisering.

En mer fleksibel tilnærming er imidlertid å bruke funksjonen word_tokenize() i tokenize-modulen fra nltk-biblioteket. Denne funksjonen identifiserer og separerer ord basert på mellomrom og skilletegn, og deler effektivt opp setninger i deres enkelte ord. På samme måte som sent_tokenize(), krever denne funksjonen et string-argument.

La oss sammenligne denne tilnærmingen med bruk av split()-metoden. Eksempelet under bruker word_tokenize():

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

La oss nå se hvordan split()-metoden fungerer med den samme teksten:

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

I vårt eksempel identifiserer word_tokenize(), i motsetning til split(), tegnsetting og spesialtegn som egne token. Den skiller korrekt dollartegnet fra tallet og gjenkjenner punktum som selvstendige token. Denne nyanserte tokeniseringen er avgjørende for mange NLP-oppgaver, der presis avgrensning av ord og tegnsetting kan ha stor betydning for nøyaktigheten og innsikten i analysen.

question mark

Gitt setningen "It wasn't me, I swear!", hva blir resultatet av å bruke split()-metoden på den?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 3

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Awesome!

Completion rate improved to 3.45

bookTokenisering

Sveip for å vise menyen

Før vi faktisk går inn i prosessen med tokenisering, må vi først definere hva tokens er.

Note
Definisjon

Tokens er uavhengige og minimale tekstkomponenter, som har en spesifikk syntaks og semantikk.

Følgelig er tokenisering prosessen med å dele opp teksten i tokens. For eksempel består et tekstavsnitt, et tekstdokument eller et tekstkorpus av flere komponenter som kan deles inn i setninger, fraser og ord. Faktisk er de mest populære tokeniseringsmetodene setnings- og ordtokenisering, som brukes til å dele et tekstdokument (eller korpus) inn i setninger og hver setning inn i ord.

Note
Definisjon

Et tekstkorpus (flertall: korpora) er et stort og strukturert sett med tekster brukt i lingvistisk og datalingvistisk forskning. I hovedsak er det en omfattende samling av skriftlig eller muntlig materiale som fungerer som et representativt utvalg av et bestemt språk, dialekt eller fagområde.

Setnings-tokenisering

Vi starter med setnings-tokenisering. Heldigvis tilbyr nltk funksjonen sent_tokenize() i tokenize-modulen. Hovedformålet med denne funksjonen er å dele en gitt tekst inn i en liste med setninger.

sent_tokenize()ent_tokenize()` benytter en forhåndstrent modell, vanligvis en maskinlæringsmodell som er trent på et stort tekstkorpus, for å identifisere grensene mellom setninger. Den tar hensyn til ulike signaler i teksten, som tegnsetting (f.eks. punktum, utropstegn, spørsmålstegn), store bokstaver og andre språklige mønstre som vanligvis markerer slutten på én setning og begynnelsen på en annen.

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

Som du ser, er det ingenting komplisert her. Du skal ganske enkelt sende en streng med teksten din som et argument til sent_tokenize() for å få en liste med setninger. Når det gjelder nltk.download('punkt_tab'), laster denne kommandoen spesifikt ned "Punkt"-tokenizer-modellene. Ved å laste ned Punkt-tokenizer-modellene, sikrer du at NLTK har nødvendig data for å utføre nøyaktig setnings- og ordtokenisering.

Note
Merk

Tegnet for tegnsetting på slutten av hver setning er inkludert i setningen.

Ordtokenisering

Ved ordtokenisering finnes det flere vanlige metoder for å utføre dette; vi skal imidlertid kun diskutere de to mest utbredte.

Den mest direkte og enkleste metoden er å bruke split()-funksjonen til string-klassen, som bruker linjeskift, mellomrom og tabulatorer som skilletegn som standard. Du kan imidlertid også sende en vilkårlig streng som argument for å bruke den som skilletegn.

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
Merk

For å sikre at tokens som 'This' og 'this' behandles likt, er det viktig å konvertere strengen til små bokstaver før tokenisering.

En mer fleksibel tilnærming er imidlertid å bruke funksjonen word_tokenize() i tokenize-modulen fra nltk-biblioteket. Denne funksjonen identifiserer og separerer ord basert på mellomrom og skilletegn, og deler effektivt opp setninger i deres enkelte ord. På samme måte som sent_tokenize(), krever denne funksjonen et string-argument.

La oss sammenligne denne tilnærmingen med bruk av split()-metoden. Eksempelet under bruker word_tokenize():

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

La oss nå se hvordan split()-metoden fungerer med den samme teksten:

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

I vårt eksempel identifiserer word_tokenize(), i motsetning til split(), tegnsetting og spesialtegn som egne token. Den skiller korrekt dollartegnet fra tallet og gjenkjenner punktum som selvstendige token. Denne nyanserte tokeniseringen er avgjørende for mange NLP-oppgaver, der presis avgrensning av ord og tegnsetting kan ha stor betydning for nøyaktigheten og innsikten i analysen.

question mark

Gitt setningen "It wasn't me, I swear!", hva blir resultatet av å bruke split()-metoden på den?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 3
some-alt