Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Tokenisering | Grunderna i Textförbehandling
Introduktion till NLP

bookTokenisering

Innan vi går in på processen för tokenisering måste vi först definiera vad tokens är.

Note
Definition

Tokens är oberoende och minimala textkomponenter som har en specifik syntax och semantik.

Följaktligen är tokenisering processen att dela upp texten i tokens. Till exempel består ett textstycke, ett textdokument eller ett textkorpus av flera komponenter som kan delas in i meningar, fraser och ord. Faktum är att de mest populära tokeniseringsmetoderna inkluderar menings- och ordtokenisering, vilket används för att dela upp ett textdokument (eller korpus) i meningar och varje mening i ord.

Note
Definition

Ett textkorpus (plural: korpora) är en stor och strukturerad samling texter som används inom lingvistisk och datorlingvistisk forskning. I grunden är det en omfattande samling av skriftligt eller muntligt material som fungerar som ett representativt urval av ett visst språk, dialekt eller ämnesområde.

Meningssegmentering

Vi börjar med meningssegmentering. Lyckligtvis tillhandahåller nltk funktionen sent_tokenize() i modulen tokenize. Huvudsyftet med denna funktion är att dela upp en given text i en lista av meningar.

sent_tokenize() använder en förtränad modell, vanligtvis en maskininlärningsmodell som har tränats på ett stort textkorpus, för att identifiera gränserna mellan meningar. Den tar hänsyn till olika ledtrådar i texten, såsom skiljetecken (t.ex. punkt, utropstecken, frågetecken), versaler och andra språkliga mönster som vanligtvis markerar slutet på en mening och början på en annan.

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 är det inget komplicerat här. Du behöver bara ange en sträng med din text som argument till sent_tokenize() för att få en lista med meningar. När det gäller nltk.download('punkt_tab') laddar detta kommando specifikt ner "Punkt"-tokeniseringsmodellerna. Genom att ladda ner Punkt-tokeniseringsmodellerna säkerställer du att NLTK har nödvändig data för att utföra korrekt menings- och ordtokenisering.

Note
Notering

De skiljetecken som finns i slutet av varje mening ingår i meningen.

Ordtokenisering

Vid ordtokenisering finns det flera vanliga metoder att använda; vi kommer dock endast att diskutera de två mest förekommande.

Den mest direkta och enklaste metoden är att använda funktionen split() i sträng-klassen, som använder radbrytningar, mellanslag och tabbar som avgränsare som standard. Du kan dock även ange en valfri sträng som argument för att fungera som avgränsare.

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
Observera

För att säkerställa att token som 'This' och 'this' behandlas som samma, är det viktigt att konvertera strängen till gemener innan tokenisering.

Ett mer flexibelt tillvägagångssätt är dock att använda funktionen word_tokenize() i modulen tokenize från biblioteket nltk. Denna funktion identifierar och separerar ord baserat på mellanslag och skiljetecken, och delar därmed effektivt upp meningar i deras beståndsdelar. På liknande sätt som sent_tokenize() kräver denna funktion en sträng som argument.

Låt oss jämföra detta tillvägagångssätt med att använda metoden split(). Exemplet nedan använder 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

Låt oss nu se hur metoden split() presterar med samma text:

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 exempel identifierar word_tokenize(), till skillnad från split(), interpunktion och specialtecken som separata token. Den separerar korrekt dollartecknet från siffran och känner igen punkter som självständiga token. Denna nyanserade tokenisering är avgörande för många NLP-uppgifter, där den exakta avgränsningen av ord och interpunktion kan ha stor inverkan på analysens noggrannhet och insikter.

question mark

Givet meningen "It wasn't me, I swear!", vad blir resultatet av att använda metoden split() på den?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 3

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

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

Svep för att visa menyn

Innan vi går in på processen för tokenisering måste vi först definiera vad tokens är.

Note
Definition

Tokens är oberoende och minimala textkomponenter som har en specifik syntax och semantik.

Följaktligen är tokenisering processen att dela upp texten i tokens. Till exempel består ett textstycke, ett textdokument eller ett textkorpus av flera komponenter som kan delas in i meningar, fraser och ord. Faktum är att de mest populära tokeniseringsmetoderna inkluderar menings- och ordtokenisering, vilket används för att dela upp ett textdokument (eller korpus) i meningar och varje mening i ord.

Note
Definition

Ett textkorpus (plural: korpora) är en stor och strukturerad samling texter som används inom lingvistisk och datorlingvistisk forskning. I grunden är det en omfattande samling av skriftligt eller muntligt material som fungerar som ett representativt urval av ett visst språk, dialekt eller ämnesområde.

Meningssegmentering

Vi börjar med meningssegmentering. Lyckligtvis tillhandahåller nltk funktionen sent_tokenize() i modulen tokenize. Huvudsyftet med denna funktion är att dela upp en given text i en lista av meningar.

sent_tokenize() använder en förtränad modell, vanligtvis en maskininlärningsmodell som har tränats på ett stort textkorpus, för att identifiera gränserna mellan meningar. Den tar hänsyn till olika ledtrådar i texten, såsom skiljetecken (t.ex. punkt, utropstecken, frågetecken), versaler och andra språkliga mönster som vanligtvis markerar slutet på en mening och början på en annan.

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 är det inget komplicerat här. Du behöver bara ange en sträng med din text som argument till sent_tokenize() för att få en lista med meningar. När det gäller nltk.download('punkt_tab') laddar detta kommando specifikt ner "Punkt"-tokeniseringsmodellerna. Genom att ladda ner Punkt-tokeniseringsmodellerna säkerställer du att NLTK har nödvändig data för att utföra korrekt menings- och ordtokenisering.

Note
Notering

De skiljetecken som finns i slutet av varje mening ingår i meningen.

Ordtokenisering

Vid ordtokenisering finns det flera vanliga metoder att använda; vi kommer dock endast att diskutera de två mest förekommande.

Den mest direkta och enklaste metoden är att använda funktionen split() i sträng-klassen, som använder radbrytningar, mellanslag och tabbar som avgränsare som standard. Du kan dock även ange en valfri sträng som argument för att fungera som avgränsare.

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
Observera

För att säkerställa att token som 'This' och 'this' behandlas som samma, är det viktigt att konvertera strängen till gemener innan tokenisering.

Ett mer flexibelt tillvägagångssätt är dock att använda funktionen word_tokenize() i modulen tokenize från biblioteket nltk. Denna funktion identifierar och separerar ord baserat på mellanslag och skiljetecken, och delar därmed effektivt upp meningar i deras beståndsdelar. På liknande sätt som sent_tokenize() kräver denna funktion en sträng som argument.

Låt oss jämföra detta tillvägagångssätt med att använda metoden split(). Exemplet nedan använder 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

Låt oss nu se hur metoden split() presterar med samma text:

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 exempel identifierar word_tokenize(), till skillnad från split(), interpunktion och specialtecken som separata token. Den separerar korrekt dollartecknet från siffran och känner igen punkter som självständiga token. Denna nyanserade tokenisering är avgörande för många NLP-uppgifter, där den exakta avgränsningen av ord och interpunktion kan ha stor inverkan på analysens noggrannhet och insikter.

question mark

Givet meningen "It wasn't me, I swear!", vad blir resultatet av att använda metoden split() på den?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 3
some-alt