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

bookTokenisering

Før vi faktisk går i gang med processen med tokenisering, skal vi først definere, hvad tokens er.

Note
Definition

Tokens er uafhængige og minimale tekstkomponenter, der har en specifik syntaks og semantik.

Følgelig er tokenisering processen, hvor teksten opdeles i tokens. For eksempel består et tekstafsnit, et tekstdokument eller et tekstkorpus af flere komponenter, der kan opdeles i sætninger, fraser og ord. Faktisk omfatter de mest populære tokeniseringsmetoder sætnings- og ordtokenisering, som bruges til at opdele et tekstdokument (eller korpus) i sætninger og hver sætning i ord.

Note
Definition

Et tekstkorpus (flertal: korpora) er et stort og struktureret sæt af tekster, der anvendes i lingvistisk og datalingvistisk forskning. Det er grundlæggende en omfattende samling af skriftligt eller mundtligt materiale, der fungerer som et repræsentativt udsnit af et bestemt sprog, dialekt eller emneområde.

Sætnings-tokenisering

Lad os begynde med sætnings-tokenisering. Heldigvis stiller nltk funktionen sent_tokenize() til rådighed i modulet tokenize. Det primære formål med denne funktion er at opdele en given tekst i en liste af sætninger.

sent_tokenize() benytter en forudtrænet model, typisk en maskinlæringsmodel, der er trænet på et stort tekstkorpus, til at identificere grænserne mellem sætninger. Den tager højde for forskellige signaler i teksten, såsom tegnsætning (f.eks. punktummer, udråbstegn, spørgsmålstegn), store bogstaver og andre sproglige mønstre, der typisk markerer afslutningen på én sætning og begyndelsen på en anden.

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 der intet kompliceret her. Du skal blot give en streng med din tekst som et argument til sent_tokenize() for at opnå en liste over sætninger. Med hensyn til nltk.download('punkt_tab'), downloader denne kommando specifikt "Punkt"-tokenizer-modellerne. Ved at downloade Punkt-tokenizer-modellerne sikrer du, at NLTK har de nødvendige data til at udføre præcis sætnings- og ordtokenisering.

Note
Bemærk

Tegnsætningstegnene i slutningen af hver sætning er inkluderet i sætningen.

Ordtokenisering

Ved ordtokenisering findes der flere almindelige metoder til at udføre dette; dog vil vi kun diskutere de to mest udbredte.

Den mest ligetil og enkleste metode er at bruge split()-funktionen fra string-klassen, som som standard bruger linjeskift, mellemrum og tabulatorer som skilletegn. Du kan dog også angive en vilkårlig streng som argument for at fungere 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
Bemærk

For at sikre, at tokens som 'This' og 'this' behandles ens, er det vigtigt at konvertere strengen til små bogstaver før tokenisering.

En mere fleksibel tilgang er dog at bruge funktionen word_tokenize() i modulet tokenize fra nltk-biblioteket. Denne funktion identificerer og adskiller ord baseret på mellemrum og tegnsætning, hvilket effektivt opdeler sætninger i deres enkelte ord. Ligesom sent_tokenize() kræver denne funktion et string-argument.

Lad os sammenligne denne tilgang med brugen af split()-metoden. Eksemplet nedenfor anvender 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

Lad os nu se, hvordan split()-metoden klarer sig med den samme tekst:

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 vores eksempel identificerer word_tokenize(), i modsætning til split(), tegnsætning og specialtegn som separate tokens. Den adskiller korrekt dollartegnet fra tallet og genkender punktummer som selvstændige tokens. Denne nuancerede tokenisering er afgørende for mange NLP-opgaver, hvor den præcise opdeling af ord og tegnsætning kan have stor betydning for analysens nøjagtighed og indsigt.

question mark

Givet sætningen "It wasn't me, I swear!", hvad bliver resultatet af at anvende split()-metoden på den?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 3

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

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

Stryg for at vise menuen

Før vi faktisk går i gang med processen med tokenisering, skal vi først definere, hvad tokens er.

Note
Definition

Tokens er uafhængige og minimale tekstkomponenter, der har en specifik syntaks og semantik.

Følgelig er tokenisering processen, hvor teksten opdeles i tokens. For eksempel består et tekstafsnit, et tekstdokument eller et tekstkorpus af flere komponenter, der kan opdeles i sætninger, fraser og ord. Faktisk omfatter de mest populære tokeniseringsmetoder sætnings- og ordtokenisering, som bruges til at opdele et tekstdokument (eller korpus) i sætninger og hver sætning i ord.

Note
Definition

Et tekstkorpus (flertal: korpora) er et stort og struktureret sæt af tekster, der anvendes i lingvistisk og datalingvistisk forskning. Det er grundlæggende en omfattende samling af skriftligt eller mundtligt materiale, der fungerer som et repræsentativt udsnit af et bestemt sprog, dialekt eller emneområde.

Sætnings-tokenisering

Lad os begynde med sætnings-tokenisering. Heldigvis stiller nltk funktionen sent_tokenize() til rådighed i modulet tokenize. Det primære formål med denne funktion er at opdele en given tekst i en liste af sætninger.

sent_tokenize() benytter en forudtrænet model, typisk en maskinlæringsmodel, der er trænet på et stort tekstkorpus, til at identificere grænserne mellem sætninger. Den tager højde for forskellige signaler i teksten, såsom tegnsætning (f.eks. punktummer, udråbstegn, spørgsmålstegn), store bogstaver og andre sproglige mønstre, der typisk markerer afslutningen på én sætning og begyndelsen på en anden.

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 der intet kompliceret her. Du skal blot give en streng med din tekst som et argument til sent_tokenize() for at opnå en liste over sætninger. Med hensyn til nltk.download('punkt_tab'), downloader denne kommando specifikt "Punkt"-tokenizer-modellerne. Ved at downloade Punkt-tokenizer-modellerne sikrer du, at NLTK har de nødvendige data til at udføre præcis sætnings- og ordtokenisering.

Note
Bemærk

Tegnsætningstegnene i slutningen af hver sætning er inkluderet i sætningen.

Ordtokenisering

Ved ordtokenisering findes der flere almindelige metoder til at udføre dette; dog vil vi kun diskutere de to mest udbredte.

Den mest ligetil og enkleste metode er at bruge split()-funktionen fra string-klassen, som som standard bruger linjeskift, mellemrum og tabulatorer som skilletegn. Du kan dog også angive en vilkårlig streng som argument for at fungere 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
Bemærk

For at sikre, at tokens som 'This' og 'this' behandles ens, er det vigtigt at konvertere strengen til små bogstaver før tokenisering.

En mere fleksibel tilgang er dog at bruge funktionen word_tokenize() i modulet tokenize fra nltk-biblioteket. Denne funktion identificerer og adskiller ord baseret på mellemrum og tegnsætning, hvilket effektivt opdeler sætninger i deres enkelte ord. Ligesom sent_tokenize() kræver denne funktion et string-argument.

Lad os sammenligne denne tilgang med brugen af split()-metoden. Eksemplet nedenfor anvender 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

Lad os nu se, hvordan split()-metoden klarer sig med den samme tekst:

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 vores eksempel identificerer word_tokenize(), i modsætning til split(), tegnsætning og specialtegn som separate tokens. Den adskiller korrekt dollartegnet fra tallet og genkender punktummer som selvstændige tokens. Denne nuancerede tokenisering er afgørende for mange NLP-opgaver, hvor den præcise opdeling af ord og tegnsætning kan have stor betydning for analysens nøjagtighed og indsigt.

question mark

Givet sætningen "It wasn't me, I swear!", hvad bliver resultatet af at anvende split()-metoden på den?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 3
some-alt