Ordklassemerking
Forståelse av POS-tagging
Vi har nevnt at part-of-speech-tagging er nyttig for lemmatisering, som er dens primære rolle i tekstforbehandling, så la oss se nærmere på denne prosessen.
Part-of-speech (POS) tagging er prosessen med å merke et ord i en tekst (korpus) som tilhørende en bestemt ordklasse (for eksempel substantiv eller verb), basert på både dets definisjon og kontekst — det vil si dets forhold til tilstøtende og relaterte ord i en frase, setning eller avsnitt.
Å bruke fulle navn på ordklasser (for eksempel "verb" eller "substantiv") kan bli ganske tungvint, spesielt med store korpus. Derfor brukes korte representasjoner, kjent som tagger, i stedet. For eksempel "VB" i stedet for verb. I praksis kan imidlertid ulike POS-taggere bruke litt forskjellige tagger og mer detaljerte tagger som "VBD" for verb i preteritum.
POS-tagging med NLTK
For å utføre part-of-speech-tagging med NLTK, bør du importere funksjonen pos_tag() direkte fra nltk og bruke den på listen av strenger (tokens) ved å sende den som argument.
123456789101112from nltk.tokenize import word_tokenize from nltk import pos_tag import nltk nltk.download('punkt_tab') # Download the model needed for NLTK's POS tagging nltk.download('averaged_perceptron_tagger_eng') text = "One of the key NLP tasks is part of speech tagging" text = text.lower() tokens = word_tokenize(text) # Perform POS tagging tagged_tokens = pos_tag(tokens) print(tagged_tokens)
Denne funksjonen returnerer en liste med tupler, der hvert element inneholder et token og dets tag. Linjen nltk.download('averaged_perceptron_tagger_eng') starter nedlastingen av datasettet og modellene som er nødvendige for PerceptronTagger, som er standard POS-tagger brukt av NLTK.
Denne taggeren er basert på averaged perceptron-modellen, en veiledet læringsalgoritme som er effektiv for storskala tekstbehandling, inkludert POS-tagging. PerceptronTagger er valgt for sin balanse mellom hastighet og nøyaktighet, noe som gjør den egnet for et bredt spekter av NLP-oppgaver som krever POS-tagging. Den lærer vekter for egenskaper basert på treningsdataene den får, og bruker disse vektene til å forutsi POS-tagger i ukjent tekst.
For bedre visuell fremstilling kan vi konvertere resultatet til en pandas DataFrame:
1234567891011121314from nltk.tokenize import word_tokenize from nltk import pos_tag import nltk import pandas as pd nltk.download('punkt_tab') # Download the model needed for NLTK's POS tagging nltk.download('averaged_perceptron_tagger_eng') text = "One of the key NLP tasks is part of speech tagging" text = text.lower() tokens = word_tokenize(text) # Perform POS tagging tagged_tokens = pos_tag(tokens) # Convert to DataFrame print(pd.DataFrame(tagged_tokens, columns=['Token', 'POS tag']).T)
Alternativt kan vi bruke pd.DataFrame(tagged_tokens, columns=['Token', 'POS tag']) uten å transponere DataFrame, slik at hver rad representerer et token-tag-par.
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
Ordklassemerking
Sveip for å vise menyen
Forståelse av POS-tagging
Vi har nevnt at part-of-speech-tagging er nyttig for lemmatisering, som er dens primære rolle i tekstforbehandling, så la oss se nærmere på denne prosessen.
Part-of-speech (POS) tagging er prosessen med å merke et ord i en tekst (korpus) som tilhørende en bestemt ordklasse (for eksempel substantiv eller verb), basert på både dets definisjon og kontekst — det vil si dets forhold til tilstøtende og relaterte ord i en frase, setning eller avsnitt.
Å bruke fulle navn på ordklasser (for eksempel "verb" eller "substantiv") kan bli ganske tungvint, spesielt med store korpus. Derfor brukes korte representasjoner, kjent som tagger, i stedet. For eksempel "VB" i stedet for verb. I praksis kan imidlertid ulike POS-taggere bruke litt forskjellige tagger og mer detaljerte tagger som "VBD" for verb i preteritum.
POS-tagging med NLTK
For å utføre part-of-speech-tagging med NLTK, bør du importere funksjonen pos_tag() direkte fra nltk og bruke den på listen av strenger (tokens) ved å sende den som argument.
123456789101112from nltk.tokenize import word_tokenize from nltk import pos_tag import nltk nltk.download('punkt_tab') # Download the model needed for NLTK's POS tagging nltk.download('averaged_perceptron_tagger_eng') text = "One of the key NLP tasks is part of speech tagging" text = text.lower() tokens = word_tokenize(text) # Perform POS tagging tagged_tokens = pos_tag(tokens) print(tagged_tokens)
Denne funksjonen returnerer en liste med tupler, der hvert element inneholder et token og dets tag. Linjen nltk.download('averaged_perceptron_tagger_eng') starter nedlastingen av datasettet og modellene som er nødvendige for PerceptronTagger, som er standard POS-tagger brukt av NLTK.
Denne taggeren er basert på averaged perceptron-modellen, en veiledet læringsalgoritme som er effektiv for storskala tekstbehandling, inkludert POS-tagging. PerceptronTagger er valgt for sin balanse mellom hastighet og nøyaktighet, noe som gjør den egnet for et bredt spekter av NLP-oppgaver som krever POS-tagging. Den lærer vekter for egenskaper basert på treningsdataene den får, og bruker disse vektene til å forutsi POS-tagger i ukjent tekst.
For bedre visuell fremstilling kan vi konvertere resultatet til en pandas DataFrame:
1234567891011121314from nltk.tokenize import word_tokenize from nltk import pos_tag import nltk import pandas as pd nltk.download('punkt_tab') # Download the model needed for NLTK's POS tagging nltk.download('averaged_perceptron_tagger_eng') text = "One of the key NLP tasks is part of speech tagging" text = text.lower() tokens = word_tokenize(text) # Perform POS tagging tagged_tokens = pos_tag(tokens) # Convert to DataFrame print(pd.DataFrame(tagged_tokens, columns=['Token', 'POS tag']).T)
Alternativt kan vi bruke pd.DataFrame(tagged_tokens, columns=['Token', 'POS tag']) uten å transponere DataFrame, slik at hver rad representerer et token-tag-par.
Takk for tilbakemeldingene dine!