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

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.

Setningstokenisering

La oss begynne med setningstokenisering. 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 kan se, 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 vil 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

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

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.

Setningstokenisering

La oss begynne med setningstokenisering. 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 kan se, 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 vil 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