Tokenisering
Før vi faktisk går inn i prosessen med tokenisering, må vi først definere hva tokens er.
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.
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)
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.
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.
123456text = "This is an example of word tokenization." # Convert the text to lowercase text = text.lower() # Word tokenization using split() words = text.split() print(words)
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():
12345678from 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)
La oss nå se hvordan split()-metoden fungerer med den samme teksten:
12345text = "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)
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.
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
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
Tokenisering
Sveip for å vise menyen
Før vi faktisk går inn i prosessen med tokenisering, må vi først definere hva tokens er.
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.
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)
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.
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.
123456text = "This is an example of word tokenization." # Convert the text to lowercase text = text.lower() # Word tokenization using split() words = text.split() print(words)
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():
12345678from 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)
La oss nå se hvordan split()-metoden fungerer med den samme teksten:
12345text = "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)
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.
Takk for tilbakemeldingene dine!